ario-1.6/0000755000175000017500000000000013226745613007324 500000000000000ario-1.6/plugins/0000755000175000017500000000000013226745612011004 500000000000000ario-1.6/plugins/mmkeys/0000755000175000017500000000000013226745613012312 500000000000000ario-1.6/plugins/mmkeys/ario-mmkeys-plugin.c0000644000175000017500000001552013226723434016127 00000000000000/* * Based on Rhythmbox MMKEYS plugin: * Copyright (C) 2002, 2003 Jorn Baayen * Copyright (C) 2002,2003 Colin Walters * Copyright (C) 2007 James Livingston * Copyright (C) 2007 Jonathan Matthew * * Adapted to Ario: * Copyright (C) 2008 Marc Pavot * * 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, 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * */ #include "ario-mmkeys-plugin.h" #ifdef HAVE_CONFIG_H #include #endif #include /* For strlen */ #include #include #include #include #include #include #define ARIO_MMKEYS_PLUGIN_GET_PRIVATE(object)(G_TYPE_INSTANCE_GET_PRIVATE ((object), ARIO_TYPE_MMKEYS_PLUGIN, ArioMmkeysPluginPrivate)) struct _ArioMmkeysPluginPrivate { DBusGProxy *proxy; }; ARIO_PLUGIN_REGISTER_TYPE(ArioMmkeysPlugin, ario_mmkeys_plugin) static void ario_mmkeys_plugin_init (ArioMmkeysPlugin *plugin) { plugin->priv = ARIO_MMKEYS_PLUGIN_GET_PRIVATE (plugin); } static void media_player_key_pressed (DBusGProxy *proxy, const gchar *application, const gchar *key, ArioMmkeysPlugin *plugin) { ARIO_LOG_DBG ("got media key '%s' for application '%s'", key, application); if (strcmp (application, "Ario")) return; if (strcmp (key, "Play") == 0 || strcmp (key, "Pause") == 0) { if (ario_server_is_paused ()) ario_server_do_play (); else ario_server_do_pause (); } else if (strcmp (key, "Stop") == 0) { ario_server_do_stop (); } else if (strcmp (key, "Previous") == 0) { ario_server_do_prev (); } else if (strcmp (key, "Next") == 0) { ario_server_do_next (); } } static void impl_activate (ArioPlugin *pl, ArioShell *shell) { DBusGConnection *bus; ArioMmkeysPlugin *plugin = ARIO_MMKEYS_PLUGIN (pl); ARIO_LOG_DBG ("activating media player keys plugin"); bus = dbus_g_bus_get (DBUS_BUS_SESSION, NULL); if (bus) { GError *error = NULL; plugin->priv->proxy = dbus_g_proxy_new_for_name (bus, "org.gnome.SettingsDaemon", "/org/gnome/SettingsDaemon/MediaKeys", "org.gnome.SettingsDaemon.MediaKeys"); if (!plugin->priv->proxy) { g_warning ("Unable to grab media player keys"); } else { dbus_g_proxy_call (plugin->priv->proxy, "GrabMediaPlayerKeys", &error, G_TYPE_STRING, "Ario", G_TYPE_UINT, 0, G_TYPE_INVALID, G_TYPE_INVALID); if (!error) { ARIO_LOG_DBG ("created dbus proxy for org.gnome.SettingsDaemon; grabbing keys"); dbus_g_object_register_marshaller (ario_marshal_VOID__STRING_STRING, G_TYPE_NONE, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_INVALID); dbus_g_proxy_add_signal (plugin->priv->proxy, "MediaPlayerKeyPressed", G_TYPE_STRING,G_TYPE_STRING,G_TYPE_INVALID); dbus_g_proxy_connect_signal (plugin->priv->proxy, "MediaPlayerKeyPressed", G_CALLBACK (media_player_key_pressed), plugin, NULL); } else if (error->domain == DBUS_GERROR && (error->code != DBUS_GERROR_NAME_HAS_NO_OWNER || error->code != DBUS_GERROR_SERVICE_UNKNOWN)) { /* settings daemon dbus service doesn't exist. * just silently fail. */ g_warning ("org.gnome.SettingsDaemon dbus service not found: %s", error->message); g_error_free (error); } else { g_warning ("Unable to grab media player keys: %s", error->message); g_error_free (error); } } } else { g_warning ("couldn't get dbus session bus"); } } static void impl_deactivate (ArioPlugin *pl, ArioShell *shell) { ArioMmkeysPlugin *plugin = ARIO_MMKEYS_PLUGIN (pl); if (plugin->priv->proxy != NULL) { GError *error = NULL; dbus_g_proxy_call (plugin->priv->proxy, "ReleaseMediaPlayerKeys", &error, G_TYPE_STRING, "Rhythmbox", G_TYPE_INVALID, G_TYPE_INVALID); if (error != NULL) { g_warning ("Could not release media player keys: %s", error->message); g_error_free (error); } g_object_unref (plugin->priv->proxy); plugin->priv->proxy = NULL; } } static void ario_mmkeys_plugin_class_init (ArioMmkeysPluginClass *klass) { GObjectClass *object_class = G_OBJECT_CLASS (klass); ArioPluginClass *plugin_class = ARIO_PLUGIN_CLASS (klass); plugin_class->activate = impl_activate; plugin_class->deactivate = impl_deactivate; g_type_class_add_private (object_class, sizeof (ArioMmkeysPluginPrivate)); } ario-1.6/plugins/mmkeys/Makefile.in0000644000175000017500000005745113226745577014324 00000000000000# Makefile.in generated by automake 1.15.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2017 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__is_gnu_make = { \ if test -z '$(MAKELEVEL)'; then \ false; \ elif test -n '$(MAKE_HOST)'; then \ true; \ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ true; \ else \ false; \ fi; \ } am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = plugins/mmkeys ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__uninstall_files_from_dir = { \ test -z "$$files" \ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } am__installdirs = "$(DESTDIR)$(plugindir)" "$(DESTDIR)$(plugindir)" LTLIBRARIES = $(plugin_LTLIBRARIES) am__DEPENDENCIES_1 = libmmkeys_la_DEPENDENCIES = $(am__DEPENDENCIES_1) am_libmmkeys_la_OBJECTS = ario-mmkeys-plugin.lo libmmkeys_la_OBJECTS = $(am_libmmkeys_la_OBJECTS) AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent am__v_lt_1 = libmmkeys_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(libmmkeys_la_LDFLAGS) $(LDFLAGS) -o $@ AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) AM_V_CC = $(am__v_CC_@AM_V@) am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) am__v_CC_0 = @echo " CC " $@; am__v_CC_1 = CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_CCLD = $(am__v_CCLD_@AM_V@) am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) am__v_CCLD_0 = @echo " CCLD " $@; am__v_CCLD_1 = SOURCES = $(libmmkeys_la_SOURCES) DIST_SOURCES = $(libmmkeys_la_SOURCES) am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac DATA = $(plugin_DATA) am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) # Read a list of newline-separated strings from the standard input, # and print each of them once, without duplicates. Input order is # *not* preserved. am__uniquify_input = $(AWK) '\ BEGIN { nonempty = 0; } \ { items[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in items) print i; }; } \ ' # Make sure the list of sources is unique. This is necessary because, # e.g., the same source file might be shared among _SOURCES variables # for different programs/libraries. am__define_uniq_tagged_files = \ list='$(am__tagged_files)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALL_LINGUAS = @ALL_LINGUAS@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AR_FLAGS = @AR_FLAGS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AVAHI_CFLAGS = @AVAHI_CFLAGS@ AVAHI_LIBS = @AVAHI_LIBS@ AWK = @AWK@ CATALOGS = @CATALOGS@ CATOBJEXT = @CATOBJEXT@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIRNAME = @DATADIRNAME@ DBUS_CFLAGS = @DBUS_CFLAGS@ DBUS_GLIB_BIN = @DBUS_GLIB_BIN@ DBUS_LIBS = @DBUS_LIBS@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DEPS_CFLAGS = @DEPS_CFLAGS@ DEPS_LIBS = @DEPS_LIBS@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ GLIB_MKENUMS = @GLIB_MKENUMS@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INSTOBJEXT = @INSTOBJEXT@ INTLLIBS = @INTLLIBS@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@ INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@ INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBMPDCLIENT2_CFLAGS = @LIBMPDCLIENT2_CFLAGS@ LIBMPDCLIENT2_LIBS = @LIBMPDCLIENT2_LIBS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MKINSTALLDIRS = @MKINSTALLDIRS@ MSGFMT = @MSGFMT@ MSGFMT_OPTS = @MSGFMT_OPTS@ MSGMERGE = @MSGMERGE@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ PLUGINDIR = @PLUGINDIR@ PLUGIN_DATA_DIR = @PLUGIN_DATA_DIR@ POFILES = @POFILES@ POSUB = @POSUB@ PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ PYGTK_CFLAGS = @PYGTK_CFLAGS@ PYGTK_CODEGEN = @PYGTK_CODEGEN@ PYGTK_DEFSDIR = @PYGTK_DEFSDIR@ PYGTK_H2DEF = @PYGTK_H2DEF@ PYGTK_LIBS = @PYGTK_LIBS@ PYTHON = @PYTHON@ PYTHON_CFLAGS = @PYTHON_CFLAGS@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_EXTRA_LIBS = @PYTHON_EXTRA_LIBS@ PYTHON_LIBS = @PYTHON_LIBS@ PYTHON_LIB_LOC = @PYTHON_LIB_LOC@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ PYTHON_PREFIX = @PYTHON_PREFIX@ PYTHON_VERSION = @PYTHON_VERSION@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ TAGLIB_CFLAGS = @TAGLIB_CFLAGS@ TAGLIB_LIBS = @TAGLIB_LIBS@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ WARNINGS = @WARNINGS@ XGETTEXT = @XGETTEXT@ XMMS2_CFLAGS = @XMMS2_CFLAGS@ XMMS2_LIBS = @XMMS2_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ intltool__v_merge_options_ = @intltool__v_merge_options_@ intltool__v_merge_options_0 = @intltool__v_merge_options_0@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pkgpyexecdir = @pkgpyexecdir@ pkgpythondir = @pkgpythondir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ pyexecdir = @pyexecdir@ pythondir = @pythondir@ runstatedir = @runstatedir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ plugindir = $(PLUGINDIR) plugindatadir = $(PLUGIN_DATA_DIR) plugin_LTLIBRARIES = libmmkeys.la libmmkeys_la_SOURCES = \ ario-mmkeys-plugin.c \ ario-mmkeys-plugin.h libmmkeys_la_LDFLAGS = $(PLUGIN_LIBTOOL_FLAGS) libmmkeys_la_LIBADD = $(DBUS_LIBS) INCLUDES = \ -DLOCALE_DIR=\""$(prefix)/$(DATADIRNAME)/locale"\" \ $(DEPS_CFLAGS) \ $(DBUS_CFLAGS) \ -I$(top_srcdir) \ -I$(top_srcdir)/src \ -I$(top_srcdir)/src/lib \ -I$(top_srcdir)/src/plugins \ -I$(top_srcdir)/src/shell \ $(WARNINGS) plugin_in_files = mmkeys.ario-plugin.desktop.in plugin_DATA = $(plugin_in_files:.ario-plugin.desktop.in=.ario-plugin) EXTRA_DIST = $(plugin_in_files) CLEANFILES = $(plugin_DATA) DISTCLEANFILES = $(plugin_DATA) all: all-am .SUFFIXES: .SUFFIXES: .c .lo .o .obj $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign plugins/mmkeys/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign plugins/mmkeys/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES) @$(NORMAL_INSTALL) @list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \ list2=; for p in $$list; do \ if test -f $$p; then \ list2="$$list2 $$p"; \ else :; fi; \ done; \ test -z "$$list2" || { \ echo " $(MKDIR_P) '$(DESTDIR)$(plugindir)'"; \ $(MKDIR_P) "$(DESTDIR)$(plugindir)" || exit 1; \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(plugindir)'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(plugindir)"; \ } uninstall-pluginLTLIBRARIES: @$(NORMAL_UNINSTALL) @list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \ for p in $$list; do \ $(am__strip_dir) \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(plugindir)/$$f'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(plugindir)/$$f"; \ done clean-pluginLTLIBRARIES: -test -z "$(plugin_LTLIBRARIES)" || rm -f $(plugin_LTLIBRARIES) @list='$(plugin_LTLIBRARIES)'; \ locs=`for p in $$list; do echo $$p; done | \ sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ sort -u`; \ test -z "$$locs" || { \ echo rm -f $${locs}; \ rm -f $${locs}; \ } libmmkeys.la: $(libmmkeys_la_OBJECTS) $(libmmkeys_la_DEPENDENCIES) $(EXTRA_libmmkeys_la_DEPENDENCIES) $(AM_V_CCLD)$(libmmkeys_la_LINK) -rpath $(plugindir) $(libmmkeys_la_OBJECTS) $(libmmkeys_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ario-mmkeys-plugin.Plo@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\ @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ @am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< .c.obj: @am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\ @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\ @am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\ @am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ @am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs install-pluginDATA: $(plugin_DATA) @$(NORMAL_INSTALL) @list='$(plugin_DATA)'; test -n "$(plugindir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(plugindir)'"; \ $(MKDIR_P) "$(DESTDIR)$(plugindir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(plugindir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(plugindir)" || exit $$?; \ done uninstall-pluginDATA: @$(NORMAL_UNINSTALL) @list='$(plugin_DATA)'; test -n "$(plugindir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(plugindir)'; $(am__uninstall_files_from_dir) ID: $(am__tagged_files) $(am__define_uniq_tagged_files); mkid -fID $$unique tags: tags-am TAGS: tags tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: ctags-am CTAGS: ctags ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" cscopelist: cscopelist-am cscopelist-am: $(am__tagged_files) list='$(am__tagged_files)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ esac; \ for i in $$list; do \ if test -f "$$i"; then \ echo "$(subdir)/$$i"; \ else \ echo "$$sdir/$$i"; \ fi; \ done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(LTLIBRARIES) $(DATA) installdirs: for dir in "$(DESTDIR)$(plugindir)" "$(DESTDIR)$(plugindir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool clean-pluginLTLIBRARIES \ mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-pluginDATA install-pluginLTLIBRARIES install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-pluginDATA uninstall-pluginLTLIBRARIES .MAKE: install-am install-strip .PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ clean-libtool clean-pluginLTLIBRARIES cscopelist-am ctags \ ctags-am distclean distclean-compile distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-pdf install-pdf-am \ install-pluginDATA install-pluginLTLIBRARIES install-ps \ install-ps-am install-strip installcheck installcheck-am \ installdirs maintainer-clean maintainer-clean-generic \ mostlyclean mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf pdf-am ps ps-am tags tags-am uninstall \ uninstall-am uninstall-pluginDATA uninstall-pluginLTLIBRARIES .PRECIOUS: Makefile %.ario-plugin: %.ario-plugin.desktop.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*po) ; $(INTLTOOL_MERGE) $(top_srcdir)/po $< $@ -d -u -c $(top_builddir)/po/.intltool-merge-cache # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: ario-1.6/plugins/mmkeys/ario-mmkeys-plugin.h0000644000175000017500000001027113226723434016132 00000000000000/* * Copyright (C) 2008 Marc Pavot * * 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, 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * */ #ifndef __ARIO_MMKEYS_PLUGIN_H__ #define __ARIO_MMKEYS_PLUGIN_H__ #include #include #include G_BEGIN_DECLS /* * Type checking and casting macros */ #define ARIO_TYPE_MMKEYS_PLUGIN (ario_mmkeys_plugin_get_type ()) #define ARIO_MMKEYS_PLUGIN(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), ARIO_TYPE_MMKEYS_PLUGIN, ArioMmkeysPlugin)) #define ARIO_MMKEYS_PLUGIN_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), ARIO_TYPE_MMKEYS_PLUGIN, ArioMmkeysPluginClass)) #define ARIO_IS_MMKEYS_PLUGIN(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), ARIO_TYPE_MMKEYS_PLUGIN)) #define ARIO_IS_MMKEYS_PLUGIN_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), ARIO_TYPE_MMKEYS_PLUGIN)) #define ARIO_MMKEYS_PLUGIN_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), ARIO_TYPE_MMKEYS_PLUGIN, ArioMmkeysPluginClass)) /* Private structure type */ typedef struct _ArioMmkeysPluginPrivate ArioMmkeysPluginPrivate; /* * Main object structure */ typedef struct _ArioMmkeysPlugin ArioMmkeysPlugin; struct _ArioMmkeysPlugin { ArioPlugin parent_instance; /*< private >*/ ArioMmkeysPluginPrivate *priv; }; /* * Class definition */ typedef struct _ArioMmkeysPluginClass ArioMmkeysPluginClass; struct _ArioMmkeysPluginClass { ArioPluginClass parent_class; }; /* * Public methods */ GType ario_mmkeys_plugin_get_type (void) G_GNUC_CONST; /* All the plugins must implement this function */ G_MODULE_EXPORT GType register_ario_plugin (GTypeModule *module); #define g_marshal_value_peek_string(v) (v)->data[0].v_pointer extern void ario_marshal_VOID__STRING_STRING (GClosure *closure, GValue *return_value, guint n_param_values, const GValue *param_values, gpointer invocation_hint, gpointer marshal_data); void ario_marshal_VOID__STRING_STRING (GClosure *closure, GValue *return_value, guint n_param_values, const GValue *param_values, gpointer invocation_hint, gpointer marshal_data) { typedef void (*GMarshalFunc_VOID__STRING_STRING) (gpointer data1, gpointer arg_1, gpointer arg_2, gpointer data2); register GMarshalFunc_VOID__STRING_STRING callback; register GCClosure *cc = (GCClosure*) closure; register gpointer data1, data2; g_return_if_fail (n_param_values == 3); if (G_CCLOSURE_SWAP_DATA (closure)) { data1 = closure->data; data2 = g_value_peek_pointer (param_values + 0); } else { data1 = g_value_peek_pointer (param_values + 0); data2 = closure->data; } callback = (GMarshalFunc_VOID__STRING_STRING) (marshal_data ? marshal_data : cc->callback); callback (data1, g_marshal_value_peek_string (param_values + 1), g_marshal_value_peek_string (param_values + 2), data2); } G_END_DECLS #endif /* __ARIO_MMKEYS_PLUGIN_H__ */ ario-1.6/plugins/mmkeys/Makefile.am0000644000175000017500000000174513226723434014272 00000000000000plugindir = $(PLUGINDIR) plugindatadir = $(PLUGIN_DATA_DIR) plugin_LTLIBRARIES = libmmkeys.la libmmkeys_la_SOURCES = \ ario-mmkeys-plugin.c \ ario-mmkeys-plugin.h libmmkeys_la_LDFLAGS = $(PLUGIN_LIBTOOL_FLAGS) libmmkeys_la_LIBADD = $(DBUS_LIBS) INCLUDES = \ -DLOCALE_DIR=\""$(prefix)/$(DATADIRNAME)/locale"\" \ $(DEPS_CFLAGS) \ $(DBUS_CFLAGS) \ -I$(top_srcdir) \ -I$(top_srcdir)/src \ -I$(top_srcdir)/src/lib \ -I$(top_srcdir)/src/plugins \ -I$(top_srcdir)/src/shell \ $(WARNINGS) plugin_in_files = mmkeys.ario-plugin.desktop.in %.ario-plugin: %.ario-plugin.desktop.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*po) ; $(INTLTOOL_MERGE) $(top_srcdir)/po $< $@ -d -u -c $(top_builddir)/po/.intltool-merge-cache plugin_DATA = $(plugin_in_files:.ario-plugin.desktop.in=.ario-plugin) EXTRA_DIST = $(plugin_in_files) CLEANFILES = $(plugin_DATA) DISTCLEANFILES = $(plugin_DATA) ario-1.6/plugins/mmkeys/mmkeys.ario-plugin.desktop.in0000644000175000017500000000033613226723437017766 00000000000000[Ario Plugin] Module=mmkeys IAge=1 _Name=Multimedia Keys _Description=Add multimedia keys support Authors=Marc Pavot Copyright=Copyright © 2008 Marc Pavot Website=http://ario-player.sourceforge.net ario-1.6/plugins/information/0000755000175000017500000000000013226745612013331 500000000000000ario-1.6/plugins/information/information.ario-plugin.desktop.in0000644000175000017500000000041613226723434022022 00000000000000[Ario Plugin] Module=information IAge=1 _Name=Song Information _Description=Display various information about the playing song Icon=media-optical Authors=Marc Pavot Copyright=Copyright © 2008 Marc Pavot Website=http://ario-player.sourceforge.net ario-1.6/plugins/information/Makefile.in0000644000175000017500000006165113226745576015340 00000000000000# Makefile.in generated by automake 1.15.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2017 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__is_gnu_make = { \ if test -z '$(MAKELEVEL)'; then \ false; \ elif test -n '$(MAKE_HOST)'; then \ true; \ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ true; \ else \ false; \ fi; \ } am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = plugins/information ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__uninstall_files_from_dir = { \ test -z "$$files" \ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } am__installdirs = "$(DESTDIR)$(plugindir)" "$(DESTDIR)$(plugindir)" \ "$(DESTDIR)$(uidir)" LTLIBRARIES = $(plugin_LTLIBRARIES) libinformation_la_LIBADD = am_libinformation_la_OBJECTS = ario-information.lo \ ario-information-plugin.lo libinformation_la_OBJECTS = $(am_libinformation_la_OBJECTS) AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent am__v_lt_1 = libinformation_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ $(AM_CFLAGS) $(CFLAGS) $(libinformation_la_LDFLAGS) $(LDFLAGS) \ -o $@ AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) AM_V_CC = $(am__v_CC_@AM_V@) am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) am__v_CC_0 = @echo " CC " $@; am__v_CC_1 = CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_CCLD = $(am__v_CCLD_@AM_V@) am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) am__v_CCLD_0 = @echo " CCLD " $@; am__v_CCLD_1 = SOURCES = $(libinformation_la_SOURCES) DIST_SOURCES = $(libinformation_la_SOURCES) am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac DATA = $(plugin_DATA) $(ui_DATA) am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) # Read a list of newline-separated strings from the standard input, # and print each of them once, without duplicates. Input order is # *not* preserved. am__uniquify_input = $(AWK) '\ BEGIN { nonempty = 0; } \ { items[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in items) print i; }; } \ ' # Make sure the list of sources is unique. This is necessary because, # e.g., the same source file might be shared among _SOURCES variables # for different programs/libraries. am__define_uniq_tagged_files = \ list='$(am__tagged_files)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALL_LINGUAS = @ALL_LINGUAS@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AR_FLAGS = @AR_FLAGS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AVAHI_CFLAGS = @AVAHI_CFLAGS@ AVAHI_LIBS = @AVAHI_LIBS@ AWK = @AWK@ CATALOGS = @CATALOGS@ CATOBJEXT = @CATOBJEXT@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIRNAME = @DATADIRNAME@ DBUS_CFLAGS = @DBUS_CFLAGS@ DBUS_GLIB_BIN = @DBUS_GLIB_BIN@ DBUS_LIBS = @DBUS_LIBS@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DEPS_CFLAGS = @DEPS_CFLAGS@ DEPS_LIBS = @DEPS_LIBS@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ GLIB_MKENUMS = @GLIB_MKENUMS@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INSTOBJEXT = @INSTOBJEXT@ INTLLIBS = @INTLLIBS@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@ INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@ INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBMPDCLIENT2_CFLAGS = @LIBMPDCLIENT2_CFLAGS@ LIBMPDCLIENT2_LIBS = @LIBMPDCLIENT2_LIBS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MKINSTALLDIRS = @MKINSTALLDIRS@ MSGFMT = @MSGFMT@ MSGFMT_OPTS = @MSGFMT_OPTS@ MSGMERGE = @MSGMERGE@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ PLUGINDIR = @PLUGINDIR@ PLUGIN_DATA_DIR = @PLUGIN_DATA_DIR@ POFILES = @POFILES@ POSUB = @POSUB@ PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ PYGTK_CFLAGS = @PYGTK_CFLAGS@ PYGTK_CODEGEN = @PYGTK_CODEGEN@ PYGTK_DEFSDIR = @PYGTK_DEFSDIR@ PYGTK_H2DEF = @PYGTK_H2DEF@ PYGTK_LIBS = @PYGTK_LIBS@ PYTHON = @PYTHON@ PYTHON_CFLAGS = @PYTHON_CFLAGS@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_EXTRA_LIBS = @PYTHON_EXTRA_LIBS@ PYTHON_LIBS = @PYTHON_LIBS@ PYTHON_LIB_LOC = @PYTHON_LIB_LOC@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ PYTHON_PREFIX = @PYTHON_PREFIX@ PYTHON_VERSION = @PYTHON_VERSION@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ TAGLIB_CFLAGS = @TAGLIB_CFLAGS@ TAGLIB_LIBS = @TAGLIB_LIBS@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ WARNINGS = @WARNINGS@ XGETTEXT = @XGETTEXT@ XMMS2_CFLAGS = @XMMS2_CFLAGS@ XMMS2_LIBS = @XMMS2_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ intltool__v_merge_options_ = @intltool__v_merge_options_@ intltool__v_merge_options_0 = @intltool__v_merge_options_0@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pkgpyexecdir = @pkgpyexecdir@ pkgpythondir = @pkgpythondir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ pyexecdir = @pyexecdir@ pythondir = @pythondir@ runstatedir = @runstatedir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ plugindir = $(PLUGINDIR) plugindatadir = $(PLUGIN_DATA_DIR) plugin_LTLIBRARIES = libinformation.la libinformation_la_SOURCES = \ ario-information.c \ ario-information.h \ ario-information-plugin.c \ ario-information-plugin.h libinformation_la_LDFLAGS = $(PLUGIN_LIBTOOL_FLAGS) INCLUDES = \ -DLOCALE_DIR=\""$(prefix)/$(DATADIRNAME)/locale"\" \ $(DEPS_CFLAGS) \ -I$(top_srcdir) \ -I$(top_srcdir)/src \ -I$(top_srcdir)/src/lib \ -I$(top_srcdir)/src/plugins \ -I$(top_srcdir)/src/sources \ -I$(top_srcdir)/src/shell \ $(WARNINGS) uidir = $(plugindatadir) ui_DATA = information.ui plugin_in_files = information.ario-plugin.desktop.in plugin_DATA = $(plugin_in_files:.ario-plugin.desktop.in=.ario-plugin) EXTRA_DIST = $(plugin_in_files)\ $(ui_DATA) CLEANFILES = $(plugin_DATA) DISTCLEANFILES = $(plugin_DATA) all: all-am .SUFFIXES: .SUFFIXES: .c .lo .o .obj $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign plugins/information/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign plugins/information/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES) @$(NORMAL_INSTALL) @list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \ list2=; for p in $$list; do \ if test -f $$p; then \ list2="$$list2 $$p"; \ else :; fi; \ done; \ test -z "$$list2" || { \ echo " $(MKDIR_P) '$(DESTDIR)$(plugindir)'"; \ $(MKDIR_P) "$(DESTDIR)$(plugindir)" || exit 1; \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(plugindir)'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(plugindir)"; \ } uninstall-pluginLTLIBRARIES: @$(NORMAL_UNINSTALL) @list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \ for p in $$list; do \ $(am__strip_dir) \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(plugindir)/$$f'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(plugindir)/$$f"; \ done clean-pluginLTLIBRARIES: -test -z "$(plugin_LTLIBRARIES)" || rm -f $(plugin_LTLIBRARIES) @list='$(plugin_LTLIBRARIES)'; \ locs=`for p in $$list; do echo $$p; done | \ sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ sort -u`; \ test -z "$$locs" || { \ echo rm -f $${locs}; \ rm -f $${locs}; \ } libinformation.la: $(libinformation_la_OBJECTS) $(libinformation_la_DEPENDENCIES) $(EXTRA_libinformation_la_DEPENDENCIES) $(AM_V_CCLD)$(libinformation_la_LINK) -rpath $(plugindir) $(libinformation_la_OBJECTS) $(libinformation_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ario-information-plugin.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ario-information.Plo@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\ @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ @am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< .c.obj: @am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\ @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\ @am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\ @am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ @am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs install-pluginDATA: $(plugin_DATA) @$(NORMAL_INSTALL) @list='$(plugin_DATA)'; test -n "$(plugindir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(plugindir)'"; \ $(MKDIR_P) "$(DESTDIR)$(plugindir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(plugindir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(plugindir)" || exit $$?; \ done uninstall-pluginDATA: @$(NORMAL_UNINSTALL) @list='$(plugin_DATA)'; test -n "$(plugindir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(plugindir)'; $(am__uninstall_files_from_dir) install-uiDATA: $(ui_DATA) @$(NORMAL_INSTALL) @list='$(ui_DATA)'; test -n "$(uidir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(uidir)'"; \ $(MKDIR_P) "$(DESTDIR)$(uidir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(uidir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(uidir)" || exit $$?; \ done uninstall-uiDATA: @$(NORMAL_UNINSTALL) @list='$(ui_DATA)'; test -n "$(uidir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(uidir)'; $(am__uninstall_files_from_dir) ID: $(am__tagged_files) $(am__define_uniq_tagged_files); mkid -fID $$unique tags: tags-am TAGS: tags tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: ctags-am CTAGS: ctags ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" cscopelist: cscopelist-am cscopelist-am: $(am__tagged_files) list='$(am__tagged_files)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ esac; \ for i in $$list; do \ if test -f "$$i"; then \ echo "$(subdir)/$$i"; \ else \ echo "$$sdir/$$i"; \ fi; \ done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(LTLIBRARIES) $(DATA) installdirs: for dir in "$(DESTDIR)$(plugindir)" "$(DESTDIR)$(plugindir)" "$(DESTDIR)$(uidir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool clean-pluginLTLIBRARIES \ mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-pluginDATA install-pluginLTLIBRARIES \ install-uiDATA install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-pluginDATA uninstall-pluginLTLIBRARIES \ uninstall-uiDATA .MAKE: install-am install-strip .PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ clean-libtool clean-pluginLTLIBRARIES cscopelist-am ctags \ ctags-am distclean distclean-compile distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-pdf install-pdf-am \ install-pluginDATA install-pluginLTLIBRARIES install-ps \ install-ps-am install-strip install-uiDATA installcheck \ installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags tags-am uninstall uninstall-am uninstall-pluginDATA \ uninstall-pluginLTLIBRARIES uninstall-uiDATA .PRECIOUS: Makefile %.ario-plugin: %.ario-plugin.desktop.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*po) ; $(INTLTOOL_MERGE) $(top_srcdir)/po $< $@ -d -u -c $(top_builddir)/po/.intltool-merge-cache # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: ario-1.6/plugins/information/ario-information-plugin.c0000644000175000017500000000464213226723434020172 00000000000000/* * Copyright (C) 2002-2005 - Paolo Maggi * * 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, 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * */ #include "ario-information-plugin.h" #ifdef HAVE_CONFIG_H #include #endif #include #include #include #include #include #include "ario-information.h" #define ARIO_INFORMATION_PLUGIN_GET_PRIVATE(object)(G_TYPE_INSTANCE_GET_PRIVATE ((object), ARIO_TYPE_INFORMATION_PLUGIN, ArioInformationPluginPrivate)) struct _ArioInformationPluginPrivate { GtkWidget *source; }; ARIO_PLUGIN_REGISTER_TYPE(ArioInformationPlugin, ario_information_plugin) static void ario_information_plugin_init (ArioInformationPlugin *plugin) { plugin->priv = ARIO_INFORMATION_PLUGIN_GET_PRIVATE (plugin); } static void impl_activate (ArioPlugin *plugin, ArioShell *shell) { ArioInformationPlugin *pi = ARIO_INFORMATION_PLUGIN (plugin); pi->priv->source = ario_information_new (); g_return_if_fail (IS_ARIO_INFORMATION (pi->priv->source)); ario_source_manager_append (ARIO_SOURCE (pi->priv->source)); ario_source_manager_reorder (); } static void impl_deactivate (ArioPlugin *plugin, ArioShell *shell) { ArioInformationPlugin *pi = ARIO_INFORMATION_PLUGIN (plugin); ario_source_manager_remove (ARIO_SOURCE (pi->priv->source)); } static void ario_information_plugin_class_init (ArioInformationPluginClass *klass) { GObjectClass *object_class = G_OBJECT_CLASS (klass); ArioPluginClass *plugin_class = ARIO_PLUGIN_CLASS (klass); plugin_class->activate = impl_activate; plugin_class->deactivate = impl_deactivate; g_type_class_add_private (object_class, sizeof (ArioInformationPluginPrivate)); } ario-1.6/plugins/information/ario-information.h0000644000175000017500000000364313226723434016703 00000000000000/* * Copyright (C) 2005 Marc Pavot * * 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, 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * */ #ifndef __ARIO_INFORMATION_H #define __ARIO_INFORMATION_H #include #include #include "sources/ario-source.h" G_BEGIN_DECLS #define TYPE_ARIO_INFORMATION (ario_information_get_type ()) #define ARIO_INFORMATION(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), TYPE_ARIO_INFORMATION, ArioInformation)) #define ARIO_INFORMATION_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), TYPE_ARIO_INFORMATION, ArioInformationClass)) #define IS_ARIO_INFORMATION(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), TYPE_ARIO_INFORMATION)) #define IS_ARIO_INFORMATION_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), TYPE_ARIO_INFORMATION)) #define ARIO_INFORMATION_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), TYPE_ARIO_INFORMATION, ArioInformationClass)) typedef struct ArioInformationPrivate ArioInformationPrivate; typedef struct { ArioSource parent; ArioInformationPrivate *priv; } ArioInformation; typedef struct { ArioSourceClass parent; } ArioInformationClass; GType ario_information_get_type (void) G_GNUC_CONST; GtkWidget* ario_information_new (void); G_END_DECLS #endif /* __ARIO_INFORMATION_H */ ario-1.6/plugins/information/ario-information.c0000644000175000017500000005250513226723434016677 00000000000000/* * Copyright (C) 2005 Marc Pavot * * 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, 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * */ #include "ario-information.h" #include #include #include #include #include "ario-debug.h" #include "ario-util.h" #include "covers/ario-cover.h" #include "covers/ario-cover-handler.h" #include "preferences/ario-preferences.h" #include "lib/ario-conf.h" #include "lib/gtk-builder-helpers.h" #include "lyrics/ario-lyrics.h" #include "plugins/ario-plugin.h" #include "servers/ario-server.h" static void ario_information_finalize (GObject *object); static void ario_information_fill_song (ArioInformation *information); static void ario_information_fill_cover (ArioInformation *information); static void ario_information_album_foreach (GtkWidget *widget, GtkContainer *container); static void ario_information_fill_album (ArioInformation *information); static void ario_information_state_changed_cb (ArioServer *server, ArioInformation *information); static void ario_information_song_changed_cb (ArioServer *server, ArioInformation *information); static void ario_information_cover_changed_cb (ArioCoverHandler *cover_handler, ArioInformation *information); static void ario_information_album_changed_cb (ArioServer *server, ArioInformation *information); static void ario_information_cover_drag_data_get_cb (GtkWidget *widget, GdkDragContext *context, GtkSelectionData *selection_data, guint info, guint time, ArioServerAlbum *album); static gboolean ario_information_cover_button_press_cb (GtkWidget *widget, GdkEventButton *event, ArioServerAlbum *album); struct ArioInformationPrivate { gboolean connected; GtkWidget *artist_label; GtkWidget *album_label; GtkWidget *title_label; GtkWidget *length_label; GtkWidget *lyrics_label; GtkWidget *lyrics_textview; GtkTextBuffer *lyrics_textbuffer; GtkWidget *cover_image; GtkWidget *properties_hbox; GtkWidget *albums_hbox; GtkWidget *albums_const_label; GSList *albums; gboolean selected; }; /* Drag and drop target */ static const GtkTargetEntry criterias_targets [] = { { "text/criterias-list", 0, 0 }, }; /* Object properties */ enum { PROP_0, }; #define ARIO_INFORMATION_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_ARIO_INFORMATION, ArioInformationPrivate)) G_DEFINE_TYPE (ArioInformation, ario_information, ARIO_TYPE_SOURCE) static gchar * ario_information_get_id (ArioSource *source) { return "information"; } static gchar * ario_information_get_name (ArioSource *source) { return _("Information"); } static gchar * ario_information_get_icon (ArioSource *source) { return "media-optical"; } static void ario_information_select (ArioSource *source) { ArioInformation *information = ARIO_INFORMATION (source); /* Fill all information when tab is selected */ information->priv->selected = TRUE; /* Fill song info */ ario_information_fill_song (information); /* Fill cover arts */ ario_information_fill_cover (information); /* Fill album info */ ario_information_fill_album (information); } static void ario_information_unselect (ArioSource *source) { ArioInformation *information = ARIO_INFORMATION (source); /* Remember to be lazy until tab is selected again */ information->priv->selected = FALSE; } static void ario_information_class_init (ArioInformationClass *klass) { ARIO_LOG_FUNCTION_START; GObjectClass *object_class = G_OBJECT_CLASS (klass); ArioSourceClass *source_class = ARIO_SOURCE_CLASS (klass); /* GObject virtual methods */ object_class->finalize = ario_information_finalize; /* ArioSource virtual methods */ source_class->get_id = ario_information_get_id; source_class->get_name = ario_information_get_name; source_class->get_icon = ario_information_get_icon; source_class->select = ario_information_select; source_class->unselect = ario_information_unselect; /* Private attributes */ g_type_class_add_private (klass, sizeof (ArioInformationPrivate)); } static gboolean ario_information_button_press_cb (GtkWidget *widget, GdkEventButton *event, ArioInformation *information) { ARIO_LOG_FUNCTION_START; return TRUE; } static void ario_information_init (ArioInformation *information) { ARIO_LOG_FUNCTION_START; GtkWidget *scrolledwindow; GtkWidget *vbox, *vp; GtkBuilder *builder; gchar *file; information->priv = ARIO_INFORMATION_GET_PRIVATE (information); /* Get UI file in one of plugins directory */ file = ario_plugin_find_file ("information.ui"); g_return_if_fail (file); /* Create scrolled window */ scrolledwindow = gtk_scrolled_window_new (NULL, NULL); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolledwindow), GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC); gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (scrolledwindow), GTK_SHADOW_NONE); /* Create viewport to have white background */ vp = gtk_viewport_new (gtk_scrolled_window_get_hadjustment (GTK_SCROLLED_WINDOW (scrolledwindow)), gtk_scrolled_window_get_vadjustment (GTK_SCROLLED_WINDOW (scrolledwindow))); /* Create UI from file */ builder = gtk_builder_helpers_new (file, information); g_free (file); /* Get main vbox */ vbox = GTK_WIDGET (gtk_builder_get_object (builder, "vbox")); /* Get pointers to various widgets */ information->priv->artist_label = GTK_WIDGET (gtk_builder_get_object (builder, "artist_label")); information->priv->album_label = GTK_WIDGET (gtk_builder_get_object (builder, "album_label")); information->priv->title_label = GTK_WIDGET (gtk_builder_get_object (builder, "title_label")); information->priv->length_label = GTK_WIDGET (gtk_builder_get_object (builder, "length_label")); information->priv->lyrics_label = GTK_WIDGET (gtk_builder_get_object (builder, "lyrics_const_label")); information->priv->lyrics_textview = GTK_WIDGET (gtk_builder_get_object (builder, "lyrics_textview")); information->priv->cover_image = GTK_WIDGET (gtk_builder_get_object (builder, "cover_image")); information->priv->properties_hbox = GTK_WIDGET (gtk_builder_get_object (builder, "properties_hbox")); information->priv->albums_hbox = GTK_WIDGET (gtk_builder_get_object (builder, "albums_hbox")); information->priv->albums_const_label = GTK_WIDGET (gtk_builder_get_object (builder, "albums_const_label")); /* Get text view buffer */ information->priv->lyrics_textbuffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (information->priv->lyrics_textview)); /* Change style of some labels */ gtk_builder_helpers_boldify_label (builder, "artist_const_label"); gtk_builder_helpers_boldify_label (builder, "album_const_label"); gtk_builder_helpers_boldify_label (builder, "title_const_label"); gtk_builder_helpers_boldify_label (builder, "length_const_label"); gtk_builder_helpers_boldify_label (builder, "albums_const_label"); gtk_builder_helpers_boldify_label (builder, "lyrics_const_label"); /* Connect signal for current cover change */ g_signal_connect (ario_cover_handler_get_instance (), "cover_changed", G_CALLBACK (ario_information_cover_changed_cb), information); /* Widgets to scrolled window */ gtk_container_add (GTK_CONTAINER (vp), vbox); gtk_container_add (GTK_CONTAINER (scrolledwindow), vp); g_signal_connect_object (scrolledwindow, "button_press_event", G_CALLBACK (ario_information_button_press_cb), information, 0); gtk_widget_show_all (scrolledwindow); /* Add scrolled window to information */ gtk_box_pack_start (GTK_BOX (information), scrolledwindow, TRUE, TRUE, 0); g_object_unref (builder); } static void ario_information_finalize (GObject *object) { ARIO_LOG_FUNCTION_START; ArioInformation *information; g_return_if_fail (object != NULL); g_return_if_fail (IS_ARIO_INFORMATION (object)); information = ARIO_INFORMATION (object); g_return_if_fail (information->priv != NULL); /* Free a few data */ if (information->priv->albums) { g_slist_foreach (information->priv->albums, (GFunc) ario_server_free_album, NULL); g_slist_free (information->priv->albums); information->priv->albums = NULL; } G_OBJECT_CLASS (ario_information_parent_class)->finalize (object); } GtkWidget * ario_information_new (void) { ARIO_LOG_FUNCTION_START; ArioInformation *information; ArioServer *server = ario_server_get_instance (); information = g_object_new (TYPE_ARIO_INFORMATION, NULL); g_return_val_if_fail (information->priv != NULL, NULL); /* Signals to synchronize the information with server */ g_signal_connect_object (server, "state_changed", G_CALLBACK (ario_information_state_changed_cb), information, 0); g_signal_connect_object (server, "song_changed", G_CALLBACK (ario_information_song_changed_cb), information, 0); g_signal_connect_object (server, "album_changed", G_CALLBACK (ario_information_album_changed_cb), information, 0); information->priv->connected = ario_server_is_connected (); return GTK_WIDGET (information); } static void ario_information_fill_song (ArioInformation *information) { ARIO_LOG_FUNCTION_START; ArioServerSong *song; gchar *length; ArioLyrics *lyrics; int state; /* Do nothing if tab is not visible */ if (!information->priv->selected) return; /* Get info on server */ state = ario_server_get_current_state (); song = ario_server_get_current_song (); /* Hide song widgets in not connected or not playing */ if (!information->priv->connected || !song || (state != ARIO_STATE_PLAY && state != ARIO_STATE_PAUSE)) { gtk_widget_hide (information->priv->properties_hbox); gtk_widget_hide (information->priv->lyrics_textview); gtk_widget_hide (information->priv->lyrics_label); return; } /* Show all song widgets */ gtk_widget_show_all (information->priv->properties_hbox); /* set labels contents */ gtk_label_set_text (GTK_LABEL (information->priv->title_label), song->title); gtk_label_set_text (GTK_LABEL (information->priv->artist_label), song->artist); gtk_label_set_text (GTK_LABEL (information->priv->album_label), song->album); length = ario_util_format_time (song->time); gtk_label_set_text (GTK_LABEL (information->priv->length_label), length); g_free (length); /* Get lyrics */ lyrics = ario_lyrics_get_local_lyrics (song->artist, song->title); if (lyrics) { /* Set lyrics in text buffer */ gtk_text_buffer_set_text (information->priv->lyrics_textbuffer, lyrics->lyrics, -1); gtk_widget_show (information->priv->lyrics_textview); gtk_widget_show (information->priv->lyrics_label); ario_lyrics_free (lyrics); } else { /* Hide text view if no lyrics found */ gtk_widget_hide (information->priv->lyrics_textview); gtk_widget_hide (information->priv->lyrics_label); } } static void ario_information_fill_cover (ArioInformation *information) { ARIO_LOG_FUNCTION_START; GdkPixbuf *cover; /* Do nothing if tab is not visible */ if (!information->priv->selected) return; /* Get current album cover */ cover = ario_cover_handler_get_large_cover (); /* Set cover widget */ gtk_image_set_from_pixbuf (GTK_IMAGE (information->priv->cover_image), cover); } static void ario_information_album_foreach (GtkWidget *widget, GtkContainer *container) { /* Remove widget */ gtk_container_remove (container, widget); } static void ario_information_fill_album (ArioInformation *information) { ARIO_LOG_FUNCTION_START; ArioServerSong *song; int state; ArioServerAtomicCriteria atomic_criteria; ArioServerCriteria *criteria = NULL; GSList *tmp; ArioServerAlbum *album; gchar *cover_path; GdkPixbuf *pixbuf; GtkWidget *image; int nb = 0; GtkWidget *event_box; /* Do nothing if tab is not visible */ if (!information->priv->selected) return; /* Remove all cover arts widgets */ gtk_container_foreach (GTK_CONTAINER (information->priv->albums_hbox), (GtkCallback) ario_information_album_foreach, information->priv->albums_hbox); /* Free a few data */ if (information->priv->albums) { g_slist_foreach (information->priv->albums, (GFunc) ario_server_free_album, NULL); g_slist_free (information->priv->albums); information->priv->albums = NULL; } gtk_widget_hide (information->priv->albums_const_label); /* Get info on server */ state = ario_server_get_current_state (); song = ario_server_get_current_song (); /* Stop here is not connected or not playing */ if (!information->priv->connected || !song || (state != ARIO_STATE_PLAY && state != ARIO_STATE_PAUSE)) { return; } /* Get all albums of current artist */ criteria = g_slist_append (criteria, &atomic_criteria); atomic_criteria.tag = ARIO_TAG_ARTIST; atomic_criteria.value = song->artist; information->priv->albums = ario_server_get_albums (criteria); g_slist_free (criteria); /* For each album */ for (tmp = information->priv->albums; tmp && nb < 8; tmp = g_slist_next (tmp)) { album = tmp->data; /* Do not consider current album */ if ((!album->album && !song->album) || (album->album && song->album && !strcmp (album->album, song->album))) continue; /* Get albums cover */ cover_path = ario_cover_make_cover_path (album->artist, album->album, SMALL_COVER); pixbuf = gdk_pixbuf_new_from_file_at_size (cover_path, COVER_SIZE, COVER_SIZE, NULL); g_free (cover_path); if (pixbuf) { /* Cover found: create widgets to add cover art */ event_box = gtk_event_box_new (); image = gtk_image_new_from_pixbuf (pixbuf); /* Add drag and drop feature to image */ gtk_drag_source_set (event_box, GDK_BUTTON1_MASK, criterias_targets, G_N_ELEMENTS (criterias_targets), GDK_ACTION_COPY); gtk_drag_source_set_icon_pixbuf (event_box, pixbuf); g_signal_connect (event_box, "drag_data_get", G_CALLBACK (ario_information_cover_drag_data_get_cb), album); g_signal_connect (event_box, "button_press_event", G_CALLBACK (ario_information_cover_button_press_cb), album); gtk_container_add (GTK_CONTAINER (event_box), image); gtk_box_pack_start (GTK_BOX (information->priv->albums_hbox), event_box, FALSE, FALSE, 0); g_object_unref (pixbuf); ++nb; } } /* Show albums widgets if there are some */ if (nb > 0) { gtk_widget_show_all (information->priv->albums_hbox); gtk_widget_show (information->priv->albums_const_label); } } static void ario_information_state_changed_cb (ArioServer *server, ArioInformation *information) { ARIO_LOG_FUNCTION_START; information->priv->connected = ario_server_is_connected (); /* Fill song info */ ario_information_fill_song (information); /* Fill cover arts */ ario_information_fill_cover (information); /* Fill album info */ ario_information_fill_album (information); } static void ario_information_song_changed_cb (ArioServer *server, ArioInformation *information) { ARIO_LOG_FUNCTION_START; /* Fill song info */ ario_information_fill_song (information); } static void ario_information_cover_changed_cb (ArioCoverHandler *cover_handler, ArioInformation *information) { ARIO_LOG_FUNCTION_START; /* Fill cover arts */ ario_information_fill_cover (information); } static void ario_information_album_changed_cb (ArioServer *server, ArioInformation *information) { ARIO_LOG_FUNCTION_START; /* Fill album info */ ario_information_fill_album (information); } static void ario_information_cover_drag_data_get_cb (GtkWidget *widget, GdkDragContext *context, GtkSelectionData *selection_data, guint info, guint time, ArioServerAlbum *album) { ARIO_LOG_FUNCTION_START; gchar *str; /* Get drag data corresponding to dragged album */ str = g_strdup_printf ("2\n%d\n%s\n%d\n%s\n", ARIO_TAG_ARTIST, album->artist, ARIO_TAG_ALBUM, album->album); gtk_selection_data_set (selection_data, gtk_selection_data_get_target (selection_data), 8, (const guchar *) str, strlen (str) * sizeof(guchar)); g_free (str); } static gboolean ario_information_cover_button_press_cb (GtkWidget *widget, GdkEventButton *event, ArioServerAlbum *album) { ARIO_LOG_FUNCTION_START; ArioServerAtomicCriteria atomic_criteria1; ArioServerAtomicCriteria atomic_criteria2; ArioServerCriteria *criteria = NULL; GSList *criterias = NULL; if (event->button == 1 && event->type == GDK_2BUTTON_PRESS) { /* Double click on image */ atomic_criteria1.tag = ARIO_TAG_ARTIST; atomic_criteria1.value = album->artist; atomic_criteria2.tag = ARIO_TAG_ALBUM; atomic_criteria2.value = album->album; criteria = g_slist_append (criteria, &atomic_criteria1); criteria = g_slist_append (criteria, &atomic_criteria2); criterias = g_slist_append (criterias, criteria); /* Add album to playlist */ ario_server_playlist_append_criterias (criterias, ario_conf_get_integer (PREF_DOUBLECLICK_BEHAVIOR, PREF_DOUBLECLICK_BEHAVIOR_DEFAULT), -1); g_slist_free (criteria); g_slist_free (criterias); } return FALSE; } ario-1.6/plugins/information/information.ui0000644000175000017500000003177713226723437016155 00000000000000 True False vertical True False 12 True False vertical True False True False 12 True False gtk-missing-image False False 0 True False 4 2 4 True False GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK n/a True 0 1 2 3 4 True False GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK Title : 0 2 3 True False GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK n/a True 0 1 2 2 3 True False GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK Album : 0 1 2 True False GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK Length : 0 3 4 True False GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK n/a True word-char middle 0 0.49000000953674316 1 2 1 2 True False GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK n/a True 0 1 2 True False GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK Artist : 0 False False 1 False False 0 True False 36 True False Albums from this artist: end 0 0 False False 6 1 True False 12 False False 2 True False 36 True False Lyrics: end 0 0 False False 6 3 True True False False 4 False True 0 ario-1.6/plugins/information/ario-information-plugin.h0000644000175000017500000000475513226723437020207 00000000000000/* * Copyright (C) 2002-2005 - Paolo Maggi * * 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, 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * */ #ifndef __ARIO_INFORMATION_PLUGIN_H__ #define __ARIO_INFORMATION_PLUGIN_H__ #include #include #include G_BEGIN_DECLS /* * Type checking and casting macros */ #define ARIO_TYPE_INFORMATION_PLUGIN (ario_information_plugin_get_type ()) #define ARIO_INFORMATION_PLUGIN(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), ARIO_TYPE_INFORMATION_PLUGIN, ArioInformationPlugin)) #define ARIO_INFORMATION_PLUGIN_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), ARIO_TYPE_INFORMATION_PLUGIN, ArioInformationPluginClass)) #define ARIO_IS_INFORMATION_PLUGIN(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), ARIO_TYPE_INFORMATION_PLUGIN)) #define ARIO_IS_INFORMATION_PLUGIN_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), ARIO_TYPE_INFORMATION_PLUGIN)) #define ARIO_INFORMATION_PLUGIN_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), ARIO_TYPE_INFORMATION_PLUGIN, ArioInformationPluginClass)) /* Private structure type */ typedef struct _ArioInformationPluginPrivate ArioInformationPluginPrivate; /* * Main object structure */ typedef struct _ArioInformationPlugin ArioInformationPlugin; struct _ArioInformationPlugin { ArioPlugin parent_instance; /*< private >*/ ArioInformationPluginPrivate *priv; }; /* * Class definition */ typedef struct _ArioInformationPluginClass ArioInformationPluginClass; struct _ArioInformationPluginClass { ArioPluginClass parent_class; }; /* * Public methods */ GType ario_information_plugin_get_type (void) G_GNUC_CONST; /* All the plugins must implement this function */ G_MODULE_EXPORT GType register_ario_plugin (GTypeModule *module); G_END_DECLS #endif /* __ARIO_INFORMATION_PLUGIN_H__ */ ario-1.6/plugins/information/Makefile.am0000644000175000017500000000215313226723434015304 00000000000000plugindir = $(PLUGINDIR) plugindatadir = $(PLUGIN_DATA_DIR) plugin_LTLIBRARIES = libinformation.la libinformation_la_SOURCES = \ ario-information.c \ ario-information.h \ ario-information-plugin.c \ ario-information-plugin.h libinformation_la_LDFLAGS = $(PLUGIN_LIBTOOL_FLAGS) INCLUDES = \ -DLOCALE_DIR=\""$(prefix)/$(DATADIRNAME)/locale"\" \ $(DEPS_CFLAGS) \ -I$(top_srcdir) \ -I$(top_srcdir)/src \ -I$(top_srcdir)/src/lib \ -I$(top_srcdir)/src/plugins \ -I$(top_srcdir)/src/sources \ -I$(top_srcdir)/src/shell \ $(WARNINGS) uidir = $(plugindatadir) ui_DATA = information.ui plugin_in_files = information.ario-plugin.desktop.in %.ario-plugin: %.ario-plugin.desktop.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*po) ; $(INTLTOOL_MERGE) $(top_srcdir)/po $< $@ -d -u -c $(top_builddir)/po/.intltool-merge-cache plugin_DATA = $(plugin_in_files:.ario-plugin.desktop.in=.ario-plugin) EXTRA_DIST = $(plugin_in_files)\ $(ui_DATA) CLEANFILES = $(plugin_DATA) DISTCLEANFILES = $(plugin_DATA) ario-1.6/plugins/Makefile.in0000644000175000017500000004770113226745576013013 00000000000000# Makefile.in generated by automake 1.15.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2017 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__is_gnu_make = { \ if test -z '$(MAKELEVEL)'; then \ false; \ elif test -n '$(MAKE_HOST)'; then \ true; \ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ true; \ else \ false; \ fi; \ } am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ @USE_DBUS_TRUE@am__append_1 = mmkeys subdir = plugins ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ ctags-recursive dvi-recursive html-recursive info-recursive \ install-data-recursive install-dvi-recursive \ install-exec-recursive install-html-recursive \ install-info-recursive install-pdf-recursive \ install-ps-recursive install-recursive installcheck-recursive \ installdirs-recursive pdf-recursive ps-recursive \ tags-recursive uninstall-recursive am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive am__recursive_targets = \ $(RECURSIVE_TARGETS) \ $(RECURSIVE_CLEAN_TARGETS) \ $(am__extra_recursive_targets) AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ distdir am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) # Read a list of newline-separated strings from the standard input, # and print each of them once, without duplicates. Input order is # *not* preserved. am__uniquify_input = $(AWK) '\ BEGIN { nonempty = 0; } \ { items[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in items) print i; }; } \ ' # Make sure the list of sources is unique. This is necessary because, # e.g., the same source file might be shared among _SOURCES variables # for different programs/libraries. am__define_uniq_tagged_files = \ list='$(am__tagged_files)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DIST_SUBDIRS = filesystem information radios mmkeys am__DIST_COMMON = $(srcdir)/Makefile.in DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_rest='s,^[^/]*/*,,'; \ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ sed_butlast='s,/*[^/]*$$,,'; \ while test -n "$$dir1"; do \ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ if test "$$first" != "."; then \ if test "$$first" = ".."; then \ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ else \ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ if test "$$first2" = "$$first"; then \ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ else \ dir2="../$$dir2"; \ fi; \ dir0="$$dir0"/"$$first"; \ fi; \ fi; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" ACLOCAL = @ACLOCAL@ ALL_LINGUAS = @ALL_LINGUAS@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AR_FLAGS = @AR_FLAGS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AVAHI_CFLAGS = @AVAHI_CFLAGS@ AVAHI_LIBS = @AVAHI_LIBS@ AWK = @AWK@ CATALOGS = @CATALOGS@ CATOBJEXT = @CATOBJEXT@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIRNAME = @DATADIRNAME@ DBUS_CFLAGS = @DBUS_CFLAGS@ DBUS_GLIB_BIN = @DBUS_GLIB_BIN@ DBUS_LIBS = @DBUS_LIBS@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DEPS_CFLAGS = @DEPS_CFLAGS@ DEPS_LIBS = @DEPS_LIBS@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ GLIB_MKENUMS = @GLIB_MKENUMS@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INSTOBJEXT = @INSTOBJEXT@ INTLLIBS = @INTLLIBS@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@ INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@ INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBMPDCLIENT2_CFLAGS = @LIBMPDCLIENT2_CFLAGS@ LIBMPDCLIENT2_LIBS = @LIBMPDCLIENT2_LIBS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MKINSTALLDIRS = @MKINSTALLDIRS@ MSGFMT = @MSGFMT@ MSGFMT_OPTS = @MSGFMT_OPTS@ MSGMERGE = @MSGMERGE@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ PLUGINDIR = @PLUGINDIR@ PLUGIN_DATA_DIR = @PLUGIN_DATA_DIR@ POFILES = @POFILES@ POSUB = @POSUB@ PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ PYGTK_CFLAGS = @PYGTK_CFLAGS@ PYGTK_CODEGEN = @PYGTK_CODEGEN@ PYGTK_DEFSDIR = @PYGTK_DEFSDIR@ PYGTK_H2DEF = @PYGTK_H2DEF@ PYGTK_LIBS = @PYGTK_LIBS@ PYTHON = @PYTHON@ PYTHON_CFLAGS = @PYTHON_CFLAGS@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_EXTRA_LIBS = @PYTHON_EXTRA_LIBS@ PYTHON_LIBS = @PYTHON_LIBS@ PYTHON_LIB_LOC = @PYTHON_LIB_LOC@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ PYTHON_PREFIX = @PYTHON_PREFIX@ PYTHON_VERSION = @PYTHON_VERSION@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ TAGLIB_CFLAGS = @TAGLIB_CFLAGS@ TAGLIB_LIBS = @TAGLIB_LIBS@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ WARNINGS = @WARNINGS@ XGETTEXT = @XGETTEXT@ XMMS2_CFLAGS = @XMMS2_CFLAGS@ XMMS2_LIBS = @XMMS2_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ intltool__v_merge_options_ = @intltool__v_merge_options_@ intltool__v_merge_options_0 = @intltool__v_merge_options_0@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pkgpyexecdir = @pkgpyexecdir@ pkgpythondir = @pkgpythondir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ pyexecdir = @pyexecdir@ pythondir = @pythondir@ runstatedir = @runstatedir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ SUBDIRS = filesystem information radios $(am__append_1) all: all-recursive .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign plugins/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign plugins/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs # This directory's subdirectories are mostly independent; you can cd # into them and run 'make' without going through this Makefile. # To change the values of 'make' variables: instead of editing Makefiles, # (1) if the variable is set in 'config.status', edit 'config.status' # (which will cause the Makefiles to be regenerated when you run 'make'); # (2) otherwise, pass the desired values on the 'make' command line. $(am__recursive_targets): @fail=; \ if $(am__make_keepgoing); then \ failcom='fail=yes'; \ else \ failcom='exit 1'; \ fi; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" ID: $(am__tagged_files) $(am__define_uniq_tagged_files); mkid -fID $$unique tags: tags-recursive TAGS: tags tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: ctags-recursive CTAGS: ctags ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" cscopelist: cscopelist-recursive cscopelist-am: $(am__tagged_files) list='$(am__tagged_files)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ esac; \ for i in $$list; do \ if test -f "$$i"; then \ echo "$(subdir)/$$i"; \ else \ echo "$$sdir/$$i"; \ fi; \ done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ $(am__make_dryrun) \ || test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done check-am: all-am check: check-recursive all-am: Makefile installdirs: installdirs-recursive installdirs-am: install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-recursive -rm -f Makefile distclean-am: clean-am distclean-generic distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: .MAKE: $(am__recursive_targets) install-am install-strip .PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \ check-am clean clean-generic clean-libtool cscopelist-am ctags \ ctags-am distclean distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ installdirs-am maintainer-clean maintainer-clean-generic \ mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ ps ps-am tags tags-am uninstall uninstall-am .PRECIOUS: Makefile # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: ario-1.6/plugins/filesystem/0000755000175000017500000000000013226745612013170 500000000000000ario-1.6/plugins/filesystem/Makefile.in0000644000175000017500000006173513226745576015202 00000000000000# Makefile.in generated by automake 1.15.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2017 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__is_gnu_make = { \ if test -z '$(MAKELEVEL)'; then \ false; \ elif test -n '$(MAKE_HOST)'; then \ true; \ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ true; \ else \ false; \ fi; \ } am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = plugins/filesystem ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__uninstall_files_from_dir = { \ test -z "$$files" \ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } am__installdirs = "$(DESTDIR)$(plugindir)" "$(DESTDIR)$(plugindir)" \ "$(DESTDIR)$(uixmldir)" LTLIBRARIES = $(plugin_LTLIBRARIES) libfilesystem_la_LIBADD = am_libfilesystem_la_OBJECTS = ario-filesystem.lo \ ario-filesystem-plugin.lo libfilesystem_la_OBJECTS = $(am_libfilesystem_la_OBJECTS) AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent am__v_lt_1 = libfilesystem_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ $(AM_CFLAGS) $(CFLAGS) $(libfilesystem_la_LDFLAGS) $(LDFLAGS) \ -o $@ AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) AM_V_CC = $(am__v_CC_@AM_V@) am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) am__v_CC_0 = @echo " CC " $@; am__v_CC_1 = CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_CCLD = $(am__v_CCLD_@AM_V@) am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) am__v_CCLD_0 = @echo " CCLD " $@; am__v_CCLD_1 = SOURCES = $(libfilesystem_la_SOURCES) DIST_SOURCES = $(libfilesystem_la_SOURCES) am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac DATA = $(plugin_DATA) $(uixml_DATA) am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) # Read a list of newline-separated strings from the standard input, # and print each of them once, without duplicates. Input order is # *not* preserved. am__uniquify_input = $(AWK) '\ BEGIN { nonempty = 0; } \ { items[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in items) print i; }; } \ ' # Make sure the list of sources is unique. This is necessary because, # e.g., the same source file might be shared among _SOURCES variables # for different programs/libraries. am__define_uniq_tagged_files = \ list='$(am__tagged_files)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALL_LINGUAS = @ALL_LINGUAS@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AR_FLAGS = @AR_FLAGS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AVAHI_CFLAGS = @AVAHI_CFLAGS@ AVAHI_LIBS = @AVAHI_LIBS@ AWK = @AWK@ CATALOGS = @CATALOGS@ CATOBJEXT = @CATOBJEXT@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIRNAME = @DATADIRNAME@ DBUS_CFLAGS = @DBUS_CFLAGS@ DBUS_GLIB_BIN = @DBUS_GLIB_BIN@ DBUS_LIBS = @DBUS_LIBS@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DEPS_CFLAGS = @DEPS_CFLAGS@ DEPS_LIBS = @DEPS_LIBS@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ GLIB_MKENUMS = @GLIB_MKENUMS@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INSTOBJEXT = @INSTOBJEXT@ INTLLIBS = @INTLLIBS@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@ INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@ INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBMPDCLIENT2_CFLAGS = @LIBMPDCLIENT2_CFLAGS@ LIBMPDCLIENT2_LIBS = @LIBMPDCLIENT2_LIBS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MKINSTALLDIRS = @MKINSTALLDIRS@ MSGFMT = @MSGFMT@ MSGFMT_OPTS = @MSGFMT_OPTS@ MSGMERGE = @MSGMERGE@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ PLUGINDIR = @PLUGINDIR@ PLUGIN_DATA_DIR = @PLUGIN_DATA_DIR@ POFILES = @POFILES@ POSUB = @POSUB@ PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ PYGTK_CFLAGS = @PYGTK_CFLAGS@ PYGTK_CODEGEN = @PYGTK_CODEGEN@ PYGTK_DEFSDIR = @PYGTK_DEFSDIR@ PYGTK_H2DEF = @PYGTK_H2DEF@ PYGTK_LIBS = @PYGTK_LIBS@ PYTHON = @PYTHON@ PYTHON_CFLAGS = @PYTHON_CFLAGS@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_EXTRA_LIBS = @PYTHON_EXTRA_LIBS@ PYTHON_LIBS = @PYTHON_LIBS@ PYTHON_LIB_LOC = @PYTHON_LIB_LOC@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ PYTHON_PREFIX = @PYTHON_PREFIX@ PYTHON_VERSION = @PYTHON_VERSION@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ TAGLIB_CFLAGS = @TAGLIB_CFLAGS@ TAGLIB_LIBS = @TAGLIB_LIBS@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ WARNINGS = @WARNINGS@ XGETTEXT = @XGETTEXT@ XMMS2_CFLAGS = @XMMS2_CFLAGS@ XMMS2_LIBS = @XMMS2_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ intltool__v_merge_options_ = @intltool__v_merge_options_@ intltool__v_merge_options_0 = @intltool__v_merge_options_0@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pkgpyexecdir = @pkgpyexecdir@ pkgpythondir = @pkgpythondir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ pyexecdir = @pyexecdir@ pythondir = @pythondir@ runstatedir = @runstatedir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ plugindir = $(PLUGINDIR) plugindatadir = $(PLUGIN_DATA_DIR) plugin_LTLIBRARIES = libfilesystem.la libfilesystem_la_SOURCES = \ ario-filesystem.c \ ario-filesystem.h \ ario-filesystem-plugin.c \ ario-filesystem-plugin.h libfilesystem_la_LDFLAGS = $(PLUGIN_LIBTOOL_FLAGS) uixmldir = $(plugindatadir) uixml_DATA = ario-filesystem-menu.ui INCLUDES = \ -DLOCALE_DIR=\""$(prefix)/$(DATADIRNAME)/locale"\" \ $(DEPS_CFLAGS) \ -I$(top_srcdir) \ -I$(top_srcdir)/src \ -I$(top_srcdir)/src/lib \ -I$(top_srcdir)/src/plugins \ -I$(top_srcdir)/src/sources \ -I$(top_srcdir)/src/shell \ $(WARNINGS) plugin_in_files = filesystem.ario-plugin.desktop.in plugin_DATA = $(plugin_in_files:.ario-plugin.desktop.in=.ario-plugin) EXTRA_DIST = $(plugin_in_files)\ $(uixml_DATA) CLEANFILES = $(plugin_DATA) DISTCLEANFILES = $(plugin_DATA) all: all-am .SUFFIXES: .SUFFIXES: .c .lo .o .obj $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign plugins/filesystem/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign plugins/filesystem/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES) @$(NORMAL_INSTALL) @list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \ list2=; for p in $$list; do \ if test -f $$p; then \ list2="$$list2 $$p"; \ else :; fi; \ done; \ test -z "$$list2" || { \ echo " $(MKDIR_P) '$(DESTDIR)$(plugindir)'"; \ $(MKDIR_P) "$(DESTDIR)$(plugindir)" || exit 1; \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(plugindir)'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(plugindir)"; \ } uninstall-pluginLTLIBRARIES: @$(NORMAL_UNINSTALL) @list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \ for p in $$list; do \ $(am__strip_dir) \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(plugindir)/$$f'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(plugindir)/$$f"; \ done clean-pluginLTLIBRARIES: -test -z "$(plugin_LTLIBRARIES)" || rm -f $(plugin_LTLIBRARIES) @list='$(plugin_LTLIBRARIES)'; \ locs=`for p in $$list; do echo $$p; done | \ sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ sort -u`; \ test -z "$$locs" || { \ echo rm -f $${locs}; \ rm -f $${locs}; \ } libfilesystem.la: $(libfilesystem_la_OBJECTS) $(libfilesystem_la_DEPENDENCIES) $(EXTRA_libfilesystem_la_DEPENDENCIES) $(AM_V_CCLD)$(libfilesystem_la_LINK) -rpath $(plugindir) $(libfilesystem_la_OBJECTS) $(libfilesystem_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ario-filesystem-plugin.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ario-filesystem.Plo@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\ @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ @am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< .c.obj: @am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\ @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\ @am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\ @am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ @am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs install-pluginDATA: $(plugin_DATA) @$(NORMAL_INSTALL) @list='$(plugin_DATA)'; test -n "$(plugindir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(plugindir)'"; \ $(MKDIR_P) "$(DESTDIR)$(plugindir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(plugindir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(plugindir)" || exit $$?; \ done uninstall-pluginDATA: @$(NORMAL_UNINSTALL) @list='$(plugin_DATA)'; test -n "$(plugindir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(plugindir)'; $(am__uninstall_files_from_dir) install-uixmlDATA: $(uixml_DATA) @$(NORMAL_INSTALL) @list='$(uixml_DATA)'; test -n "$(uixmldir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(uixmldir)'"; \ $(MKDIR_P) "$(DESTDIR)$(uixmldir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(uixmldir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(uixmldir)" || exit $$?; \ done uninstall-uixmlDATA: @$(NORMAL_UNINSTALL) @list='$(uixml_DATA)'; test -n "$(uixmldir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(uixmldir)'; $(am__uninstall_files_from_dir) ID: $(am__tagged_files) $(am__define_uniq_tagged_files); mkid -fID $$unique tags: tags-am TAGS: tags tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: ctags-am CTAGS: ctags ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" cscopelist: cscopelist-am cscopelist-am: $(am__tagged_files) list='$(am__tagged_files)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ esac; \ for i in $$list; do \ if test -f "$$i"; then \ echo "$(subdir)/$$i"; \ else \ echo "$$sdir/$$i"; \ fi; \ done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(LTLIBRARIES) $(DATA) installdirs: for dir in "$(DESTDIR)$(plugindir)" "$(DESTDIR)$(plugindir)" "$(DESTDIR)$(uixmldir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool clean-pluginLTLIBRARIES \ mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-pluginDATA install-pluginLTLIBRARIES \ install-uixmlDATA install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-pluginDATA uninstall-pluginLTLIBRARIES \ uninstall-uixmlDATA .MAKE: install-am install-strip .PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ clean-libtool clean-pluginLTLIBRARIES cscopelist-am ctags \ ctags-am distclean distclean-compile distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-pdf install-pdf-am \ install-pluginDATA install-pluginLTLIBRARIES install-ps \ install-ps-am install-strip install-uixmlDATA installcheck \ installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags tags-am uninstall uninstall-am uninstall-pluginDATA \ uninstall-pluginLTLIBRARIES uninstall-uixmlDATA .PRECIOUS: Makefile %.ario-plugin: %.ario-plugin.desktop.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*po) ; $(INTLTOOL_MERGE) $(top_srcdir)/po $< $@ -d -u -c $(top_builddir)/po/.intltool-merge-cache # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: ario-1.6/plugins/filesystem/filesystem.ario-plugin.desktop.in0000644000175000017500000000036413226723434021522 00000000000000[Ario Plugin] Module=filesystem IAge=1 _Name=File System Browser _Description=A File System Browser Icon=drive-harddisk Authors=Marc Pavot Copyright=Copyright © 2008 Marc Pavot Website=http://ario-player.sourceforge.net ario-1.6/plugins/filesystem/ario-filesystem.c0000644000175000017500000006206113226723436016375 00000000000000/* * Copyright (C) 2008 Marc Pavot * * 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, 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * */ #include "ario-filesystem.h" #include #include #include #include #include #include "ario-debug.h" #include "ario-util.h" #include "plugins/ario-plugin.h" #include "lib/ario-conf.h" #include "preferences/ario-preferences.h" #include "servers/ario-server.h" #include "shell/ario-shell-songinfos.h" #include "widgets/ario-dnd-tree.h" #include "widgets/ario-songlist.h" #define ROOT "/" static void ario_filesystem_shutdown (ArioSource *source); static void ario_filesystem_state_changed_cb (ArioServer *server, ArioFilesystem *filesystem); static void ario_filesystem_filesystem_changed_cb (ArioServer *server, ArioFilesystem *filesystem); static void ario_filesystem_cmd_add_filesystem (GSimpleAction *action, GVariant *parameter, gpointer data); static void ario_filesystem_cmd_add_play_filesystem (GSimpleAction *action, GVariant *parameter, gpointer data); static void ario_filesystem_cmd_clear_add_play_filesystem (GSimpleAction *action, GVariant *parameter, gpointer data); static void ario_filesystem_popup_menu_cb (ArioDndTree* tree, ArioFilesystem *filesystem); static void ario_filesystem_filetree_drag_data_get_cb (GtkWidget * widget, GdkDragContext * context, GtkSelectionData * selection_data, guint info, guint time, gpointer data); static void ario_filesystem_filetree_row_activated_cb (GtkTreeView *tree_view, GtkTreePath *path, GtkTreeViewColumn *column, ArioFilesystem *filesystem); static gboolean ario_filesystem_filetree_row_expanded_cb (GtkTreeView *tree_view, GtkTreeIter *iter, GtkTreePath *path, ArioFilesystem *filesystem); static void ario_filesystem_cursor_moved_cb (GtkTreeView *tree_view, ArioFilesystem *filesystem); static void ario_filesystem_fill_filesystem (ArioFilesystem *filesystem); struct ArioFilesystemPrivate { GtkWidget *tree; GtkTreeStore *model; GtkTreeSelection *selection; GtkWidget *paned; GtkWidget *songs; gboolean connected; gboolean empty; GtkWidget *menu; }; /* Actions on directories */ static const GActionEntry ario_filesystem_actions [] = { { "filesystem-add-to-pl", ario_filesystem_cmd_add_filesystem }, { "filesystem-add-play", ario_filesystem_cmd_add_play_filesystem }, { "filesystem-clear-add-play", ario_filesystem_cmd_clear_add_play_filesystem }, }; static guint ario_filesystem_n_actions = G_N_ELEMENTS (ario_filesystem_actions); /* Actions on songs */ static const GActionEntry ario_filesystem_songs_actions[] = { { "filesystem-add-to-pl-songs", ario_songlist_cmd_add_songlists }, { "filesystem-add-play-songs", ario_songlist_cmd_add_play_songlists }, { "filesystem-clear-add-play-songs", ario_songlist_cmd_clear_add_play_songlists }, { "filesystem-properties-songs", ario_songlist_cmd_songs_properties }, }; static guint ario_filesystem_songs_n_actions = G_N_ELEMENTS (ario_filesystem_songs_actions); /* Object properties */ enum { PROP_0, }; /* Directory tree columns */ enum { FILETREE_ICON_COLUMN, FILETREE_ICONSIZE_COLUMN, FILETREE_NAME_COLUMN, FILETREE_DIR_COLUMN, FILETREE_N_COLUMN }; /* Drag and drop targets */ static const GtkTargetEntry dirs_targets [] = { { "text/directory", 0, 0 }, }; #define ARIO_FILESYSTEM_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_ARIO_FILESYSTEM, ArioFilesystemPrivate)) G_DEFINE_TYPE (ArioFilesystem, ario_filesystem, ARIO_TYPE_SOURCE) static gchar * ario_filesystem_get_id (ArioSource *source) { return "filesystem"; } static gchar * ario_filesystem_get_name (ArioSource *source) { return _("File System"); } static gchar * ario_filesystem_get_icon (ArioSource *source) { return "drive-harddisk"; } static void ario_filesystem_select (ArioSource *source) { ArioFilesystem *filesystem = ARIO_FILESYSTEM (source); /* Fill directory tree on the first time filesystem tab is selected */ if (filesystem->priv->empty) ario_filesystem_fill_filesystem (filesystem); } static void ario_filesystem_class_init (ArioFilesystemClass *klass) { ARIO_LOG_FUNCTION_START; ArioSourceClass *source_class = ARIO_SOURCE_CLASS (klass); /* ArioSource virtual methods */ source_class->get_id = ario_filesystem_get_id; source_class->get_name = ario_filesystem_get_name; source_class->get_icon = ario_filesystem_get_icon; source_class->shutdown = ario_filesystem_shutdown; source_class->select = ario_filesystem_select; /* Private attributes */ g_type_class_add_private (klass, sizeof (ArioFilesystemPrivate)); } static void ario_filesystem_init (ArioFilesystem *filesystem) { ARIO_LOG_FUNCTION_START; GtkTreeViewColumn *column; GtkCellRenderer *renderer; int pos; GtkWidget *scrolledwindow_filesystem; filesystem->priv = ARIO_FILESYSTEM_GET_PRIVATE (filesystem); filesystem->priv->connected = FALSE; filesystem->priv->empty = TRUE; /* Create scrolled window */ scrolledwindow_filesystem = gtk_scrolled_window_new (NULL, NULL); gtk_widget_show (scrolledwindow_filesystem); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolledwindow_filesystem), GTK_POLICY_NEVER, GTK_POLICY_ALWAYS); gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (scrolledwindow_filesystem), GTK_SHADOW_IN); /* Create drag and drop tree */ filesystem->priv->tree = ario_dnd_tree_new (dirs_targets, G_N_ELEMENTS (dirs_targets), TRUE); gtk_tree_view_set_fixed_height_mode (GTK_TREE_VIEW (filesystem->priv->tree), TRUE); /* Add folder icon column */ renderer = gtk_cell_renderer_pixbuf_new (); column = gtk_tree_view_column_new (); gtk_tree_view_column_pack_start (column, renderer, FALSE); gtk_tree_view_column_set_attributes (column, renderer, "icon-name", FILETREE_ICON_COLUMN, "stock-size", FILETREE_ICONSIZE_COLUMN, NULL); /* Add directory name column */ renderer = gtk_cell_renderer_text_new (); gtk_tree_view_column_pack_start (column, renderer, TRUE); gtk_tree_view_column_set_attributes (column, renderer, "text", FILETREE_NAME_COLUMN, NULL); gtk_tree_view_column_set_sizing (column, GTK_TREE_VIEW_COLUMN_FIXED); gtk_tree_view_column_set_fixed_width (column, 50); gtk_tree_view_append_column (GTK_TREE_VIEW (filesystem->priv->tree), column); /* Create tree model */ filesystem->priv->model = gtk_tree_store_new (FILETREE_N_COLUMN, G_TYPE_STRING, G_TYPE_UINT, G_TYPE_STRING, G_TYPE_STRING); gtk_tree_sortable_set_sort_column_id (GTK_TREE_SORTABLE (filesystem->priv->model), 0, GTK_SORT_ASCENDING); gtk_tree_view_set_model (GTK_TREE_VIEW (filesystem->priv->tree), GTK_TREE_MODEL (filesystem->priv->model)); /* Enable search */ gtk_tree_view_set_enable_search (GTK_TREE_VIEW (filesystem->priv->tree), TRUE); gtk_tree_view_set_search_column (GTK_TREE_VIEW (filesystem->priv->tree), FILETREE_NAME_COLUMN); /* Get tree selection */ filesystem->priv->selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (filesystem->priv->tree)); gtk_tree_selection_set_mode (filesystem->priv->selection, GTK_SELECTION_BROWSE); /* Add tree to scrolled window */ gtk_container_add (GTK_CONTAINER (scrolledwindow_filesystem), filesystem->priv->tree); /* Connect signals for actions on folder tree */ g_signal_connect (filesystem->priv->tree, "drag_data_get", G_CALLBACK (ario_filesystem_filetree_drag_data_get_cb), filesystem); g_signal_connect (filesystem->priv->tree, "popup", G_CALLBACK (ario_filesystem_popup_menu_cb), filesystem); g_signal_connect (filesystem->priv->tree, "row-activated", G_CALLBACK (ario_filesystem_filetree_row_activated_cb), filesystem); g_signal_connect (filesystem->priv->tree, "test-expand-row", G_CALLBACK (ario_filesystem_filetree_row_expanded_cb), filesystem); g_signal_connect (filesystem->priv->tree, "cursor-changed", G_CALLBACK (ario_filesystem_cursor_moved_cb), filesystem); /* Create hpaned */ filesystem->priv->paned = gtk_paned_new (GTK_ORIENTATION_HORIZONTAL); gtk_paned_pack1 (GTK_PANED (filesystem->priv->paned), scrolledwindow_filesystem, FALSE, FALSE); pos = ario_conf_get_integer (PREF_FILSYSTEM_HPANED_SIZE, PREF_FILSYSTEM_HPANED_SIZE_DEFAULT); if (pos > 0) gtk_paned_set_position (GTK_PANED (filesystem->priv->paned), pos); gtk_box_pack_start (GTK_BOX (filesystem), filesystem->priv->paned, TRUE, TRUE, 0); } void ario_filesystem_shutdown (ArioSource *source) { ArioFilesystem *filesystem = ARIO_FILESYSTEM (source); int pos; guint i; /* Save hpaned position */ pos = gtk_paned_get_position (GTK_PANED (filesystem->priv->paned)); if (pos > 0) ario_conf_set_integer (PREF_FILSYSTEM_HPANED_SIZE, pos); /* Unregister actions */ for (i = 0; i < ario_filesystem_n_actions; ++i) { g_action_map_remove_action (G_ACTION_MAP (g_application_get_default ()), ario_filesystem_actions[i].name); } for (i = 0; i < ario_filesystem_songs_n_actions; ++i) { g_action_map_remove_action (G_ACTION_MAP (g_application_get_default ()), ario_filesystem_songs_actions[i].name); } } GtkWidget * ario_filesystem_new (void) { ARIO_LOG_FUNCTION_START; ArioFilesystem *filesystem; GtkBuilder *builder; GMenuModel *menu; gchar *file; ArioServer *server = ario_server_get_instance (); filesystem = g_object_new (TYPE_ARIO_FILESYSTEM, NULL); g_return_val_if_fail (filesystem->priv != NULL, NULL); /* Signals to synchronize the filesystem with server */ g_signal_connect_object (server, "state_changed", G_CALLBACK (ario_filesystem_state_changed_cb), filesystem, 0); g_signal_connect_object (server, "updatingdb_changed", G_CALLBACK (ario_filesystem_filesystem_changed_cb), filesystem, 0); /* Create songs list */ file = ario_plugin_find_file ("ario-filesystem-menu.ui"); g_return_val_if_fail (file != NULL, NULL); filesystem->priv->songs = ario_songlist_new (file, "songs-menu", FALSE); gtk_paned_pack2 (GTK_PANED (filesystem->priv->paned), filesystem->priv->songs, TRUE, FALSE); /* Create menu */ builder = gtk_builder_new_from_file (file); menu = G_MENU_MODEL (gtk_builder_get_object (builder, "menu")); filesystem->priv->menu = gtk_menu_new_from_model (menu); gtk_menu_attach_to_widget (GTK_MENU (filesystem->priv->menu), GTK_WIDGET (filesystem), NULL); g_free (file); /* Register actions */ g_action_map_add_action_entries (G_ACTION_MAP (g_application_get_default ()), ario_filesystem_actions, ario_filesystem_n_actions, filesystem); g_action_map_add_action_entries (G_ACTION_MAP (g_application_get_default ()), ario_filesystem_songs_actions, ario_filesystem_songs_n_actions, filesystem->priv->songs); filesystem->priv->connected = ario_server_is_connected (); return GTK_WIDGET (filesystem); } static void ario_filesystem_fill_filesystem (ArioFilesystem *filesystem) { ARIO_LOG_FUNCTION_START; GtkTreeIter iter, fake_child; /* Empty folder tree */ gtk_tree_store_clear (filesystem->priv->model); /* Append Root folder */ gtk_tree_store_append (filesystem->priv->model, &iter, NULL); gtk_tree_store_set (filesystem->priv->model, &iter, FILETREE_ICON_COLUMN, "drive-harddisk", FILETREE_ICONSIZE_COLUMN, 1, FILETREE_NAME_COLUMN, _("Music"), FILETREE_DIR_COLUMN, ROOT, -1); /* Append fake child to allow expand */ gtk_tree_store_append(GTK_TREE_STORE (filesystem->priv->model), &fake_child, &iter); /* Select first row */ gtk_tree_selection_unselect_all (filesystem->priv->selection); if (gtk_tree_model_get_iter_first (GTK_TREE_MODEL (filesystem->priv->model), &iter)) { gtk_tree_selection_select_iter (filesystem->priv->selection, &iter); ario_filesystem_cursor_moved_cb (GTK_TREE_VIEW (filesystem->priv->tree), filesystem); } filesystem->priv->empty = FALSE; } static void ario_filesystem_state_changed_cb (ArioServer *server, ArioFilesystem *filesystem) { ARIO_LOG_FUNCTION_START; if (filesystem->priv->connected != ario_server_is_connected ()) { filesystem->priv->connected = ario_server_is_connected (); /* Fill folder tree */ ario_filesystem_fill_filesystem (filesystem); } } static void ario_filesystem_filesystem_changed_cb (ArioServer *server, ArioFilesystem *filesystem) { ARIO_LOG_FUNCTION_START; /* Fill folder tree */ ario_filesystem_fill_filesystem (filesystem); } static gboolean ario_filesystem_filetree_row_expanded_cb (GtkTreeView *tree_view, GtkTreeIter *iter, GtkTreePath *path, ArioFilesystem *filesystem) { ARIO_LOG_FUNCTION_START; ario_filesystem_cursor_moved_cb (tree_view, filesystem); return FALSE; } static void ario_filesystem_filetree_row_activated_cb (GtkTreeView *tree_view, GtkTreePath *path, GtkTreeViewColumn *column, ArioFilesystem *filesystem) { ARIO_LOG_FUNCTION_START; if (!gtk_tree_view_row_expanded (tree_view, path)) { /* Expand row */ gtk_tree_view_expand_row (tree_view, path, FALSE); } else { /* Collapse row */ gtk_tree_view_collapse_row (tree_view, path); } } static void ario_filesystem_cursor_moved_cb (GtkTreeView *tree_view, ArioFilesystem *filesystem) { ARIO_LOG_FUNCTION_START; GtkTreeIter iter, child, fake_child, song_iter; GtkTreeModel *model = GTK_TREE_MODEL (filesystem->priv->model); ArioSonglist *songlist = ARIO_SONGLIST (filesystem->priv->songs); GtkListStore *liststore = ario_songlist_get_liststore (songlist); GtkTreeSelection *selection = ario_songlist_get_selection (songlist); gchar *dir; gchar *title; GSList *tmp; ArioServerFileList *files; ArioServerSong *song; gchar *path, *display_path; GtkTreePath *treepath; gboolean was_expanded; /* Do nothing if no folder is selected */ if (!gtk_tree_selection_get_selected (filesystem->priv->selection, &model, &iter)) return; /* Get treepath of selected folder */ treepath = gtk_tree_model_get_path (GTK_TREE_MODEL (filesystem->priv->model), &iter); /* Remember if row was expanded or not */ was_expanded = gtk_tree_view_row_expanded (tree_view, treepath); /* Remove all childs */ if (gtk_tree_model_iter_children (GTK_TREE_MODEL (filesystem->priv->model), &child, &iter)) { while (gtk_tree_store_remove (GTK_TREE_STORE (filesystem->priv->model), &child)) { } } /* Empty songs list */ gtk_list_store_clear (liststore); /* Get path of selected dir */ gtk_tree_model_get (GTK_TREE_MODEL (filesystem->priv->model), &iter, FILETREE_DIR_COLUMN, &dir, -1); g_return_if_fail (dir); /* Get files/directories in path */ files = ario_server_list_files (dir, FALSE); /* For each directory */ for (tmp = files->directories; tmp; tmp = g_slist_next (tmp)) { path = tmp->data; /* Append directory to folder tree */ gtk_tree_store_append (filesystem->priv->model, &child, &iter); if (!strcmp (dir, ROOT)) { display_path = path; } else { /* Do no display parent hierarchy in tree path */ display_path = path + strlen (dir) + 1; } /* Set tree values */ gtk_tree_store_set (filesystem->priv->model, &child, FILETREE_ICON_COLUMN, "folder", FILETREE_ICONSIZE_COLUMN, 1, FILETREE_NAME_COLUMN, display_path, FILETREE_DIR_COLUMN, path, -1); /* Append fake child to allow expand */ gtk_tree_store_append(GTK_TREE_STORE (filesystem->priv->model), &fake_child, &child); } /* For each file */ for (tmp = files->songs; tmp; tmp = g_slist_next (tmp)) { song = tmp->data; /* Append song to songs list */ gtk_list_store_append (liststore, &song_iter); title = ario_util_format_title (song); gtk_list_store_set (liststore, &song_iter, SONGS_TITLE_COLUMN, title, SONGS_ARTIST_COLUMN, song->artist, SONGS_ALBUM_COLUMN, song->album, SONGS_FILENAME_COLUMN, song->file, -1); } ario_server_free_file_list (files); g_free (dir); /* Select first song */ gtk_tree_selection_unselect_all (selection); if (gtk_tree_model_get_iter_first (GTK_TREE_MODEL (liststore), &song_iter)) gtk_tree_selection_select_iter (selection, &song_iter); /* Re-expand row if needed */ if (was_expanded) gtk_tree_view_expand_row (tree_view, treepath, FALSE); gtk_tree_path_free (treepath); } static void ario_filesystem_add_filetree (ArioFilesystem *filesystem, PlaylistAction action) { ARIO_LOG_FUNCTION_START; gchar *dir; GtkTreeIter iter; GtkTreeModel *model = GTK_TREE_MODEL (filesystem->priv->model); /* Do nothing if no folder is selected */ if (!gtk_tree_selection_get_selected (filesystem->priv->selection, &model, &iter)) return; /* Get folder path */ gtk_tree_model_get (GTK_TREE_MODEL (filesystem->priv->model), &iter, FILETREE_DIR_COLUMN, &dir, -1); g_return_if_fail (dir); /* Append songs in folder to playlist */ ario_server_playlist_append_dir (dir, action); g_free (dir); } static void ario_filesystem_cmd_add_filesystem (GSimpleAction *action, GVariant *parameter, gpointer data) { ARIO_LOG_FUNCTION_START; ArioFilesystem *filesystem = ARIO_FILESYSTEM (data); /* Append songs in selected folder to playlist */ ario_filesystem_add_filetree (filesystem, PLAYLIST_ADD); } static void ario_filesystem_cmd_add_play_filesystem (GSimpleAction *action, GVariant *parameter, gpointer data) { ARIO_LOG_FUNCTION_START; ArioFilesystem *filesystem = ARIO_FILESYSTEM (data); /* Append songs in selected folder to playlist */ ario_filesystem_add_filetree (filesystem, PLAYLIST_ADD_PLAY); } static void ario_filesystem_cmd_clear_add_play_filesystem (GSimpleAction *action, GVariant *parameter, gpointer data) { ARIO_LOG_FUNCTION_START; ArioFilesystem *filesystem = ARIO_FILESYSTEM (data); /* Clear playlist, append songs in selected folder to playlist */ ario_filesystem_add_filetree (filesystem, PLAYLIST_REPLACE); } static void ario_filesystem_popup_menu_cb (ArioDndTree* tree, ArioFilesystem *filesystem) { ARIO_LOG_FUNCTION_START; /* Show popup menu */ gtk_menu_popup_at_pointer (GTK_MENU (filesystem->priv->menu), NULL); } static void ario_filesystem_filetree_drag_data_get_cb (GtkWidget * widget, GdkDragContext * context, GtkSelectionData * selection_data, guint info, guint time, gpointer data) { ARIO_LOG_FUNCTION_START; ArioFilesystem *filesystem; GtkTreeIter iter; GtkTreeModel *model; guchar* dir; filesystem = ARIO_FILESYSTEM (data); g_return_if_fail (IS_ARIO_FILESYSTEM (filesystem)); g_return_if_fail (widget != NULL); g_return_if_fail (selection_data != NULL); model = GTK_TREE_MODEL (filesystem->priv->model); /* Do nothing if no folder is selected */ if (!gtk_tree_selection_get_selected (filesystem->priv->selection, &model, &iter)) return; /* Get folder path */ gtk_tree_model_get (GTK_TREE_MODEL (filesystem->priv->model), &iter, FILETREE_DIR_COLUMN, &dir, -1); /* Set drag data */ gtk_selection_data_set (selection_data, gtk_selection_data_get_target (selection_data), 8, dir, strlen ((const gchar*) dir) * sizeof(guchar)); g_free (dir); } ario-1.6/plugins/filesystem/ario-filesystem.h0000644000175000017500000000365513226723434016404 00000000000000/* * Copyright (C) 2008 Marc Pavot * * 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, 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * */ #ifndef __ARIO_FILESYSTEM_H #define __ARIO_FILESYSTEM_H #include #include #include "widgets/ario-playlist.h" #include "sources/ario-source.h" G_BEGIN_DECLS #define TYPE_ARIO_FILESYSTEM (ario_filesystem_get_type ()) #define ARIO_FILESYSTEM(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), TYPE_ARIO_FILESYSTEM, ArioFilesystem)) #define ARIO_FILESYSTEM_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), TYPE_ARIO_FILESYSTEM, ArioFilesystemClass)) #define IS_ARIO_FILESYSTEM(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), TYPE_ARIO_FILESYSTEM)) #define IS_ARIO_FILESYSTEM_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), TYPE_ARIO_FILESYSTEM)) #define ARIO_FILESYSTEM_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), TYPE_ARIO_FILESYSTEM, ArioFilesystemClass)) typedef struct ArioFilesystemPrivate ArioFilesystemPrivate; typedef struct { ArioSource parent; ArioFilesystemPrivate *priv; } ArioFilesystem; typedef struct { ArioSourceClass parent; } ArioFilesystemClass; GType ario_filesystem_get_type (void) G_GNUC_CONST; GtkWidget* ario_filesystem_new (void); G_END_DECLS #endif /* __ARIO_FILESYSTEM_H */ ario-1.6/plugins/filesystem/ario-filesystem-menu.ui0000644000175000017500000000402713226723434017526 00000000000000
Add to playlist app.filesystem-add-to-pl Add and play app.filesystem-add-play Replace in playlist app.filesystem-clear-add-play
Add to playlist app.filesystem-add-to-pl-songs Add and play app.filesystem-add-play-songs Replace in playlist app.filesystem-clear-add-play-songs Properties app.filesystem-properties-songs
ario-1.6/plugins/filesystem/ario-filesystem-plugin.h0000644000175000017500000000474013226723436017676 00000000000000/* * Copyright (C) 2008 Marc Pavot * * 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, 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * */ #ifndef __ARIO_FILESYSTEM_PLUGIN_H__ #define __ARIO_FILESYSTEM_PLUGIN_H__ #include #include #include G_BEGIN_DECLS /* * Type checking and casting macros */ #define ARIO_TYPE_FILESYSTEM_PLUGIN (ario_filesystem_plugin_get_type ()) #define ARIO_FILESYSTEM_PLUGIN(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), ARIO_TYPE_FILESYSTEM_PLUGIN, ArioFilesystemPlugin)) #define ARIO_FILESYSTEM_PLUGIN_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), ARIO_TYPE_FILESYSTEM_PLUGIN, ArioFilesystemPluginClass)) #define ARIO_IS_FILESYSTEM_PLUGIN(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), ARIO_TYPE_FILESYSTEM_PLUGIN)) #define ARIO_IS_FILESYSTEM_PLUGIN_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), ARIO_TYPE_FILESYSTEM_PLUGIN)) #define ARIO_FILESYSTEM_PLUGIN_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), ARIO_TYPE_FILESYSTEM_PLUGIN, ArioFilesystemPluginClass)) /* Private structure type */ typedef struct _ArioFilesystemPluginPrivate ArioFilesystemPluginPrivate; /* * Main object structure */ typedef struct _ArioFilesystemPlugin ArioFilesystemPlugin; struct _ArioFilesystemPlugin { ArioPlugin parent_instance; /*< private >*/ ArioFilesystemPluginPrivate *priv; }; /* * Class definition */ typedef struct _ArioFilesystemPluginClass ArioFilesystemPluginClass; struct _ArioFilesystemPluginClass { ArioPluginClass parent_class; }; /* * Public methods */ GType ario_filesystem_plugin_get_type (void) G_GNUC_CONST; /* All the plugins must implement this function */ G_MODULE_EXPORT GType register_ario_plugin (GTypeModule *module); G_END_DECLS #endif /* __ARIO_FILESYSTEM_PLUGIN_H__ */ ario-1.6/plugins/filesystem/ario-filesystem-plugin.c0000644000175000017500000000473413226723434017672 00000000000000/* * Copyright (C) 2008 Marc Pavot * * 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, 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * */ #include "ario-filesystem-plugin.h" #include #include /* For strlen */ #include #include #include #include #include #include "ario-filesystem.h" #define ARIO_FILESYSTEM_PLUGIN_GET_PRIVATE(object)(G_TYPE_INSTANCE_GET_PRIVATE ((object), ARIO_TYPE_FILESYSTEM_PLUGIN, ArioFilesystemPluginPrivate)) struct _ArioFilesystemPluginPrivate { gchar *menu_file; guint ui_merge_id; GtkWidget *source; }; ARIO_PLUGIN_REGISTER_TYPE(ArioFilesystemPlugin, ario_filesystem_plugin) static void ario_filesystem_plugin_init (ArioFilesystemPlugin *plugin) { plugin->priv = ARIO_FILESYSTEM_PLUGIN_GET_PRIVATE (plugin); } static void impl_activate (ArioPlugin *plugin, ArioShell *shell) { ArioFilesystemPlugin *pi = ARIO_FILESYSTEM_PLUGIN (plugin); pi->priv->source = ario_filesystem_new (); g_return_if_fail (IS_ARIO_FILESYSTEM (pi->priv->source)); ario_source_manager_append (ARIO_SOURCE (pi->priv->source)); ario_source_manager_reorder (); } static void impl_deactivate (ArioPlugin *plugin, ArioShell *shell) { ArioFilesystemPlugin *pi = ARIO_FILESYSTEM_PLUGIN (plugin); ario_source_manager_remove (ARIO_SOURCE (pi->priv->source)); } static void ario_filesystem_plugin_class_init (ArioFilesystemPluginClass *klass) { GObjectClass *object_class = G_OBJECT_CLASS (klass); ArioPluginClass *plugin_class = ARIO_PLUGIN_CLASS (klass); plugin_class->activate = impl_activate; plugin_class->deactivate = impl_deactivate; g_type_class_add_private (object_class, sizeof (ArioFilesystemPluginPrivate)); } ario-1.6/plugins/filesystem/Makefile.am0000644000175000017500000000217413226723434015146 00000000000000plugindir = $(PLUGINDIR) plugindatadir = $(PLUGIN_DATA_DIR) plugin_LTLIBRARIES = libfilesystem.la libfilesystem_la_SOURCES = \ ario-filesystem.c \ ario-filesystem.h \ ario-filesystem-plugin.c \ ario-filesystem-plugin.h libfilesystem_la_LDFLAGS = $(PLUGIN_LIBTOOL_FLAGS) uixmldir = $(plugindatadir) uixml_DATA = ario-filesystem-menu.ui INCLUDES = \ -DLOCALE_DIR=\""$(prefix)/$(DATADIRNAME)/locale"\" \ $(DEPS_CFLAGS) \ -I$(top_srcdir) \ -I$(top_srcdir)/src \ -I$(top_srcdir)/src/lib \ -I$(top_srcdir)/src/plugins \ -I$(top_srcdir)/src/sources \ -I$(top_srcdir)/src/shell \ $(WARNINGS) plugin_in_files = filesystem.ario-plugin.desktop.in %.ario-plugin: %.ario-plugin.desktop.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*po) ; $(INTLTOOL_MERGE) $(top_srcdir)/po $< $@ -d -u -c $(top_builddir)/po/.intltool-merge-cache plugin_DATA = $(plugin_in_files:.ario-plugin.desktop.in=.ario-plugin) EXTRA_DIST = $(plugin_in_files)\ $(uixml_DATA) CLEANFILES = $(plugin_DATA) DISTCLEANFILES = $(plugin_DATA) ario-1.6/plugins/radios/0000755000175000017500000000000013226745612012265 500000000000000ario-1.6/plugins/radios/radios.xml.default0000644000175000017500000000614013226723434015632 00000000000000 France Bleu - Ile de France France Vivace Le Mouv WCPE, Wake Forest, NC Fun Radio Kiss FM Oui FM Radio Campus Clermont-Ferrand Radio Nova Radio Scoop RSR - la première RSR - Espace 2 RSR - Couleur 3 RSR - Option Musique RTL2 Europa Plus Fip France Culture France Info France Inter France Musique Radio Sibir Tsf Jazz Hotmixradio Rock - La radio Happy et Rock (Paris France) http://www.hotmixradiorock.fr Hotmixradio Metal - La radio Metal et Hard Rock (Paris France) http://www.hotmixradiometal.fr Hotmixradio Frenchy - La radio chansons francaises (Paris France) http://www.hotmixradiofrenchy.fr Hotmixradio Japan - La radio J-Music (Paris France) http://www.hotmixradiojapan.fr Hot Mix Radio 90s - La radio 100% annee 90 (Paris France) - http://www.hotmixradio90.fr Hotmixradio VIP - La radio que vous programmez (Paris France) http://www.hotmixradiovip.fr Hot Mix Radio Funkyhotmix - La radio Disco Funk (Paris France) - http://www.funkyhotmix.fr Hot Mix Radio 80s - La radio 100% annee 80 (Paris France) - http://www.hotmixradio80.fr ario-1.6/plugins/radios/Makefile.in0000644000175000017500000006354513226745577014301 00000000000000# Makefile.in generated by automake 1.15.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2017 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__is_gnu_make = { \ if test -z '$(MAKELEVEL)'; then \ false; \ elif test -n '$(MAKE_HOST)'; then \ true; \ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ true; \ else \ false; \ fi; \ } am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = plugins/radios ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__uninstall_files_from_dir = { \ test -z "$$files" \ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } am__installdirs = "$(DESTDIR)$(plugindir)" "$(DESTDIR)$(alldatadir)" \ "$(DESTDIR)$(plugindir)" "$(DESTDIR)$(uixmldir)" LTLIBRARIES = $(plugin_LTLIBRARIES) libradios_la_LIBADD = am_libradios_la_OBJECTS = ario-radio.lo ario-radios-plugin.lo libradios_la_OBJECTS = $(am_libradios_la_OBJECTS) AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent am__v_lt_1 = libradios_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(libradios_la_LDFLAGS) $(LDFLAGS) -o $@ AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) AM_V_CC = $(am__v_CC_@AM_V@) am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) am__v_CC_0 = @echo " CC " $@; am__v_CC_1 = CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_CCLD = $(am__v_CCLD_@AM_V@) am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) am__v_CCLD_0 = @echo " CCLD " $@; am__v_CCLD_1 = SOURCES = $(libradios_la_SOURCES) DIST_SOURCES = $(libradios_la_SOURCES) am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac DATA = $(alldata_DATA) $(plugin_DATA) $(uixml_DATA) am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) # Read a list of newline-separated strings from the standard input, # and print each of them once, without duplicates. Input order is # *not* preserved. am__uniquify_input = $(AWK) '\ BEGIN { nonempty = 0; } \ { items[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in items) print i; }; } \ ' # Make sure the list of sources is unique. This is necessary because, # e.g., the same source file might be shared among _SOURCES variables # for different programs/libraries. am__define_uniq_tagged_files = \ list='$(am__tagged_files)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALL_LINGUAS = @ALL_LINGUAS@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AR_FLAGS = @AR_FLAGS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AVAHI_CFLAGS = @AVAHI_CFLAGS@ AVAHI_LIBS = @AVAHI_LIBS@ AWK = @AWK@ CATALOGS = @CATALOGS@ CATOBJEXT = @CATOBJEXT@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIRNAME = @DATADIRNAME@ DBUS_CFLAGS = @DBUS_CFLAGS@ DBUS_GLIB_BIN = @DBUS_GLIB_BIN@ DBUS_LIBS = @DBUS_LIBS@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DEPS_CFLAGS = @DEPS_CFLAGS@ DEPS_LIBS = @DEPS_LIBS@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ GLIB_MKENUMS = @GLIB_MKENUMS@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INSTOBJEXT = @INSTOBJEXT@ INTLLIBS = @INTLLIBS@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@ INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@ INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBMPDCLIENT2_CFLAGS = @LIBMPDCLIENT2_CFLAGS@ LIBMPDCLIENT2_LIBS = @LIBMPDCLIENT2_LIBS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MKINSTALLDIRS = @MKINSTALLDIRS@ MSGFMT = @MSGFMT@ MSGFMT_OPTS = @MSGFMT_OPTS@ MSGMERGE = @MSGMERGE@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ PLUGINDIR = @PLUGINDIR@ PLUGIN_DATA_DIR = @PLUGIN_DATA_DIR@ POFILES = @POFILES@ POSUB = @POSUB@ PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ PYGTK_CFLAGS = @PYGTK_CFLAGS@ PYGTK_CODEGEN = @PYGTK_CODEGEN@ PYGTK_DEFSDIR = @PYGTK_DEFSDIR@ PYGTK_H2DEF = @PYGTK_H2DEF@ PYGTK_LIBS = @PYGTK_LIBS@ PYTHON = @PYTHON@ PYTHON_CFLAGS = @PYTHON_CFLAGS@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_EXTRA_LIBS = @PYTHON_EXTRA_LIBS@ PYTHON_LIBS = @PYTHON_LIBS@ PYTHON_LIB_LOC = @PYTHON_LIB_LOC@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ PYTHON_PREFIX = @PYTHON_PREFIX@ PYTHON_VERSION = @PYTHON_VERSION@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ TAGLIB_CFLAGS = @TAGLIB_CFLAGS@ TAGLIB_LIBS = @TAGLIB_LIBS@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ WARNINGS = @WARNINGS@ XGETTEXT = @XGETTEXT@ XMMS2_CFLAGS = @XMMS2_CFLAGS@ XMMS2_LIBS = @XMMS2_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ intltool__v_merge_options_ = @intltool__v_merge_options_@ intltool__v_merge_options_0 = @intltool__v_merge_options_0@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pkgpyexecdir = @pkgpyexecdir@ pkgpythondir = @pkgpythondir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ pyexecdir = @pyexecdir@ pythondir = @pythondir@ runstatedir = @runstatedir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ plugindir = $(PLUGINDIR) plugindatadir = $(PLUGIN_DATA_DIR) plugin_LTLIBRARIES = libradios.la libradios_la_SOURCES = \ ario-radio.c \ ario-radio.h \ ario-radios-plugin.c \ ario-radios-plugin.h libradios_la_LDFLAGS = $(PLUGIN_LIBTOOL_FLAGS) uixmldir = $(plugindatadir) uixml_DATA = ario-radios-menu.ui alldatadir = $(plugindatadir) alldata_DATA = radios.xml.default INCLUDES = \ -DLOCALE_DIR=\""$(prefix)/$(DATADIRNAME)/locale"\" \ $(DEPS_CFLAGS) \ -I$(top_srcdir) \ -I$(top_srcdir)/src \ -I$(top_srcdir)/src/lib \ -I$(top_srcdir)/src/plugins \ -I$(top_srcdir)/src/sources \ -I$(top_srcdir)/src/shell \ $(WARNINGS) plugin_in_files = radios.ario-plugin.desktop.in plugin_DATA = $(plugin_in_files:.ario-plugin.desktop.in=.ario-plugin) EXTRA_DIST = $(plugin_in_files)\ $(uixml_DATA)\ $(alldata_DATA) CLEANFILES = $(plugin_DATA) DISTCLEANFILES = $(plugin_DATA) all: all-am .SUFFIXES: .SUFFIXES: .c .lo .o .obj $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign plugins/radios/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign plugins/radios/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES) @$(NORMAL_INSTALL) @list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \ list2=; for p in $$list; do \ if test -f $$p; then \ list2="$$list2 $$p"; \ else :; fi; \ done; \ test -z "$$list2" || { \ echo " $(MKDIR_P) '$(DESTDIR)$(plugindir)'"; \ $(MKDIR_P) "$(DESTDIR)$(plugindir)" || exit 1; \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(plugindir)'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(plugindir)"; \ } uninstall-pluginLTLIBRARIES: @$(NORMAL_UNINSTALL) @list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \ for p in $$list; do \ $(am__strip_dir) \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(plugindir)/$$f'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(plugindir)/$$f"; \ done clean-pluginLTLIBRARIES: -test -z "$(plugin_LTLIBRARIES)" || rm -f $(plugin_LTLIBRARIES) @list='$(plugin_LTLIBRARIES)'; \ locs=`for p in $$list; do echo $$p; done | \ sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ sort -u`; \ test -z "$$locs" || { \ echo rm -f $${locs}; \ rm -f $${locs}; \ } libradios.la: $(libradios_la_OBJECTS) $(libradios_la_DEPENDENCIES) $(EXTRA_libradios_la_DEPENDENCIES) $(AM_V_CCLD)$(libradios_la_LINK) -rpath $(plugindir) $(libradios_la_OBJECTS) $(libradios_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ario-radio.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ario-radios-plugin.Plo@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\ @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ @am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< .c.obj: @am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\ @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\ @am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\ @am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ @am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs install-alldataDATA: $(alldata_DATA) @$(NORMAL_INSTALL) @list='$(alldata_DATA)'; test -n "$(alldatadir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(alldatadir)'"; \ $(MKDIR_P) "$(DESTDIR)$(alldatadir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(alldatadir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(alldatadir)" || exit $$?; \ done uninstall-alldataDATA: @$(NORMAL_UNINSTALL) @list='$(alldata_DATA)'; test -n "$(alldatadir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(alldatadir)'; $(am__uninstall_files_from_dir) install-pluginDATA: $(plugin_DATA) @$(NORMAL_INSTALL) @list='$(plugin_DATA)'; test -n "$(plugindir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(plugindir)'"; \ $(MKDIR_P) "$(DESTDIR)$(plugindir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(plugindir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(plugindir)" || exit $$?; \ done uninstall-pluginDATA: @$(NORMAL_UNINSTALL) @list='$(plugin_DATA)'; test -n "$(plugindir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(plugindir)'; $(am__uninstall_files_from_dir) install-uixmlDATA: $(uixml_DATA) @$(NORMAL_INSTALL) @list='$(uixml_DATA)'; test -n "$(uixmldir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(uixmldir)'"; \ $(MKDIR_P) "$(DESTDIR)$(uixmldir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(uixmldir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(uixmldir)" || exit $$?; \ done uninstall-uixmlDATA: @$(NORMAL_UNINSTALL) @list='$(uixml_DATA)'; test -n "$(uixmldir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(uixmldir)'; $(am__uninstall_files_from_dir) ID: $(am__tagged_files) $(am__define_uniq_tagged_files); mkid -fID $$unique tags: tags-am TAGS: tags tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: ctags-am CTAGS: ctags ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" cscopelist: cscopelist-am cscopelist-am: $(am__tagged_files) list='$(am__tagged_files)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ esac; \ for i in $$list; do \ if test -f "$$i"; then \ echo "$(subdir)/$$i"; \ else \ echo "$$sdir/$$i"; \ fi; \ done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(LTLIBRARIES) $(DATA) installdirs: for dir in "$(DESTDIR)$(plugindir)" "$(DESTDIR)$(alldatadir)" "$(DESTDIR)$(plugindir)" "$(DESTDIR)$(uixmldir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool clean-pluginLTLIBRARIES \ mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-alldataDATA install-pluginDATA \ install-pluginLTLIBRARIES install-uixmlDATA install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-alldataDATA uninstall-pluginDATA \ uninstall-pluginLTLIBRARIES uninstall-uixmlDATA .MAKE: install-am install-strip .PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ clean-libtool clean-pluginLTLIBRARIES cscopelist-am ctags \ ctags-am distclean distclean-compile distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-alldataDATA install-am \ install-data install-data-am install-dvi install-dvi-am \ install-exec install-exec-am install-html install-html-am \ install-info install-info-am install-man install-pdf \ install-pdf-am install-pluginDATA install-pluginLTLIBRARIES \ install-ps install-ps-am install-strip install-uixmlDATA \ installcheck installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags tags-am uninstall uninstall-alldataDATA uninstall-am \ uninstall-pluginDATA uninstall-pluginLTLIBRARIES \ uninstall-uixmlDATA .PRECIOUS: Makefile %.ario-plugin: %.ario-plugin.desktop.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*po) ; $(INTLTOOL_MERGE) $(top_srcdir)/po $< $@ -d -u -c $(top_builddir)/po/.intltool-merge-cache # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: ario-1.6/plugins/radios/ario-radios-plugin.h0000644000175000017500000000454113226723436016067 00000000000000/* * Copyright (C) 2002-2005 - Paolo Maggi * * 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, 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * */ #ifndef __ARIO_RADIOS_PLUGIN_H__ #define __ARIO_RADIOS_PLUGIN_H__ #include #include #include G_BEGIN_DECLS /* * Type checking and casting macros */ #define ARIO_TYPE_RADIOS_PLUGIN (ario_radios_plugin_get_type ()) #define ARIO_RADIOS_PLUGIN(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), ARIO_TYPE_RADIOS_PLUGIN, ArioRadiosPlugin)) #define ARIO_RADIOS_PLUGIN_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), ARIO_TYPE_RADIOS_PLUGIN, ArioRadiosPluginClass)) #define ARIO_IS_RADIOS_PLUGIN(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), ARIO_TYPE_RADIOS_PLUGIN)) #define ARIO_IS_RADIOS_PLUGIN_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), ARIO_TYPE_RADIOS_PLUGIN)) #define ARIO_RADIOS_PLUGIN_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), ARIO_TYPE_RADIOS_PLUGIN, ArioRadiosPluginClass)) /* Private structure type */ typedef struct _ArioRadiosPluginPrivate ArioRadiosPluginPrivate; /* * Main object structure */ typedef struct _ArioRadiosPlugin ArioRadiosPlugin; struct _ArioRadiosPlugin { ArioPlugin parent_instance; /*< private >*/ ArioRadiosPluginPrivate *priv; }; /* * Class definition */ typedef struct _ArioRadiosPluginClass ArioRadiosPluginClass; struct _ArioRadiosPluginClass { ArioPluginClass parent_class; }; /* * Public methods */ GType ario_radios_plugin_get_type (void) G_GNUC_CONST; /* All the plugins must implement this function */ G_MODULE_EXPORT GType register_ario_plugin (GTypeModule *module); G_END_DECLS #endif /* __ARIO_RADIOS_PLUGIN_H__ */ ario-1.6/plugins/radios/ario-radios-plugin.c0000644000175000017500000000454313226723436016064 00000000000000/* * Copyright (C) 2002-2005 - Paolo Maggi * * 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, 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * */ #include "ario-radios-plugin.h" #ifdef HAVE_CONFIG_H #include #endif #include /* For strlen */ #include #include #include #include #include #include "ario-radio.h" #define ARIO_RADIOS_PLUGIN_GET_PRIVATE(object)(G_TYPE_INSTANCE_GET_PRIVATE ((object), ARIO_TYPE_RADIOS_PLUGIN, ArioRadiosPluginPrivate)) struct _ArioRadiosPluginPrivate { GtkWidget *source; }; ARIO_PLUGIN_REGISTER_TYPE(ArioRadiosPlugin, ario_radios_plugin) static void ario_radios_plugin_init (ArioRadiosPlugin *plugin) { plugin->priv = ARIO_RADIOS_PLUGIN_GET_PRIVATE (plugin); } static void impl_activate (ArioPlugin *plugin, ArioShell *shell) { ArioRadiosPlugin *pi = ARIO_RADIOS_PLUGIN (plugin); pi->priv->source = ario_radio_new (); g_return_if_fail (IS_ARIO_RADIO (pi->priv->source)); ario_source_manager_append (ARIO_SOURCE (pi->priv->source)); ario_source_manager_reorder (); } static void impl_deactivate (ArioPlugin *plugin, ArioShell *shell) { ArioRadiosPlugin *pi = ARIO_RADIOS_PLUGIN (plugin); ario_source_manager_remove (ARIO_SOURCE (pi->priv->source)); } static void ario_radios_plugin_class_init (ArioRadiosPluginClass *klass) { GObjectClass *object_class = G_OBJECT_CLASS (klass); ArioPluginClass *plugin_class = ARIO_PLUGIN_CLASS (klass); plugin_class->activate = impl_activate; plugin_class->deactivate = impl_deactivate; g_type_class_add_private (object_class, sizeof (ArioRadiosPluginPrivate)); } ario-1.6/plugins/radios/ario-radio.c0000644000175000017500000012376613226723436014416 00000000000000/* * Copyright (C) 2005 Marc Pavot * * 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, 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * */ #include "ario-radio.h" #include #include #include #include #include #include "ario-util.h" #include "ario-debug.h" #include "preferences/ario-preferences.h" #include "lib/ario-conf.h" #include "plugins/ario-plugin.h" #include "servers/ario-server.h" #include "widgets/ario-dnd-tree.h" #define XML_ROOT_NAME (const unsigned char *)"ario-radios" /** * ArioInternetRadio represents an internet * Radio with its name and URL. */ typedef struct ArioInternetRadio { gchar *name; gchar *url; } ArioInternetRadio; static void ario_radio_class_init (ArioRadioClass *klass); static void ario_radio_init (ArioRadio *radio); static void ario_radio_finalize (GObject *object); static void ario_radio_state_changed_cb (ArioServer *server, ArioRadio *radio); static void ario_radio_add_in_playlist (ArioRadio *radio, PlaylistAction action); static void ario_radio_cmd_add_radios (GSimpleAction *action, GVariant *parameter, gpointer data); static void ario_radio_cmd_add_play_radios (GSimpleAction *action, GVariant *parameter, gpointer data); static void ario_radio_cmd_clear_add_play_radios (GSimpleAction *action, GVariant *parameter, gpointer data); static void ario_radio_cmd_new_radio (GSimpleAction *action, GVariant *parameter, gpointer data); static void ario_radio_cmd_delete_radios (GSimpleAction *action, GVariant *parameter, gpointer data); static void ario_radio_cmd_radio_properties (GSimpleAction *action, GVariant *parameter, gpointer data); static void ario_radio_radios_selection_drag_foreach (GtkTreeModel *model, GtkTreePath *path, GtkTreeIter *iter, gpointer userdata); static void ario_radio_drag_data_get_cb (GtkWidget * widget, GdkDragContext * context, GtkSelectionData * selection_data, guint info, guint time, gpointer data); static void ario_radio_free_internet_radio (ArioInternetRadio *internet_radio); static void ario_radio_create_xml_file (char *xml_filename); static char* ario_radio_get_xml_filename (void); static void ario_radio_fill_radios (ArioRadio *radio); static void ario_radio_popup_menu_cb (ArioDndTree* tree, ArioRadio *radio); static void ario_radio_activate_cb (ArioDndTree* tree, ArioRadio *radio); static void ario_radio_adder_changed_cb (GtkWidget *combobox, ArioRadio *radio); /* Private attributes */ struct ArioRadioPrivate { GtkWidget *tree; GtkListStore *model; GtkTreeSelection *selection; gboolean connected; xmlDocPtr doc; GtkWidget *name_entry; GtkWidget *data_label; GtkWidget *data_entry; GtkWidget *none_popup; GtkWidget *single_popup; GtkWidget *multiple_popup; }; /* Actions on radios */ static const GActionEntry ario_radio_actions [] = { { "radio-new", ario_radio_cmd_new_radio }, { "radio-add-to-pl", ario_radio_cmd_add_radios }, { "radio-add-play", ario_radio_cmd_add_play_radios }, { "radio-clear-add-play", ario_radio_cmd_clear_add_play_radios }, { "radio-delete", ario_radio_cmd_delete_radios }, { "radio-properties", ario_radio_cmd_radio_properties }, }; static guint ario_radio_n_actions = G_N_ELEMENTS (ario_radio_actions); /* Object properties */ enum { PROP_0, }; /* Tree columns */ enum { RADIO_NAME_COLUMN, RADIO_URL_COLUMN, N_COLUMN }; /* Drag and drop targets */ static const GtkTargetEntry radios_targets [] = { { "text/radios-list", 0, 0 }, }; typedef struct { gchar *name; gchar *data_label; gchar *url; } ArioRadioAdder; static ArioRadioAdder radio_adders [] = { {"URL", "URL :", "%s"}, {N_("Last.fm: Radio of similar artists"), N_("Artist :"), "lastfm://artist/%s/similarartists"}, {N_("Last.fm: Radio of group"), N_("Group :"), "lastfm://artist/%s"}, {N_("Last.fm: Personal radio"), N_("Username :"), "lastfm://user/%s"}, {N_("Last.fm: Radio of genre"), N_("Genre :"), "lastfm://genre/%s"}, }; #define ARIO_RADIO_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_ARIO_RADIO, ArioRadioPrivate)) G_DEFINE_TYPE (ArioRadio, ario_radio, ARIO_TYPE_SOURCE) static gchar * ario_radio_get_id (ArioSource *source) { return "radios"; } static gchar * ario_radio_get_name (ArioSource *source) { return _("Web Radios"); } static gchar * ario_radio_get_icon (ArioSource *source) { return "network-workgroup"; } static void ario_radio_class_init (ArioRadioClass *klass) { ARIO_LOG_FUNCTION_START; GObjectClass *object_class = G_OBJECT_CLASS (klass); ArioSourceClass *source_class = ARIO_SOURCE_CLASS (klass); /* GObject virtual methods */ object_class->finalize = ario_radio_finalize; /* ArioSource virtual methods */ source_class->get_id = ario_radio_get_id; source_class->get_name = ario_radio_get_name; source_class->get_icon = ario_radio_get_icon; /* Private attributes */ g_type_class_add_private (klass, sizeof (ArioRadioPrivate)); } static void ario_radio_init (ArioRadio *radio) { ARIO_LOG_FUNCTION_START; GtkTreeViewColumn *column; GtkCellRenderer *renderer; GtkWidget *scrolledwindow_radios; radio->priv = ARIO_RADIO_GET_PRIVATE (radio); /* Radios list */ scrolledwindow_radios = gtk_scrolled_window_new (NULL, NULL); gtk_widget_show (scrolledwindow_radios); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolledwindow_radios), GTK_POLICY_NEVER, GTK_POLICY_ALWAYS); gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (scrolledwindow_radios), GTK_SHADOW_IN); radio->priv->tree = ario_dnd_tree_new (radios_targets, G_N_ELEMENTS (radios_targets), FALSE); gtk_tree_view_set_fixed_height_mode (GTK_TREE_VIEW (radio->priv->tree), TRUE); renderer = gtk_cell_renderer_text_new (); column = gtk_tree_view_column_new_with_attributes (_("Internet Radios"), renderer, "text", 0, NULL); gtk_tree_view_column_set_sizing (column, GTK_TREE_VIEW_COLUMN_FIXED); gtk_tree_view_append_column (GTK_TREE_VIEW (radio->priv->tree), column); radio->priv->model = gtk_list_store_new (N_COLUMN, G_TYPE_STRING, G_TYPE_STRING); gtk_tree_sortable_set_sort_column_id (GTK_TREE_SORTABLE (radio->priv->model), 0, GTK_SORT_ASCENDING); gtk_tree_view_set_model (GTK_TREE_VIEW (radio->priv->tree), GTK_TREE_MODEL (radio->priv->model)); radio->priv->selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (radio->priv->tree)); gtk_tree_selection_set_mode (radio->priv->selection, GTK_SELECTION_MULTIPLE); gtk_container_add (GTK_CONTAINER (scrolledwindow_radios), radio->priv->tree); g_signal_connect (GTK_TREE_VIEW (radio->priv->tree), "drag_data_get", G_CALLBACK (ario_radio_drag_data_get_cb), radio); g_signal_connect (GTK_TREE_VIEW (radio->priv->tree), "popup", G_CALLBACK (ario_radio_popup_menu_cb), radio); g_signal_connect (GTK_TREE_VIEW (radio->priv->tree), "activate", G_CALLBACK (ario_radio_activate_cb), radio); /* Hbox properties */ gtk_box_set_homogeneous (GTK_BOX (radio), FALSE); gtk_box_set_spacing (GTK_BOX (radio), 4); gtk_box_pack_start (GTK_BOX (radio), scrolledwindow_radios, TRUE, TRUE, 0); } static void ario_radio_finalize (GObject *object) { ARIO_LOG_FUNCTION_START; ArioRadio *radio; guint i; g_return_if_fail (object != NULL); g_return_if_fail (IS_ARIO_RADIO (object)); radio = ARIO_RADIO (object); g_return_if_fail (radio->priv != NULL); if (radio->priv->doc) xmlFreeDoc (radio->priv->doc); radio->priv->doc = NULL; for (i = 0; i < ario_radio_n_actions; ++i) { g_action_map_remove_action (G_ACTION_MAP (g_application_get_default ()), ario_radio_actions[i].name); } G_OBJECT_CLASS (ario_radio_parent_class)->finalize (object); } GtkWidget * ario_radio_new (void) { ARIO_LOG_FUNCTION_START; ArioRadio *radio; GtkBuilder *builder; GMenuModel *menu; gchar *file; radio = g_object_new (TYPE_ARIO_RADIO, NULL); g_return_val_if_fail (radio->priv != NULL, NULL); /* Signals to synchronize the radio with server */ g_signal_connect_object (ario_server_get_instance (), "state_changed", G_CALLBACK (ario_radio_state_changed_cb), radio, 0); radio->priv->connected = ario_server_is_connected (); /* Create menu */ file = ario_plugin_find_file ("ario-radios-menu.ui"); g_return_val_if_fail (file != NULL, NULL); builder = gtk_builder_new_from_file (file); g_free (file); menu = G_MENU_MODEL (gtk_builder_get_object (builder, "none-menu")); radio->priv->none_popup = gtk_menu_new_from_model (menu); menu = G_MENU_MODEL (gtk_builder_get_object (builder, "single-menu")); radio->priv->single_popup = gtk_menu_new_from_model (menu); menu = G_MENU_MODEL (gtk_builder_get_object (builder, "multiple-menu")); radio->priv->multiple_popup = gtk_menu_new_from_model (menu); gtk_menu_attach_to_widget (GTK_MENU (radio->priv->none_popup), GTK_WIDGET (radio->priv->tree), NULL); gtk_menu_attach_to_widget (GTK_MENU (radio->priv->single_popup), GTK_WIDGET (radio->priv->tree), NULL); gtk_menu_attach_to_widget (GTK_MENU (radio->priv->multiple_popup), GTK_WIDGET (radio->priv->tree), NULL); g_action_map_add_action_entries (G_ACTION_MAP (g_application_get_default ()), ario_radio_actions, ario_radio_n_actions, radio); ario_radio_fill_radios (radio); return GTK_WIDGET (radio); } static void ario_radio_free_internet_radio (ArioInternetRadio *internet_radio) { ARIO_LOG_FUNCTION_START; if (internet_radio) { g_free (internet_radio->name); g_free (internet_radio->url); g_free (internet_radio); } } static void ario_radio_create_xml_file (char *xml_filename) { gchar *radios_dir; gchar *file; /* if the file exists, we do nothing */ if (ario_util_uri_exists (xml_filename)) return; radios_dir = g_build_filename (ario_util_config_dir (), "radios", NULL); /* If the radios directory doesn't exist, we create it */ if (!ario_util_uri_exists (radios_dir)) ario_util_mkdir (radios_dir); file = ario_plugin_find_file ("radios.xml.default"); if (file) { ario_util_copy_file (file, xml_filename); g_free (file); } } static char* ario_radio_get_xml_filename (void) { static char *xml_filename = NULL; if (!xml_filename) xml_filename = g_build_filename (ario_util_config_dir (), "radios" , "radios.xml", NULL); return xml_filename; } // Return TRUE on success static gboolean ario_radio_fill_doc (ArioRadio *radio) { ARIO_LOG_FUNCTION_START; char *xml_filename; xmlNodePtr cur; /* Fill XML doc if not already done */ if (!radio->priv->doc) { xml_filename = ario_radio_get_xml_filename(); /* If radios.xml file doesn't exist, we create it */ ario_radio_create_xml_file (xml_filename); /* This option is necessary to save a well formated xml file */ xmlKeepBlanksDefault (0); radio->priv->doc = xmlParseFile (xml_filename); if (radio->priv->doc == NULL ) return FALSE; /* We check that the root node has the right name */ cur = xmlDocGetRootElement (radio->priv->doc); if (cur == NULL) { xmlFreeDoc (radio->priv->doc); radio->priv->doc = NULL; return FALSE; } if (xmlStrcmp(cur->name, (const xmlChar *) XML_ROOT_NAME)) { xmlFreeDoc (radio->priv->doc); radio->priv->doc = NULL; return FALSE; } } return TRUE; } static GSList* ario_radio_get_radios (ArioRadio *radio) { ARIO_LOG_FUNCTION_START; GSList* radios = NULL; ArioInternetRadio *internet_radio; xmlNodePtr cur; xmlChar *xml_name; xmlChar *xml_url; /* Fill XML doc if not already done */ if (!ario_radio_fill_doc (radio)) return NULL; cur = xmlDocGetRootElement (radio->priv->doc); for (cur = cur->children; cur; cur = cur->next) { /* For each "radio" entry */ if (!xmlStrcmp (cur->name, (const xmlChar *)"radio")){ /* Instanstiate a new radio */ internet_radio = (ArioInternetRadio *) g_malloc (sizeof (ArioInternetRadio)); /* Set radio name */ xml_name = xmlNodeGetContent (cur); internet_radio->name = g_strdup ((char *) xml_name); xmlFree(xml_name); /* Set radio URL */ xml_url = xmlGetProp (cur, (const unsigned char *)"url"); internet_radio->url = g_strdup ((char *) xml_url); xmlFree(xml_url); /* Append radio to the list */ radios = g_slist_append (radios, internet_radio); } } return radios; } static void ario_radio_append_radio (ArioRadio *radio, ArioInternetRadio *internet_radio) { ARIO_LOG_FUNCTION_START; GtkTreeIter radio_iter; /* Append radio to tree model */ gtk_list_store_append (radio->priv->model, &radio_iter); gtk_list_store_set (radio->priv->model, &radio_iter, RADIO_NAME_COLUMN, internet_radio->name, RADIO_URL_COLUMN, internet_radio->url, -1); } static void ario_radio_fill_radios (ArioRadio *radio) { ARIO_LOG_FUNCTION_START; GSList *radios; GSList *tmp; GtkTreeIter radio_iter; GList* paths; GtkTreePath *path; GtkTreeModel *models = GTK_TREE_MODEL (radio->priv->model); ArioInternetRadio *internet_radio; /* Remember which rows are selected to select them again at the end */ paths = gtk_tree_selection_get_selected_rows (radio->priv->selection, &models); /* Empty radio list */ gtk_list_store_clear (radio->priv->model); if (!radio->priv->connected) return; /* Get all radios from config */ radios = ario_radio_get_radios (radio); /* Append each radio to the list */ for (tmp = radios; tmp; tmp = g_slist_next (tmp)) { internet_radio = (ArioInternetRadio *) tmp->data; ario_radio_append_radio (radio, internet_radio); } g_slist_foreach (radios, (GFunc) ario_radio_free_internet_radio, NULL); g_slist_free (radios); /* Unselect all rows */ gtk_tree_selection_unselect_all (radio->priv->selection); if (paths) { /* Select first previsouly selected radio */ path = paths->data; if (path) { gtk_tree_selection_select_path (radio->priv->selection, path); } } else { /* Select first row */ if (gtk_tree_model_get_iter_first (GTK_TREE_MODEL (radio->priv->model), &radio_iter)) gtk_tree_selection_select_iter (radio->priv->selection, &radio_iter); } g_list_foreach (paths, (GFunc) gtk_tree_path_free, NULL); g_list_free (paths); } static void ario_radio_state_changed_cb (ArioServer *server, ArioRadio *radio) { ARIO_LOG_FUNCTION_START; if (radio->priv->connected != ario_server_is_connected ()) { radio->priv->connected = ario_server_is_connected (); /* Fill radio list */ ario_radio_fill_radios (radio); } } static void radios_foreach (GtkTreeModel *model, GtkTreePath *path, GtkTreeIter *iter, gpointer userdata) { ARIO_LOG_FUNCTION_START; GSList **radios = (GSList **) userdata; gchar *val = NULL; /* Append radio url to list */ gtk_tree_model_get (model, iter, RADIO_URL_COLUMN, &val, -1); *radios = g_slist_append (*radios, val); } static void radios_foreach2 (GtkTreeModel *model, GtkTreePath *path, GtkTreeIter *iter, gpointer userdata) { ARIO_LOG_FUNCTION_START; GSList **internet_radios = (GSList **) userdata; ArioInternetRadio *internet_radio = (ArioInternetRadio *) g_malloc (sizeof (ArioInternetRadio)); gtk_tree_model_get (model, iter, RADIO_NAME_COLUMN, &internet_radio->name, -1); gtk_tree_model_get (model, iter, RADIO_URL_COLUMN, &internet_radio->url, -1); /* Append radio to list */ *internet_radios = g_slist_append (*internet_radios, internet_radio); } static void ario_radio_add_in_playlist (ArioRadio *radio, PlaylistAction action) { ARIO_LOG_FUNCTION_START; GSList *radios = NULL; /* Get list of radio URL */ gtk_tree_selection_selected_foreach (radio->priv->selection, radios_foreach, &radios); /* Append radios to playlist */ ario_server_playlist_append_songs (radios, action); g_slist_foreach (radios, (GFunc) g_free, NULL); g_slist_free (radios); } static void ario_radio_cmd_add_radios (GSimpleAction *action, GVariant *parameter, gpointer data) { ARIO_LOG_FUNCTION_START; ArioRadio *radio = ARIO_RADIO (data); /* Append radios to playlist */ ario_radio_add_in_playlist (radio, PLAYLIST_ADD); } static void ario_radio_cmd_add_play_radios (GSimpleAction *action, GVariant *parameter, gpointer data) { ARIO_LOG_FUNCTION_START; ArioRadio *radio = ARIO_RADIO (data); /* Append radios to playlist and play */ ario_radio_add_in_playlist (radio, PLAYLIST_ADD_PLAY); } static void ario_radio_cmd_clear_add_play_radios (GSimpleAction *action, GVariant *parameter, gpointer data) { ARIO_LOG_FUNCTION_START; ArioRadio *radio = ARIO_RADIO (data); /* Empyt playlist, append radios to playlist and play */ ario_radio_add_in_playlist (radio, PLAYLIST_REPLACE); } static void ario_radio_popup_menu_cb (ArioDndTree* tree, ArioRadio *radio) { ARIO_LOG_FUNCTION_START; GtkWidget *menu; switch (gtk_tree_selection_count_selected_rows (radio->priv->selection)) { case 0: /* No selected row */ menu = radio->priv->none_popup; break; case 1: /* One row selected */ menu = radio->priv->single_popup; break; default: /* Multiple rows */ menu = radio->priv->multiple_popup; break; } /* Show popup menu */ gtk_menu_popup_at_pointer (GTK_MENU (menu), NULL); } static void ario_radio_activate_cb (ArioDndTree* tree, ArioRadio *radio) { ARIO_LOG_FUNCTION_START; /* Append radios to playlist */ ario_radio_add_in_playlist (radio, ario_conf_get_integer (PREF_DOUBLECLICK_BEHAVIOR, PREF_DOUBLECLICK_BEHAVIOR_DEFAULT)); } static void ario_radio_radios_selection_drag_foreach (GtkTreeModel *model, GtkTreePath *path, GtkTreeIter *iter, gpointer userdata) { ARIO_LOG_FUNCTION_START; GString *radios = (GString *) userdata; g_return_if_fail (radios != NULL); gchar* val = NULL; /* Append selected radio URL to drag string */ gtk_tree_model_get (model, iter, RADIO_URL_COLUMN, &val, -1); g_string_append (radios, val); g_string_append (radios, "\n"); g_free (val); } static void ario_radio_drag_data_get_cb (GtkWidget * widget, GdkDragContext * context, GtkSelectionData * selection_data, guint info, guint time, gpointer data) { ARIO_LOG_FUNCTION_START; ArioRadio *radio; GString* radios = NULL; radio = ARIO_RADIO (data); g_return_if_fail (IS_ARIO_RADIO (radio)); g_return_if_fail (widget != NULL); g_return_if_fail (selection_data != NULL); /* Get string representing all selected radios */ radios = g_string_new(""); gtk_tree_selection_selected_foreach (radio->priv->selection, ario_radio_radios_selection_drag_foreach, radios); /* Set drag data */ gtk_selection_data_set (selection_data, gtk_selection_data_get_target (selection_data), 8, (const guchar *) radios->str, strlen (radios->str) * sizeof(guchar)); g_string_free (radios, TRUE); } static void ario_radio_add_new_radio (ArioRadio *radio, ArioInternetRadio *internet_radio) { ARIO_LOG_FUNCTION_START; xmlNodePtr cur, cur2; /* Fill XML doc if not already done */ if (!ario_radio_fill_doc (radio)) return; cur = xmlDocGetRootElement (radio->priv->doc); /* Add a new "radio" entry */ cur2 = xmlNewChild (cur, NULL, (const xmlChar *)"radio", NULL); xmlSetProp (cur2, (const xmlChar *)"url", (const xmlChar *) internet_radio->url); xmlNodeAddContent (cur2, (const xmlChar *) internet_radio->name); /* Save the xml file */ xmlSaveFormatFile (ario_radio_get_xml_filename(), radio->priv->doc, TRUE); ario_radio_append_radio (radio, internet_radio); } static gboolean ario_radio_launch_dialog (ArioInternetRadio *internet_radio, ArioInternetRadio *new_internet_radio) { GtkWidget *dialog, *error_dialog; GtkWidget *grid; GtkWidget *label1, *label2; GtkWidget *entry1, *entry2; gint retval = GTK_RESPONSE_CANCEL; /* Create dialog window */ dialog = gtk_dialog_new_with_buttons (_("Edit a WebRadio"), NULL, GTK_DIALOG_DESTROY_WITH_PARENT, _("_Cancel"), GTK_RESPONSE_CANCEL, _("_OK"), GTK_RESPONSE_OK, NULL); gtk_dialog_set_default_response (GTK_DIALOG (dialog), GTK_RESPONSE_OK); /* Create the widgets */ label1 = gtk_label_new (_("Name :")); label2 = gtk_label_new (_("URL :")); entry1 = gtk_entry_new (); entry2 = gtk_entry_new (); /* Fill text boxes if needed */ if (internet_radio) { gtk_entry_set_text (GTK_ENTRY (entry1), internet_radio->name); gtk_entry_set_text (GTK_ENTRY (entry2), internet_radio->url); } gtk_entry_set_activates_default (GTK_ENTRY (entry1), TRUE); gtk_entry_set_activates_default (GTK_ENTRY (entry2), TRUE); /* Create grid */ grid = gtk_grid_new (); gtk_container_set_border_width (GTK_CONTAINER (grid), 12); /* Add widgets to grid */ gtk_grid_attach (GTK_GRID(grid), label1, 0, 0, 1, 1); gtk_grid_attach (GTK_GRID(grid), label2, 0, 1, 1, 1); gtk_grid_attach (GTK_GRID(grid), entry1, 1, 0, 1, 1); gtk_grid_attach (GTK_GRID(grid), entry2, 1, 1, 1, 1); /* Add grid to dialog */ gtk_container_add (GTK_CONTAINER (gtk_dialog_get_content_area (GTK_DIALOG (dialog))), grid); gtk_widget_show_all (dialog); /* Run dialog */ retval = gtk_dialog_run (GTK_DIALOG(dialog)); if (retval != GTK_RESPONSE_OK) { gtk_widget_destroy (dialog); return FALSE; } /* Get text boxes content */ new_internet_radio->name = g_strdup (gtk_entry_get_text (GTK_ENTRY(entry1))); new_internet_radio->url = g_strdup (gtk_entry_get_text (GTK_ENTRY(entry2))); /* Detect bad values */ if (!new_internet_radio->name || !new_internet_radio->url || !strcmp(new_internet_radio->name, "") || !strcmp(new_internet_radio->url, "")) { error_dialog = gtk_message_dialog_new(NULL, GTK_DIALOG_MODAL, GTK_MESSAGE_ERROR, GTK_BUTTONS_OK, _("Bad parameters. You must specify a name and a URL for the radio.")); gtk_dialog_run(GTK_DIALOG(error_dialog)); gtk_widget_destroy(error_dialog); gtk_widget_destroy(dialog); return FALSE; } gtk_widget_destroy (dialog); return TRUE; } static gboolean ario_radio_launch_creation_dialog (ArioRadio * radio, ArioInternetRadio *new_internet_radio) { GtkWidget *dialog, *error_dialog; GtkWidget *grid; gint retval = GTK_RESPONSE_CANCEL; GtkWidget *vbox; GtkTreeIter iter; GtkWidget *combo_box; GtkCellRenderer *renderer; guint i; GtkWidget *label1; GtkListStore *list_store; /* Create dialog window */ dialog = gtk_dialog_new_with_buttons (_("Add a WebRadio"), NULL, GTK_DIALOG_DESTROY_WITH_PARENT, _("_Cancel"), GTK_RESPONSE_CANCEL, _("_OK"), GTK_RESPONSE_OK, NULL); gtk_dialog_set_default_response (GTK_DIALOG (dialog), GTK_RESPONSE_OK); /* Main vbox */ vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 5); gtk_container_set_border_width (GTK_CONTAINER (vbox), 10); /* Create model */ list_store = gtk_list_store_new (1, G_TYPE_STRING); /* Add tags to model */ for (i = 0; i < G_N_ELEMENTS (radio_adders); ++i) { gtk_list_store_append (list_store, &iter); gtk_list_store_set (list_store, &iter, 0, gettext (radio_adders[i].name), -1); } combo_box = gtk_combo_box_new_with_model (GTK_TREE_MODEL (list_store)); /* Create renderer */ renderer = gtk_cell_renderer_text_new (); gtk_cell_layout_clear (GTK_CELL_LAYOUT (combo_box)); gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (combo_box), renderer, TRUE); gtk_cell_layout_set_attributes (GTK_CELL_LAYOUT (combo_box), renderer, "text", 0, NULL); gtk_box_pack_start (GTK_BOX (vbox), combo_box, FALSE, FALSE, 0); /* Create the widgets */ label1 = gtk_label_new (_("Name :")); radio->priv->data_label = gtk_label_new (_("URL :")); radio->priv->name_entry = gtk_entry_new (); radio->priv->data_entry = gtk_entry_new (); gtk_entry_set_activates_default (GTK_ENTRY (radio->priv->name_entry), TRUE); gtk_entry_set_activates_default (GTK_ENTRY (radio->priv->data_entry), TRUE); /* Create grid */ grid = gtk_grid_new (); gtk_container_set_border_width (GTK_CONTAINER (grid), 12); /* Add widgets to grid */ gtk_grid_attach (GTK_GRID (grid), label1, 0, 0, 1, 1); gtk_grid_attach (GTK_GRID (grid), radio->priv->name_entry, 1, 0, 1, 1); gtk_grid_attach (GTK_GRID (grid), radio->priv->data_label, 0, 1, 1, 1); gtk_grid_attach (GTK_GRID (grid), radio->priv->data_entry, 1, 1, 1, 1); /* Add grid to vbox */ gtk_box_pack_start (GTK_BOX (vbox), grid, FALSE, FALSE, 0); gtk_container_add (GTK_CONTAINER (gtk_dialog_get_content_area (GTK_DIALOG (dialog))), vbox); /* Select first item */ g_signal_connect (combo_box, "changed", G_CALLBACK (ario_radio_adder_changed_cb), radio); gtk_tree_model_get_iter_first (GTK_TREE_MODEL (list_store), &iter); gtk_combo_box_set_active_iter (GTK_COMBO_BOX (combo_box), &iter); /* Run dialog */ gtk_widget_show_all (dialog); retval = gtk_dialog_run (GTK_DIALOG(dialog)); if (retval != GTK_RESPONSE_OK) { gtk_widget_destroy (dialog); return FALSE; } /* Get text boxes content */ new_internet_radio->name = g_strdup (gtk_entry_get_text (GTK_ENTRY(radio->priv->name_entry))); new_internet_radio->url = g_strdup_printf (radio_adders[gtk_combo_box_get_active (GTK_COMBO_BOX (combo_box))].url, gtk_entry_get_text (GTK_ENTRY(radio->priv->data_entry))); /* Detect bad values */ if (!new_internet_radio->name || !new_internet_radio->url || !strcmp(new_internet_radio->name, "") || !strcmp(new_internet_radio->url, "")) { error_dialog = gtk_message_dialog_new(NULL, GTK_DIALOG_MODAL, GTK_MESSAGE_ERROR, GTK_BUTTONS_OK, _("Bad parameters. You must specify a name and a URL for the radio.")); gtk_dialog_run(GTK_DIALOG(error_dialog)); gtk_widget_destroy(error_dialog); gtk_widget_destroy(dialog); return FALSE; } gtk_widget_destroy (dialog); return TRUE; } static void ario_radio_cmd_new_radio (GSimpleAction *action, GVariant *parameter, gpointer data) { ARIO_LOG_FUNCTION_START; ArioInternetRadio new_internet_radio; ArioRadio *radio = ARIO_RADIO (data); new_internet_radio.name = NULL; new_internet_radio.url = NULL; /* Laucn dialog */ if (ario_radio_launch_creation_dialog (radio, &new_internet_radio)) { /* Add radio to config */ ario_radio_add_new_radio(radio, &new_internet_radio); } g_free (new_internet_radio.name); g_free (new_internet_radio.url); } static void ario_radio_delete_radio (ArioInternetRadio *internet_radio, ArioRadio *radio) { ARIO_LOG_FUNCTION_START; xmlNodePtr cur, next_cur; xmlChar *xml_name; xmlChar *xml_url; /* Fill XML doc if not already done */ if (!ario_radio_fill_doc (radio)) return; cur = xmlDocGetRootElement (radio->priv->doc); for (cur = cur->children; cur; cur = next_cur) { next_cur = cur->next; /* For each "radio" entry */ if (!xmlStrcmp (cur->name, (const xmlChar *)"radio")){ xml_name = xmlNodeGetContent (cur); xml_url = xmlGetProp (cur, (const unsigned char *)"url"); if (!xmlStrcmp (xml_name, (const xmlChar *)internet_radio->name) && !xmlStrcmp (xml_url, (const xmlChar *)internet_radio->url)) { /* Radio found: remove it from XML file */ xmlUnlinkNode(cur); xmlFreeNode(cur); } xmlFree(xml_name); xmlFree(xml_url); } } /* We save the xml file */ xmlSaveFormatFile (ario_radio_get_xml_filename(), radio->priv->doc, TRUE); /* Update radios list */ ario_radio_fill_radios (radio); } static void ario_radio_cmd_delete_radios (GSimpleAction *action, GVariant *parameter, gpointer data) { ARIO_LOG_FUNCTION_START; GSList *internet_radios = NULL; GtkWidget *dialog; gint retval = GTK_RESPONSE_NO; ArioRadio *radio = ARIO_RADIO (data); /* Create confirmation dialog window */ dialog = gtk_message_dialog_new (NULL, GTK_DIALOG_MODAL, GTK_MESSAGE_QUESTION, GTK_BUTTONS_YES_NO, _("Are you sure you want to delete all the selected radios?")); /* Launch dialog */ retval = gtk_dialog_run (GTK_DIALOG(dialog)); gtk_widget_destroy (dialog); if (retval != GTK_RESPONSE_YES) return; /* Get list of selected radios */ gtk_tree_selection_selected_foreach (radio->priv->selection, radios_foreach2, &internet_radios); /* Delete each selected radio */ g_slist_foreach (internet_radios, (GFunc) ario_radio_delete_radio, radio); g_slist_foreach (internet_radios, (GFunc) ario_radio_free_internet_radio, NULL); g_slist_free (internet_radios); } static void ario_radio_modify_radio (ArioRadio *radio, ArioInternetRadio *old_internet_radio, ArioInternetRadio *new_internet_radio) { ARIO_LOG_FUNCTION_START; xmlNodePtr cur, next_cur; xmlChar *xml_name; xmlChar *xml_url; xmlChar *new_xml_name; /* Fill XML doc if not already done */ if (!ario_radio_fill_doc (radio)) return; cur = xmlDocGetRootElement (radio->priv->doc); for (cur = cur->children; cur; cur = next_cur) { next_cur = cur->next; /* For each "radio" entry */ if (!xmlStrcmp (cur->name, (const xmlChar *)"radio")){ xml_name = xmlNodeGetContent (cur); xml_url = xmlGetProp (cur, (const unsigned char *)"url"); if (!xmlStrcmp (xml_name, (const xmlChar *)old_internet_radio->name) && !xmlStrcmp (xml_url, (const xmlChar *)old_internet_radio->url)) { /* Radio found: Modify name and URL */ xmlSetProp (cur, (const xmlChar *)"url", (const xmlChar *) new_internet_radio->url); new_xml_name = xmlEncodeEntitiesReentrant (radio->priv->doc, (const xmlChar *) new_internet_radio->name); xmlNodeSetContent (cur, new_xml_name); xmlFree(new_xml_name); } xmlFree(xml_name); xmlFree(xml_url); } } /* We save the xml file */ xmlSaveFormatFile (ario_radio_get_xml_filename(), radio->priv->doc, TRUE); /* Update radios list */ ario_radio_fill_radios (radio); } static void ario_radio_edit_radio_properties (ArioRadio *radio, ArioInternetRadio *internet_radio) { ARIO_LOG_FUNCTION_START; ArioInternetRadio new_internet_radio; new_internet_radio.name = NULL; new_internet_radio.url = NULL; /* Launch dialog window */ if (ario_radio_launch_dialog (internet_radio, &new_internet_radio)) { /* Update radio config if needed */ ario_radio_modify_radio (radio, internet_radio, &new_internet_radio); } g_free (new_internet_radio.name); g_free (new_internet_radio.url); } static void ario_radio_cmd_radio_properties (GSimpleAction *action, GVariant *parameter, gpointer data) { ARIO_LOG_FUNCTION_START; GList* paths; GtkTreeIter iter; ArioInternetRadio *internet_radio; GtkTreePath *path; ArioRadio *radio = ARIO_RADIO (data); GtkTreeModel *tree_model = GTK_TREE_MODEL (radio->priv->model); /* Get path to first selected radio */ paths = gtk_tree_selection_get_selected_rows (radio->priv->selection, &tree_model); if (!paths) return; path = g_list_first(paths)->data; /* Get iter of first selected radio */ gtk_tree_model_get_iter (tree_model, &iter, path); g_list_foreach (paths, (GFunc) gtk_tree_path_free, NULL); g_list_free (paths); /* Create ArioInternetRadio with values of selected row */ internet_radio = (ArioInternetRadio *) g_malloc (sizeof (ArioInternetRadio));; gtk_tree_model_get (tree_model, &iter, RADIO_NAME_COLUMN, &internet_radio->name, -1); gtk_tree_model_get (tree_model, &iter, RADIO_URL_COLUMN, &internet_radio->url, -1); /* Edit radio properties */ ario_radio_edit_radio_properties (radio, internet_radio); ario_radio_free_internet_radio (internet_radio); } static void ario_radio_adder_changed_cb (GtkWidget *combo_box, ArioRadio *radio) { gtk_label_set_text (GTK_LABEL (radio->priv->data_label), radio_adders[gtk_combo_box_get_active (GTK_COMBO_BOX (combo_box))].data_label); } ario-1.6/plugins/radios/ario-radio.h0000644000175000017500000000346013226723434014405 00000000000000/* * Copyright (C) 2005 Marc Pavot * * 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, 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * */ #ifndef __ARIO_RADIO_H #define __ARIO_RADIO_H #include #include #include "widgets/ario-playlist.h" #include "sources/ario-source.h" G_BEGIN_DECLS #define TYPE_ARIO_RADIO (ario_radio_get_type ()) #define ARIO_RADIO(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), TYPE_ARIO_RADIO, ArioRadio)) #define ARIO_RADIO_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), TYPE_ARIO_RADIO, ArioRadioClass)) #define IS_ARIO_RADIO(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), TYPE_ARIO_RADIO)) #define IS_ARIO_RADIO_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), TYPE_ARIO_RADIO)) #define ARIO_RADIO_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), TYPE_ARIO_RADIO, ArioRadioClass)) typedef struct ArioRadioPrivate ArioRadioPrivate; typedef struct { ArioSource parent; ArioRadioPrivate *priv; } ArioRadio; typedef struct { ArioSourceClass parent; } ArioRadioClass; GType ario_radio_get_type (void) G_GNUC_CONST; GtkWidget* ario_radio_new (void); G_END_DECLS #endif /* __ARIO_RADIO_H */ ario-1.6/plugins/radios/ario-radios-menu.ui0000644000175000017500000000672313226723434015725 00000000000000
Add a new radio app.radio-new
Add to playlist app.radio-add-to-pl Add and play app.radio-add-play Replace in playlist app.radio-clear-add-play
Add a new radio app.radio-new Delete this radio app.radio-delete
Properties app.radio-properties
Add to playlist app.radio-add-to-pl Add and play app.radio-add-play Replace in playlist app.radio-clear-add-play
Add a new radio app.radio-new Delete this radio app.radio-delete
ario-1.6/plugins/radios/radios.ario-plugin.desktop.in0000644000175000017500000000035013226723434017707 00000000000000[Ario Plugin] Module=radios IAge=1 _Name=Web Radios _Description=Listen to webradios Icon=network-workgroup Authors=Marc Pavot Copyright=Copyright © 2008 Marc Pavot Website=http://ario-player.sourceforge.net ario-1.6/plugins/radios/Makefile.am0000644000175000017500000000226513226723434014244 00000000000000plugindir = $(PLUGINDIR) plugindatadir = $(PLUGIN_DATA_DIR) plugin_LTLIBRARIES = libradios.la libradios_la_SOURCES = \ ario-radio.c \ ario-radio.h \ ario-radios-plugin.c \ ario-radios-plugin.h libradios_la_LDFLAGS = $(PLUGIN_LIBTOOL_FLAGS) uixmldir = $(plugindatadir) uixml_DATA = ario-radios-menu.ui alldatadir = $(plugindatadir) alldata_DATA = radios.xml.default INCLUDES = \ -DLOCALE_DIR=\""$(prefix)/$(DATADIRNAME)/locale"\" \ $(DEPS_CFLAGS) \ -I$(top_srcdir) \ -I$(top_srcdir)/src \ -I$(top_srcdir)/src/lib \ -I$(top_srcdir)/src/plugins \ -I$(top_srcdir)/src/sources \ -I$(top_srcdir)/src/shell \ $(WARNINGS) plugin_in_files = radios.ario-plugin.desktop.in %.ario-plugin: %.ario-plugin.desktop.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*po) ; $(INTLTOOL_MERGE) $(top_srcdir)/po $< $@ -d -u -c $(top_builddir)/po/.intltool-merge-cache plugin_DATA = $(plugin_in_files:.ario-plugin.desktop.in=.ario-plugin) EXTRA_DIST = $(plugin_in_files)\ $(uixml_DATA)\ $(alldata_DATA) CLEANFILES = $(plugin_DATA) DISTCLEANFILES = $(plugin_DATA) ario-1.6/plugins/Makefile.am0000644000175000017500000000016113226723433012753 00000000000000SUBDIRS = \ filesystem\ information\ radios if USE_DBUS SUBDIRS += mmkeys endif ario-1.6/TODO0000644000175000017500000000000113226723436007722 00000000000000 ario-1.6/compile0000755000175000017500000001624513157351331010623 00000000000000#! /bin/sh # Wrapper for compilers which do not understand '-c -o'. scriptversion=2012-10-14.11; # UTC # Copyright (C) 1999-2014 Free Software Foundation, Inc. # Written by Tom Tromey . # # 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, 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, see . # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # This file is maintained in Automake, please report # bugs to or send patches to # . nl=' ' # We need space, tab and new line, in precisely that order. Quoting is # there to prevent tools from complaining about whitespace usage. IFS=" "" $nl" file_conv= # func_file_conv build_file lazy # Convert a $build file to $host form and store it in $file # Currently only supports Windows hosts. If the determined conversion # type is listed in (the comma separated) LAZY, no conversion will # take place. func_file_conv () { file=$1 case $file in / | /[!/]*) # absolute file, and not a UNC file if test -z "$file_conv"; then # lazily determine how to convert abs files case `uname -s` in MINGW*) file_conv=mingw ;; CYGWIN*) file_conv=cygwin ;; *) file_conv=wine ;; esac fi case $file_conv/,$2, in *,$file_conv,*) ;; mingw/*) file=`cmd //C echo "$file " | sed -e 's/"\(.*\) " *$/\1/'` ;; cygwin/*) file=`cygpath -m "$file" || echo "$file"` ;; wine/*) file=`winepath -w "$file" || echo "$file"` ;; esac ;; esac } # func_cl_dashL linkdir # Make cl look for libraries in LINKDIR func_cl_dashL () { func_file_conv "$1" if test -z "$lib_path"; then lib_path=$file else lib_path="$lib_path;$file" fi linker_opts="$linker_opts -LIBPATH:$file" } # func_cl_dashl library # Do a library search-path lookup for cl func_cl_dashl () { lib=$1 found=no save_IFS=$IFS IFS=';' for dir in $lib_path $LIB do IFS=$save_IFS if $shared && test -f "$dir/$lib.dll.lib"; then found=yes lib=$dir/$lib.dll.lib break fi if test -f "$dir/$lib.lib"; then found=yes lib=$dir/$lib.lib break fi if test -f "$dir/lib$lib.a"; then found=yes lib=$dir/lib$lib.a break fi done IFS=$save_IFS if test "$found" != yes; then lib=$lib.lib fi } # func_cl_wrapper cl arg... # Adjust compile command to suit cl func_cl_wrapper () { # Assume a capable shell lib_path= shared=: linker_opts= for arg do if test -n "$eat"; then eat= else case $1 in -o) # configure might choose to run compile as 'compile cc -o foo foo.c'. eat=1 case $2 in *.o | *.[oO][bB][jJ]) func_file_conv "$2" set x "$@" -Fo"$file" shift ;; *) func_file_conv "$2" set x "$@" -Fe"$file" shift ;; esac ;; -I) eat=1 func_file_conv "$2" mingw set x "$@" -I"$file" shift ;; -I*) func_file_conv "${1#-I}" mingw set x "$@" -I"$file" shift ;; -l) eat=1 func_cl_dashl "$2" set x "$@" "$lib" shift ;; -l*) func_cl_dashl "${1#-l}" set x "$@" "$lib" shift ;; -L) eat=1 func_cl_dashL "$2" ;; -L*) func_cl_dashL "${1#-L}" ;; -static) shared=false ;; -Wl,*) arg=${1#-Wl,} save_ifs="$IFS"; IFS=',' for flag in $arg; do IFS="$save_ifs" linker_opts="$linker_opts $flag" done IFS="$save_ifs" ;; -Xlinker) eat=1 linker_opts="$linker_opts $2" ;; -*) set x "$@" "$1" shift ;; *.cc | *.CC | *.cxx | *.CXX | *.[cC]++) func_file_conv "$1" set x "$@" -Tp"$file" shift ;; *.c | *.cpp | *.CPP | *.lib | *.LIB | *.Lib | *.OBJ | *.obj | *.[oO]) func_file_conv "$1" mingw set x "$@" "$file" shift ;; *) set x "$@" "$1" shift ;; esac fi shift done if test -n "$linker_opts"; then linker_opts="-link$linker_opts" fi exec "$@" $linker_opts exit 1 } eat= case $1 in '') echo "$0: No command. Try '$0 --help' for more information." 1>&2 exit 1; ;; -h | --h*) cat <<\EOF Usage: compile [--help] [--version] PROGRAM [ARGS] Wrapper for compilers which do not understand '-c -o'. Remove '-o dest.o' from ARGS, run PROGRAM with the remaining arguments, and rename the output as expected. If you are trying to build a whole package this is not the right script to run: please start by reading the file 'INSTALL'. Report bugs to . EOF exit $? ;; -v | --v*) echo "compile $scriptversion" exit $? ;; cl | *[/\\]cl | cl.exe | *[/\\]cl.exe ) func_cl_wrapper "$@" # Doesn't return... ;; esac ofile= cfile= for arg do if test -n "$eat"; then eat= else case $1 in -o) # configure might choose to run compile as 'compile cc -o foo foo.c'. # So we strip '-o arg' only if arg is an object. eat=1 case $2 in *.o | *.obj) ofile=$2 ;; *) set x "$@" -o "$2" shift ;; esac ;; *.c) cfile=$1 set x "$@" "$1" shift ;; *) set x "$@" "$1" shift ;; esac fi shift done if test -z "$ofile" || test -z "$cfile"; then # If no '-o' option was seen then we might have been invoked from a # pattern rule where we don't need one. That is ok -- this is a # normal compilation that the losing compiler can handle. If no # '.c' file was seen then we are probably linking. That is also # ok. exec "$@" fi # Name of file we expect compiler to create. cofile=`echo "$cfile" | sed 's|^.*[\\/]||; s|^[a-zA-Z]:||; s/\.c$/.o/'` # Create the lock directory. # Note: use '[/\\:.-]' here to ensure that we don't use the same name # that we are using for the .o file. Also, base the name on the expected # object file name, since that is what matters with a parallel build. lockdir=`echo "$cofile" | sed -e 's|[/\\:.-]|_|g'`.d while true; do if mkdir "$lockdir" >/dev/null 2>&1; then break fi sleep 1 done # FIXME: race condition here if user kills between mkdir and trap. trap "rmdir '$lockdir'; exit 1" 1 2 15 # Run the compile. "$@" ret=$? if test -f "$cofile"; then test "$cofile" = "$ofile" || mv "$cofile" "$ofile" elif test -f "${cofile}bj"; then test "${cofile}bj" = "$ofile" || mv "${cofile}bj" "$ofile" fi rmdir "$lockdir" exit $ret # Local Variables: # mode: shell-script # sh-indentation: 2 # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC" # time-stamp-end: "; # UTC" # End: ario-1.6/Makefile.in0000644000175000017500000006551013226745576011330 00000000000000# Makefile.in generated by automake 1.15.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2017 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__is_gnu_make = { \ if test -z '$(MAKELEVEL)'; then \ false; \ elif test -n '$(MAKE_HOST)'; then \ true; \ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ true; \ else \ false; \ fi; \ } am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = . ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) DIST_COMMON = $(srcdir)/Makefile.am $(top_srcdir)/configure \ $(am__configure_deps) $(am__DIST_COMMON) am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ configure.lineno config.status.lineno mkinstalldirs = $(install_sh) -d CONFIG_HEADER = config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ ctags-recursive dvi-recursive html-recursive info-recursive \ install-data-recursive install-dvi-recursive \ install-exec-recursive install-html-recursive \ install-info-recursive install-pdf-recursive \ install-ps-recursive install-recursive installcheck-recursive \ installdirs-recursive pdf-recursive ps-recursive \ tags-recursive uninstall-recursive am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive am__recursive_targets = \ $(RECURSIVE_TARGETS) \ $(RECURSIVE_CLEAN_TARGETS) \ $(am__extra_recursive_targets) AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ cscope distdir dist dist-all distcheck am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) \ $(LISP)config.h.in # Read a list of newline-separated strings from the standard input, # and print each of them once, without duplicates. Input order is # *not* preserved. am__uniquify_input = $(AWK) '\ BEGIN { nonempty = 0; } \ { items[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in items) print i; }; } \ ' # Make sure the list of sources is unique. This is necessary because, # e.g., the same source file might be shared among _SOURCES variables # for different programs/libraries. am__define_uniq_tagged_files = \ list='$(am__tagged_files)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags CSCOPE = cscope DIST_SUBDIRS = data plugins po src bindings am__DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/config.h.in AUTHORS \ COPYING ChangeLog INSTALL NEWS README TODO compile \ config.guess config.sub depcomp install-sh ltmain.sh missing DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) distdir = $(PACKAGE)-$(VERSION) top_distdir = $(distdir) am__remove_distdir = \ if test -d "$(distdir)"; then \ find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \ && rm -rf "$(distdir)" \ || { sleep 5 && rm -rf "$(distdir)"; }; \ else :; fi am__post_remove_distdir = $(am__remove_distdir) am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_rest='s,^[^/]*/*,,'; \ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ sed_butlast='s,/*[^/]*$$,,'; \ while test -n "$$dir1"; do \ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ if test "$$first" != "."; then \ if test "$$first" = ".."; then \ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ else \ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ if test "$$first2" = "$$first"; then \ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ else \ dir2="../$$dir2"; \ fi; \ dir0="$$dir0"/"$$first"; \ fi; \ fi; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" DIST_ARCHIVES = $(distdir).tar.gz GZIP_ENV = --best DIST_TARGETS = dist-gzip distuninstallcheck_listfiles = find . -type f -print am__distuninstallcheck_listfiles = $(distuninstallcheck_listfiles) \ | sed 's|^\./|$(prefix)/|' | grep -v '$(infodir)/dir$$' distcleancheck_listfiles = find . -type f -print ACLOCAL = @ACLOCAL@ ALL_LINGUAS = @ALL_LINGUAS@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AR_FLAGS = @AR_FLAGS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AVAHI_CFLAGS = @AVAHI_CFLAGS@ AVAHI_LIBS = @AVAHI_LIBS@ AWK = @AWK@ CATALOGS = @CATALOGS@ CATOBJEXT = @CATOBJEXT@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIRNAME = @DATADIRNAME@ DBUS_CFLAGS = @DBUS_CFLAGS@ DBUS_GLIB_BIN = @DBUS_GLIB_BIN@ DBUS_LIBS = @DBUS_LIBS@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DEPS_CFLAGS = @DEPS_CFLAGS@ DEPS_LIBS = @DEPS_LIBS@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ GLIB_MKENUMS = @GLIB_MKENUMS@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INSTOBJEXT = @INSTOBJEXT@ INTLLIBS = @INTLLIBS@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@ INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@ INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBMPDCLIENT2_CFLAGS = @LIBMPDCLIENT2_CFLAGS@ LIBMPDCLIENT2_LIBS = @LIBMPDCLIENT2_LIBS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MKINSTALLDIRS = @MKINSTALLDIRS@ MSGFMT = @MSGFMT@ MSGFMT_OPTS = @MSGFMT_OPTS@ MSGMERGE = @MSGMERGE@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ PLUGINDIR = @PLUGINDIR@ PLUGIN_DATA_DIR = @PLUGIN_DATA_DIR@ POFILES = @POFILES@ POSUB = @POSUB@ PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ PYGTK_CFLAGS = @PYGTK_CFLAGS@ PYGTK_CODEGEN = @PYGTK_CODEGEN@ PYGTK_DEFSDIR = @PYGTK_DEFSDIR@ PYGTK_H2DEF = @PYGTK_H2DEF@ PYGTK_LIBS = @PYGTK_LIBS@ PYTHON = @PYTHON@ PYTHON_CFLAGS = @PYTHON_CFLAGS@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_EXTRA_LIBS = @PYTHON_EXTRA_LIBS@ PYTHON_LIBS = @PYTHON_LIBS@ PYTHON_LIB_LOC = @PYTHON_LIB_LOC@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ PYTHON_PREFIX = @PYTHON_PREFIX@ PYTHON_VERSION = @PYTHON_VERSION@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ TAGLIB_CFLAGS = @TAGLIB_CFLAGS@ TAGLIB_LIBS = @TAGLIB_LIBS@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ WARNINGS = @WARNINGS@ XGETTEXT = @XGETTEXT@ XMMS2_CFLAGS = @XMMS2_CFLAGS@ XMMS2_LIBS = @XMMS2_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ intltool__v_merge_options_ = @intltool__v_merge_options_@ intltool__v_merge_options_0 = @intltool__v_merge_options_0@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pkgpyexecdir = @pkgpyexecdir@ pkgpythondir = @pkgpythondir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ pyexecdir = @pyexecdir@ pythondir = @pythondir@ runstatedir = @runstatedir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ AUTOMAKE_OPTIONS = foreign 1.6 @ENABLE_PYTHON_FALSE@SUBDIRS = data plugins po src @ENABLE_PYTHON_TRUE@SUBDIRS = bindings data plugins po src all: config.h $(MAKE) $(AM_MAKEFLAGS) all-recursive .SUFFIXES: am--refresh: Makefile @: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ echo ' cd $(srcdir) && $(AUTOMAKE) --foreign'; \ $(am__cd) $(srcdir) && $(AUTOMAKE) --foreign \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ echo ' $(SHELL) ./config.status'; \ $(SHELL) ./config.status;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) $(SHELL) ./config.status --recheck $(top_srcdir)/configure: $(am__configure_deps) $(am__cd) $(srcdir) && $(AUTOCONF) $(ACLOCAL_M4): $(am__aclocal_m4_deps) $(am__cd) $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) $(am__aclocal_m4_deps): config.h: stamp-h1 @test -f $@ || rm -f stamp-h1 @test -f $@ || $(MAKE) $(AM_MAKEFLAGS) stamp-h1 stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status @rm -f stamp-h1 cd $(top_builddir) && $(SHELL) ./config.status config.h $(srcdir)/config.h.in: $(am__configure_deps) ($(am__cd) $(top_srcdir) && $(AUTOHEADER)) rm -f stamp-h1 touch $@ distclean-hdr: -rm -f config.h stamp-h1 mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs distclean-libtool: -rm -f libtool config.lt # This directory's subdirectories are mostly independent; you can cd # into them and run 'make' without going through this Makefile. # To change the values of 'make' variables: instead of editing Makefiles, # (1) if the variable is set in 'config.status', edit 'config.status' # (which will cause the Makefiles to be regenerated when you run 'make'); # (2) otherwise, pass the desired values on the 'make' command line. $(am__recursive_targets): @fail=; \ if $(am__make_keepgoing); then \ failcom='fail=yes'; \ else \ failcom='exit 1'; \ fi; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" ID: $(am__tagged_files) $(am__define_uniq_tagged_files); mkid -fID $$unique tags: tags-recursive TAGS: tags tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: ctags-recursive CTAGS: ctags ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" cscope: cscope.files test ! -s cscope.files \ || $(CSCOPE) -b -q $(AM_CSCOPEFLAGS) $(CSCOPEFLAGS) -i cscope.files $(CSCOPE_ARGS) clean-cscope: -rm -f cscope.files cscope.files: clean-cscope cscopelist cscopelist: cscopelist-recursive cscopelist-am: $(am__tagged_files) list='$(am__tagged_files)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ esac; \ for i in $$list; do \ if test -f "$$i"; then \ echo "$(subdir)/$$i"; \ else \ echo "$$sdir/$$i"; \ fi; \ done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags -rm -f cscope.out cscope.in.out cscope.po.out cscope.files distdir: $(DISTFILES) $(am__remove_distdir) test -d "$(distdir)" || mkdir "$(distdir)" @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ $(am__make_dryrun) \ || test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done -test -n "$(am__skip_mode_fix)" \ || find "$(distdir)" -type d ! -perm -755 \ -exec chmod u+rwx,go+rx {} \; -o \ ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \ ! -type d ! -perm -400 -exec chmod a+r {} \; -o \ ! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \ || chmod -R a+r "$(distdir)" dist-gzip: distdir tardir=$(distdir) && $(am__tar) | eval GZIP= gzip $(GZIP_ENV) -c >$(distdir).tar.gz $(am__post_remove_distdir) dist-bzip2: distdir tardir=$(distdir) && $(am__tar) | BZIP2=$${BZIP2--9} bzip2 -c >$(distdir).tar.bz2 $(am__post_remove_distdir) dist-lzip: distdir tardir=$(distdir) && $(am__tar) | lzip -c $${LZIP_OPT--9} >$(distdir).tar.lz $(am__post_remove_distdir) dist-xz: distdir tardir=$(distdir) && $(am__tar) | XZ_OPT=$${XZ_OPT--e} xz -c >$(distdir).tar.xz $(am__post_remove_distdir) dist-tarZ: distdir @echo WARNING: "Support for distribution archives compressed with" \ "legacy program 'compress' is deprecated." >&2 @echo WARNING: "It will be removed altogether in Automake 2.0" >&2 tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z $(am__post_remove_distdir) dist-shar: distdir @echo WARNING: "Support for shar distribution archives is" \ "deprecated." >&2 @echo WARNING: "It will be removed altogether in Automake 2.0" >&2 shar $(distdir) | eval GZIP= gzip $(GZIP_ENV) -c >$(distdir).shar.gz $(am__post_remove_distdir) dist-zip: distdir -rm -f $(distdir).zip zip -rq $(distdir).zip $(distdir) $(am__post_remove_distdir) dist dist-all: $(MAKE) $(AM_MAKEFLAGS) $(DIST_TARGETS) am__post_remove_distdir='@:' $(am__post_remove_distdir) # This target untars the dist file and tries a VPATH configuration. Then # it guarantees that the distribution is self-contained by making another # tarfile. distcheck: dist case '$(DIST_ARCHIVES)' in \ *.tar.gz*) \ eval GZIP= gzip $(GZIP_ENV) -dc $(distdir).tar.gz | $(am__untar) ;;\ *.tar.bz2*) \ bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\ *.tar.lz*) \ lzip -dc $(distdir).tar.lz | $(am__untar) ;;\ *.tar.xz*) \ xz -dc $(distdir).tar.xz | $(am__untar) ;;\ *.tar.Z*) \ uncompress -c $(distdir).tar.Z | $(am__untar) ;;\ *.shar.gz*) \ eval GZIP= gzip $(GZIP_ENV) -dc $(distdir).shar.gz | unshar ;;\ *.zip*) \ unzip $(distdir).zip ;;\ esac chmod -R a-w $(distdir) chmod u+w $(distdir) mkdir $(distdir)/_build $(distdir)/_build/sub $(distdir)/_inst chmod a-w $(distdir) test -d $(distdir)/_build || exit 0; \ dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \ && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \ && am__cwd=`pwd` \ && $(am__cd) $(distdir)/_build/sub \ && ../../configure \ $(AM_DISTCHECK_CONFIGURE_FLAGS) \ $(DISTCHECK_CONFIGURE_FLAGS) \ --srcdir=../.. --prefix="$$dc_install_base" \ && $(MAKE) $(AM_MAKEFLAGS) \ && $(MAKE) $(AM_MAKEFLAGS) dvi \ && $(MAKE) $(AM_MAKEFLAGS) check \ && $(MAKE) $(AM_MAKEFLAGS) install \ && $(MAKE) $(AM_MAKEFLAGS) installcheck \ && $(MAKE) $(AM_MAKEFLAGS) uninstall \ && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \ distuninstallcheck \ && chmod -R a-w "$$dc_install_base" \ && ({ \ (cd ../.. && umask 077 && mkdir "$$dc_destdir") \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \ distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \ } || { rm -rf "$$dc_destdir"; exit 1; }) \ && rm -rf "$$dc_destdir" \ && $(MAKE) $(AM_MAKEFLAGS) dist \ && rm -rf $(DIST_ARCHIVES) \ && $(MAKE) $(AM_MAKEFLAGS) distcleancheck \ && cd "$$am__cwd" \ || exit 1 $(am__post_remove_distdir) @(echo "$(distdir) archives ready for distribution: "; \ list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \ sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x' distuninstallcheck: @test -n '$(distuninstallcheck_dir)' || { \ echo 'ERROR: trying to run $@ with an empty' \ '$$(distuninstallcheck_dir)' >&2; \ exit 1; \ }; \ $(am__cd) '$(distuninstallcheck_dir)' || { \ echo 'ERROR: cannot chdir into $(distuninstallcheck_dir)' >&2; \ exit 1; \ }; \ test `$(am__distuninstallcheck_listfiles) | wc -l` -eq 0 \ || { echo "ERROR: files left after uninstall:" ; \ if test -n "$(DESTDIR)"; then \ echo " (check DESTDIR support)"; \ fi ; \ $(distuninstallcheck_listfiles) ; \ exit 1; } >&2 distcleancheck: distclean @if test '$(srcdir)' = . ; then \ echo "ERROR: distcleancheck can only run from a VPATH build" ; \ exit 1 ; \ fi @test `$(distcleancheck_listfiles) | wc -l` -eq 0 \ || { echo "ERROR: files left in build directory after distclean:" ; \ $(distcleancheck_listfiles) ; \ exit 1; } >&2 check-am: all-am check: check-recursive all-am: Makefile config.h installdirs: installdirs-recursive installdirs-am: install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-recursive -rm -f $(am__CONFIG_DISTCLEAN_FILES) -rm -f Makefile distclean-am: clean-am distclean-generic distclean-hdr \ distclean-libtool distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f $(am__CONFIG_DISTCLEAN_FILES) -rm -rf $(top_srcdir)/autom4te.cache -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: .MAKE: $(am__recursive_targets) all install-am install-strip .PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am \ am--refresh check check-am clean clean-cscope clean-generic \ clean-libtool cscope cscopelist-am ctags ctags-am dist \ dist-all dist-bzip2 dist-gzip dist-lzip dist-shar dist-tarZ \ dist-xz dist-zip distcheck distclean distclean-generic \ distclean-hdr distclean-libtool distclean-tags distcleancheck \ distdir distuninstallcheck dvi dvi-am html html-am info \ info-am install install-am install-data install-data-am \ install-dvi install-dvi-am install-exec install-exec-am \ install-html install-html-am install-info install-info-am \ install-man install-pdf install-pdf-am install-ps \ install-ps-am install-strip installcheck installcheck-am \ installdirs installdirs-am maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic \ mostlyclean-libtool pdf pdf-am ps ps-am tags tags-am uninstall \ uninstall-am .PRECIOUS: Makefile # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: ario-1.6/NEWS0000644000175000017500000000000013226723435007727 00000000000000ario-1.6/install-sh0000755000175000017500000003546313157351331011254 00000000000000#!/bin/sh # install - install a program, script, or datafile scriptversion=2014-09-12.12; # UTC # This originates from X11R5 (mit/util/scripts/install.sh), which was # later released in X11R6 (xc/config/util/install.sh) with the # following copyright and license. # # Copyright (C) 1994 X Consortium # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to # deal in the Software without restriction, including without limitation the # rights to use, copy, modify, merge, publish, distribute, sublicense, and/or # sell copies of the Software, and to permit persons to whom the Software is # furnished to do so, subject to the following conditions: # # The above copyright notice and this permission notice shall be included in # all copies or substantial portions of the Software. # # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE # X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN # AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC- # TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. # # Except as contained in this notice, the name of the X Consortium shall not # be used in advertising or otherwise to promote the sale, use or other deal- # ings in this Software without prior written authorization from the X Consor- # tium. # # # FSF changes to this file are in the public domain. # # Calling this script install-sh is preferred over install.sh, to prevent # 'make' implicit rules from creating a file called install from it # when there is no Makefile. # # This script is compatible with the BSD install script, but was written # from scratch. tab=' ' nl=' ' IFS=" $tab$nl" # Set DOITPROG to "echo" to test this script. doit=${DOITPROG-} doit_exec=${doit:-exec} # Put in absolute file names if you don't have them in your path; # or use environment vars. chgrpprog=${CHGRPPROG-chgrp} chmodprog=${CHMODPROG-chmod} chownprog=${CHOWNPROG-chown} cmpprog=${CMPPROG-cmp} cpprog=${CPPROG-cp} mkdirprog=${MKDIRPROG-mkdir} mvprog=${MVPROG-mv} rmprog=${RMPROG-rm} stripprog=${STRIPPROG-strip} posix_mkdir= # Desired mode of installed file. mode=0755 chgrpcmd= chmodcmd=$chmodprog chowncmd= mvcmd=$mvprog rmcmd="$rmprog -f" stripcmd= src= dst= dir_arg= dst_arg= copy_on_change=false is_target_a_directory=possibly usage="\ Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE or: $0 [OPTION]... SRCFILES... DIRECTORY or: $0 [OPTION]... -t DIRECTORY SRCFILES... or: $0 [OPTION]... -d DIRECTORIES... In the 1st form, copy SRCFILE to DSTFILE. In the 2nd and 3rd, copy all SRCFILES to DIRECTORY. In the 4th, create DIRECTORIES. Options: --help display this help and exit. --version display version info and exit. -c (ignored) -C install only if different (preserve the last data modification time) -d create directories instead of installing files. -g GROUP $chgrpprog installed files to GROUP. -m MODE $chmodprog installed files to MODE. -o USER $chownprog installed files to USER. -s $stripprog installed files. -t DIRECTORY install into DIRECTORY. -T report an error if DSTFILE is a directory. Environment variables override the default commands: CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG RMPROG STRIPPROG " while test $# -ne 0; do case $1 in -c) ;; -C) copy_on_change=true;; -d) dir_arg=true;; -g) chgrpcmd="$chgrpprog $2" shift;; --help) echo "$usage"; exit $?;; -m) mode=$2 case $mode in *' '* | *"$tab"* | *"$nl"* | *'*'* | *'?'* | *'['*) echo "$0: invalid mode: $mode" >&2 exit 1;; esac shift;; -o) chowncmd="$chownprog $2" shift;; -s) stripcmd=$stripprog;; -t) is_target_a_directory=always dst_arg=$2 # Protect names problematic for 'test' and other utilities. case $dst_arg in -* | [=\(\)!]) dst_arg=./$dst_arg;; esac shift;; -T) is_target_a_directory=never;; --version) echo "$0 $scriptversion"; exit $?;; --) shift break;; -*) echo "$0: invalid option: $1" >&2 exit 1;; *) break;; esac shift done # We allow the use of options -d and -T together, by making -d # take the precedence; this is for compatibility with GNU install. if test -n "$dir_arg"; then if test -n "$dst_arg"; then echo "$0: target directory not allowed when installing a directory." >&2 exit 1 fi fi if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then # When -d is used, all remaining arguments are directories to create. # When -t is used, the destination is already specified. # Otherwise, the last argument is the destination. Remove it from $@. for arg do if test -n "$dst_arg"; then # $@ is not empty: it contains at least $arg. set fnord "$@" "$dst_arg" shift # fnord fi shift # arg dst_arg=$arg # Protect names problematic for 'test' and other utilities. case $dst_arg in -* | [=\(\)!]) dst_arg=./$dst_arg;; esac done fi if test $# -eq 0; then if test -z "$dir_arg"; then echo "$0: no input file specified." >&2 exit 1 fi # It's OK to call 'install-sh -d' without argument. # This can happen when creating conditional directories. exit 0 fi if test -z "$dir_arg"; then if test $# -gt 1 || test "$is_target_a_directory" = always; then if test ! -d "$dst_arg"; then echo "$0: $dst_arg: Is not a directory." >&2 exit 1 fi fi fi if test -z "$dir_arg"; then do_exit='(exit $ret); exit $ret' trap "ret=129; $do_exit" 1 trap "ret=130; $do_exit" 2 trap "ret=141; $do_exit" 13 trap "ret=143; $do_exit" 15 # Set umask so as not to create temps with too-generous modes. # However, 'strip' requires both read and write access to temps. case $mode in # Optimize common cases. *644) cp_umask=133;; *755) cp_umask=22;; *[0-7]) if test -z "$stripcmd"; then u_plus_rw= else u_plus_rw='% 200' fi cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;; *) if test -z "$stripcmd"; then u_plus_rw= else u_plus_rw=,u+rw fi cp_umask=$mode$u_plus_rw;; esac fi for src do # Protect names problematic for 'test' and other utilities. case $src in -* | [=\(\)!]) src=./$src;; esac if test -n "$dir_arg"; then dst=$src dstdir=$dst test -d "$dstdir" dstdir_status=$? else # Waiting for this to be detected by the "$cpprog $src $dsttmp" command # might cause directories to be created, which would be especially bad # if $src (and thus $dsttmp) contains '*'. if test ! -f "$src" && test ! -d "$src"; then echo "$0: $src does not exist." >&2 exit 1 fi if test -z "$dst_arg"; then echo "$0: no destination specified." >&2 exit 1 fi dst=$dst_arg # If destination is a directory, append the input filename; won't work # if double slashes aren't ignored. if test -d "$dst"; then if test "$is_target_a_directory" = never; then echo "$0: $dst_arg: Is a directory" >&2 exit 1 fi dstdir=$dst dst=$dstdir/`basename "$src"` dstdir_status=0 else dstdir=`dirname "$dst"` test -d "$dstdir" dstdir_status=$? fi fi obsolete_mkdir_used=false if test $dstdir_status != 0; then case $posix_mkdir in '') # Create intermediate dirs using mode 755 as modified by the umask. # This is like FreeBSD 'install' as of 1997-10-28. umask=`umask` case $stripcmd.$umask in # Optimize common cases. *[2367][2367]) mkdir_umask=$umask;; .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;; *[0-7]) mkdir_umask=`expr $umask + 22 \ - $umask % 100 % 40 + $umask % 20 \ - $umask % 10 % 4 + $umask % 2 `;; *) mkdir_umask=$umask,go-w;; esac # With -d, create the new directory with the user-specified mode. # Otherwise, rely on $mkdir_umask. if test -n "$dir_arg"; then mkdir_mode=-m$mode else mkdir_mode= fi posix_mkdir=false case $umask in *[123567][0-7][0-7]) # POSIX mkdir -p sets u+wx bits regardless of umask, which # is incompatible with FreeBSD 'install' when (umask & 300) != 0. ;; *) # $RANDOM is not portable (e.g. dash); use it when possible to # lower collision chance tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$ trap 'ret=$?; rmdir "$tmpdir/a/b" "$tmpdir/a" "$tmpdir" 2>/dev/null; exit $ret' 0 # As "mkdir -p" follows symlinks and we work in /tmp possibly; so # create the $tmpdir first (and fail if unsuccessful) to make sure # that nobody tries to guess the $tmpdir name. if (umask $mkdir_umask && $mkdirprog $mkdir_mode "$tmpdir" && exec $mkdirprog $mkdir_mode -p -- "$tmpdir/a/b") >/dev/null 2>&1 then if test -z "$dir_arg" || { # Check for POSIX incompatibilities with -m. # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or # other-writable bit of parent directory when it shouldn't. # FreeBSD 6.1 mkdir -m -p sets mode of existing directory. test_tmpdir="$tmpdir/a" ls_ld_tmpdir=`ls -ld "$test_tmpdir"` case $ls_ld_tmpdir in d????-?r-*) different_mode=700;; d????-?--*) different_mode=755;; *) false;; esac && $mkdirprog -m$different_mode -p -- "$test_tmpdir" && { ls_ld_tmpdir_1=`ls -ld "$test_tmpdir"` test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1" } } then posix_mkdir=: fi rmdir "$tmpdir/a/b" "$tmpdir/a" "$tmpdir" else # Remove any dirs left behind by ancient mkdir implementations. rmdir ./$mkdir_mode ./-p ./-- "$tmpdir" 2>/dev/null fi trap '' 0;; esac;; esac if $posix_mkdir && ( umask $mkdir_umask && $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir" ) then : else # The umask is ridiculous, or mkdir does not conform to POSIX, # or it failed possibly due to a race condition. Create the # directory the slow way, step by step, checking for races as we go. case $dstdir in /*) prefix='/';; [-=\(\)!]*) prefix='./';; *) prefix='';; esac oIFS=$IFS IFS=/ set -f set fnord $dstdir shift set +f IFS=$oIFS prefixes= for d do test X"$d" = X && continue prefix=$prefix$d if test -d "$prefix"; then prefixes= else if $posix_mkdir; then (umask=$mkdir_umask && $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break # Don't fail if two instances are running concurrently. test -d "$prefix" || exit 1 else case $prefix in *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;; *) qprefix=$prefix;; esac prefixes="$prefixes '$qprefix'" fi fi prefix=$prefix/ done if test -n "$prefixes"; then # Don't fail if two instances are running concurrently. (umask $mkdir_umask && eval "\$doit_exec \$mkdirprog $prefixes") || test -d "$dstdir" || exit 1 obsolete_mkdir_used=true fi fi fi if test -n "$dir_arg"; then { test -z "$chowncmd" || $doit $chowncmd "$dst"; } && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } && { test "$obsolete_mkdir_used$chowncmd$chgrpcmd" = false || test -z "$chmodcmd" || $doit $chmodcmd $mode "$dst"; } || exit 1 else # Make a couple of temp file names in the proper directory. dsttmp=$dstdir/_inst.$$_ rmtmp=$dstdir/_rm.$$_ # Trap to clean up those temp files at exit. trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0 # Copy the file name to the temp name. (umask $cp_umask && $doit_exec $cpprog "$src" "$dsttmp") && # and set any options; do chmod last to preserve setuid bits. # # If any of these fail, we abort the whole thing. If we want to # ignore errors from any of these, just make sure not to ignore # errors from the above "$doit $cpprog $src $dsttmp" command. # { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } && { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } && { test -z "$chmodcmd" || $doit $chmodcmd $mode "$dsttmp"; } && # If -C, don't bother to copy if it wouldn't change the file. if $copy_on_change && old=`LC_ALL=C ls -dlL "$dst" 2>/dev/null` && new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` && set -f && set X $old && old=:$2:$4:$5:$6 && set X $new && new=:$2:$4:$5:$6 && set +f && test "$old" = "$new" && $cmpprog "$dst" "$dsttmp" >/dev/null 2>&1 then rm -f "$dsttmp" else # Rename the file to the real destination. $doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null || # The rename failed, perhaps because mv can't rename something else # to itself, or perhaps because mv is so ancient that it does not # support -f. { # Now remove or move aside any old file at destination location. # We try this two ways since rm can't unlink itself on some # systems and the destination file might be busy for other # reasons. In this case, the final cleanup might fail but the new # file should still install successfully. { test ! -f "$dst" || $doit $rmcmd -f "$dst" 2>/dev/null || { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null && { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; } } || { echo "$0: cannot unlink or rename $dst" >&2 (exit 1); exit 1 } } && # Now rename the file to the real destination. $doit $mvcmd "$dsttmp" "$dst" } fi || exit 1 trap '' 0 fi done # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC" # time-stamp-end: "; # UTC" # End: ario-1.6/config.guess0000755000175000017500000012544713215233062011565 00000000000000#! /bin/sh # Attempt to guess a canonical system name. # Copyright 1992-2017 Free Software Foundation, Inc. timestamp='2017-11-07' # This file 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. # # 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, see . # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that # program. This Exception is an additional permission under section 7 # of the GNU General Public License, version 3 ("GPLv3"). # # Originally written by Per Bothner; maintained since 2000 by Ben Elliston. # # You can get the latest version of this script from: # https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess # # Please send patches to . me=`echo "$0" | sed -e 's,.*/,,'` usage="\ Usage: $0 [OPTION] Output the configuration name of the system \`$me' is run on. Options: -h, --help print this help, then exit -t, --time-stamp print date of last modification, then exit -v, --version print version number, then exit Report bugs and patches to ." version="\ GNU config.guess ($timestamp) Originally written by Per Bothner. Copyright 1992-2017 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." help=" Try \`$me --help' for more information." # Parse command line while test $# -gt 0 ; do case $1 in --time-stamp | --time* | -t ) echo "$timestamp" ; exit ;; --version | -v ) echo "$version" ; exit ;; --help | --h* | -h ) echo "$usage"; exit ;; -- ) # Stop option processing shift; break ;; - ) # Use stdin as input. break ;; -* ) echo "$me: invalid option $1$help" >&2 exit 1 ;; * ) break ;; esac done if test $# != 0; then echo "$me: too many arguments$help" >&2 exit 1 fi trap 'exit 1' 1 2 15 # CC_FOR_BUILD -- compiler used by this script. Note that the use of a # compiler to aid in system detection is discouraged as it requires # temporary files to be created and, as you can see below, it is a # headache to deal with in a portable fashion. # Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still # use `HOST_CC' if defined, but it is deprecated. # Portable tmp directory creation inspired by the Autoconf team. set_cc_for_build=' trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ; trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ; : ${TMPDIR=/tmp} ; { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } || { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } || { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ; dummy=$tmp/dummy ; tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ; case $CC_FOR_BUILD,$HOST_CC,$CC in ,,) echo "int x;" > $dummy.c ; for c in cc gcc c89 c99 ; do if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then CC_FOR_BUILD="$c"; break ; fi ; done ; if test x"$CC_FOR_BUILD" = x ; then CC_FOR_BUILD=no_compiler_found ; fi ;; ,,*) CC_FOR_BUILD=$CC ;; ,*,*) CC_FOR_BUILD=$HOST_CC ;; esac ; set_cc_for_build= ;' # This is needed to find uname on a Pyramid OSx when run in the BSD universe. # (ghazi@noc.rutgers.edu 1994-08-24) if (test -f /.attbin/uname) >/dev/null 2>&1 ; then PATH=$PATH:/.attbin ; export PATH fi UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown case "${UNAME_SYSTEM}" in Linux|GNU|GNU/*) # If the system lacks a compiler, then just pick glibc. # We could probably try harder. LIBC=gnu eval $set_cc_for_build cat <<-EOF > $dummy.c #include #if defined(__UCLIBC__) LIBC=uclibc #elif defined(__dietlibc__) LIBC=dietlibc #else LIBC=gnu #endif EOF eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC' | sed 's, ,,g'` ;; esac # Note: order is significant - the case branches are not exclusive. case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in *:NetBSD:*:*) # NetBSD (nbsd) targets should (where applicable) match one or # more of the tuples: *-*-netbsdelf*, *-*-netbsdaout*, # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently # switched to ELF, *-*-netbsd* would select the old # object file format. This provides both forward # compatibility and a consistent mechanism for selecting the # object file format. # # Note: NetBSD doesn't particularly care about the vendor # portion of the name. We always set it to "unknown". sysctl="sysctl -n hw.machine_arch" UNAME_MACHINE_ARCH=`(uname -p 2>/dev/null || \ /sbin/$sysctl 2>/dev/null || \ /usr/sbin/$sysctl 2>/dev/null || \ echo unknown)` case "${UNAME_MACHINE_ARCH}" in armeb) machine=armeb-unknown ;; arm*) machine=arm-unknown ;; sh3el) machine=shl-unknown ;; sh3eb) machine=sh-unknown ;; sh5el) machine=sh5le-unknown ;; earmv*) arch=`echo ${UNAME_MACHINE_ARCH} | sed -e 's,^e\(armv[0-9]\).*$,\1,'` endian=`echo ${UNAME_MACHINE_ARCH} | sed -ne 's,^.*\(eb\)$,\1,p'` machine=${arch}${endian}-unknown ;; *) machine=${UNAME_MACHINE_ARCH}-unknown ;; esac # The Operating System including object format, if it has switched # to ELF recently (or will in the future) and ABI. case "${UNAME_MACHINE_ARCH}" in earm*) os=netbsdelf ;; arm*|i386|m68k|ns32k|sh3*|sparc|vax) eval $set_cc_for_build if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ELF__ then # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout). # Return netbsd for either. FIX? os=netbsd else os=netbsdelf fi ;; *) os=netbsd ;; esac # Determine ABI tags. case "${UNAME_MACHINE_ARCH}" in earm*) expr='s/^earmv[0-9]/-eabi/;s/eb$//' abi=`echo ${UNAME_MACHINE_ARCH} | sed -e "$expr"` ;; esac # The OS release # Debian GNU/NetBSD machines have a different userland, and # thus, need a distinct triplet. However, they do not need # kernel version information, so it can be replaced with a # suitable tag, in the style of linux-gnu. case "${UNAME_VERSION}" in Debian*) release='-gnu' ;; *) release=`echo ${UNAME_RELEASE} | sed -e 's/[-_].*//' | cut -d. -f1,2` ;; esac # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: # contains redundant information, the shorter form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. echo "${machine}-${os}${release}${abi}" exit ;; *:Bitrig:*:*) UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'` echo ${UNAME_MACHINE_ARCH}-unknown-bitrig${UNAME_RELEASE} exit ;; *:OpenBSD:*:*) UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE} exit ;; *:LibertyBSD:*:*) UNAME_MACHINE_ARCH=`arch | sed 's/^.*BSD\.//'` echo ${UNAME_MACHINE_ARCH}-unknown-libertybsd${UNAME_RELEASE} exit ;; *:MidnightBSD:*:*) echo ${UNAME_MACHINE}-unknown-midnightbsd${UNAME_RELEASE} exit ;; *:ekkoBSD:*:*) echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE} exit ;; *:SolidBSD:*:*) echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE} exit ;; macppc:MirBSD:*:*) echo powerpc-unknown-mirbsd${UNAME_RELEASE} exit ;; *:MirBSD:*:*) echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE} exit ;; *:Sortix:*:*) echo ${UNAME_MACHINE}-unknown-sortix exit ;; *:Redox:*:*) echo ${UNAME_MACHINE}-unknown-redox exit ;; alpha:OSF1:*:*) case $UNAME_RELEASE in *4.0) UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` ;; *5.*) UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` ;; esac # According to Compaq, /usr/sbin/psrinfo has been available on # OSF/1 and Tru64 systems produced since 1995. I hope that # covers most systems running today. This code pipes the CPU # types through head -n 1, so we only detect the type of CPU 0. ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1` case "$ALPHA_CPU_TYPE" in "EV4 (21064)") UNAME_MACHINE=alpha ;; "EV4.5 (21064)") UNAME_MACHINE=alpha ;; "LCA4 (21066/21068)") UNAME_MACHINE=alpha ;; "EV5 (21164)") UNAME_MACHINE=alphaev5 ;; "EV5.6 (21164A)") UNAME_MACHINE=alphaev56 ;; "EV5.6 (21164PC)") UNAME_MACHINE=alphapca56 ;; "EV5.7 (21164PC)") UNAME_MACHINE=alphapca57 ;; "EV6 (21264)") UNAME_MACHINE=alphaev6 ;; "EV6.7 (21264A)") UNAME_MACHINE=alphaev67 ;; "EV6.8CB (21264C)") UNAME_MACHINE=alphaev68 ;; "EV6.8AL (21264B)") UNAME_MACHINE=alphaev68 ;; "EV6.8CX (21264D)") UNAME_MACHINE=alphaev68 ;; "EV6.9A (21264/EV69A)") UNAME_MACHINE=alphaev69 ;; "EV7 (21364)") UNAME_MACHINE=alphaev7 ;; "EV7.9 (21364A)") UNAME_MACHINE=alphaev79 ;; esac # A Pn.n version is a patched version. # A Vn.n version is a released version. # A Tn.n version is a released field test version. # A Xn.n version is an unreleased experimental baselevel. # 1.2 uses "1.2" for uname -r. echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz` # Reset EXIT trap before exiting to avoid spurious non-zero exit code. exitcode=$? trap '' 0 exit $exitcode ;; Amiga*:UNIX_System_V:4.0:*) echo m68k-unknown-sysv4 exit ;; *:[Aa]miga[Oo][Ss]:*:*) echo ${UNAME_MACHINE}-unknown-amigaos exit ;; *:[Mm]orph[Oo][Ss]:*:*) echo ${UNAME_MACHINE}-unknown-morphos exit ;; *:OS/390:*:*) echo i370-ibm-openedition exit ;; *:z/VM:*:*) echo s390-ibm-zvmoe exit ;; *:OS400:*:*) echo powerpc-ibm-os400 exit ;; arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) echo arm-acorn-riscix${UNAME_RELEASE} exit ;; arm*:riscos:*:*|arm*:RISCOS:*:*) echo arm-unknown-riscos exit ;; SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) echo hppa1.1-hitachi-hiuxmpp exit ;; Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. if test "`(/bin/universe) 2>/dev/null`" = att ; then echo pyramid-pyramid-sysv3 else echo pyramid-pyramid-bsd fi exit ;; NILE*:*:*:dcosx) echo pyramid-pyramid-svr4 exit ;; DRS?6000:unix:4.0:6*) echo sparc-icl-nx6 exit ;; DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*) case `/usr/bin/uname -p` in sparc) echo sparc-icl-nx7; exit ;; esac ;; s390x:SunOS:*:*) echo ${UNAME_MACHINE}-ibm-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4H:SunOS:5.*:*) echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*) echo i386-pc-auroraux${UNAME_RELEASE} exit ;; i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) eval $set_cc_for_build SUN_ARCH=i386 # If there is a compiler, see if it is configured for 64-bit objects. # Note that the Sun cc does not turn __LP64__ into 1 like gcc does. # This test works for both compilers. if [ "$CC_FOR_BUILD" != no_compiler_found ]; then if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \ (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ grep IS_64BIT_ARCH >/dev/null then SUN_ARCH=x86_64 fi fi echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4*:SunOS:6*:*) # According to config.sub, this is the proper way to canonicalize # SunOS6. Hard to guess exactly what SunOS6 will be like, but # it's likely to be more like Solaris than SunOS4. echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4*:SunOS:*:*) case "`/usr/bin/arch -k`" in Series*|S4*) UNAME_RELEASE=`uname -v` ;; esac # Japanese Language versions have a version number like `4.1.3-JL'. echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'` exit ;; sun3*:SunOS:*:*) echo m68k-sun-sunos${UNAME_RELEASE} exit ;; sun*:*:4.2BSD:*) UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` test "x${UNAME_RELEASE}" = x && UNAME_RELEASE=3 case "`/bin/arch`" in sun3) echo m68k-sun-sunos${UNAME_RELEASE} ;; sun4) echo sparc-sun-sunos${UNAME_RELEASE} ;; esac exit ;; aushp:SunOS:*:*) echo sparc-auspex-sunos${UNAME_RELEASE} exit ;; # The situation for MiNT is a little confusing. The machine name # can be virtually everything (everything which is not # "atarist" or "atariste" at least should have a processor # > m68000). The system name ranges from "MiNT" over "FreeMiNT" # to the lowercase version "mint" (or "freemint"). Finally # the system name "TOS" denotes a system which is actually not # MiNT. But MiNT is downward compatible to TOS, so this should # be no problem. atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit ;; atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit ;; *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit ;; milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) echo m68k-milan-mint${UNAME_RELEASE} exit ;; hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) echo m68k-hades-mint${UNAME_RELEASE} exit ;; *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) echo m68k-unknown-mint${UNAME_RELEASE} exit ;; m68k:machten:*:*) echo m68k-apple-machten${UNAME_RELEASE} exit ;; powerpc:machten:*:*) echo powerpc-apple-machten${UNAME_RELEASE} exit ;; RISC*:Mach:*:*) echo mips-dec-mach_bsd4.3 exit ;; RISC*:ULTRIX:*:*) echo mips-dec-ultrix${UNAME_RELEASE} exit ;; VAX*:ULTRIX*:*:*) echo vax-dec-ultrix${UNAME_RELEASE} exit ;; 2020:CLIX:*:* | 2430:CLIX:*:*) echo clipper-intergraph-clix${UNAME_RELEASE} exit ;; mips:*:*:UMIPS | mips:*:*:RISCos) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #ifdef __cplusplus #include /* for printf() prototype */ int main (int argc, char *argv[]) { #else int main (argc, argv) int argc; char *argv[]; { #endif #if defined (host_mips) && defined (MIPSEB) #if defined (SYSTYPE_SYSV) printf ("mips-mips-riscos%ssysv\\n", argv[1]); exit (0); #endif #if defined (SYSTYPE_SVR4) printf ("mips-mips-riscos%ssvr4\\n", argv[1]); exit (0); #endif #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD) printf ("mips-mips-riscos%sbsd\\n", argv[1]); exit (0); #endif #endif exit (-1); } EOF $CC_FOR_BUILD -o $dummy $dummy.c && dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` && SYSTEM_NAME=`$dummy $dummyarg` && { echo "$SYSTEM_NAME"; exit; } echo mips-mips-riscos${UNAME_RELEASE} exit ;; Motorola:PowerMAX_OS:*:*) echo powerpc-motorola-powermax exit ;; Motorola:*:4.3:PL8-*) echo powerpc-harris-powermax exit ;; Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) echo powerpc-harris-powermax exit ;; Night_Hawk:Power_UNIX:*:*) echo powerpc-harris-powerunix exit ;; m88k:CX/UX:7*:*) echo m88k-harris-cxux7 exit ;; m88k:*:4*:R4*) echo m88k-motorola-sysv4 exit ;; m88k:*:3*:R3*) echo m88k-motorola-sysv3 exit ;; AViiON:dgux:*:*) # DG/UX returns AViiON for all architectures UNAME_PROCESSOR=`/usr/bin/uname -p` if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ] then if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \ [ ${TARGET_BINARY_INTERFACE}x = x ] then echo m88k-dg-dgux${UNAME_RELEASE} else echo m88k-dg-dguxbcs${UNAME_RELEASE} fi else echo i586-dg-dgux${UNAME_RELEASE} fi exit ;; M88*:DolphinOS:*:*) # DolphinOS (SVR3) echo m88k-dolphin-sysv3 exit ;; M88*:*:R3*:*) # Delta 88k system running SVR3 echo m88k-motorola-sysv3 exit ;; XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) echo m88k-tektronix-sysv3 exit ;; Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) echo m68k-tektronix-bsd exit ;; *:IRIX*:*:*) echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` exit ;; ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id exit ;; # Note that: echo "'`uname -s`'" gives 'AIX ' i*86:AIX:*:*) echo i386-ibm-aix exit ;; ia64:AIX:*:*) if [ -x /usr/bin/oslevel ] ; then IBM_REV=`/usr/bin/oslevel` else IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} fi echo ${UNAME_MACHINE}-ibm-aix${IBM_REV} exit ;; *:AIX:2:3) if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #include main() { if (!__power_pc()) exit(1); puts("powerpc-ibm-aix3.2.5"); exit(0); } EOF if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` then echo "$SYSTEM_NAME" else echo rs6000-ibm-aix3.2.5 fi elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then echo rs6000-ibm-aix3.2.4 else echo rs6000-ibm-aix3.2 fi exit ;; *:AIX:*:[4567]) IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then IBM_ARCH=rs6000 else IBM_ARCH=powerpc fi if [ -x /usr/bin/lslpp ] ; then IBM_REV=`/usr/bin/lslpp -Lqc bos.rte.libc | awk -F: '{ print $3 }' | sed s/[0-9]*$/0/` else IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} fi echo ${IBM_ARCH}-ibm-aix${IBM_REV} exit ;; *:AIX:*:*) echo rs6000-ibm-aix exit ;; ibmrt:4.4BSD:*|romp-ibm:4.4BSD:*) echo romp-ibm-bsd4.4 exit ;; ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to exit ;; # report: romp-ibm BSD 4.3 *:BOSX:*:*) echo rs6000-bull-bosx exit ;; DPX/2?00:B.O.S.:*:*) echo m68k-bull-sysv3 exit ;; 9000/[34]??:4.3bsd:1.*:*) echo m68k-hp-bsd exit ;; hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) echo m68k-hp-bsd4.4 exit ;; 9000/[34678]??:HP-UX:*:*) HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` case "${UNAME_MACHINE}" in 9000/31?) HP_ARCH=m68000 ;; 9000/[34]??) HP_ARCH=m68k ;; 9000/[678][0-9][0-9]) if [ -x /usr/bin/getconf ]; then sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` case "${sc_cpu_version}" in 523) HP_ARCH=hppa1.0 ;; # CPU_PA_RISC1_0 528) HP_ARCH=hppa1.1 ;; # CPU_PA_RISC1_1 532) # CPU_PA_RISC2_0 case "${sc_kernel_bits}" in 32) HP_ARCH=hppa2.0n ;; 64) HP_ARCH=hppa2.0w ;; '') HP_ARCH=hppa2.0 ;; # HP-UX 10.20 esac ;; esac fi if [ "${HP_ARCH}" = "" ]; then eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #define _HPUX_SOURCE #include #include int main () { #if defined(_SC_KERNEL_BITS) long bits = sysconf(_SC_KERNEL_BITS); #endif long cpu = sysconf (_SC_CPU_VERSION); switch (cpu) { case CPU_PA_RISC1_0: puts ("hppa1.0"); break; case CPU_PA_RISC1_1: puts ("hppa1.1"); break; case CPU_PA_RISC2_0: #if defined(_SC_KERNEL_BITS) switch (bits) { case 64: puts ("hppa2.0w"); break; case 32: puts ("hppa2.0n"); break; default: puts ("hppa2.0"); break; } break; #else /* !defined(_SC_KERNEL_BITS) */ puts ("hppa2.0"); break; #endif default: puts ("hppa1.0"); break; } exit (0); } EOF (CCOPTS="" $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` test -z "$HP_ARCH" && HP_ARCH=hppa fi ;; esac if [ ${HP_ARCH} = hppa2.0w ] then eval $set_cc_for_build # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler # generating 64-bit code. GNU and HP use different nomenclature: # # $ CC_FOR_BUILD=cc ./config.guess # => hppa2.0w-hp-hpux11.23 # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess # => hppa64-hp-hpux11.23 if echo __LP64__ | (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | grep -q __LP64__ then HP_ARCH=hppa2.0w else HP_ARCH=hppa64 fi fi echo ${HP_ARCH}-hp-hpux${HPUX_REV} exit ;; ia64:HP-UX:*:*) HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` echo ia64-hp-hpux${HPUX_REV} exit ;; 3050*:HI-UX:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #include int main () { long cpu = sysconf (_SC_CPU_VERSION); /* The order matters, because CPU_IS_HP_MC68K erroneously returns true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct results, however. */ if (CPU_IS_PA_RISC (cpu)) { switch (cpu) { case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break; case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break; case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break; default: puts ("hppa-hitachi-hiuxwe2"); break; } } else if (CPU_IS_HP_MC68K (cpu)) puts ("m68k-hitachi-hiuxwe2"); else puts ("unknown-hitachi-hiuxwe2"); exit (0); } EOF $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` && { echo "$SYSTEM_NAME"; exit; } echo unknown-hitachi-hiuxwe2 exit ;; 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:*) echo hppa1.1-hp-bsd exit ;; 9000/8??:4.3bsd:*:*) echo hppa1.0-hp-bsd exit ;; *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) echo hppa1.0-hp-mpeix exit ;; hp7??:OSF1:*:* | hp8?[79]:OSF1:*:*) echo hppa1.1-hp-osf exit ;; hp8??:OSF1:*:*) echo hppa1.0-hp-osf exit ;; i*86:OSF1:*:*) if [ -x /usr/sbin/sysversion ] ; then echo ${UNAME_MACHINE}-unknown-osf1mk else echo ${UNAME_MACHINE}-unknown-osf1 fi exit ;; parisc*:Lites*:*:*) echo hppa1.1-hp-lites exit ;; C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) echo c1-convex-bsd exit ;; C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) if getsysinfo -f scalar_acc then echo c32-convex-bsd else echo c2-convex-bsd fi exit ;; C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) echo c34-convex-bsd exit ;; C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) echo c38-convex-bsd exit ;; C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) echo c4-convex-bsd exit ;; CRAY*Y-MP:*:*:*) echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*[A-Z]90:*:*:*) echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \ | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ -e 's/\.[^.]*$/.X/' exit ;; CRAY*TS:*:*:*) echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*T3E:*:*:*) echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*SV1:*:*:*) echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; *:UNICOS/mp:*:*) echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) FUJITSU_PROC=`uname -m | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz` FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'` FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" exit ;; 5000:UNIX_System_V:4.*:*) FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'` FUJITSU_REL=`echo ${UNAME_RELEASE} | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/ /_/'` echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" exit ;; i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} exit ;; sparc*:BSD/OS:*:*) echo sparc-unknown-bsdi${UNAME_RELEASE} exit ;; *:BSD/OS:*:*) echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} exit ;; *:FreeBSD:*:*) UNAME_PROCESSOR=`/usr/bin/uname -p` case ${UNAME_PROCESSOR} in amd64) UNAME_PROCESSOR=x86_64 ;; i386) UNAME_PROCESSOR=i586 ;; esac echo ${UNAME_PROCESSOR}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` exit ;; i*:CYGWIN*:*) echo ${UNAME_MACHINE}-pc-cygwin exit ;; *:MINGW64*:*) echo ${UNAME_MACHINE}-pc-mingw64 exit ;; *:MINGW*:*) echo ${UNAME_MACHINE}-pc-mingw32 exit ;; *:MSYS*:*) echo ${UNAME_MACHINE}-pc-msys exit ;; i*:PW*:*) echo ${UNAME_MACHINE}-pc-pw32 exit ;; *:Interix*:*) case ${UNAME_MACHINE} in x86) echo i586-pc-interix${UNAME_RELEASE} exit ;; authenticamd | genuineintel | EM64T) echo x86_64-unknown-interix${UNAME_RELEASE} exit ;; IA64) echo ia64-unknown-interix${UNAME_RELEASE} exit ;; esac ;; i*:UWIN*:*) echo ${UNAME_MACHINE}-pc-uwin exit ;; amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) echo x86_64-unknown-cygwin exit ;; prep*:SunOS:5.*:*) echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; *:GNU:*:*) # the GNU system echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-${LIBC}`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` exit ;; *:GNU/*:*:*) # other systems with GNU libc and userland echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr "[:upper:]" "[:lower:]"``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-${LIBC} exit ;; i*86:Minix:*:*) echo ${UNAME_MACHINE}-pc-minix exit ;; aarch64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; aarch64_be:Linux:*:*) UNAME_MACHINE=aarch64_be echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; alpha:Linux:*:*) case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in EV5) UNAME_MACHINE=alphaev5 ;; EV56) UNAME_MACHINE=alphaev56 ;; PCA56) UNAME_MACHINE=alphapca56 ;; PCA57) UNAME_MACHINE=alphapca56 ;; EV6) UNAME_MACHINE=alphaev6 ;; EV67) UNAME_MACHINE=alphaev67 ;; EV68*) UNAME_MACHINE=alphaev68 ;; esac objdump --private-headers /bin/sh | grep -q ld.so.1 if test "$?" = 0 ; then LIBC=gnulibc1 ; fi echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; arc:Linux:*:* | arceb:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; arm*:Linux:*:*) eval $set_cc_for_build if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ARM_EABI__ then echo ${UNAME_MACHINE}-unknown-linux-${LIBC} else if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ARM_PCS_VFP then echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabi else echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabihf fi fi exit ;; avr32*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; cris:Linux:*:*) echo ${UNAME_MACHINE}-axis-linux-${LIBC} exit ;; crisv32:Linux:*:*) echo ${UNAME_MACHINE}-axis-linux-${LIBC} exit ;; e2k:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; frv:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; hexagon:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; i*86:Linux:*:*) echo ${UNAME_MACHINE}-pc-linux-${LIBC} exit ;; ia64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; k1om:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; m32r*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; m68*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; mips:Linux:*:* | mips64:Linux:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #undef CPU #undef ${UNAME_MACHINE} #undef ${UNAME_MACHINE}el #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) CPU=${UNAME_MACHINE}el #else #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) CPU=${UNAME_MACHINE} #else CPU= #endif #endif EOF eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'` test x"${CPU}" != x && { echo "${CPU}-unknown-linux-${LIBC}"; exit; } ;; mips64el:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; openrisc*:Linux:*:*) echo or1k-unknown-linux-${LIBC} exit ;; or32:Linux:*:* | or1k*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; padre:Linux:*:*) echo sparc-unknown-linux-${LIBC} exit ;; parisc64:Linux:*:* | hppa64:Linux:*:*) echo hppa64-unknown-linux-${LIBC} exit ;; parisc:Linux:*:* | hppa:Linux:*:*) # Look for CPU level case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in PA7*) echo hppa1.1-unknown-linux-${LIBC} ;; PA8*) echo hppa2.0-unknown-linux-${LIBC} ;; *) echo hppa-unknown-linux-${LIBC} ;; esac exit ;; ppc64:Linux:*:*) echo powerpc64-unknown-linux-${LIBC} exit ;; ppc:Linux:*:*) echo powerpc-unknown-linux-${LIBC} exit ;; ppc64le:Linux:*:*) echo powerpc64le-unknown-linux-${LIBC} exit ;; ppcle:Linux:*:*) echo powerpcle-unknown-linux-${LIBC} exit ;; riscv32:Linux:*:* | riscv64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; s390:Linux:*:* | s390x:Linux:*:*) echo ${UNAME_MACHINE}-ibm-linux-${LIBC} exit ;; sh64*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; sh*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; sparc:Linux:*:* | sparc64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; tile*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; vax:Linux:*:*) echo ${UNAME_MACHINE}-dec-linux-${LIBC} exit ;; x86_64:Linux:*:*) echo ${UNAME_MACHINE}-pc-linux-${LIBC} exit ;; xtensa*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; i*86:DYNIX/ptx:4*:*) # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. # earlier versions are messed up and put the nodename in both # sysname and nodename. echo i386-sequent-sysv4 exit ;; i*86:UNIX_SV:4.2MP:2.*) # Unixware is an offshoot of SVR4, but it has its own version # number series starting with 2... # I am not positive that other SVR4 systems won't match this, # I just have to hope. -- rms. # Use sysv4.2uw... so that sysv4* matches it. echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} exit ;; i*86:OS/2:*:*) # If we were able to find `uname', then EMX Unix compatibility # is probably installed. echo ${UNAME_MACHINE}-pc-os2-emx exit ;; i*86:XTS-300:*:STOP) echo ${UNAME_MACHINE}-unknown-stop exit ;; i*86:atheos:*:*) echo ${UNAME_MACHINE}-unknown-atheos exit ;; i*86:syllable:*:*) echo ${UNAME_MACHINE}-pc-syllable exit ;; i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*) echo i386-unknown-lynxos${UNAME_RELEASE} exit ;; i*86:*DOS:*:*) echo ${UNAME_MACHINE}-pc-msdosdjgpp exit ;; i*86:*:4.*:*) UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'` if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL} else echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL} fi exit ;; i*86:*:5:[678]*) # UnixWare 7.x, OpenUNIX and OpenServer 6. case `/bin/uname -X | grep "^Machine"` in *486*) UNAME_MACHINE=i486 ;; *Pentium) UNAME_MACHINE=i586 ;; *Pent*|*Celeron) UNAME_MACHINE=i686 ;; esac echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION} exit ;; i*86:*:3.2:*) if test -f /usr/options/cb.name; then UNAME_REL=`sed -n 's/.*Version //p' /dev/null >/dev/null ; then UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')` (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486 (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \ && UNAME_MACHINE=i586 (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \ && UNAME_MACHINE=i686 (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \ && UNAME_MACHINE=i686 echo ${UNAME_MACHINE}-pc-sco$UNAME_REL else echo ${UNAME_MACHINE}-pc-sysv32 fi exit ;; pc:*:*:*) # Left here for compatibility: # uname -m prints for DJGPP always 'pc', but it prints nothing about # the processor, so we play safe by assuming i586. # Note: whatever this is, it MUST be the same as what config.sub # prints for the "djgpp" host, or else GDB configure will decide that # this is a cross-build. echo i586-pc-msdosdjgpp exit ;; Intel:Mach:3*:*) echo i386-pc-mach3 exit ;; paragon:*:*:*) echo i860-intel-osf1 exit ;; i860:*:4.*:*) # i860-SVR4 if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4 else # Add other i860-SVR4 vendors below as they are discovered. echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4 fi exit ;; mini*:CTIX:SYS*5:*) # "miniframe" echo m68010-convergent-sysv exit ;; mc68k:UNIX:SYSTEM5:3.51m) echo m68k-convergent-sysv exit ;; M680?0:D-NIX:5.3:*) echo m68k-diab-dnix exit ;; M68*:*:R3V[5678]*:*) test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;; 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0) OS_REL='' test -r /etc/.relid \ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && { echo i486-ncr-sysv4.3${OS_REL}; exit; } /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && { echo i486-ncr-sysv4; exit; } ;; NCR*:*:4.2:* | MPRAS*:*:4.2:*) OS_REL='.3' test -r /etc/.relid \ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && { echo i486-ncr-sysv4.3${OS_REL}; exit; } /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } /bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) echo m68k-unknown-lynxos${UNAME_RELEASE} exit ;; mc68030:UNIX_System_V:4.*:*) echo m68k-atari-sysv4 exit ;; TSUNAMI:LynxOS:2.*:*) echo sparc-unknown-lynxos${UNAME_RELEASE} exit ;; rs6000:LynxOS:2.*:*) echo rs6000-unknown-lynxos${UNAME_RELEASE} exit ;; PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*) echo powerpc-unknown-lynxos${UNAME_RELEASE} exit ;; SM[BE]S:UNIX_SV:*:*) echo mips-dde-sysv${UNAME_RELEASE} exit ;; RM*:ReliantUNIX-*:*:*) echo mips-sni-sysv4 exit ;; RM*:SINIX-*:*:*) echo mips-sni-sysv4 exit ;; *:SINIX-*:*:*) if uname -p 2>/dev/null >/dev/null ; then UNAME_MACHINE=`(uname -p) 2>/dev/null` echo ${UNAME_MACHINE}-sni-sysv4 else echo ns32k-sni-sysv fi exit ;; PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort # says echo i586-unisys-sysv4 exit ;; *:UNIX_System_V:4*:FTX*) # From Gerald Hewes . # How about differentiating between stratus architectures? -djm echo hppa1.1-stratus-sysv4 exit ;; *:*:*:FTX*) # From seanf@swdc.stratus.com. echo i860-stratus-sysv4 exit ;; i*86:VOS:*:*) # From Paul.Green@stratus.com. echo ${UNAME_MACHINE}-stratus-vos exit ;; *:VOS:*:*) # From Paul.Green@stratus.com. echo hppa1.1-stratus-vos exit ;; mc68*:A/UX:*:*) echo m68k-apple-aux${UNAME_RELEASE} exit ;; news*:NEWS-OS:6*:*) echo mips-sony-newsos6 exit ;; R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) if [ -d /usr/nec ]; then echo mips-nec-sysv${UNAME_RELEASE} else echo mips-unknown-sysv${UNAME_RELEASE} fi exit ;; BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. echo powerpc-be-beos exit ;; BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. echo powerpc-apple-beos exit ;; BePC:BeOS:*:*) # BeOS running on Intel PC compatible. echo i586-pc-beos exit ;; BePC:Haiku:*:*) # Haiku running on Intel PC compatible. echo i586-pc-haiku exit ;; x86_64:Haiku:*:*) echo x86_64-unknown-haiku exit ;; SX-4:SUPER-UX:*:*) echo sx4-nec-superux${UNAME_RELEASE} exit ;; SX-5:SUPER-UX:*:*) echo sx5-nec-superux${UNAME_RELEASE} exit ;; SX-6:SUPER-UX:*:*) echo sx6-nec-superux${UNAME_RELEASE} exit ;; SX-7:SUPER-UX:*:*) echo sx7-nec-superux${UNAME_RELEASE} exit ;; SX-8:SUPER-UX:*:*) echo sx8-nec-superux${UNAME_RELEASE} exit ;; SX-8R:SUPER-UX:*:*) echo sx8r-nec-superux${UNAME_RELEASE} exit ;; SX-ACE:SUPER-UX:*:*) echo sxace-nec-superux${UNAME_RELEASE} exit ;; Power*:Rhapsody:*:*) echo powerpc-apple-rhapsody${UNAME_RELEASE} exit ;; *:Rhapsody:*:*) echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} exit ;; *:Darwin:*:*) UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown eval $set_cc_for_build if test "$UNAME_PROCESSOR" = unknown ; then UNAME_PROCESSOR=powerpc fi if test `echo "$UNAME_RELEASE" | sed -e 's/\..*//'` -le 10 ; then if [ "$CC_FOR_BUILD" != no_compiler_found ]; then if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \ (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ grep IS_64BIT_ARCH >/dev/null then case $UNAME_PROCESSOR in i386) UNAME_PROCESSOR=x86_64 ;; powerpc) UNAME_PROCESSOR=powerpc64 ;; esac fi # On 10.4-10.6 one might compile for PowerPC via gcc -arch ppc if (echo '#ifdef __POWERPC__'; echo IS_PPC; echo '#endif') | \ (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ grep IS_PPC >/dev/null then UNAME_PROCESSOR=powerpc fi fi elif test "$UNAME_PROCESSOR" = i386 ; then # Avoid executing cc on OS X 10.9, as it ships with a stub # that puts up a graphical alert prompting to install # developer tools. Any system running Mac OS X 10.7 or # later (Darwin 11 and later) is required to have a 64-bit # processor. This is not true of the ARM version of Darwin # that Apple uses in portable devices. UNAME_PROCESSOR=x86_64 fi echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} exit ;; *:procnto*:*:* | *:QNX:[0123456789]*:*) UNAME_PROCESSOR=`uname -p` if test "$UNAME_PROCESSOR" = x86; then UNAME_PROCESSOR=i386 UNAME_MACHINE=pc fi echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE} exit ;; *:QNX:*:4*) echo i386-pc-qnx exit ;; NEO-*:NONSTOP_KERNEL:*:*) echo neo-tandem-nsk${UNAME_RELEASE} exit ;; NSE-*:NONSTOP_KERNEL:*:*) echo nse-tandem-nsk${UNAME_RELEASE} exit ;; NSR-*:NONSTOP_KERNEL:*:*) echo nsr-tandem-nsk${UNAME_RELEASE} exit ;; NSX-*:NONSTOP_KERNEL:*:*) echo nsx-tandem-nsk${UNAME_RELEASE} exit ;; *:NonStop-UX:*:*) echo mips-compaq-nonstopux exit ;; BS2000:POSIX*:*:*) echo bs2000-siemens-sysv exit ;; DS/*:UNIX_System_V:*:*) echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE} exit ;; *:Plan9:*:*) # "uname -m" is not consistent, so use $cputype instead. 386 # is converted to i386 for consistency with other x86 # operating systems. if test "$cputype" = 386; then UNAME_MACHINE=i386 else UNAME_MACHINE="$cputype" fi echo ${UNAME_MACHINE}-unknown-plan9 exit ;; *:TOPS-10:*:*) echo pdp10-unknown-tops10 exit ;; *:TENEX:*:*) echo pdp10-unknown-tenex exit ;; KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) echo pdp10-dec-tops20 exit ;; XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) echo pdp10-xkl-tops20 exit ;; *:TOPS-20:*:*) echo pdp10-unknown-tops20 exit ;; *:ITS:*:*) echo pdp10-unknown-its exit ;; SEI:*:*:SEIUX) echo mips-sei-seiux${UNAME_RELEASE} exit ;; *:DragonFly:*:*) echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` exit ;; *:*VMS:*:*) UNAME_MACHINE=`(uname -p) 2>/dev/null` case "${UNAME_MACHINE}" in A*) echo alpha-dec-vms ; exit ;; I*) echo ia64-dec-vms ; exit ;; V*) echo vax-dec-vms ; exit ;; esac ;; *:XENIX:*:SysV) echo i386-pc-xenix exit ;; i*86:skyos:*:*) echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE} | sed -e 's/ .*$//'` exit ;; i*86:rdos:*:*) echo ${UNAME_MACHINE}-pc-rdos exit ;; i*86:AROS:*:*) echo ${UNAME_MACHINE}-pc-aros exit ;; x86_64:VMkernel:*:*) echo ${UNAME_MACHINE}-unknown-esx exit ;; amd64:Isilon\ OneFS:*:*) echo x86_64-unknown-onefs exit ;; esac echo "$0: unable to guess system type" >&2 case "${UNAME_MACHINE}:${UNAME_SYSTEM}" in mips:Linux | mips64:Linux) # If we got here on MIPS GNU/Linux, output extra information. cat >&2 <&2 </dev/null || echo unknown` uname -r = `(uname -r) 2>/dev/null || echo unknown` uname -s = `(uname -s) 2>/dev/null || echo unknown` uname -v = `(uname -v) 2>/dev/null || echo unknown` /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null` /bin/uname -X = `(/bin/uname -X) 2>/dev/null` hostinfo = `(hostinfo) 2>/dev/null` /bin/universe = `(/bin/universe) 2>/dev/null` /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null` /bin/arch = `(/bin/arch) 2>/dev/null` /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null` /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null` UNAME_MACHINE = ${UNAME_MACHINE} UNAME_RELEASE = ${UNAME_RELEASE} UNAME_SYSTEM = ${UNAME_SYSTEM} UNAME_VERSION = ${UNAME_VERSION} EOF exit 1 # Local variables: # eval: (add-hook 'write-file-functions 'time-stamp) # time-stamp-start: "timestamp='" # time-stamp-format: "%:y-%02m-%02d" # time-stamp-end: "'" # End: ario-1.6/configure0000755000175000017500000200513013226745577011165 00000000000000#! /bin/sh # Guess values for system-dependent variables and create Makefiles. # Generated by GNU Autoconf 2.69 for Ario 1.6. # # Report bugs to . # # # Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc. # # # This configure script is free software; the Free Software Foundation # gives unlimited permission to copy, distribute and modify it. ## -------------------- ## ## M4sh Initialization. ## ## -------------------- ## # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi as_nl=' ' export as_nl # Printing a long string crashes Solaris 7 /usr/bin/printf. as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo # Prefer a ksh shell builtin over an external printf program on Solaris, # but without wasting forks for bash or zsh. if test -z "$BASH_VERSION$ZSH_VERSION" \ && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='print -r --' as_echo_n='print -rn --' elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='printf %s\n' as_echo_n='printf %s' else if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' as_echo_n='/usr/ucb/echo -n' else as_echo_body='eval expr "X$1" : "X\\(.*\\)"' as_echo_n_body='eval arg=$1; case $arg in #( *"$as_nl"*) expr "X$arg" : "X\\(.*\\)$as_nl"; arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; esac; expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" ' export as_echo_n_body as_echo_n='sh -c $as_echo_n_body as_echo' fi export as_echo_body as_echo='sh -c $as_echo_body as_echo' fi # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || PATH_SEPARATOR=';' } fi # IFS # We need space, tab and new line, in precisely that order. Quoting is # there to prevent editors from complaining about space-tab. # (If _AS_PATH_WALK were called with IFS unset, it would disable word # splitting by setting IFS to empty value.) IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. as_myself= case $0 in #(( *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break done IFS=$as_save_IFS ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 exit 1 fi # Unset variables that we do not need and which cause bugs (e.g. in # pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" # suppresses any "Segmentation fault" message there. '((' could # trigger a bug in pdksh 5.2.14. for as_var in BASH_ENV ENV MAIL MAILPATH do eval test x\${$as_var+set} = xset \ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : done PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. LC_ALL=C export LC_ALL LANGUAGE=C export LANGUAGE # CDPATH. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH # Use a proper internal environment variable to ensure we don't fall # into an infinite loop, continuously re-executing ourselves. if test x"${_as_can_reexec}" != xno && test "x$CONFIG_SHELL" != x; then _as_can_reexec=no; export _as_can_reexec; # We cannot yet assume a decent shell, so we have to provide a # neutralization value for shells without unset; and this also # works around shells that cannot unset nonexistent variables. # Preserve -v and -x to the replacement shell. BASH_ENV=/dev/null ENV=/dev/null (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV case $- in # (((( *v*x* | *x*v* ) as_opts=-vx ;; *v* ) as_opts=-v ;; *x* ) as_opts=-x ;; * ) as_opts= ;; esac exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} # Admittedly, this is quite paranoid, since all the known shells bail # out after a failed `exec'. $as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 as_fn_exit 255 fi # We don't want this to propagate to other subprocesses. { _as_can_reexec=; unset _as_can_reexec;} if test "x$CONFIG_SHELL" = x; then as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which # is contrary to our usage. Disable this feature. alias -g '\${1+\"\$@\"}'='\"\$@\"' setopt NO_GLOB_SUBST else case \`(set -o) 2>/dev/null\` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi " as_required="as_fn_return () { (exit \$1); } as_fn_success () { as_fn_return 0; } as_fn_failure () { as_fn_return 1; } as_fn_ret_success () { return 0; } as_fn_ret_failure () { return 1; } exitcode=0 as_fn_success || { exitcode=1; echo as_fn_success failed.; } as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; } as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; } as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; } if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then : else exitcode=1; echo positional parameters were not saved. fi test x\$exitcode = x0 || exit 1 test -x / || exit 1" as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" && test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1 test \$(( 1 + 1 )) = 2 || exit 1 test -n \"\${ZSH_VERSION+set}\${BASH_VERSION+set}\" || ( ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' ECHO=\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO ECHO=\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO PATH=/empty FPATH=/empty; export PATH FPATH test \"X\`printf %s \$ECHO\`\" = \"X\$ECHO\" \\ || test \"X\`print -r -- \$ECHO\`\" = \"X\$ECHO\" ) || exit 1" if (eval "$as_required") 2>/dev/null; then : as_have_required=yes else as_have_required=no fi if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then : else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR as_found=false for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. as_found=: case $as_dir in #( /*) for as_base in sh bash ksh sh5; do # Try only shells that exist, to save several forks. as_shell=$as_dir/$as_base if { test -f "$as_shell" || test -f "$as_shell.exe"; } && { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then : CONFIG_SHELL=$as_shell as_have_required=yes if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then : break 2 fi fi done;; esac as_found=false done $as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } && { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then : CONFIG_SHELL=$SHELL as_have_required=yes fi; } IFS=$as_save_IFS if test "x$CONFIG_SHELL" != x; then : export CONFIG_SHELL # We cannot yet assume a decent shell, so we have to provide a # neutralization value for shells without unset; and this also # works around shells that cannot unset nonexistent variables. # Preserve -v and -x to the replacement shell. BASH_ENV=/dev/null ENV=/dev/null (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV case $- in # (((( *v*x* | *x*v* ) as_opts=-vx ;; *v* ) as_opts=-v ;; *x* ) as_opts=-x ;; * ) as_opts= ;; esac exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} # Admittedly, this is quite paranoid, since all the known shells bail # out after a failed `exec'. $as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 exit 255 fi if test x$as_have_required = xno; then : $as_echo "$0: This script requires a shell more modern than all" $as_echo "$0: the shells that I found on your system." if test x${ZSH_VERSION+set} = xset ; then $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should" $as_echo "$0: be upgraded to zsh 4.3.4 or later." else $as_echo "$0: Please tell bug-autoconf@gnu.org and $0: marc.pavot@gmail.com about your system, including any $0: error possibly output before this message. Then install $0: a modern shell, or manually run the script under such a $0: shell if you do have one." fi exit 1 fi fi fi SHELL=${CONFIG_SHELL-/bin/sh} export SHELL # Unset more variables known to interfere with behavior of common tools. CLICOLOR_FORCE= GREP_OPTIONS= unset CLICOLOR_FORCE GREP_OPTIONS ## --------------------- ## ## M4sh Shell Functions. ## ## --------------------- ## # as_fn_unset VAR # --------------- # Portably unset VAR. as_fn_unset () { { eval $1=; unset $1;} } as_unset=as_fn_unset # as_fn_set_status STATUS # ----------------------- # Set $? to STATUS, without forking. as_fn_set_status () { return $1 } # as_fn_set_status # as_fn_exit STATUS # ----------------- # Exit the shell with STATUS, even in a "trap 0" or "set -e" context. as_fn_exit () { set +e as_fn_set_status $1 exit $1 } # as_fn_exit # as_fn_mkdir_p # ------------- # Create "$as_dir" as a directory, including parents if necessary. as_fn_mkdir_p () { case $as_dir in #( -*) as_dir=./$as_dir;; esac test -d "$as_dir" || eval $as_mkdir_p || { as_dirs= while :; do case $as_dir in #( *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( *) as_qdir=$as_dir;; esac as_dirs="'$as_qdir' $as_dirs" as_dir=`$as_dirname -- "$as_dir" || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` test -d "$as_dir" && break done test -z "$as_dirs" || eval "mkdir $as_dirs" } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" } # as_fn_mkdir_p # as_fn_executable_p FILE # ----------------------- # Test if FILE is an executable regular file. as_fn_executable_p () { test -f "$1" && test -x "$1" } # as_fn_executable_p # as_fn_append VAR VALUE # ---------------------- # Append the text in VALUE to the end of the definition contained in VAR. Take # advantage of any shell optimizations that allow amortized linear growth over # repeated appends, instead of the typical quadratic growth present in naive # implementations. if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : eval 'as_fn_append () { eval $1+=\$2 }' else as_fn_append () { eval $1=\$$1\$2 } fi # as_fn_append # as_fn_arith ARG... # ------------------ # Perform arithmetic evaluation on the ARGs, and store the result in the # global $as_val. Take advantage of shells that can avoid forks. The arguments # must be portable across $(()) and expr. if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : eval 'as_fn_arith () { as_val=$(( $* )) }' else as_fn_arith () { as_val=`expr "$@" || test $? -eq 1` } fi # as_fn_arith # as_fn_error STATUS ERROR [LINENO LOG_FD] # ---------------------------------------- # Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are # provided, also output the error to LOG_FD, referencing LINENO. Then exit the # script with STATUS, using 1 if that was 0. as_fn_error () { as_status=$1; test $as_status -eq 0 && as_status=1 if test "$4"; then as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 fi $as_echo "$as_me: error: $2" >&2 as_fn_exit $as_status } # as_fn_error if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then as_dirname=dirname else as_dirname=false fi as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || $as_echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } /^X\/\(\/\/\)$/{ s//\1/ q } /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits as_lineno_1=$LINENO as_lineno_1a=$LINENO as_lineno_2=$LINENO as_lineno_2a=$LINENO eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" && test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || { # Blame Lee E. McMahon (1931-1989) for sed's syntax. :-) sed -n ' p /[$]LINENO/= ' <$as_myself | sed ' s/[$]LINENO.*/&-/ t lineno b :lineno N :loop s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ t loop s/-\n.*// ' >$as_me.lineno && chmod +x "$as_me.lineno" || { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; } # If we had to re-execute with $CONFIG_SHELL, we're ensured to have # already done that, so ensure we don't try to do so again and fall # in an infinite loop. This has already happened in practice. _as_can_reexec=no; export _as_can_reexec # Don't try to exec as it changes $[0], causing all sort of problems # (the dirname of $[0] is not the place where we might find the # original and so on. Autoconf is especially sensitive to this). . "./$as_me.lineno" # Exit status is that of the last command. exit } ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in #((((( -n*) case `echo 'xy\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. xy) ECHO_C='\c';; *) echo `echo ksh88 bug on AIX 6.1` > /dev/null ECHO_T=' ';; esac;; *) ECHO_N='-n';; esac rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file else rm -f conf$$.dir mkdir conf$$.dir 2>/dev/null fi if (echo >conf$$.file) 2>/dev/null; then if ln -s conf$$.file conf$$ 2>/dev/null; then as_ln_s='ln -s' # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. # In both cases, we have to default to `cp -pR'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -pR' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -pR' fi else as_ln_s='cp -pR' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null if mkdir -p . 2>/dev/null; then as_mkdir_p='mkdir -p "$as_dir"' else test -d ./-p && rmdir ./-p as_mkdir_p=false fi as_test_x='test -x' as_executable_p=as_fn_executable_p # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" SHELL=${CONFIG_SHELL-/bin/sh} test -n "$DJDIR" || exec 7<&0 &1 # Name of the host. # hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status, # so uname gets run too. ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` # # Initializations. # ac_default_prefix=/usr/local ac_clean_files= ac_config_libobj_dir=. LIBOBJS= cross_compiling=no subdirs= MFLAGS= MAKEFLAGS= # Identity of this package. PACKAGE_NAME='Ario' PACKAGE_TARNAME='ario' PACKAGE_VERSION='1.6' PACKAGE_STRING='Ario 1.6' PACKAGE_BUGREPORT='marc.pavot@gmail.com' PACKAGE_URL='' # Factoring default headers for most tests. ac_includes_default="\ #include #ifdef HAVE_SYS_TYPES_H # include #endif #ifdef HAVE_SYS_STAT_H # include #endif #ifdef STDC_HEADERS # include # include #else # ifdef HAVE_STDLIB_H # include # endif #endif #ifdef HAVE_STRING_H # if !defined STDC_HEADERS && defined HAVE_MEMORY_H # include # endif # include #endif #ifdef HAVE_STRINGS_H # include #endif #ifdef HAVE_INTTYPES_H # include #endif #ifdef HAVE_STDINT_H # include #endif #ifdef HAVE_UNISTD_H # include #endif" ac_subst_vars='am__EXEEXT_FALSE am__EXEEXT_TRUE LTLIBOBJS LIBOBJS PLUGIN_DATA_DIR PLUGINDIR WARNINGS TAGLIB_LIBS TAGLIB_CFLAGS USE_AVAHI_FALSE USE_AVAHI_TRUE AVAHI_LIBS AVAHI_CFLAGS USE_DBUS_FALSE USE_DBUS_TRUE DBUS_GLIB_BIN DBUS_LIBS DBUS_CFLAGS MPD_GLIB_FALSE MPD_GLIB_TRUE AR_FLAGS ENABLE_PYTHON_FALSE ENABLE_PYTHON_TRUE PYGTK_H2DEF PYGTK_CODEGEN PYGTK_DEFSDIR PYGTK_LIBS PYGTK_CFLAGS PYTHON_EXTRA_LIBS PYTHON_CFLAGS PYTHON_LIB_LOC PYTHON_LIBS pkgpyexecdir pyexecdir pkgpythondir pythondir PYTHON_PLATFORM PYTHON_EXEC_PREFIX PYTHON_PREFIX PYTHON_VERSION PYTHON USE_LIBMPDCLIENT2_FALSE USE_LIBMPDCLIENT2_TRUE LIBMPDCLIENT2_LIBS LIBMPDCLIENT2_CFLAGS USE_XMMS2_FALSE USE_XMMS2_TRUE XMMS2_LIBS XMMS2_CFLAGS GLIB_MKENUMS DEPS_LIBS DEPS_CFLAGS PKG_CONFIG_LIBDIR PKG_CONFIG_PATH PKG_CONFIG MKINSTALLDIRS POSUB POFILES PO_IN_DATADIR_FALSE PO_IN_DATADIR_TRUE INTLLIBS INSTOBJEXT GMOFILES DATADIRNAME CATOBJEXT CATALOGS MSGFMT_OPTS INTL_MACOSX_LIBS GETTEXT_PACKAGE ALL_LINGUAS INTLTOOL_PERL GMSGFMT MSGFMT MSGMERGE XGETTEXT INTLTOOL_POLICY_RULE INTLTOOL_SERVICE_RULE INTLTOOL_THEME_RULE INTLTOOL_SCHEMAS_RULE INTLTOOL_CAVES_RULE INTLTOOL_XML_NOMERGE_RULE INTLTOOL_XML_RULE INTLTOOL_KBD_RULE INTLTOOL_XAM_RULE INTLTOOL_UI_RULE INTLTOOL_SOUNDLIST_RULE INTLTOOL_SHEET_RULE INTLTOOL_SERVER_RULE INTLTOOL_PONG_RULE INTLTOOL_OAF_RULE INTLTOOL_PROP_RULE INTLTOOL_KEYS_RULE INTLTOOL_DIRECTORY_RULE INTLTOOL_DESKTOP_RULE intltool__v_merge_options_0 intltool__v_merge_options_ INTLTOOL_V_MERGE_OPTIONS INTLTOOL__v_MERGE_0 INTLTOOL__v_MERGE_ INTLTOOL_V_MERGE INTLTOOL_EXTRACT INTLTOOL_MERGE INTLTOOL_UPDATE USE_NLS LT_SYS_LIBRARY_PATH OTOOL64 OTOOL LIPO NMEDIT DSYMUTIL MANIFEST_TOOL RANLIB ac_ct_AR AR DLLTOOL OBJDUMP LN_S NM ac_ct_DUMPBIN DUMPBIN LD FGREP SED host_os host_vendor host_cpu host build_os build_vendor build_cpu build LIBTOOL EGREP GREP CPP am__fastdepCC_FALSE am__fastdepCC_TRUE CCDEPMODE am__nodep AMDEPBACKSLASH AMDEP_FALSE AMDEP_TRUE am__quote am__include DEPDIR OBJEXT EXEEXT ac_ct_CC CPPFLAGS LDFLAGS CFLAGS CC AM_BACKSLASH AM_DEFAULT_VERBOSITY AM_DEFAULT_V AM_V am__untar am__tar AMTAR am__leading_dot SET_MAKE AWK mkdir_p MKDIR_P INSTALL_STRIP_PROGRAM STRIP install_sh MAKEINFO AUTOHEADER AUTOMAKE AUTOCONF ACLOCAL VERSION PACKAGE CYGPATH_W am__isrc INSTALL_DATA INSTALL_SCRIPT INSTALL_PROGRAM target_alias host_alias build_alias LIBS ECHO_T ECHO_N ECHO_C DEFS mandir localedir libdir psdir pdfdir dvidir htmldir infodir docdir oldincludedir includedir runstatedir localstatedir sharedstatedir sysconfdir datadir datarootdir libexecdir sbindir bindir program_transform_name prefix exec_prefix PACKAGE_URL PACKAGE_BUGREPORT PACKAGE_STRING PACKAGE_VERSION PACKAGE_TARNAME PACKAGE_NAME PATH_SEPARATOR SHELL' ac_subst_files='' ac_user_opts=' enable_option_checking enable_silent_rules enable_dependency_tracking enable_shared enable_static with_pic enable_fast_install with_aix_soname with_gnu_ld with_sysroot enable_libtool_lock enable_nls enable_debug enable_xmms2 enable_libmpdclient2 enable_python enable_search enable_mpdidle enable_playlists enable_dbus enable_avahi enable_taglib enable_deprecations ' ac_precious_vars='build_alias host_alias target_alias CC CFLAGS LDFLAGS LIBS CPPFLAGS CPP LT_SYS_LIBRARY_PATH PKG_CONFIG PKG_CONFIG_PATH PKG_CONFIG_LIBDIR DEPS_CFLAGS DEPS_LIBS XMMS2_CFLAGS XMMS2_LIBS LIBMPDCLIENT2_CFLAGS LIBMPDCLIENT2_LIBS PYTHON PYGTK_CFLAGS PYGTK_LIBS DBUS_CFLAGS DBUS_LIBS AVAHI_CFLAGS AVAHI_LIBS TAGLIB_CFLAGS TAGLIB_LIBS' # Initialize some variables set by options. ac_init_help= ac_init_version=false ac_unrecognized_opts= ac_unrecognized_sep= # The variables have the same names as the options, with # dashes changed to underlines. cache_file=/dev/null exec_prefix=NONE no_create= no_recursion= prefix=NONE program_prefix=NONE program_suffix=NONE program_transform_name=s,x,x, silent= site= srcdir= verbose= x_includes=NONE x_libraries=NONE # Installation directory options. # These are left unexpanded so users can "make install exec_prefix=/foo" # and all the variables that are supposed to be based on exec_prefix # by default will actually change. # Use braces instead of parens because sh, perl, etc. also accept them. # (The list follows the same order as the GNU Coding Standards.) bindir='${exec_prefix}/bin' sbindir='${exec_prefix}/sbin' libexecdir='${exec_prefix}/libexec' datarootdir='${prefix}/share' datadir='${datarootdir}' sysconfdir='${prefix}/etc' sharedstatedir='${prefix}/com' localstatedir='${prefix}/var' runstatedir='${localstatedir}/run' includedir='${prefix}/include' oldincludedir='/usr/include' docdir='${datarootdir}/doc/${PACKAGE_TARNAME}' infodir='${datarootdir}/info' htmldir='${docdir}' dvidir='${docdir}' pdfdir='${docdir}' psdir='${docdir}' libdir='${exec_prefix}/lib' localedir='${datarootdir}/locale' mandir='${datarootdir}/man' ac_prev= ac_dashdash= for ac_option do # If the previous option needs an argument, assign it. if test -n "$ac_prev"; then eval $ac_prev=\$ac_option ac_prev= continue fi case $ac_option in *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; *=) ac_optarg= ;; *) ac_optarg=yes ;; esac # Accept the important Cygnus configure options, so we can diagnose typos. case $ac_dashdash$ac_option in --) ac_dashdash=yes ;; -bindir | --bindir | --bindi | --bind | --bin | --bi) ac_prev=bindir ;; -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) bindir=$ac_optarg ;; -build | --build | --buil | --bui | --bu) ac_prev=build_alias ;; -build=* | --build=* | --buil=* | --bui=* | --bu=*) build_alias=$ac_optarg ;; -cache-file | --cache-file | --cache-fil | --cache-fi \ | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) ac_prev=cache_file ;; -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) cache_file=$ac_optarg ;; --config-cache | -C) cache_file=config.cache ;; -datadir | --datadir | --datadi | --datad) ac_prev=datadir ;; -datadir=* | --datadir=* | --datadi=* | --datad=*) datadir=$ac_optarg ;; -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \ | --dataroo | --dataro | --datar) ac_prev=datarootdir ;; -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \ | --dataroot=* | --dataroo=* | --dataro=* | --datar=*) datarootdir=$ac_optarg ;; -disable-* | --disable-*) ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid feature name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "enable_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval enable_$ac_useropt=no ;; -docdir | --docdir | --docdi | --doc | --do) ac_prev=docdir ;; -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*) docdir=$ac_optarg ;; -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv) ac_prev=dvidir ;; -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*) dvidir=$ac_optarg ;; -enable-* | --enable-*) ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid feature name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "enable_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval enable_$ac_useropt=\$ac_optarg ;; -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ | --exec | --exe | --ex) ac_prev=exec_prefix ;; -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ | --exec=* | --exe=* | --ex=*) exec_prefix=$ac_optarg ;; -gas | --gas | --ga | --g) # Obsolete; use --with-gas. with_gas=yes ;; -help | --help | --hel | --he | -h) ac_init_help=long ;; -help=r* | --help=r* | --hel=r* | --he=r* | -hr*) ac_init_help=recursive ;; -help=s* | --help=s* | --hel=s* | --he=s* | -hs*) ac_init_help=short ;; -host | --host | --hos | --ho) ac_prev=host_alias ;; -host=* | --host=* | --hos=* | --ho=*) host_alias=$ac_optarg ;; -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht) ac_prev=htmldir ;; -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \ | --ht=*) htmldir=$ac_optarg ;; -includedir | --includedir | --includedi | --included | --include \ | --includ | --inclu | --incl | --inc) ac_prev=includedir ;; -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ | --includ=* | --inclu=* | --incl=* | --inc=*) includedir=$ac_optarg ;; -infodir | --infodir | --infodi | --infod | --info | --inf) ac_prev=infodir ;; -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) infodir=$ac_optarg ;; -libdir | --libdir | --libdi | --libd) ac_prev=libdir ;; -libdir=* | --libdir=* | --libdi=* | --libd=*) libdir=$ac_optarg ;; -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ | --libexe | --libex | --libe) ac_prev=libexecdir ;; -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ | --libexe=* | --libex=* | --libe=*) libexecdir=$ac_optarg ;; -localedir | --localedir | --localedi | --localed | --locale) ac_prev=localedir ;; -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*) localedir=$ac_optarg ;; -localstatedir | --localstatedir | --localstatedi | --localstated \ | --localstate | --localstat | --localsta | --localst | --locals) ac_prev=localstatedir ;; -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*) localstatedir=$ac_optarg ;; -mandir | --mandir | --mandi | --mand | --man | --ma | --m) ac_prev=mandir ;; -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) mandir=$ac_optarg ;; -nfp | --nfp | --nf) # Obsolete; use --without-fp. with_fp=no ;; -no-create | --no-create | --no-creat | --no-crea | --no-cre \ | --no-cr | --no-c | -n) no_create=yes ;; -no-recursion | --no-recursion | --no-recursio | --no-recursi \ | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) no_recursion=yes ;; -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ | --oldin | --oldi | --old | --ol | --o) ac_prev=oldincludedir ;; -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) oldincludedir=$ac_optarg ;; -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) ac_prev=prefix ;; -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) prefix=$ac_optarg ;; -program-prefix | --program-prefix | --program-prefi | --program-pref \ | --program-pre | --program-pr | --program-p) ac_prev=program_prefix ;; -program-prefix=* | --program-prefix=* | --program-prefi=* \ | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) program_prefix=$ac_optarg ;; -program-suffix | --program-suffix | --program-suffi | --program-suff \ | --program-suf | --program-su | --program-s) ac_prev=program_suffix ;; -program-suffix=* | --program-suffix=* | --program-suffi=* \ | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) program_suffix=$ac_optarg ;; -program-transform-name | --program-transform-name \ | --program-transform-nam | --program-transform-na \ | --program-transform-n | --program-transform- \ | --program-transform | --program-transfor \ | --program-transfo | --program-transf \ | --program-trans | --program-tran \ | --progr-tra | --program-tr | --program-t) ac_prev=program_transform_name ;; -program-transform-name=* | --program-transform-name=* \ | --program-transform-nam=* | --program-transform-na=* \ | --program-transform-n=* | --program-transform-=* \ | --program-transform=* | --program-transfor=* \ | --program-transfo=* | --program-transf=* \ | --program-trans=* | --program-tran=* \ | --progr-tra=* | --program-tr=* | --program-t=*) program_transform_name=$ac_optarg ;; -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd) ac_prev=pdfdir ;; -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*) pdfdir=$ac_optarg ;; -psdir | --psdir | --psdi | --psd | --ps) ac_prev=psdir ;; -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*) psdir=$ac_optarg ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) silent=yes ;; -runstatedir | --runstatedir | --runstatedi | --runstated \ | --runstate | --runstat | --runsta | --runst | --runs \ | --run | --ru | --r) ac_prev=runstatedir ;; -runstatedir=* | --runstatedir=* | --runstatedi=* | --runstated=* \ | --runstate=* | --runstat=* | --runsta=* | --runst=* | --runs=* \ | --run=* | --ru=* | --r=*) runstatedir=$ac_optarg ;; -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) ac_prev=sbindir ;; -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ | --sbi=* | --sb=*) sbindir=$ac_optarg ;; -sharedstatedir | --sharedstatedir | --sharedstatedi \ | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ | --sharedst | --shareds | --shared | --share | --shar \ | --sha | --sh) ac_prev=sharedstatedir ;; -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ | --sha=* | --sh=*) sharedstatedir=$ac_optarg ;; -site | --site | --sit) ac_prev=site ;; -site=* | --site=* | --sit=*) site=$ac_optarg ;; -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) ac_prev=srcdir ;; -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) srcdir=$ac_optarg ;; -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ | --syscon | --sysco | --sysc | --sys | --sy) ac_prev=sysconfdir ;; -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) sysconfdir=$ac_optarg ;; -target | --target | --targe | --targ | --tar | --ta | --t) ac_prev=target_alias ;; -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) target_alias=$ac_optarg ;; -v | -verbose | --verbose | --verbos | --verbo | --verb) verbose=yes ;; -version | --version | --versio | --versi | --vers | -V) ac_init_version=: ;; -with-* | --with-*) ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid package name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "with_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval with_$ac_useropt=\$ac_optarg ;; -without-* | --without-*) ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid package name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "with_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval with_$ac_useropt=no ;; --x) # Obsolete; use --with-x. with_x=yes ;; -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ | --x-incl | --x-inc | --x-in | --x-i) ac_prev=x_includes ;; -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) x_includes=$ac_optarg ;; -x-libraries | --x-libraries | --x-librarie | --x-librari \ | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) ac_prev=x_libraries ;; -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) x_libraries=$ac_optarg ;; -*) as_fn_error $? "unrecognized option: \`$ac_option' Try \`$0 --help' for more information" ;; *=*) ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` # Reject names that are not valid shell variable names. case $ac_envvar in #( '' | [0-9]* | *[!_$as_cr_alnum]* ) as_fn_error $? "invalid variable name: \`$ac_envvar'" ;; esac eval $ac_envvar=\$ac_optarg export $ac_envvar ;; *) # FIXME: should be removed in autoconf 3.0. $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2 expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2 : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}" ;; esac done if test -n "$ac_prev"; then ac_option=--`echo $ac_prev | sed 's/_/-/g'` as_fn_error $? "missing argument to $ac_option" fi if test -n "$ac_unrecognized_opts"; then case $enable_option_checking in no) ;; fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;; *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;; esac fi # Check all directory arguments for consistency. for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ datadir sysconfdir sharedstatedir localstatedir includedir \ oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ libdir localedir mandir runstatedir do eval ac_val=\$$ac_var # Remove trailing slashes. case $ac_val in */ ) ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'` eval $ac_var=\$ac_val;; esac # Be sure to have absolute directory names. case $ac_val in [\\/$]* | ?:[\\/]* ) continue;; NONE | '' ) case $ac_var in *prefix ) continue;; esac;; esac as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val" done # There might be people who depend on the old broken behavior: `$host' # used to hold the argument of --host etc. # FIXME: To remove some day. build=$build_alias host=$host_alias target=$target_alias # FIXME: To remove some day. if test "x$host_alias" != x; then if test "x$build_alias" = x; then cross_compiling=maybe elif test "x$build_alias" != "x$host_alias"; then cross_compiling=yes fi fi ac_tool_prefix= test -n "$host_alias" && ac_tool_prefix=$host_alias- test "$silent" = yes && exec 6>/dev/null ac_pwd=`pwd` && test -n "$ac_pwd" && ac_ls_di=`ls -di .` && ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || as_fn_error $? "working directory cannot be determined" test "X$ac_ls_di" = "X$ac_pwd_ls_di" || as_fn_error $? "pwd does not report name of working directory" # Find the source files, if location was not specified. if test -z "$srcdir"; then ac_srcdir_defaulted=yes # Try the directory containing this script, then the parent directory. ac_confdir=`$as_dirname -- "$as_myself" || $as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_myself" : 'X\(//\)[^/]' \| \ X"$as_myself" : 'X\(//\)$' \| \ X"$as_myself" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_myself" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` srcdir=$ac_confdir if test ! -r "$srcdir/$ac_unique_file"; then srcdir=.. fi else ac_srcdir_defaulted=no fi if test ! -r "$srcdir/$ac_unique_file"; then test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir" fi ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" ac_abs_confdir=`( cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg" pwd)` # When building in place, set srcdir=. if test "$ac_abs_confdir" = "$ac_pwd"; then srcdir=. fi # Remove unnecessary trailing slashes from srcdir. # Double slashes in file names in object file debugging info # mess up M-x gdb in Emacs. case $srcdir in */) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;; esac for ac_var in $ac_precious_vars; do eval ac_env_${ac_var}_set=\${${ac_var}+set} eval ac_env_${ac_var}_value=\$${ac_var} eval ac_cv_env_${ac_var}_set=\${${ac_var}+set} eval ac_cv_env_${ac_var}_value=\$${ac_var} done # # Report the --help message. # if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF \`configure' configures Ario 1.6 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... To assign environment variables (e.g., CC, CFLAGS...), specify them as VAR=VALUE. See below for descriptions of some of the useful variables. Defaults for the options are specified in brackets. Configuration: -h, --help display this help and exit --help=short display options specific to this package --help=recursive display the short help of all the included packages -V, --version display version information and exit -q, --quiet, --silent do not print \`checking ...' messages --cache-file=FILE cache test results in FILE [disabled] -C, --config-cache alias for \`--cache-file=config.cache' -n, --no-create do not create output files --srcdir=DIR find the sources in DIR [configure dir or \`..'] Installation directories: --prefix=PREFIX install architecture-independent files in PREFIX [$ac_default_prefix] --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX [PREFIX] By default, \`make install' will install all the files in \`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify an installation prefix other than \`$ac_default_prefix' using \`--prefix', for instance \`--prefix=\$HOME'. For better control, use the options below. Fine tuning of the installation directories: --bindir=DIR user executables [EPREFIX/bin] --sbindir=DIR system admin executables [EPREFIX/sbin] --libexecdir=DIR program executables [EPREFIX/libexec] --sysconfdir=DIR read-only single-machine data [PREFIX/etc] --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] --localstatedir=DIR modifiable single-machine data [PREFIX/var] --runstatedir=DIR modifiable per-process data [LOCALSTATEDIR/run] --libdir=DIR object code libraries [EPREFIX/lib] --includedir=DIR C header files [PREFIX/include] --oldincludedir=DIR C header files for non-gcc [/usr/include] --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] --datadir=DIR read-only architecture-independent data [DATAROOTDIR] --infodir=DIR info documentation [DATAROOTDIR/info] --localedir=DIR locale-dependent data [DATAROOTDIR/locale] --mandir=DIR man documentation [DATAROOTDIR/man] --docdir=DIR documentation root [DATAROOTDIR/doc/ario] --htmldir=DIR html documentation [DOCDIR] --dvidir=DIR dvi documentation [DOCDIR] --pdfdir=DIR pdf documentation [DOCDIR] --psdir=DIR ps documentation [DOCDIR] _ACEOF cat <<\_ACEOF Program names: --program-prefix=PREFIX prepend PREFIX to installed program names --program-suffix=SUFFIX append SUFFIX to installed program names --program-transform-name=PROGRAM run sed PROGRAM on installed program names System types: --build=BUILD configure for building on BUILD [guessed] --host=HOST cross-compile to build programs to run on HOST [BUILD] _ACEOF fi if test -n "$ac_init_help"; then case $ac_init_help in short | recursive ) echo "Configuration of Ario 1.6:";; esac cat <<\_ACEOF Optional Features: --disable-option-checking ignore unrecognized --enable/--with options --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) --enable-FEATURE[=ARG] include FEATURE [ARG=yes] --enable-silent-rules less verbose build output (undo: "make V=1") --disable-silent-rules verbose build output (undo: "make V=0") --enable-dependency-tracking do not reject slow dependency extractors --disable-dependency-tracking speeds up one-time build --enable-shared[=PKGS] build shared libraries [default=yes] --enable-static[=PKGS] build static libraries [default=yes] --enable-fast-install[=PKGS] optimize for fast installation [default=yes] --disable-libtool-lock avoid locking (might break parallel builds) --disable-nls do not use Native Language Support --enable-debug Add runtime debugging information (slower) --enable-xmms2 Add support of XMMS2 (VERY EXPERIMENTAL) --disable-libmpdclient2 Disable use libmpdclient2 (embedded version of libmpdclient zill be used) --enable-python Enable python plugins support --disable-search Disable support of search view --disable-mpdidle Disable MPD idle mode (MPD idle mode reduces CPU and network usage) --disable-playlists Disable support of playlists --disable-dbus Disable support of dbus --disable-avahi Disable support of avahi --disable-taglib Disable support of Taglib --enable-deprecations Warn about deprecated usages Optional Packages: --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) --with-pic[=PKGS] try to use only PIC/non-PIC objects [default=use both] --with-aix-soname=aix|svr4|both shared library versioning (aka "SONAME") variant to provide on AIX, [default=aix]. --with-gnu-ld assume the C compiler uses GNU ld [default=no] --with-sysroot[=DIR] Search for dependent libraries within DIR (or the compiler's sysroot if not specified). Some influential environment variables: CC C compiler command CFLAGS C compiler flags LDFLAGS linker flags, e.g. -L if you have libraries in a nonstandard directory LIBS libraries to pass to the linker, e.g. -l CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I if you have headers in a nonstandard directory CPP C preprocessor LT_SYS_LIBRARY_PATH User-defined run-time library search path. PKG_CONFIG path to pkg-config utility PKG_CONFIG_PATH directories to add to pkg-config's search path PKG_CONFIG_LIBDIR path overriding pkg-config's built-in search path DEPS_CFLAGS C compiler flags for DEPS, overriding pkg-config DEPS_LIBS linker flags for DEPS, overriding pkg-config XMMS2_CFLAGS C compiler flags for XMMS2, overriding pkg-config XMMS2_LIBS linker flags for XMMS2, overriding pkg-config LIBMPDCLIENT2_CFLAGS C compiler flags for LIBMPDCLIENT2, overriding pkg-config LIBMPDCLIENT2_LIBS linker flags for LIBMPDCLIENT2, overriding pkg-config PYTHON the Python interpreter PYGTK_CFLAGS C compiler flags for PYGTK, overriding pkg-config PYGTK_LIBS linker flags for PYGTK, overriding pkg-config DBUS_CFLAGS C compiler flags for DBUS, overriding pkg-config DBUS_LIBS linker flags for DBUS, overriding pkg-config AVAHI_CFLAGS C compiler flags for AVAHI, overriding pkg-config AVAHI_LIBS linker flags for AVAHI, overriding pkg-config TAGLIB_CFLAGS C compiler flags for TAGLIB, overriding pkg-config TAGLIB_LIBS linker flags for TAGLIB, overriding pkg-config Use these variables to override the choices made by `configure' or to help it to find libraries and programs with nonstandard names/locations. Report bugs to . _ACEOF ac_status=$? fi if test "$ac_init_help" = "recursive"; then # If there are subdirs, report their specific --help. for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue test -d "$ac_dir" || { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } || continue ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` # A ".." for each directory in $ac_dir_suffix. ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; esac ;; esac ac_abs_top_builddir=$ac_pwd ac_abs_builddir=$ac_pwd$ac_dir_suffix # for backward compatibility: ac_top_builddir=$ac_top_build_prefix case $srcdir in .) # We are building in place. ac_srcdir=. ac_top_srcdir=$ac_top_builddir_sub ac_abs_top_srcdir=$ac_pwd ;; [\\/]* | ?:[\\/]* ) # Absolute name. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ac_abs_top_srcdir=$srcdir ;; *) # Relative name. ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_build_prefix$srcdir ac_abs_top_srcdir=$ac_pwd/$srcdir ;; esac ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix cd "$ac_dir" || { ac_status=$?; continue; } # Check for guested configure. if test -f "$ac_srcdir/configure.gnu"; then echo && $SHELL "$ac_srcdir/configure.gnu" --help=recursive elif test -f "$ac_srcdir/configure"; then echo && $SHELL "$ac_srcdir/configure" --help=recursive else $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 fi || ac_status=$? cd "$ac_pwd" || { ac_status=$?; break; } done fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF Ario configure 1.6 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. This configure script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it. _ACEOF exit fi ## ------------------------ ## ## Autoconf initialization. ## ## ------------------------ ## # ac_fn_c_try_compile LINENO # -------------------------- # Try to compile conftest.$ac_ext, and return whether this succeeded. ac_fn_c_try_compile () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack rm -f conftest.$ac_objext if { { ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compile") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then : ac_retval=0 else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_c_try_compile # ac_fn_c_try_cpp LINENO # ---------------------- # Try to preprocess conftest.$ac_ext, and return whether this succeeded. ac_fn_c_try_cpp () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack if { { ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } > conftest.i && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then : ac_retval=0 else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_c_try_cpp # ac_fn_c_try_run LINENO # ---------------------- # Try to link conftest.$ac_ext, and return whether this succeeded. Assumes # that executables *can* be run. ac_fn_c_try_run () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack if { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { ac_try='./conftest$ac_exeext' { { case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_try") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; }; then : ac_retval=0 else $as_echo "$as_me: program exited with status $ac_status" >&5 $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=$ac_status fi rm -rf conftest.dSYM conftest_ipa8_conftest.oo eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_c_try_run # ac_fn_c_try_link LINENO # ----------------------- # Try to link conftest.$ac_ext, and return whether this succeeded. ac_fn_c_try_link () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack rm -f conftest.$ac_objext conftest$ac_exeext if { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || test -x conftest$ac_exeext }; then : ac_retval=0 else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would # interfere with the next link command; also delete a directory that is # left behind by Apple's compiler. We do this before executing the actions. rm -rf conftest.dSYM conftest_ipa8_conftest.oo eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_c_try_link # ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES # ------------------------------------------------------- # Tests whether HEADER exists and can be compiled using the include files in # INCLUDES, setting the cache variable VAR accordingly. ac_fn_c_check_header_compile () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 #include <$2> _ACEOF if ac_fn_c_try_compile "$LINENO"; then : eval "$3=yes" else eval "$3=no" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_header_compile # ac_fn_c_check_func LINENO FUNC VAR # ---------------------------------- # Tests whether FUNC exists, setting the cache variable VAR accordingly ac_fn_c_check_func () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Define $2 to an innocuous variant, in case declares $2. For example, HP-UX 11i declares gettimeofday. */ #define $2 innocuous_$2 /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $2 (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ #ifdef __STDC__ # include #else # include #endif #undef $2 /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char $2 (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined __stub_$2 || defined __stub___$2 choke me #endif int main () { return $2 (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : eval "$3=yes" else eval "$3=no" fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_func # ac_fn_c_check_header_mongrel LINENO HEADER VAR INCLUDES # ------------------------------------------------------- # Tests whether HEADER exists, giving a warning if it cannot be compiled using # the include files in INCLUDES and setting the cache variable VAR # accordingly. ac_fn_c_check_header_mongrel () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack if eval \${$3+:} false; then : { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } else # Is the header compilable? { $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 usability" >&5 $as_echo_n "checking $2 usability... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 #include <$2> _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_header_compiler=yes else ac_header_compiler=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_compiler" >&5 $as_echo "$ac_header_compiler" >&6; } # Is the header present? { $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 presence" >&5 $as_echo_n "checking $2 presence... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <$2> _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : ac_header_preproc=yes else ac_header_preproc=no fi rm -f conftest.err conftest.i conftest.$ac_ext { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5 $as_echo "$ac_header_preproc" >&6; } # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in #(( yes:no: ) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&5 $as_echo "$as_me: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 $as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} ;; no:yes:* ) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: present but cannot be compiled" >&5 $as_echo "$as_me: WARNING: $2: present but cannot be compiled" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: check for missing prerequisite headers?" >&5 $as_echo "$as_me: WARNING: $2: check for missing prerequisite headers?" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: see the Autoconf documentation" >&5 $as_echo "$as_me: WARNING: $2: see the Autoconf documentation" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&5 $as_echo "$as_me: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 $as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} ( $as_echo "## ----------------------------------- ## ## Report this to marc.pavot@gmail.com ## ## ----------------------------------- ##" ) | sed "s/^/$as_me: WARNING: /" >&2 ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else eval "$3=\$ac_header_compiler" fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } fi eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_header_mongrel cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. It was created by Ario $as_me 1.6, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ _ACEOF exec 5>>config.log { cat <<_ASUNAME ## --------- ## ## Platform. ## ## --------- ## hostname = `(hostname || uname -n) 2>/dev/null | sed 1q` uname -m = `(uname -m) 2>/dev/null || echo unknown` uname -r = `(uname -r) 2>/dev/null || echo unknown` uname -s = `(uname -s) 2>/dev/null || echo unknown` uname -v = `(uname -v) 2>/dev/null || echo unknown` /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown` /bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` /bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` /usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown` /bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` /bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` _ASUNAME as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. $as_echo "PATH: $as_dir" done IFS=$as_save_IFS } >&5 cat >&5 <<_ACEOF ## ----------- ## ## Core tests. ## ## ----------- ## _ACEOF # Keep a trace of the command line. # Strip out --no-create and --no-recursion so they do not pile up. # Strip out --silent because we don't want to record it for future runs. # Also quote any args containing shell meta-characters. # Make two passes to allow for proper duplicate-argument suppression. ac_configure_args= ac_configure_args0= ac_configure_args1= ac_must_keep_next=false for ac_pass in 1 2 do for ac_arg do case $ac_arg in -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) continue ;; *\'*) ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; esac case $ac_pass in 1) as_fn_append ac_configure_args0 " '$ac_arg'" ;; 2) as_fn_append ac_configure_args1 " '$ac_arg'" if test $ac_must_keep_next = true; then ac_must_keep_next=false # Got value, back to normal. else case $ac_arg in *=* | --config-cache | -C | -disable-* | --disable-* \ | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ | -with-* | --with-* | -without-* | --without-* | --x) case "$ac_configure_args0 " in "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; esac ;; -* ) ac_must_keep_next=true ;; esac fi as_fn_append ac_configure_args " '$ac_arg'" ;; esac done done { ac_configure_args0=; unset ac_configure_args0;} { ac_configure_args1=; unset ac_configure_args1;} # When interrupted or exit'd, cleanup temporary files, and complete # config.log. We remove comments because anyway the quotes in there # would cause problems or look ugly. # WARNING: Use '\'' to represent an apostrophe within the trap. # WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug. trap 'exit_status=$? # Save into config.log some information that might help in debugging. { echo $as_echo "## ---------------- ## ## Cache variables. ## ## ---------------- ##" echo # The following way of writing the cache mishandles newlines in values, ( for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do eval ac_val=\$$ac_var case $ac_val in #( *${as_nl}*) case $ac_var in #( *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( *) { eval $ac_var=; unset $ac_var;} ;; esac ;; esac done (set) 2>&1 | case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #( *${as_nl}ac_space=\ *) sed -n \ "s/'\''/'\''\\\\'\'''\''/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p" ;; #( *) sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" ;; esac | sort ) echo $as_echo "## ----------------- ## ## Output variables. ## ## ----------------- ##" echo for ac_var in $ac_subst_vars do eval ac_val=\$$ac_var case $ac_val in *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac $as_echo "$ac_var='\''$ac_val'\''" done | sort echo if test -n "$ac_subst_files"; then $as_echo "## ------------------- ## ## File substitutions. ## ## ------------------- ##" echo for ac_var in $ac_subst_files do eval ac_val=\$$ac_var case $ac_val in *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac $as_echo "$ac_var='\''$ac_val'\''" done | sort echo fi if test -s confdefs.h; then $as_echo "## ----------- ## ## confdefs.h. ## ## ----------- ##" echo cat confdefs.h echo fi test "$ac_signal" != 0 && $as_echo "$as_me: caught signal $ac_signal" $as_echo "$as_me: exit $exit_status" } >&5 rm -f core *.core core.conftest.* && rm -f -r conftest* confdefs* conf$$* $ac_clean_files && exit $exit_status ' 0 for ac_signal in 1 2 13 15; do trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal done ac_signal=0 # confdefs.h avoids OS command line length limits that DEFS can exceed. rm -f -r conftest* confdefs.h $as_echo "/* confdefs.h */" > confdefs.h # Predefined preprocessor variables. cat >>confdefs.h <<_ACEOF #define PACKAGE_NAME "$PACKAGE_NAME" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_TARNAME "$PACKAGE_TARNAME" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_VERSION "$PACKAGE_VERSION" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_STRING "$PACKAGE_STRING" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_URL "$PACKAGE_URL" _ACEOF # Let the site file select an alternate cache file if it wants to. # Prefer an explicitly selected file to automatically selected ones. ac_site_file1=NONE ac_site_file2=NONE if test -n "$CONFIG_SITE"; then # We do not want a PATH search for config.site. case $CONFIG_SITE in #(( -*) ac_site_file1=./$CONFIG_SITE;; */*) ac_site_file1=$CONFIG_SITE;; *) ac_site_file1=./$CONFIG_SITE;; esac elif test "x$prefix" != xNONE; then ac_site_file1=$prefix/share/config.site ac_site_file2=$prefix/etc/config.site else ac_site_file1=$ac_default_prefix/share/config.site ac_site_file2=$ac_default_prefix/etc/config.site fi for ac_site_file in "$ac_site_file1" "$ac_site_file2" do test "x$ac_site_file" = xNONE && continue if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5 $as_echo "$as_me: loading site script $ac_site_file" >&6;} sed 's/^/| /' "$ac_site_file" >&5 . "$ac_site_file" \ || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "failed to load site script $ac_site_file See \`config.log' for more details" "$LINENO" 5; } fi done if test -r "$cache_file"; then # Some versions of bash will fail to source /dev/null (special files # actually), so we avoid doing that. DJGPP emulates it as a regular file. if test /dev/null != "$cache_file" && test -f "$cache_file"; then { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5 $as_echo "$as_me: loading cache $cache_file" >&6;} case $cache_file in [\\/]* | ?:[\\/]* ) . "$cache_file";; *) . "./$cache_file";; esac fi else { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5 $as_echo "$as_me: creating cache $cache_file" >&6;} >$cache_file fi # Check that the precious variables saved in the cache have kept the same # value. ac_cache_corrupted=false for ac_var in $ac_precious_vars; do eval ac_old_set=\$ac_cv_env_${ac_var}_set eval ac_new_set=\$ac_env_${ac_var}_set eval ac_old_val=\$ac_cv_env_${ac_var}_value eval ac_new_val=\$ac_env_${ac_var}_value case $ac_old_set,$ac_new_set in set,) { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 $as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} ac_cache_corrupted=: ;; ,set) { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5 $as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} ac_cache_corrupted=: ;; ,);; *) if test "x$ac_old_val" != "x$ac_new_val"; then # differences in whitespace do not lead to failure. ac_old_val_w=`echo x $ac_old_val` ac_new_val_w=`echo x $ac_new_val` if test "$ac_old_val_w" != "$ac_new_val_w"; then { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5 $as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} ac_cache_corrupted=: else { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5 $as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;} eval $ac_var=\$ac_old_val fi { $as_echo "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5 $as_echo "$as_me: former value: \`$ac_old_val'" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5 $as_echo "$as_me: current value: \`$ac_new_val'" >&2;} fi;; esac # Pass precious variables to config.status. if test "$ac_new_set" = set; then case $ac_new_val in *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; *) ac_arg=$ac_var=$ac_new_val ;; esac case " $ac_configure_args " in *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. *) as_fn_append ac_configure_args " '$ac_arg'" ;; esac fi done if $ac_cache_corrupted; then { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5 $as_echo "$as_me: error: changes in the environment can compromise the build" >&2;} as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5 fi ## -------------------- ## ## Main body of script. ## ## -------------------- ## ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu ac_config_headers="$ac_config_headers config.h" am__api_version='1.15' ac_aux_dir= for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do if test -f "$ac_dir/install-sh"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/install-sh -c" break elif test -f "$ac_dir/install.sh"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/install.sh -c" break elif test -f "$ac_dir/shtool"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/shtool install -c" break fi done if test -z "$ac_aux_dir"; then as_fn_error $? "cannot find install-sh, install.sh, or shtool in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" "$LINENO" 5 fi # These three variables are undocumented and unsupported, # and are intended to be withdrawn in a future Autoconf release. # They can cause serious problems if a builder's source tree is in a directory # whose full name contains unusual characters. ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var. ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var. ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var. # Find a good install program. We prefer a C program (faster), # so one script is as good as another. But avoid the broken or # incompatible versions: # SysV /etc/install, /usr/sbin/install # SunOS /usr/etc/install # IRIX /sbin/install # AIX /bin/install # AmigaOS /C/install, which installs bootblocks on floppy discs # AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag # AFS /usr/afsws/bin/install, which mishandles nonexistent args # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" # OS/2's system install, which has a completely different semantic # ./install, which can be erroneously created by make from ./install.sh. # Reject install programs that cannot install multiple files. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5 $as_echo_n "checking for a BSD-compatible install... " >&6; } if test -z "$INSTALL"; then if ${ac_cv_path_install+:} false; then : $as_echo_n "(cached) " >&6 else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. # Account for people who put trailing slashes in PATH elements. case $as_dir/ in #(( ./ | .// | /[cC]/* | \ /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ ?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \ /usr/ucb/* ) ;; *) # OSF1 and SCO ODT 3.0 have their own names for install. # Don't use installbsd from OSF since it installs stuff as root # by default. for ac_prog in ginstall scoinst install; do for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then if test $ac_prog = install && grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # AIX install. It has an incompatible calling convention. : elif test $ac_prog = install && grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # program-specific install script used by HP pwplus--don't use. : else rm -rf conftest.one conftest.two conftest.dir echo one > conftest.one echo two > conftest.two mkdir conftest.dir if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" && test -s conftest.one && test -s conftest.two && test -s conftest.dir/conftest.one && test -s conftest.dir/conftest.two then ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" break 3 fi fi fi done done ;; esac done IFS=$as_save_IFS rm -rf conftest.one conftest.two conftest.dir fi if test "${ac_cv_path_install+set}" = set; then INSTALL=$ac_cv_path_install else # As a last resort, use the slow shell script. Don't cache a # value for INSTALL within a source directory, because that will # break other packages using the cache if that directory is # removed, or if the value is a relative name. INSTALL=$ac_install_sh fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5 $as_echo "$INSTALL" >&6; } # Use test -z because SunOS4 sh mishandles braces in ${var-val}. # It thinks the first close brace ends the variable substitution. test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether build environment is sane" >&5 $as_echo_n "checking whether build environment is sane... " >&6; } # Reject unsafe characters in $srcdir or the absolute working directory # name. Accept space and tab only in the latter. am_lf=' ' case `pwd` in *[\\\"\#\$\&\'\`$am_lf]*) as_fn_error $? "unsafe absolute working directory name" "$LINENO" 5;; esac case $srcdir in *[\\\"\#\$\&\'\`$am_lf\ \ ]*) as_fn_error $? "unsafe srcdir value: '$srcdir'" "$LINENO" 5;; esac # Do 'set' in a subshell so we don't clobber the current shell's # arguments. Must try -L first in case configure is actually a # symlink; some systems play weird games with the mod time of symlinks # (eg FreeBSD returns the mod time of the symlink's containing # directory). if ( am_has_slept=no for am_try in 1 2; do echo "timestamp, slept: $am_has_slept" > conftest.file set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` if test "$*" = "X"; then # -L didn't work. set X `ls -t "$srcdir/configure" conftest.file` fi if test "$*" != "X $srcdir/configure conftest.file" \ && test "$*" != "X conftest.file $srcdir/configure"; then # If neither matched, then we have a broken ls. This can happen # if, for instance, CONFIG_SHELL is bash and it inherits a # broken ls alias from the environment. This has actually # happened. Such a system could not be considered "sane". as_fn_error $? "ls -t appears to fail. Make sure there is not a broken alias in your environment" "$LINENO" 5 fi if test "$2" = conftest.file || test $am_try -eq 2; then break fi # Just in case. sleep 1 am_has_slept=yes done test "$2" = conftest.file ) then # Ok. : else as_fn_error $? "newly created file is older than distributed files! Check your system clock" "$LINENO" 5 fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } # If we didn't sleep, we still need to ensure time stamps of config.status and # generated files are strictly newer. am_sleep_pid= if grep 'slept: no' conftest.file >/dev/null 2>&1; then ( sleep 1 ) & am_sleep_pid=$! fi rm -f conftest.file test "$program_prefix" != NONE && program_transform_name="s&^&$program_prefix&;$program_transform_name" # Use a double $ so make ignores it. test "$program_suffix" != NONE && program_transform_name="s&\$&$program_suffix&;$program_transform_name" # Double any \ or $. # By default was `s,x,x', remove it if useless. ac_script='s/[\\$]/&&/g;s/;s,x,x,$//' program_transform_name=`$as_echo "$program_transform_name" | sed "$ac_script"` # Expand $ac_aux_dir to an absolute path. am_aux_dir=`cd "$ac_aux_dir" && pwd` if test x"${MISSING+set}" != xset; then case $am_aux_dir in *\ * | *\ *) MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;; *) MISSING="\${SHELL} $am_aux_dir/missing" ;; esac fi # Use eval to expand $SHELL if eval "$MISSING --is-lightweight"; then am_missing_run="$MISSING " else am_missing_run= { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: 'missing' script is too old or missing" >&5 $as_echo "$as_me: WARNING: 'missing' script is too old or missing" >&2;} fi if test x"${install_sh+set}" != xset; then case $am_aux_dir in *\ * | *\ *) install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; *) install_sh="\${SHELL} $am_aux_dir/install-sh" esac fi # Installed binaries are usually stripped using 'strip' when the user # run "make install-strip". However 'strip' might not be the right # tool to use in cross-compilation environments, therefore Automake # will honor the 'STRIP' environment variable to overrule this program. if test "$cross_compiling" != no; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. set dummy ${ac_tool_prefix}strip; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_STRIP+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$STRIP"; then ac_cv_prog_STRIP="$STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_STRIP="${ac_tool_prefix}strip" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi STRIP=$ac_cv_prog_STRIP if test -n "$STRIP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5 $as_echo "$STRIP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_STRIP"; then ac_ct_STRIP=$STRIP # Extract the first word of "strip", so it can be a program name with args. set dummy strip; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_STRIP+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_STRIP"; then ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_STRIP="strip" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP if test -n "$ac_ct_STRIP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5 $as_echo "$ac_ct_STRIP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_STRIP" = x; then STRIP=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac STRIP=$ac_ct_STRIP fi else STRIP="$ac_cv_prog_STRIP" fi fi INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a thread-safe mkdir -p" >&5 $as_echo_n "checking for a thread-safe mkdir -p... " >&6; } if test -z "$MKDIR_P"; then if ${ac_cv_path_mkdir+:} false; then : $as_echo_n "(cached) " >&6 else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in mkdir gmkdir; do for ac_exec_ext in '' $ac_executable_extensions; do as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext" || continue case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #( 'mkdir (GNU coreutils) '* | \ 'mkdir (coreutils) '* | \ 'mkdir (fileutils) '4.1*) ac_cv_path_mkdir=$as_dir/$ac_prog$ac_exec_ext break 3;; esac done done done IFS=$as_save_IFS fi test -d ./--version && rmdir ./--version if test "${ac_cv_path_mkdir+set}" = set; then MKDIR_P="$ac_cv_path_mkdir -p" else # As a last resort, use the slow shell script. Don't cache a # value for MKDIR_P within a source directory, because that will # break other packages using the cache if that directory is # removed, or if the value is a relative name. MKDIR_P="$ac_install_sh -d" fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5 $as_echo "$MKDIR_P" >&6; } for ac_prog in gawk mawk nawk awk do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_AWK+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$AWK"; then ac_cv_prog_AWK="$AWK" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_AWK="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi AWK=$ac_cv_prog_AWK if test -n "$AWK"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5 $as_echo "$AWK" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$AWK" && break done { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5 $as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; } set x ${MAKE-make} ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` if eval \${ac_cv_prog_make_${ac_make}_set+:} false; then : $as_echo_n "(cached) " >&6 else cat >conftest.make <<\_ACEOF SHELL = /bin/sh all: @echo '@@@%%%=$(MAKE)=@@@%%%' _ACEOF # GNU make sometimes prints "make[1]: Entering ...", which would confuse us. case `${MAKE-make} -f conftest.make 2>/dev/null` in *@@@%%%=?*=@@@%%%*) eval ac_cv_prog_make_${ac_make}_set=yes;; *) eval ac_cv_prog_make_${ac_make}_set=no;; esac rm -f conftest.make fi if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } SET_MAKE= else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } SET_MAKE="MAKE=${MAKE-make}" fi rm -rf .tst 2>/dev/null mkdir .tst 2>/dev/null if test -d .tst; then am__leading_dot=. else am__leading_dot=_ fi rmdir .tst 2>/dev/null # Check whether --enable-silent-rules was given. if test "${enable_silent_rules+set}" = set; then : enableval=$enable_silent_rules; fi case $enable_silent_rules in # ((( yes) AM_DEFAULT_VERBOSITY=0;; no) AM_DEFAULT_VERBOSITY=1;; *) AM_DEFAULT_VERBOSITY=1;; esac am_make=${MAKE-make} { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $am_make supports nested variables" >&5 $as_echo_n "checking whether $am_make supports nested variables... " >&6; } if ${am_cv_make_support_nested_variables+:} false; then : $as_echo_n "(cached) " >&6 else if $as_echo 'TRUE=$(BAR$(V)) BAR0=false BAR1=true V=1 am__doit: @$(TRUE) .PHONY: am__doit' | $am_make -f - >/dev/null 2>&1; then am_cv_make_support_nested_variables=yes else am_cv_make_support_nested_variables=no fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_make_support_nested_variables" >&5 $as_echo "$am_cv_make_support_nested_variables" >&6; } if test $am_cv_make_support_nested_variables = yes; then AM_V='$(V)' AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)' else AM_V=$AM_DEFAULT_VERBOSITY AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY fi AM_BACKSLASH='\' if test "`cd $srcdir && pwd`" != "`pwd`"; then # Use -I$(srcdir) only when $(srcdir) != ., so that make's output # is not polluted with repeated "-I." am__isrc=' -I$(srcdir)' # test to see if srcdir already configured if test -f $srcdir/config.status; then as_fn_error $? "source directory already configured; run \"make distclean\" there first" "$LINENO" 5 fi fi # test whether we have cygpath if test -z "$CYGPATH_W"; then if (cygpath --version) >/dev/null 2>/dev/null; then CYGPATH_W='cygpath -w' else CYGPATH_W=echo fi fi # Define the identity of the package. PACKAGE='ario' VERSION='1.6' cat >>confdefs.h <<_ACEOF #define PACKAGE "$PACKAGE" _ACEOF cat >>confdefs.h <<_ACEOF #define VERSION "$VERSION" _ACEOF # Some tools Automake needs. ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"} AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"} AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"} AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"} MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"} # For better backward compatibility. To be removed once Automake 1.9.x # dies out for good. For more background, see: # # mkdir_p='$(MKDIR_P)' # We need awk for the "check" target (and possibly the TAP driver). The # system "awk" is bad on some platforms. # Always define AMTAR for backward compatibility. Yes, it's still used # in the wild :-( We should find a proper way to deprecate it ... AMTAR='$${TAR-tar}' # We'll loop over all known methods to create a tar archive until one works. _am_tools='gnutar pax cpio none' am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -' # POSIX will say in a future version that running "rm -f" with no argument # is OK; and we want to be able to make that assumption in our Makefile # recipes. So use an aggressive probe to check that the usage we want is # actually supported "in the wild" to an acceptable degree. # See automake bug#10828. # To make any issue more visible, cause the running configure to be aborted # by default if the 'rm' program in use doesn't match our expectations; the # user can still override this though. if rm -f && rm -fr && rm -rf; then : OK; else cat >&2 <<'END' Oops! Your 'rm' program seems unable to run without file operands specified on the command line, even when the '-f' option is present. This is contrary to the behaviour of most rm programs out there, and not conforming with the upcoming POSIX standard: Please tell bug-automake@gnu.org about your system, including the value of your $PATH and any error possibly output before this message. This can help us improve future automake versions. END if test x"$ACCEPT_INFERIOR_RM_PROGRAM" = x"yes"; then echo 'Configuration will proceed anyway, since you have set the' >&2 echo 'ACCEPT_INFERIOR_RM_PROGRAM variable to "yes"' >&2 echo >&2 else cat >&2 <<'END' Aborting the configuration process, to ensure you take notice of the issue. You can download and install GNU coreutils to get an 'rm' implementation that behaves properly: . If you want to complete the configuration process using your problematic 'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM to "yes", and re-run configure. END as_fn_error $? "Your 'rm' program is bad, sorry." "$LINENO" 5 fi fi # Check whether --enable-silent-rules was given. if test "${enable_silent_rules+set}" = set; then : enableval=$enable_silent_rules; fi case $enable_silent_rules in # ((( yes) AM_DEFAULT_VERBOSITY=0;; no) AM_DEFAULT_VERBOSITY=1;; *) AM_DEFAULT_VERBOSITY=0;; esac am_make=${MAKE-make} { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $am_make supports nested variables" >&5 $as_echo_n "checking whether $am_make supports nested variables... " >&6; } if ${am_cv_make_support_nested_variables+:} false; then : $as_echo_n "(cached) " >&6 else if $as_echo 'TRUE=$(BAR$(V)) BAR0=false BAR1=true V=1 am__doit: @$(TRUE) .PHONY: am__doit' | $am_make -f - >/dev/null 2>&1; then am_cv_make_support_nested_variables=yes else am_cv_make_support_nested_variables=no fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_make_support_nested_variables" >&5 $as_echo "$am_cv_make_support_nested_variables" >&6; } if test $am_cv_make_support_nested_variables = yes; then AM_V='$(V)' AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)' else AM_V=$AM_DEFAULT_VERBOSITY AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY fi AM_BACKSLASH='\' ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. set dummy ${ac_tool_prefix}gcc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="${ac_tool_prefix}gcc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_CC"; then ac_ct_CC=$CC # Extract the first word of "gcc", so it can be a program name with args. set dummy gcc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CC="gcc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 $as_echo "$ac_ct_CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi else CC="$ac_cv_prog_CC" fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. set dummy ${ac_tool_prefix}cc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="${ac_tool_prefix}cc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi fi if test -z "$CC"; then # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else ac_prog_rejected=no as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then ac_prog_rejected=yes continue fi ac_cv_prog_CC="cc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS if test $ac_prog_rejected = yes; then # We found a bogon in the path, so make sure we never use it. set dummy $ac_cv_prog_CC shift if test $# != 0; then # We chose a different compiler from the bogus one. # However, it has the same basename, so the bogon will be chosen # first if we set CC to just the basename; use the full file name. shift ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" fi fi fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then for ac_prog in cl.exe do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="$ac_tool_prefix$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$CC" && break done fi if test -z "$CC"; then ac_ct_CC=$CC for ac_prog in cl.exe do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CC="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 $as_echo "$ac_ct_CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$ac_ct_CC" && break done if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi fi fi test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "no acceptable C compiler found in \$PATH See \`config.log' for more details" "$LINENO" 5; } # Provide some information about the compiler. $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 set X $ac_compile ac_compiler=$2 for ac_option in --version -v -V -qversion; do { { ac_try="$ac_compiler $ac_option >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compiler $ac_option >&5") 2>conftest.err ac_status=$? if test -s conftest.err; then sed '10a\ ... rest of stderr output deleted ... 10q' conftest.err >conftest.er1 cat conftest.er1 >&5 fi rm -f conftest.er1 conftest.err $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } done cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out" # Try to create an executable without -o first, disregard a.out. # It will help us diagnose broken compilers, and finding out an intuition # of exeext. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5 $as_echo_n "checking whether the C compiler works... " >&6; } ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` # The possible output files: ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*" ac_rmfiles= for ac_file in $ac_files do case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; * ) ac_rmfiles="$ac_rmfiles $ac_file";; esac done rm -f $ac_rmfiles if { { ac_try="$ac_link_default" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link_default") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then : # Autoconf-2.13 could set the ac_cv_exeext variable to `no'. # So ignore a value of `no', otherwise this would lead to `EXEEXT = no' # in a Makefile. We should not override ac_cv_exeext if it was cached, # so that the user can short-circuit this test for compilers unknown to # Autoconf. for ac_file in $ac_files '' do test -f "$ac_file" || continue case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; [ab].out ) # We found the default executable, but exeext='' is most # certainly right. break;; *.* ) if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no; then :; else ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` fi # We set ac_cv_exeext here because the later test for it is not # safe: cross compilers may not add the suffix if given an `-o' # argument, so we may need to know it at that point already. # Even if this section looks crufty: it has the advantage of # actually working. break;; * ) break;; esac done test "$ac_cv_exeext" = no && ac_cv_exeext= else ac_file='' fi if test -z "$ac_file"; then : { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error 77 "C compiler cannot create executables See \`config.log' for more details" "$LINENO" 5; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5 $as_echo_n "checking for C compiler default output file name... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5 $as_echo "$ac_file" >&6; } ac_exeext=$ac_cv_exeext rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out ac_clean_files=$ac_clean_files_save { $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5 $as_echo_n "checking for suffix of executables... " >&6; } if { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then : # If both `conftest.exe' and `conftest' are `present' (well, observable) # catch `conftest.exe'. For instance with Cygwin, `ls conftest' will # work properly (i.e., refer to `conftest.exe'), while it won't with # `rm'. for ac_file in conftest.exe conftest conftest.*; do test -f "$ac_file" || continue case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` break;; * ) break;; esac done else { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot compute suffix of executables: cannot compile and link See \`config.log' for more details" "$LINENO" 5; } fi rm -f conftest conftest$ac_cv_exeext { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5 $as_echo "$ac_cv_exeext" >&6; } rm -f conftest.$ac_ext EXEEXT=$ac_cv_exeext ac_exeext=$EXEEXT cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { FILE *f = fopen ("conftest.out", "w"); return ferror (f) || fclose (f) != 0; ; return 0; } _ACEOF ac_clean_files="$ac_clean_files conftest.out" # Check that the compiler produces executables we can run. If not, either # the compiler is broken, or we cross compile. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5 $as_echo_n "checking whether we are cross compiling... " >&6; } if test "$cross_compiling" != yes; then { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } if { ac_try='./conftest$ac_cv_exeext' { { case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_try") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; }; then cross_compiling=no else if test "$cross_compiling" = maybe; then cross_compiling=yes else { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot run C compiled programs. If you meant to cross compile, use \`--host'. See \`config.log' for more details" "$LINENO" 5; } fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5 $as_echo "$cross_compiling" >&6; } rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out ac_clean_files=$ac_clean_files_save { $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5 $as_echo_n "checking for suffix of object files... " >&6; } if ${ac_cv_objext+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.o conftest.obj if { { ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compile") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then : for ac_file in conftest.o conftest.obj conftest.*; do test -f "$ac_file" || continue; case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;; *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` break;; esac done else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot compute suffix of object files: cannot compile See \`config.log' for more details" "$LINENO" 5; } fi rm -f conftest.$ac_cv_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5 $as_echo "$ac_cv_objext" >&6; } OBJEXT=$ac_cv_objext ac_objext=$OBJEXT { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5 $as_echo_n "checking whether we are using the GNU C compiler... " >&6; } if ${ac_cv_c_compiler_gnu+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { #ifndef __GNUC__ choke me #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_compiler_gnu=yes else ac_compiler_gnu=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_c_compiler_gnu=$ac_compiler_gnu fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5 $as_echo "$ac_cv_c_compiler_gnu" >&6; } if test $ac_compiler_gnu = yes; then GCC=yes else GCC= fi ac_test_CFLAGS=${CFLAGS+set} ac_save_CFLAGS=$CFLAGS { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 $as_echo_n "checking whether $CC accepts -g... " >&6; } if ${ac_cv_prog_cc_g+:} false; then : $as_echo_n "(cached) " >&6 else ac_save_c_werror_flag=$ac_c_werror_flag ac_c_werror_flag=yes ac_cv_prog_cc_g=no CFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_g=yes else CFLAGS="" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : else ac_c_werror_flag=$ac_save_c_werror_flag CFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_g=yes fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_c_werror_flag=$ac_save_c_werror_flag fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5 $as_echo "$ac_cv_prog_cc_g" >&6; } if test "$ac_test_CFLAGS" = set; then CFLAGS=$ac_save_CFLAGS elif test $ac_cv_prog_cc_g = yes; then if test "$GCC" = yes; then CFLAGS="-g -O2" else CFLAGS="-g" fi else if test "$GCC" = yes; then CFLAGS="-O2" else CFLAGS= fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5 $as_echo_n "checking for $CC option to accept ISO C89... " >&6; } if ${ac_cv_prog_cc_c89+:} false; then : $as_echo_n "(cached) " >&6 else ac_cv_prog_cc_c89=no ac_save_CC=$CC cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include struct stat; /* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ struct buf { int x; }; FILE * (*rcsopen) (struct buf *, struct stat *, int); static char *e (p, i) char **p; int i; { return p[i]; } static char *f (char * (*g) (char **, int), char **p, ...) { char *s; va_list v; va_start (v,p); s = g (p, va_arg (v,int)); va_end (v); return s; } /* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has function prototypes and stuff, but not '\xHH' hex character constants. These don't provoke an error unfortunately, instead are silently treated as 'x'. The following induces an error, until -std is added to get proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an array size at least. It's necessary to write '\x00'==0 to get something that's true only with -std. */ int osf4_cc_array ['\x00' == 0 ? 1 : -1]; /* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters inside strings and character constants. */ #define FOO(x) 'x' int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; int test (int i, double x); struct s1 {int (*f) (int a);}; struct s2 {int (*f) (double a);}; int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); int argc; char **argv; int main () { return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; ; return 0; } _ACEOF for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" do CC="$ac_save_CC $ac_arg" if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_c89=$ac_arg fi rm -f core conftest.err conftest.$ac_objext test "x$ac_cv_prog_cc_c89" != "xno" && break done rm -f conftest.$ac_ext CC=$ac_save_CC fi # AC_CACHE_VAL case "x$ac_cv_prog_cc_c89" in x) { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 $as_echo "none needed" >&6; } ;; xno) { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 $as_echo "unsupported" >&6; } ;; *) CC="$CC $ac_cv_prog_cc_c89" { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5 $as_echo "$ac_cv_prog_cc_c89" >&6; } ;; esac if test "x$ac_cv_prog_cc_c89" != xno; then : fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC understands -c and -o together" >&5 $as_echo_n "checking whether $CC understands -c and -o together... " >&6; } if ${am_cv_prog_cc_c_o+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF # Make sure it works both with $CC and with simple cc. # Following AC_PROG_CC_C_O, we do the test twice because some # compilers refuse to overwrite an existing .o file with -o, # though they will create one. am_cv_prog_cc_c_o=yes for am_i in 1 2; do if { echo "$as_me:$LINENO: $CC -c conftest.$ac_ext -o conftest2.$ac_objext" >&5 ($CC -c conftest.$ac_ext -o conftest2.$ac_objext) >&5 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } \ && test -f conftest2.$ac_objext; then : OK else am_cv_prog_cc_c_o=no break fi done rm -f core conftest* unset am_i fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_prog_cc_c_o" >&5 $as_echo "$am_cv_prog_cc_c_o" >&6; } if test "$am_cv_prog_cc_c_o" != yes; then # Losing compiler, so override with the script. # FIXME: It is wrong to rewrite CC. # But if we don't then we get into trouble of one sort or another. # A longer-term fix would be to have automake use am__CC in this case, # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)" CC="$am_aux_dir/compile $CC" fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu DEPDIR="${am__leading_dot}deps" ac_config_commands="$ac_config_commands depfiles" am_make=${MAKE-make} cat > confinc << 'END' am__doit: @echo this is the am__doit target .PHONY: am__doit END # If we don't find an include directive, just comment out the code. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for style of include used by $am_make" >&5 $as_echo_n "checking for style of include used by $am_make... " >&6; } am__include="#" am__quote= _am_result=none # First try GNU make style include. echo "include confinc" > confmf # Ignore all kinds of additional output from 'make'. case `$am_make -s -f confmf 2> /dev/null` in #( *the\ am__doit\ target*) am__include=include am__quote= _am_result=GNU ;; esac # Now try BSD make style include. if test "$am__include" = "#"; then echo '.include "confinc"' > confmf case `$am_make -s -f confmf 2> /dev/null` in #( *the\ am__doit\ target*) am__include=.include am__quote="\"" _am_result=BSD ;; esac fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $_am_result" >&5 $as_echo "$_am_result" >&6; } rm -f confinc confmf # Check whether --enable-dependency-tracking was given. if test "${enable_dependency_tracking+set}" = set; then : enableval=$enable_dependency_tracking; fi if test "x$enable_dependency_tracking" != xno; then am_depcomp="$ac_aux_dir/depcomp" AMDEPBACKSLASH='\' am__nodep='_no' fi if test "x$enable_dependency_tracking" != xno; then AMDEP_TRUE= AMDEP_FALSE='#' else AMDEP_TRUE='#' AMDEP_FALSE= fi depcc="$CC" am_compiler_list= { $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 $as_echo_n "checking dependency style of $depcc... " >&6; } if ${am_cv_CC_dependencies_compiler_type+:} false; then : $as_echo_n "(cached) " >&6 else if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up # making a dummy file named 'D' -- because '-MD' means "put the output # in D". rm -rf conftest.dir mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're # using a relative directory. cp "$am_depcomp" conftest.dir cd conftest.dir # We will build objects and dependencies in a subdirectory because # it helps to detect inapplicable dependency modes. For instance # both Tru64's cc and ICC support -MD to output dependencies as a # side effect of compilation, but ICC will put the dependencies in # the current directory while Tru64 will put them in the object # directory. mkdir sub am_cv_CC_dependencies_compiler_type=none if test "$am_compiler_list" = ""; then am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` fi am__universal=false case " $depcc " in #( *\ -arch\ *\ -arch\ *) am__universal=true ;; esac for depmode in $am_compiler_list; do # Setup a source with many dependencies, because some compilers # like to wrap large dependency lists on column 80 (with \), and # we should not choose a depcomp mode which is confused by this. # # We need to recreate these files for each test, as the compiler may # overwrite some of them when testing with obscure command lines. # This happens at least with the AIX C compiler. : > sub/conftest.c for i in 1 2 3 4 5 6; do echo '#include "conftst'$i'.h"' >> sub/conftest.c # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with # Solaris 10 /bin/sh. echo '/* dummy */' > sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf # We check with '-c' and '-o' for the sake of the "dashmstdout" # mode. It turns out that the SunPro C++ compiler does not properly # handle '-M -o', and we need to detect this. Also, some Intel # versions had trouble with output in subdirs. am__obj=sub/conftest.${OBJEXT-o} am__minus_obj="-o $am__obj" case $depmode in gcc) # This depmode causes a compiler race in universal mode. test "$am__universal" = false || continue ;; nosideeffect) # After this tag, mechanisms are not by side-effect, so they'll # only be used when explicitly requested. if test "x$enable_dependency_tracking" = xyes; then continue else break fi ;; msvc7 | msvc7msys | msvisualcpp | msvcmsys) # This compiler won't grok '-c -o', but also, the minuso test has # not run yet. These depmodes are late enough in the game, and # so weak that their functioning should not be impacted. am__obj=conftest.${OBJEXT-o} am__minus_obj= ;; none) break ;; esac if depmode=$depmode \ source=sub/conftest.c object=$am__obj \ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ >/dev/null 2>conftest.err && grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && grep $am__obj sub/conftest.Po > /dev/null 2>&1 && ${MAKE-make} -s -f confmf > /dev/null 2>&1; then # icc doesn't choke on unknown options, it will just issue warnings # or remarks (even with -Werror). So we grep stderr for any message # that says an option was ignored or not supported. # When given -MP, icc 7.0 and 7.1 complain thusly: # icc: Command line warning: ignoring option '-M'; no argument required # The diagnosis changed in icc 8.0: # icc: Command line remark: option '-MP' not supported if (grep 'ignoring option' conftest.err || grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else am_cv_CC_dependencies_compiler_type=$depmode break fi fi done cd .. rm -rf conftest.dir else am_cv_CC_dependencies_compiler_type=none fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5 $as_echo "$am_cv_CC_dependencies_compiler_type" >&6; } CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type if test "x$enable_dependency_tracking" != xno \ && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then am__fastdepCC_TRUE= am__fastdepCC_FALSE='#' else am__fastdepCC_TRUE='#' am__fastdepCC_FALSE= fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5 $as_echo_n "checking how to run the C preprocessor... " >&6; } # On Suns, sometimes $CPP names a directory. if test -n "$CPP" && test -d "$CPP"; then CPP= fi if test -z "$CPP"; then if ${ac_cv_prog_CPP+:} false; then : $as_echo_n "(cached) " >&6 else # Double quotes because CPP needs to be expanded for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp" do ac_preproc_ok=false for ac_c_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : else # Broken: fails on valid input. continue fi rm -f conftest.err conftest.i conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : # Broken: success on invalid input. continue else # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.i conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.i conftest.err conftest.$ac_ext if $ac_preproc_ok; then : break fi done ac_cv_prog_CPP=$CPP fi CPP=$ac_cv_prog_CPP else ac_cv_prog_CPP=$CPP fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5 $as_echo "$CPP" >&6; } ac_preproc_ok=false for ac_c_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : else # Broken: fails on valid input. continue fi rm -f conftest.err conftest.i conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : # Broken: success on invalid input. continue else # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.i conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.i conftest.err conftest.$ac_ext if $ac_preproc_ok; then : else { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "C preprocessor \"$CPP\" fails sanity check See \`config.log' for more details" "$LINENO" 5; } fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu { $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5 $as_echo_n "checking for grep that handles long lines and -e... " >&6; } if ${ac_cv_path_GREP+:} false; then : $as_echo_n "(cached) " >&6 else if test -z "$GREP"; then ac_path_GREP_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in grep ggrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext" as_fn_executable_p "$ac_path_GREP" || continue # Check for GNU ac_path_GREP and select it if it is found. # Check for GNU $ac_path_GREP case `"$ac_path_GREP" --version 2>&1` in *GNU*) ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;; *) ac_count=0 $as_echo_n 0123456789 >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" $as_echo 'GREP' >> "conftest.nl" "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break as_fn_arith $ac_count + 1 && ac_count=$as_val if test $ac_count -gt ${ac_path_GREP_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_GREP_found && break 3 done done done IFS=$as_save_IFS if test -z "$ac_cv_path_GREP"; then as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 fi else ac_cv_path_GREP=$GREP fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5 $as_echo "$ac_cv_path_GREP" >&6; } GREP="$ac_cv_path_GREP" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5 $as_echo_n "checking for egrep... " >&6; } if ${ac_cv_path_EGREP+:} false; then : $as_echo_n "(cached) " >&6 else if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 then ac_cv_path_EGREP="$GREP -E" else if test -z "$EGREP"; then ac_path_EGREP_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in egrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext" as_fn_executable_p "$ac_path_EGREP" || continue # Check for GNU ac_path_EGREP and select it if it is found. # Check for GNU $ac_path_EGREP case `"$ac_path_EGREP" --version 2>&1` in *GNU*) ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;; *) ac_count=0 $as_echo_n 0123456789 >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" $as_echo 'EGREP' >> "conftest.nl" "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break as_fn_arith $ac_count + 1 && ac_count=$as_val if test $ac_count -gt ${ac_path_EGREP_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_EGREP_found && break 3 done done done IFS=$as_save_IFS if test -z "$ac_cv_path_EGREP"; then as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 fi else ac_cv_path_EGREP=$EGREP fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5 $as_echo "$ac_cv_path_EGREP" >&6; } EGREP="$ac_cv_path_EGREP" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5 $as_echo_n "checking for ANSI C header files... " >&6; } if ${ac_cv_header_stdc+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include #include int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_header_stdc=yes else ac_cv_header_stdc=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext if test $ac_cv_header_stdc = yes; then # SunOS 4.x string.h does not declare mem*, contrary to ANSI. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "memchr" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "free" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. if test "$cross_compiling" = yes; then : : else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #if ((' ' & 0x0FF) == 0x020) # define ISLOWER(c) ('a' <= (c) && (c) <= 'z') # define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) #else # define ISLOWER(c) \ (('a' <= (c) && (c) <= 'i') \ || ('j' <= (c) && (c) <= 'r') \ || ('s' <= (c) && (c) <= 'z')) # define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) #endif #define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) int main () { int i; for (i = 0; i < 256; i++) if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) return 2; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : else ac_cv_header_stdc=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5 $as_echo "$ac_cv_header_stdc" >&6; } if test $ac_cv_header_stdc = yes; then $as_echo "#define STDC_HEADERS 1" >>confdefs.h fi case `pwd` in *\ * | *\ *) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&5 $as_echo "$as_me: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&2;} ;; esac macro_version='2.4.6' macro_revision='2.4.6' ltmain=$ac_aux_dir/ltmain.sh # Make sure we can run config.sub. $SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 || as_fn_error $? "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5 { $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5 $as_echo_n "checking build system type... " >&6; } if ${ac_cv_build+:} false; then : $as_echo_n "(cached) " >&6 else ac_build_alias=$build_alias test "x$ac_build_alias" = x && ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"` test "x$ac_build_alias" = x && as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5 ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` || as_fn_error $? "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5 fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5 $as_echo "$ac_cv_build" >&6; } case $ac_cv_build in *-*-*) ;; *) as_fn_error $? "invalid value of canonical build" "$LINENO" 5;; esac build=$ac_cv_build ac_save_IFS=$IFS; IFS='-' set x $ac_cv_build shift build_cpu=$1 build_vendor=$2 shift; shift # Remember, the first character of IFS is used to create $*, # except with old shells: build_os=$* IFS=$ac_save_IFS case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5 $as_echo_n "checking host system type... " >&6; } if ${ac_cv_host+:} false; then : $as_echo_n "(cached) " >&6 else if test "x$host_alias" = x; then ac_cv_host=$ac_cv_build else ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` || as_fn_error $? "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5 fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5 $as_echo "$ac_cv_host" >&6; } case $ac_cv_host in *-*-*) ;; *) as_fn_error $? "invalid value of canonical host" "$LINENO" 5;; esac host=$ac_cv_host ac_save_IFS=$IFS; IFS='-' set x $ac_cv_host shift host_cpu=$1 host_vendor=$2 shift; shift # Remember, the first character of IFS is used to create $*, # except with old shells: host_os=$* IFS=$ac_save_IFS case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac # Backslashify metacharacters that are still active within # double-quoted strings. sed_quote_subst='s/\(["`$\\]\)/\\\1/g' # Same as above, but do not quote variable references. double_quote_subst='s/\(["`\\]\)/\\\1/g' # Sed substitution to delay expansion of an escaped shell variable in a # double_quote_subst'ed string. delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' # Sed substitution to delay expansion of an escaped single quote. delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g' # Sed substitution to avoid accidental globbing in evaled expressions no_glob_subst='s/\*/\\\*/g' ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to print strings" >&5 $as_echo_n "checking how to print strings... " >&6; } # Test print first, because it will be a builtin if present. if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \ test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then ECHO='print -r --' elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then ECHO='printf %s\n' else # Use this function as a fallback that always works. func_fallback_echo () { eval 'cat <<_LTECHO_EOF $1 _LTECHO_EOF' } ECHO='func_fallback_echo' fi # func_echo_all arg... # Invoke $ECHO with all args, space-separated. func_echo_all () { $ECHO "" } case $ECHO in printf*) { $as_echo "$as_me:${as_lineno-$LINENO}: result: printf" >&5 $as_echo "printf" >&6; } ;; print*) { $as_echo "$as_me:${as_lineno-$LINENO}: result: print -r" >&5 $as_echo "print -r" >&6; } ;; *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: cat" >&5 $as_echo "cat" >&6; } ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a sed that does not truncate output" >&5 $as_echo_n "checking for a sed that does not truncate output... " >&6; } if ${ac_cv_path_SED+:} false; then : $as_echo_n "(cached) " >&6 else ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/ for ac_i in 1 2 3 4 5 6 7; do ac_script="$ac_script$as_nl$ac_script" done echo "$ac_script" 2>/dev/null | sed 99q >conftest.sed { ac_script=; unset ac_script;} if test -z "$SED"; then ac_path_SED_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in sed gsed; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_SED="$as_dir/$ac_prog$ac_exec_ext" as_fn_executable_p "$ac_path_SED" || continue # Check for GNU ac_path_SED and select it if it is found. # Check for GNU $ac_path_SED case `"$ac_path_SED" --version 2>&1` in *GNU*) ac_cv_path_SED="$ac_path_SED" ac_path_SED_found=:;; *) ac_count=0 $as_echo_n 0123456789 >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" $as_echo '' >> "conftest.nl" "$ac_path_SED" -f conftest.sed < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break as_fn_arith $ac_count + 1 && ac_count=$as_val if test $ac_count -gt ${ac_path_SED_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_SED="$ac_path_SED" ac_path_SED_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_SED_found && break 3 done done done IFS=$as_save_IFS if test -z "$ac_cv_path_SED"; then as_fn_error $? "no acceptable sed could be found in \$PATH" "$LINENO" 5 fi else ac_cv_path_SED=$SED fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_SED" >&5 $as_echo "$ac_cv_path_SED" >&6; } SED="$ac_cv_path_SED" rm -f conftest.sed test -z "$SED" && SED=sed Xsed="$SED -e 1s/^X//" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for fgrep" >&5 $as_echo_n "checking for fgrep... " >&6; } if ${ac_cv_path_FGREP+:} false; then : $as_echo_n "(cached) " >&6 else if echo 'ab*c' | $GREP -F 'ab*c' >/dev/null 2>&1 then ac_cv_path_FGREP="$GREP -F" else if test -z "$FGREP"; then ac_path_FGREP_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in fgrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_FGREP="$as_dir/$ac_prog$ac_exec_ext" as_fn_executable_p "$ac_path_FGREP" || continue # Check for GNU ac_path_FGREP and select it if it is found. # Check for GNU $ac_path_FGREP case `"$ac_path_FGREP" --version 2>&1` in *GNU*) ac_cv_path_FGREP="$ac_path_FGREP" ac_path_FGREP_found=:;; *) ac_count=0 $as_echo_n 0123456789 >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" $as_echo 'FGREP' >> "conftest.nl" "$ac_path_FGREP" FGREP < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break as_fn_arith $ac_count + 1 && ac_count=$as_val if test $ac_count -gt ${ac_path_FGREP_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_FGREP="$ac_path_FGREP" ac_path_FGREP_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_FGREP_found && break 3 done done done IFS=$as_save_IFS if test -z "$ac_cv_path_FGREP"; then as_fn_error $? "no acceptable fgrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 fi else ac_cv_path_FGREP=$FGREP fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_FGREP" >&5 $as_echo "$ac_cv_path_FGREP" >&6; } FGREP="$ac_cv_path_FGREP" test -z "$GREP" && GREP=grep # Check whether --with-gnu-ld was given. if test "${with_gnu_ld+set}" = set; then : withval=$with_gnu_ld; test no = "$withval" || with_gnu_ld=yes else with_gnu_ld=no fi ac_prog=ld if test yes = "$GCC"; then # Check if gcc -print-prog-name=ld gives a path. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5 $as_echo_n "checking for ld used by $CC... " >&6; } case $host in *-*-mingw*) # gcc leaves a trailing carriage return, which upsets mingw ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; *) ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; esac case $ac_prog in # Accept absolute paths. [\\/]* | ?:[\\/]*) re_direlt='/[^/][^/]*/\.\./' # Canonicalize the pathname of ld ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'` while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"` done test -z "$LD" && LD=$ac_prog ;; "") # If it fails, then pretend we aren't using GCC. ac_prog=ld ;; *) # If it is relative, then search for the first ld in PATH. with_gnu_ld=unknown ;; esac elif test yes = "$with_gnu_ld"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5 $as_echo_n "checking for GNU ld... " >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5 $as_echo_n "checking for non-GNU ld... " >&6; } fi if ${lt_cv_path_LD+:} false; then : $as_echo_n "(cached) " >&6 else if test -z "$LD"; then lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR for ac_dir in $PATH; do IFS=$lt_save_ifs test -z "$ac_dir" && ac_dir=. if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then lt_cv_path_LD=$ac_dir/$ac_prog # Check to see if the program is GNU ld. I'd rather use --version, # but apparently some variants of GNU ld only accept -v. # Break only if it was the GNU/non-GNU ld that we prefer. case `"$lt_cv_path_LD" -v 2>&1 &5 $as_echo "$LD" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5 { $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5 $as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; } if ${lt_cv_prog_gnu_ld+:} false; then : $as_echo_n "(cached) " >&6 else # I'd rather use --version here, but apparently some GNU lds only accept -v. case `$LD -v 2>&1 &5 $as_echo "$lt_cv_prog_gnu_ld" >&6; } with_gnu_ld=$lt_cv_prog_gnu_ld { $as_echo "$as_me:${as_lineno-$LINENO}: checking for BSD- or MS-compatible name lister (nm)" >&5 $as_echo_n "checking for BSD- or MS-compatible name lister (nm)... " >&6; } if ${lt_cv_path_NM+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$NM"; then # Let the user override the test. lt_cv_path_NM=$NM else lt_nm_to_check=${ac_tool_prefix}nm if test -n "$ac_tool_prefix" && test "$build" = "$host"; then lt_nm_to_check="$lt_nm_to_check nm" fi for lt_tmp_nm in $lt_nm_to_check; do lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do IFS=$lt_save_ifs test -z "$ac_dir" && ac_dir=. tmp_nm=$ac_dir/$lt_tmp_nm if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext"; then # Check to see if the nm accepts a BSD-compat flag. # Adding the 'sed 1q' prevents false positives on HP-UX, which says: # nm: unknown option "B" ignored # Tru64's nm complains that /dev/null is an invalid object file # MSYS converts /dev/null to NUL, MinGW nm treats NUL as empty case $build_os in mingw*) lt_bad_file=conftest.nm/nofile ;; *) lt_bad_file=/dev/null ;; esac case `"$tmp_nm" -B $lt_bad_file 2>&1 | sed '1q'` in *$lt_bad_file* | *'Invalid file or object type'*) lt_cv_path_NM="$tmp_nm -B" break 2 ;; *) case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in */dev/null*) lt_cv_path_NM="$tmp_nm -p" break 2 ;; *) lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but continue # so that we can try to find one that supports BSD flags ;; esac ;; esac fi done IFS=$lt_save_ifs done : ${lt_cv_path_NM=no} fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_NM" >&5 $as_echo "$lt_cv_path_NM" >&6; } if test no != "$lt_cv_path_NM"; then NM=$lt_cv_path_NM else # Didn't find any BSD compatible name lister, look for dumpbin. if test -n "$DUMPBIN"; then : # Let the user override the test. else if test -n "$ac_tool_prefix"; then for ac_prog in dumpbin "link -dump" do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_DUMPBIN+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$DUMPBIN"; then ac_cv_prog_DUMPBIN="$DUMPBIN" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_DUMPBIN="$ac_tool_prefix$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi DUMPBIN=$ac_cv_prog_DUMPBIN if test -n "$DUMPBIN"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DUMPBIN" >&5 $as_echo "$DUMPBIN" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$DUMPBIN" && break done fi if test -z "$DUMPBIN"; then ac_ct_DUMPBIN=$DUMPBIN for ac_prog in dumpbin "link -dump" do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_DUMPBIN+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_DUMPBIN"; then ac_cv_prog_ac_ct_DUMPBIN="$ac_ct_DUMPBIN" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_DUMPBIN="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_DUMPBIN=$ac_cv_prog_ac_ct_DUMPBIN if test -n "$ac_ct_DUMPBIN"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DUMPBIN" >&5 $as_echo "$ac_ct_DUMPBIN" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$ac_ct_DUMPBIN" && break done if test "x$ac_ct_DUMPBIN" = x; then DUMPBIN=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac DUMPBIN=$ac_ct_DUMPBIN fi fi case `$DUMPBIN -symbols -headers /dev/null 2>&1 | sed '1q'` in *COFF*) DUMPBIN="$DUMPBIN -symbols -headers" ;; *) DUMPBIN=: ;; esac fi if test : != "$DUMPBIN"; then NM=$DUMPBIN fi fi test -z "$NM" && NM=nm { $as_echo "$as_me:${as_lineno-$LINENO}: checking the name lister ($NM) interface" >&5 $as_echo_n "checking the name lister ($NM) interface... " >&6; } if ${lt_cv_nm_interface+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_nm_interface="BSD nm" echo "int some_variable = 0;" > conftest.$ac_ext (eval echo "\"\$as_me:$LINENO: $ac_compile\"" >&5) (eval "$ac_compile" 2>conftest.err) cat conftest.err >&5 (eval echo "\"\$as_me:$LINENO: $NM \\\"conftest.$ac_objext\\\"\"" >&5) (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) cat conftest.err >&5 (eval echo "\"\$as_me:$LINENO: output\"" >&5) cat conftest.out >&5 if $GREP 'External.*some_variable' conftest.out > /dev/null; then lt_cv_nm_interface="MS dumpbin" fi rm -f conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_nm_interface" >&5 $as_echo "$lt_cv_nm_interface" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ln -s works" >&5 $as_echo_n "checking whether ln -s works... " >&6; } LN_S=$as_ln_s if test "$LN_S" = "ln -s"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no, using $LN_S" >&5 $as_echo "no, using $LN_S" >&6; } fi # find the maximum length of command line arguments { $as_echo "$as_me:${as_lineno-$LINENO}: checking the maximum length of command line arguments" >&5 $as_echo_n "checking the maximum length of command line arguments... " >&6; } if ${lt_cv_sys_max_cmd_len+:} false; then : $as_echo_n "(cached) " >&6 else i=0 teststring=ABCD case $build_os in msdosdjgpp*) # On DJGPP, this test can blow up pretty badly due to problems in libc # (any single argument exceeding 2000 bytes causes a buffer overrun # during glob expansion). Even if it were fixed, the result of this # check would be larger than it should be. lt_cv_sys_max_cmd_len=12288; # 12K is about right ;; gnu*) # Under GNU Hurd, this test is not required because there is # no limit to the length of command line arguments. # Libtool will interpret -1 as no limit whatsoever lt_cv_sys_max_cmd_len=-1; ;; cygwin* | mingw* | cegcc*) # On Win9x/ME, this test blows up -- it succeeds, but takes # about 5 minutes as the teststring grows exponentially. # Worse, since 9x/ME are not pre-emptively multitasking, # you end up with a "frozen" computer, even though with patience # the test eventually succeeds (with a max line length of 256k). # Instead, let's just punt: use the minimum linelength reported by # all of the supported platforms: 8192 (on NT/2K/XP). lt_cv_sys_max_cmd_len=8192; ;; mint*) # On MiNT this can take a long time and run out of memory. lt_cv_sys_max_cmd_len=8192; ;; amigaos*) # On AmigaOS with pdksh, this test takes hours, literally. # So we just punt and use a minimum line length of 8192. lt_cv_sys_max_cmd_len=8192; ;; bitrig* | darwin* | dragonfly* | freebsd* | netbsd* | openbsd*) # This has been around since 386BSD, at least. Likely further. if test -x /sbin/sysctl; then lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax` elif test -x /usr/sbin/sysctl; then lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax` else lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs fi # And add a safety zone lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` ;; interix*) # We know the value 262144 and hardcode it with a safety zone (like BSD) lt_cv_sys_max_cmd_len=196608 ;; os2*) # The test takes a long time on OS/2. lt_cv_sys_max_cmd_len=8192 ;; osf*) # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not # nice to cause kernel panics so lets avoid the loop below. # First set a reasonable default. lt_cv_sys_max_cmd_len=16384 # if test -x /sbin/sysconfig; then case `/sbin/sysconfig -q proc exec_disable_arg_limit` in *1*) lt_cv_sys_max_cmd_len=-1 ;; esac fi ;; sco3.2v5*) lt_cv_sys_max_cmd_len=102400 ;; sysv5* | sco5v6* | sysv4.2uw2*) kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null` if test -n "$kargmax"; then lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[ ]//'` else lt_cv_sys_max_cmd_len=32768 fi ;; *) lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null` if test -n "$lt_cv_sys_max_cmd_len" && \ test undefined != "$lt_cv_sys_max_cmd_len"; then lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` else # Make teststring a little bigger before we do anything with it. # a 1K string should be a reasonable start. for i in 1 2 3 4 5 6 7 8; do teststring=$teststring$teststring done SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}} # If test is not a shell built-in, we'll probably end up computing a # maximum length that is only half of the actual maximum length, but # we can't tell. while { test X`env echo "$teststring$teststring" 2>/dev/null` \ = "X$teststring$teststring"; } >/dev/null 2>&1 && test 17 != "$i" # 1/2 MB should be enough do i=`expr $i + 1` teststring=$teststring$teststring done # Only check the string length outside the loop. lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1` teststring= # Add a significant safety factor because C++ compilers can tack on # massive amounts of additional arguments before passing them to the # linker. It appears as though 1/2 is a usable value. lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2` fi ;; esac fi if test -n "$lt_cv_sys_max_cmd_len"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sys_max_cmd_len" >&5 $as_echo "$lt_cv_sys_max_cmd_len" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: none" >&5 $as_echo "none" >&6; } fi max_cmd_len=$lt_cv_sys_max_cmd_len : ${CP="cp -f"} : ${MV="mv -f"} : ${RM="rm -f"} if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then lt_unset=unset else lt_unset=false fi # test EBCDIC or ASCII case `echo X|tr X '\101'` in A) # ASCII based system # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr lt_SP2NL='tr \040 \012' lt_NL2SP='tr \015\012 \040\040' ;; *) # EBCDIC based system lt_SP2NL='tr \100 \n' lt_NL2SP='tr \r\n \100\100' ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to $host format" >&5 $as_echo_n "checking how to convert $build file names to $host format... " >&6; } if ${lt_cv_to_host_file_cmd+:} false; then : $as_echo_n "(cached) " >&6 else case $host in *-*-mingw* ) case $build in *-*-mingw* ) # actually msys lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32 ;; *-*-cygwin* ) lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32 ;; * ) # otherwise, assume *nix lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32 ;; esac ;; *-*-cygwin* ) case $build in *-*-mingw* ) # actually msys lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin ;; *-*-cygwin* ) lt_cv_to_host_file_cmd=func_convert_file_noop ;; * ) # otherwise, assume *nix lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin ;; esac ;; * ) # unhandled hosts (and "normal" native builds) lt_cv_to_host_file_cmd=func_convert_file_noop ;; esac fi to_host_file_cmd=$lt_cv_to_host_file_cmd { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_host_file_cmd" >&5 $as_echo "$lt_cv_to_host_file_cmd" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to toolchain format" >&5 $as_echo_n "checking how to convert $build file names to toolchain format... " >&6; } if ${lt_cv_to_tool_file_cmd+:} false; then : $as_echo_n "(cached) " >&6 else #assume ordinary cross tools, or native build. lt_cv_to_tool_file_cmd=func_convert_file_noop case $host in *-*-mingw* ) case $build in *-*-mingw* ) # actually msys lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32 ;; esac ;; esac fi to_tool_file_cmd=$lt_cv_to_tool_file_cmd { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_tool_file_cmd" >&5 $as_echo "$lt_cv_to_tool_file_cmd" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $LD option to reload object files" >&5 $as_echo_n "checking for $LD option to reload object files... " >&6; } if ${lt_cv_ld_reload_flag+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_ld_reload_flag='-r' fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_reload_flag" >&5 $as_echo "$lt_cv_ld_reload_flag" >&6; } reload_flag=$lt_cv_ld_reload_flag case $reload_flag in "" | " "*) ;; *) reload_flag=" $reload_flag" ;; esac reload_cmds='$LD$reload_flag -o $output$reload_objs' case $host_os in cygwin* | mingw* | pw32* | cegcc*) if test yes != "$GCC"; then reload_cmds=false fi ;; darwin*) if test yes = "$GCC"; then reload_cmds='$LTCC $LTCFLAGS -nostdlib $wl-r -o $output$reload_objs' else reload_cmds='$LD$reload_flag -o $output$reload_objs' fi ;; esac if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args. set dummy ${ac_tool_prefix}objdump; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_OBJDUMP+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$OBJDUMP"; then ac_cv_prog_OBJDUMP="$OBJDUMP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_OBJDUMP="${ac_tool_prefix}objdump" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi OBJDUMP=$ac_cv_prog_OBJDUMP if test -n "$OBJDUMP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OBJDUMP" >&5 $as_echo "$OBJDUMP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_OBJDUMP"; then ac_ct_OBJDUMP=$OBJDUMP # Extract the first word of "objdump", so it can be a program name with args. set dummy objdump; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_OBJDUMP+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_OBJDUMP"; then ac_cv_prog_ac_ct_OBJDUMP="$ac_ct_OBJDUMP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_OBJDUMP="objdump" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_OBJDUMP=$ac_cv_prog_ac_ct_OBJDUMP if test -n "$ac_ct_OBJDUMP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OBJDUMP" >&5 $as_echo "$ac_ct_OBJDUMP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_OBJDUMP" = x; then OBJDUMP="false" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac OBJDUMP=$ac_ct_OBJDUMP fi else OBJDUMP="$ac_cv_prog_OBJDUMP" fi test -z "$OBJDUMP" && OBJDUMP=objdump { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to recognize dependent libraries" >&5 $as_echo_n "checking how to recognize dependent libraries... " >&6; } if ${lt_cv_deplibs_check_method+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_file_magic_cmd='$MAGIC_CMD' lt_cv_file_magic_test_file= lt_cv_deplibs_check_method='unknown' # Need to set the preceding variable on all platforms that support # interlibrary dependencies. # 'none' -- dependencies not supported. # 'unknown' -- same as none, but documents that we really don't know. # 'pass_all' -- all dependencies passed with no checks. # 'test_compile' -- check by making test program. # 'file_magic [[regex]]' -- check by looking for files in library path # that responds to the $file_magic_cmd with a given extended regex. # If you have 'file' or equivalent on your system and you're not sure # whether 'pass_all' will *always* work, you probably want this one. case $host_os in aix[4-9]*) lt_cv_deplibs_check_method=pass_all ;; beos*) lt_cv_deplibs_check_method=pass_all ;; bsdi[45]*) lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)' lt_cv_file_magic_cmd='/usr/bin/file -L' lt_cv_file_magic_test_file=/shlib/libc.so ;; cygwin*) # func_win32_libid is a shell function defined in ltmain.sh lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' lt_cv_file_magic_cmd='func_win32_libid' ;; mingw* | pw32*) # Base MSYS/MinGW do not provide the 'file' command needed by # func_win32_libid shell function, so use a weaker test based on 'objdump', # unless we find 'file', for example because we are cross-compiling. if ( file / ) >/dev/null 2>&1; then lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' lt_cv_file_magic_cmd='func_win32_libid' else # Keep this pattern in sync with the one in func_win32_libid. lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' lt_cv_file_magic_cmd='$OBJDUMP -f' fi ;; cegcc*) # use the weaker test based on 'objdump'. See mingw*. lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?' lt_cv_file_magic_cmd='$OBJDUMP -f' ;; darwin* | rhapsody*) lt_cv_deplibs_check_method=pass_all ;; freebsd* | dragonfly*) if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then case $host_cpu in i*86 ) # Not sure whether the presence of OpenBSD here was a mistake. # Let's accept both of them until this is cleared up. lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[3-9]86 (compact )?demand paged shared library' lt_cv_file_magic_cmd=/usr/bin/file lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` ;; esac else lt_cv_deplibs_check_method=pass_all fi ;; haiku*) lt_cv_deplibs_check_method=pass_all ;; hpux10.20* | hpux11*) lt_cv_file_magic_cmd=/usr/bin/file case $host_cpu in ia64*) lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - IA64' lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so ;; hppa*64*) lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF[ -][0-9][0-9])(-bit)?( [LM]SB)? shared object( file)?[, -]* PA-RISC [0-9]\.[0-9]' lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl ;; *) lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|PA-RISC[0-9]\.[0-9]) shared library' lt_cv_file_magic_test_file=/usr/lib/libc.sl ;; esac ;; interix[3-9]*) # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|\.a)$' ;; irix5* | irix6* | nonstopux*) case $LD in *-32|*"-32 ") libmagic=32-bit;; *-n32|*"-n32 ") libmagic=N32;; *-64|*"-64 ") libmagic=64-bit;; *) libmagic=never-match;; esac lt_cv_deplibs_check_method=pass_all ;; # This must be glibc/ELF. linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) lt_cv_deplibs_check_method=pass_all ;; netbsd* | netbsdelf*-gnu) if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' else lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|_pic\.a)$' fi ;; newos6*) lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (executable|dynamic lib)' lt_cv_file_magic_cmd=/usr/bin/file lt_cv_file_magic_test_file=/usr/lib/libnls.so ;; *nto* | *qnx*) lt_cv_deplibs_check_method=pass_all ;; openbsd* | bitrig*) if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|\.so|_pic\.a)$' else lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' fi ;; osf3* | osf4* | osf5*) lt_cv_deplibs_check_method=pass_all ;; rdos*) lt_cv_deplibs_check_method=pass_all ;; solaris*) lt_cv_deplibs_check_method=pass_all ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) lt_cv_deplibs_check_method=pass_all ;; sysv4 | sysv4.3*) case $host_vendor in motorola) lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib) M[0-9][0-9]* Version [0-9]' lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*` ;; ncr) lt_cv_deplibs_check_method=pass_all ;; sequent) lt_cv_file_magic_cmd='/bin/file' lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )' ;; sni) lt_cv_file_magic_cmd='/bin/file' lt_cv_deplibs_check_method="file_magic ELF [0-9][0-9]*-bit [LM]SB dynamic lib" lt_cv_file_magic_test_file=/lib/libc.so ;; siemens) lt_cv_deplibs_check_method=pass_all ;; pc) lt_cv_deplibs_check_method=pass_all ;; esac ;; tpf*) lt_cv_deplibs_check_method=pass_all ;; os2*) lt_cv_deplibs_check_method=pass_all ;; esac fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_deplibs_check_method" >&5 $as_echo "$lt_cv_deplibs_check_method" >&6; } file_magic_glob= want_nocaseglob=no if test "$build" = "$host"; then case $host_os in mingw* | pw32*) if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then want_nocaseglob=yes else file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[\1]\/[\1]\/g;/g"` fi ;; esac fi file_magic_cmd=$lt_cv_file_magic_cmd deplibs_check_method=$lt_cv_deplibs_check_method test -z "$deplibs_check_method" && deplibs_check_method=unknown if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}dlltool", so it can be a program name with args. set dummy ${ac_tool_prefix}dlltool; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_DLLTOOL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$DLLTOOL"; then ac_cv_prog_DLLTOOL="$DLLTOOL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi DLLTOOL=$ac_cv_prog_DLLTOOL if test -n "$DLLTOOL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DLLTOOL" >&5 $as_echo "$DLLTOOL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_DLLTOOL"; then ac_ct_DLLTOOL=$DLLTOOL # Extract the first word of "dlltool", so it can be a program name with args. set dummy dlltool; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_DLLTOOL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_DLLTOOL"; then ac_cv_prog_ac_ct_DLLTOOL="$ac_ct_DLLTOOL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_DLLTOOL="dlltool" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_DLLTOOL=$ac_cv_prog_ac_ct_DLLTOOL if test -n "$ac_ct_DLLTOOL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DLLTOOL" >&5 $as_echo "$ac_ct_DLLTOOL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_DLLTOOL" = x; then DLLTOOL="false" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac DLLTOOL=$ac_ct_DLLTOOL fi else DLLTOOL="$ac_cv_prog_DLLTOOL" fi test -z "$DLLTOOL" && DLLTOOL=dlltool { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to associate runtime and link libraries" >&5 $as_echo_n "checking how to associate runtime and link libraries... " >&6; } if ${lt_cv_sharedlib_from_linklib_cmd+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_sharedlib_from_linklib_cmd='unknown' case $host_os in cygwin* | mingw* | pw32* | cegcc*) # two different shell functions defined in ltmain.sh; # decide which one to use based on capabilities of $DLLTOOL case `$DLLTOOL --help 2>&1` in *--identify-strict*) lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib ;; *) lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback ;; esac ;; *) # fallback: assume linklib IS sharedlib lt_cv_sharedlib_from_linklib_cmd=$ECHO ;; esac fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sharedlib_from_linklib_cmd" >&5 $as_echo "$lt_cv_sharedlib_from_linklib_cmd" >&6; } sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO if test -n "$ac_tool_prefix"; then for ac_prog in ar do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_AR+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$AR"; then ac_cv_prog_AR="$AR" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_AR="$ac_tool_prefix$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi AR=$ac_cv_prog_AR if test -n "$AR"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5 $as_echo "$AR" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$AR" && break done fi if test -z "$AR"; then ac_ct_AR=$AR for ac_prog in ar do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_AR+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_AR"; then ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_AR="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_AR=$ac_cv_prog_ac_ct_AR if test -n "$ac_ct_AR"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5 $as_echo "$ac_ct_AR" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$ac_ct_AR" && break done if test "x$ac_ct_AR" = x; then AR="false" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac AR=$ac_ct_AR fi fi : ${AR=ar} : ${AR_FLAGS=cru} { $as_echo "$as_me:${as_lineno-$LINENO}: checking for archiver @FILE support" >&5 $as_echo_n "checking for archiver @FILE support... " >&6; } if ${lt_cv_ar_at_file+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_ar_at_file=no cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : echo conftest.$ac_objext > conftest.lst lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&5' { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5 (eval $lt_ar_try) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } if test 0 -eq "$ac_status"; then # Ensure the archiver fails upon bogus file names. rm -f conftest.$ac_objext libconftest.a { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5 (eval $lt_ar_try) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } if test 0 -ne "$ac_status"; then lt_cv_ar_at_file=@ fi fi rm -f conftest.* libconftest.a fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ar_at_file" >&5 $as_echo "$lt_cv_ar_at_file" >&6; } if test no = "$lt_cv_ar_at_file"; then archiver_list_spec= else archiver_list_spec=$lt_cv_ar_at_file fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. set dummy ${ac_tool_prefix}strip; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_STRIP+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$STRIP"; then ac_cv_prog_STRIP="$STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_STRIP="${ac_tool_prefix}strip" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi STRIP=$ac_cv_prog_STRIP if test -n "$STRIP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5 $as_echo "$STRIP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_STRIP"; then ac_ct_STRIP=$STRIP # Extract the first word of "strip", so it can be a program name with args. set dummy strip; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_STRIP+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_STRIP"; then ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_STRIP="strip" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP if test -n "$ac_ct_STRIP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5 $as_echo "$ac_ct_STRIP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_STRIP" = x; then STRIP=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac STRIP=$ac_ct_STRIP fi else STRIP="$ac_cv_prog_STRIP" fi test -z "$STRIP" && STRIP=: if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. set dummy ${ac_tool_prefix}ranlib; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_RANLIB+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$RANLIB"; then ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi RANLIB=$ac_cv_prog_RANLIB if test -n "$RANLIB"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5 $as_echo "$RANLIB" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_RANLIB"; then ac_ct_RANLIB=$RANLIB # Extract the first word of "ranlib", so it can be a program name with args. set dummy ranlib; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_RANLIB+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_RANLIB"; then ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_RANLIB="ranlib" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB if test -n "$ac_ct_RANLIB"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5 $as_echo "$ac_ct_RANLIB" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_RANLIB" = x; then RANLIB=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac RANLIB=$ac_ct_RANLIB fi else RANLIB="$ac_cv_prog_RANLIB" fi test -z "$RANLIB" && RANLIB=: # Determine commands to create old-style static archives. old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs' old_postinstall_cmds='chmod 644 $oldlib' old_postuninstall_cmds= if test -n "$RANLIB"; then case $host_os in bitrig* | openbsd*) old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$tool_oldlib" ;; *) old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$tool_oldlib" ;; esac old_archive_cmds="$old_archive_cmds~\$RANLIB \$tool_oldlib" fi case $host_os in darwin*) lock_old_archive_extraction=yes ;; *) lock_old_archive_extraction=no ;; esac # If no C compiler was specified, use CC. LTCC=${LTCC-"$CC"} # If no C compiler flags were specified, use CFLAGS. LTCFLAGS=${LTCFLAGS-"$CFLAGS"} # Allow CC to be a program name with arguments. compiler=$CC # Check for command to grab the raw symbol name followed by C symbol from nm. { $as_echo "$as_me:${as_lineno-$LINENO}: checking command to parse $NM output from $compiler object" >&5 $as_echo_n "checking command to parse $NM output from $compiler object... " >&6; } if ${lt_cv_sys_global_symbol_pipe+:} false; then : $as_echo_n "(cached) " >&6 else # These are sane defaults that work on at least a few old systems. # [They come from Ultrix. What could be older than Ultrix?!! ;)] # Character class describing NM global symbol codes. symcode='[BCDEGRST]' # Regexp to match symbols that can be accessed directly from C. sympat='\([_A-Za-z][_A-Za-z0-9]*\)' # Define system-specific variables. case $host_os in aix*) symcode='[BCDT]' ;; cygwin* | mingw* | pw32* | cegcc*) symcode='[ABCDGISTW]' ;; hpux*) if test ia64 = "$host_cpu"; then symcode='[ABCDEGRST]' fi ;; irix* | nonstopux*) symcode='[BCDEGRST]' ;; osf*) symcode='[BCDEGQRST]' ;; solaris*) symcode='[BDRT]' ;; sco3.2v5*) symcode='[DT]' ;; sysv4.2uw2*) symcode='[DT]' ;; sysv5* | sco5v6* | unixware* | OpenUNIX*) symcode='[ABDT]' ;; sysv4) symcode='[DFNSTU]' ;; esac # If we're using GNU nm, then use its standard symbol codes. case `$NM -V 2>&1` in *GNU* | *'with BFD'*) symcode='[ABCDGIRSTW]' ;; esac if test "$lt_cv_nm_interface" = "MS dumpbin"; then # Gets list of data symbols to import. lt_cv_sys_global_symbol_to_import="sed -n -e 's/^I .* \(.*\)$/\1/p'" # Adjust the below global symbol transforms to fixup imported variables. lt_cdecl_hook=" -e 's/^I .* \(.*\)$/extern __declspec(dllimport) char \1;/p'" lt_c_name_hook=" -e 's/^I .* \(.*\)$/ {\"\1\", (void *) 0},/p'" lt_c_name_lib_hook="\ -e 's/^I .* \(lib.*\)$/ {\"\1\", (void *) 0},/p'\ -e 's/^I .* \(.*\)$/ {\"lib\1\", (void *) 0},/p'" else # Disable hooks by default. lt_cv_sys_global_symbol_to_import= lt_cdecl_hook= lt_c_name_hook= lt_c_name_lib_hook= fi # Transform an extracted symbol line into a proper C declaration. # Some systems (esp. on ia64) link data and code symbols differently, # so use this general approach. lt_cv_sys_global_symbol_to_cdecl="sed -n"\ $lt_cdecl_hook\ " -e 's/^T .* \(.*\)$/extern int \1();/p'"\ " -e 's/^$symcode$symcode* .* \(.*\)$/extern char \1;/p'" # Transform an extracted symbol line into symbol name and symbol address lt_cv_sys_global_symbol_to_c_name_address="sed -n"\ $lt_c_name_hook\ " -e 's/^: \(.*\) .*$/ {\"\1\", (void *) 0},/p'"\ " -e 's/^$symcode$symcode* .* \(.*\)$/ {\"\1\", (void *) \&\1},/p'" # Transform an extracted symbol line into symbol name with lib prefix and # symbol address. lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n"\ $lt_c_name_lib_hook\ " -e 's/^: \(.*\) .*$/ {\"\1\", (void *) 0},/p'"\ " -e 's/^$symcode$symcode* .* \(lib.*\)$/ {\"\1\", (void *) \&\1},/p'"\ " -e 's/^$symcode$symcode* .* \(.*\)$/ {\"lib\1\", (void *) \&\1},/p'" # Handle CRLF in mingw tool chain opt_cr= case $build_os in mingw*) opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp ;; esac # Try without a prefix underscore, then with it. for ac_symprfx in "" "_"; do # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol. symxfrm="\\1 $ac_symprfx\\2 \\2" # Write the raw and C identifiers. if test "$lt_cv_nm_interface" = "MS dumpbin"; then # Fake it for dumpbin and say T for any non-static function, # D for any global variable and I for any imported variable. # Also find C++ and __fastcall symbols from MSVC++, # which start with @ or ?. lt_cv_sys_global_symbol_pipe="$AWK '"\ " {last_section=section; section=\$ 3};"\ " /^COFF SYMBOL TABLE/{for(i in hide) delete hide[i]};"\ " /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\ " /^ *Symbol name *: /{split(\$ 0,sn,\":\"); si=substr(sn[2],2)};"\ " /^ *Type *: code/{print \"T\",si,substr(si,length(prfx))};"\ " /^ *Type *: data/{print \"I\",si,substr(si,length(prfx))};"\ " \$ 0!~/External *\|/{next};"\ " / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\ " {if(hide[section]) next};"\ " {f=\"D\"}; \$ 0~/\(\).*\|/{f=\"T\"};"\ " {split(\$ 0,a,/\||\r/); split(a[2],s)};"\ " s[1]~/^[@?]/{print f,s[1],s[1]; next};"\ " s[1]~prfx {split(s[1],t,\"@\"); print f,t[1],substr(t[1],length(prfx))}"\ " ' prfx=^$ac_symprfx" else lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" fi lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'" # Check to see that the pipe works correctly. pipe_works=no rm -f conftest* cat > conftest.$ac_ext <<_LT_EOF #ifdef __cplusplus extern "C" { #endif char nm_test_var; void nm_test_func(void); void nm_test_func(void){} #ifdef __cplusplus } #endif int main(){nm_test_var='a';nm_test_func();return(0);} _LT_EOF if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then # Now try to grab the symbols. nlist=conftest.nm if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist\""; } >&5 (eval $NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && test -s "$nlist"; then # Try sorting and uniquifying the output. if sort "$nlist" | uniq > "$nlist"T; then mv -f "$nlist"T "$nlist" else rm -f "$nlist"T fi # Make sure that we snagged all the symbols we need. if $GREP ' nm_test_var$' "$nlist" >/dev/null; then if $GREP ' nm_test_func$' "$nlist" >/dev/null; then cat <<_LT_EOF > conftest.$ac_ext /* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ #if defined _WIN32 || defined __CYGWIN__ || defined _WIN32_WCE /* DATA imports from DLLs on WIN32 can't be const, because runtime relocations are performed -- see ld's documentation on pseudo-relocs. */ # define LT_DLSYM_CONST #elif defined __osf__ /* This system does not cope well with relocations in const data. */ # define LT_DLSYM_CONST #else # define LT_DLSYM_CONST const #endif #ifdef __cplusplus extern "C" { #endif _LT_EOF # Now generate the symbol file. eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext' cat <<_LT_EOF >> conftest.$ac_ext /* The mapping between symbol names and symbols. */ LT_DLSYM_CONST struct { const char *name; void *address; } lt__PROGRAM__LTX_preloaded_symbols[] = { { "@PROGRAM@", (void *) 0 }, _LT_EOF $SED "s/^$symcode$symcode* .* \(.*\)$/ {\"\1\", (void *) \&\1},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext cat <<\_LT_EOF >> conftest.$ac_ext {0, (void *) 0} }; /* This works around a problem in FreeBSD linker */ #ifdef FREEBSD_WORKAROUND static const void *lt_preloaded_setup() { return lt__PROGRAM__LTX_preloaded_symbols; } #endif #ifdef __cplusplus } #endif _LT_EOF # Now try linking the two files. mv conftest.$ac_objext conftstm.$ac_objext lt_globsym_save_LIBS=$LIBS lt_globsym_save_CFLAGS=$CFLAGS LIBS=conftstm.$ac_objext CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag" if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 (eval $ac_link) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && test -s conftest$ac_exeext; then pipe_works=yes fi LIBS=$lt_globsym_save_LIBS CFLAGS=$lt_globsym_save_CFLAGS else echo "cannot find nm_test_func in $nlist" >&5 fi else echo "cannot find nm_test_var in $nlist" >&5 fi else echo "cannot run $lt_cv_sys_global_symbol_pipe" >&5 fi else echo "$progname: failed program was:" >&5 cat conftest.$ac_ext >&5 fi rm -rf conftest* conftst* # Do not use the global_symbol_pipe unless it works. if test yes = "$pipe_works"; then break else lt_cv_sys_global_symbol_pipe= fi done fi if test -z "$lt_cv_sys_global_symbol_pipe"; then lt_cv_sys_global_symbol_to_cdecl= fi if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: failed" >&5 $as_echo "failed" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5 $as_echo "ok" >&6; } fi # Response file support. if test "$lt_cv_nm_interface" = "MS dumpbin"; then nm_file_list_spec='@' elif $NM --help 2>/dev/null | grep '[@]FILE' >/dev/null; then nm_file_list_spec='@' fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sysroot" >&5 $as_echo_n "checking for sysroot... " >&6; } # Check whether --with-sysroot was given. if test "${with_sysroot+set}" = set; then : withval=$with_sysroot; else with_sysroot=no fi lt_sysroot= case $with_sysroot in #( yes) if test yes = "$GCC"; then lt_sysroot=`$CC --print-sysroot 2>/dev/null` fi ;; #( /*) lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"` ;; #( no|'') ;; #( *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_sysroot" >&5 $as_echo "$with_sysroot" >&6; } as_fn_error $? "The sysroot must be an absolute path." "$LINENO" 5 ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${lt_sysroot:-no}" >&5 $as_echo "${lt_sysroot:-no}" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a working dd" >&5 $as_echo_n "checking for a working dd... " >&6; } if ${ac_cv_path_lt_DD+:} false; then : $as_echo_n "(cached) " >&6 else printf 0123456789abcdef0123456789abcdef >conftest.i cat conftest.i conftest.i >conftest2.i : ${lt_DD:=$DD} if test -z "$lt_DD"; then ac_path_lt_DD_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in dd; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_lt_DD="$as_dir/$ac_prog$ac_exec_ext" as_fn_executable_p "$ac_path_lt_DD" || continue if "$ac_path_lt_DD" bs=32 count=1 conftest.out 2>/dev/null; then cmp -s conftest.i conftest.out \ && ac_cv_path_lt_DD="$ac_path_lt_DD" ac_path_lt_DD_found=: fi $ac_path_lt_DD_found && break 3 done done done IFS=$as_save_IFS if test -z "$ac_cv_path_lt_DD"; then : fi else ac_cv_path_lt_DD=$lt_DD fi rm -f conftest.i conftest2.i conftest.out fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_lt_DD" >&5 $as_echo "$ac_cv_path_lt_DD" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to truncate binary pipes" >&5 $as_echo_n "checking how to truncate binary pipes... " >&6; } if ${lt_cv_truncate_bin+:} false; then : $as_echo_n "(cached) " >&6 else printf 0123456789abcdef0123456789abcdef >conftest.i cat conftest.i conftest.i >conftest2.i lt_cv_truncate_bin= if "$ac_cv_path_lt_DD" bs=32 count=1 conftest.out 2>/dev/null; then cmp -s conftest.i conftest.out \ && lt_cv_truncate_bin="$ac_cv_path_lt_DD bs=4096 count=1" fi rm -f conftest.i conftest2.i conftest.out test -z "$lt_cv_truncate_bin" && lt_cv_truncate_bin="$SED -e 4q" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_truncate_bin" >&5 $as_echo "$lt_cv_truncate_bin" >&6; } # Calculate cc_basename. Skip known compiler wrappers and cross-prefix. func_cc_basename () { for cc_temp in $*""; do case $cc_temp in compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; \-*) ;; *) break;; esac done func_cc_basename_result=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"` } # Check whether --enable-libtool-lock was given. if test "${enable_libtool_lock+set}" = set; then : enableval=$enable_libtool_lock; fi test no = "$enable_libtool_lock" || enable_libtool_lock=yes # Some flags need to be propagated to the compiler or linker for good # libtool support. case $host in ia64-*-hpux*) # Find out what ABI is being produced by ac_compile, and set mode # options accordingly. echo 'int i;' > conftest.$ac_ext if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then case `/usr/bin/file conftest.$ac_objext` in *ELF-32*) HPUX_IA64_MODE=32 ;; *ELF-64*) HPUX_IA64_MODE=64 ;; esac fi rm -rf conftest* ;; *-*-irix6*) # Find out what ABI is being produced by ac_compile, and set linker # options accordingly. echo '#line '$LINENO' "configure"' > conftest.$ac_ext if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then if test yes = "$lt_cv_prog_gnu_ld"; then case `/usr/bin/file conftest.$ac_objext` in *32-bit*) LD="${LD-ld} -melf32bsmip" ;; *N32*) LD="${LD-ld} -melf32bmipn32" ;; *64-bit*) LD="${LD-ld} -melf64bmip" ;; esac else case `/usr/bin/file conftest.$ac_objext` in *32-bit*) LD="${LD-ld} -32" ;; *N32*) LD="${LD-ld} -n32" ;; *64-bit*) LD="${LD-ld} -64" ;; esac fi fi rm -rf conftest* ;; mips64*-*linux*) # Find out what ABI is being produced by ac_compile, and set linker # options accordingly. echo '#line '$LINENO' "configure"' > conftest.$ac_ext if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then emul=elf case `/usr/bin/file conftest.$ac_objext` in *32-bit*) emul="${emul}32" ;; *64-bit*) emul="${emul}64" ;; esac case `/usr/bin/file conftest.$ac_objext` in *MSB*) emul="${emul}btsmip" ;; *LSB*) emul="${emul}ltsmip" ;; esac case `/usr/bin/file conftest.$ac_objext` in *N32*) emul="${emul}n32" ;; esac LD="${LD-ld} -m $emul" fi rm -rf conftest* ;; x86_64-*kfreebsd*-gnu|x86_64-*linux*|powerpc*-*linux*| \ s390*-*linux*|s390*-*tpf*|sparc*-*linux*) # Find out what ABI is being produced by ac_compile, and set linker # options accordingly. Note that the listed cases only cover the # situations where additional linker options are needed (such as when # doing 32-bit compilation for a host where ld defaults to 64-bit, or # vice versa); the common cases where no linker options are needed do # not appear in the list. echo 'int i;' > conftest.$ac_ext if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then case `/usr/bin/file conftest.o` in *32-bit*) case $host in x86_64-*kfreebsd*-gnu) LD="${LD-ld} -m elf_i386_fbsd" ;; x86_64-*linux*) case `/usr/bin/file conftest.o` in *x86-64*) LD="${LD-ld} -m elf32_x86_64" ;; *) LD="${LD-ld} -m elf_i386" ;; esac ;; powerpc64le-*linux*) LD="${LD-ld} -m elf32lppclinux" ;; powerpc64-*linux*) LD="${LD-ld} -m elf32ppclinux" ;; s390x-*linux*) LD="${LD-ld} -m elf_s390" ;; sparc64-*linux*) LD="${LD-ld} -m elf32_sparc" ;; esac ;; *64-bit*) case $host in x86_64-*kfreebsd*-gnu) LD="${LD-ld} -m elf_x86_64_fbsd" ;; x86_64-*linux*) LD="${LD-ld} -m elf_x86_64" ;; powerpcle-*linux*) LD="${LD-ld} -m elf64lppc" ;; powerpc-*linux*) LD="${LD-ld} -m elf64ppc" ;; s390*-*linux*|s390*-*tpf*) LD="${LD-ld} -m elf64_s390" ;; sparc*-*linux*) LD="${LD-ld} -m elf64_sparc" ;; esac ;; esac fi rm -rf conftest* ;; *-*-sco3.2v5*) # On SCO OpenServer 5, we need -belf to get full-featured binaries. SAVE_CFLAGS=$CFLAGS CFLAGS="$CFLAGS -belf" { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler needs -belf" >&5 $as_echo_n "checking whether the C compiler needs -belf... " >&6; } if ${lt_cv_cc_needs_belf+:} false; then : $as_echo_n "(cached) " >&6 else ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : lt_cv_cc_needs_belf=yes else lt_cv_cc_needs_belf=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_cc_needs_belf" >&5 $as_echo "$lt_cv_cc_needs_belf" >&6; } if test yes != "$lt_cv_cc_needs_belf"; then # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf CFLAGS=$SAVE_CFLAGS fi ;; *-*solaris*) # Find out what ABI is being produced by ac_compile, and set linker # options accordingly. echo 'int i;' > conftest.$ac_ext if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then case `/usr/bin/file conftest.o` in *64-bit*) case $lt_cv_prog_gnu_ld in yes*) case $host in i?86-*-solaris*|x86_64-*-solaris*) LD="${LD-ld} -m elf_x86_64" ;; sparc*-*-solaris*) LD="${LD-ld} -m elf64_sparc" ;; esac # GNU ld 2.21 introduced _sol2 emulations. Use them if available. if ${LD-ld} -V | grep _sol2 >/dev/null 2>&1; then LD=${LD-ld}_sol2 fi ;; *) if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then LD="${LD-ld} -64" fi ;; esac ;; esac fi rm -rf conftest* ;; esac need_locks=$enable_libtool_lock if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}mt", so it can be a program name with args. set dummy ${ac_tool_prefix}mt; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_MANIFEST_TOOL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$MANIFEST_TOOL"; then ac_cv_prog_MANIFEST_TOOL="$MANIFEST_TOOL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_MANIFEST_TOOL="${ac_tool_prefix}mt" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi MANIFEST_TOOL=$ac_cv_prog_MANIFEST_TOOL if test -n "$MANIFEST_TOOL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MANIFEST_TOOL" >&5 $as_echo "$MANIFEST_TOOL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_MANIFEST_TOOL"; then ac_ct_MANIFEST_TOOL=$MANIFEST_TOOL # Extract the first word of "mt", so it can be a program name with args. set dummy mt; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_MANIFEST_TOOL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_MANIFEST_TOOL"; then ac_cv_prog_ac_ct_MANIFEST_TOOL="$ac_ct_MANIFEST_TOOL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_MANIFEST_TOOL="mt" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_MANIFEST_TOOL=$ac_cv_prog_ac_ct_MANIFEST_TOOL if test -n "$ac_ct_MANIFEST_TOOL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_MANIFEST_TOOL" >&5 $as_echo "$ac_ct_MANIFEST_TOOL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_MANIFEST_TOOL" = x; then MANIFEST_TOOL=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac MANIFEST_TOOL=$ac_ct_MANIFEST_TOOL fi else MANIFEST_TOOL="$ac_cv_prog_MANIFEST_TOOL" fi test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $MANIFEST_TOOL is a manifest tool" >&5 $as_echo_n "checking if $MANIFEST_TOOL is a manifest tool... " >&6; } if ${lt_cv_path_mainfest_tool+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_path_mainfest_tool=no echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&5 $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out cat conftest.err >&5 if $GREP 'Manifest Tool' conftest.out > /dev/null; then lt_cv_path_mainfest_tool=yes fi rm -f conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_mainfest_tool" >&5 $as_echo "$lt_cv_path_mainfest_tool" >&6; } if test yes != "$lt_cv_path_mainfest_tool"; then MANIFEST_TOOL=: fi case $host_os in rhapsody* | darwin*) if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}dsymutil", so it can be a program name with args. set dummy ${ac_tool_prefix}dsymutil; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_DSYMUTIL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$DSYMUTIL"; then ac_cv_prog_DSYMUTIL="$DSYMUTIL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_DSYMUTIL="${ac_tool_prefix}dsymutil" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi DSYMUTIL=$ac_cv_prog_DSYMUTIL if test -n "$DSYMUTIL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DSYMUTIL" >&5 $as_echo "$DSYMUTIL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_DSYMUTIL"; then ac_ct_DSYMUTIL=$DSYMUTIL # Extract the first word of "dsymutil", so it can be a program name with args. set dummy dsymutil; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_DSYMUTIL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_DSYMUTIL"; then ac_cv_prog_ac_ct_DSYMUTIL="$ac_ct_DSYMUTIL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_DSYMUTIL="dsymutil" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_DSYMUTIL=$ac_cv_prog_ac_ct_DSYMUTIL if test -n "$ac_ct_DSYMUTIL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DSYMUTIL" >&5 $as_echo "$ac_ct_DSYMUTIL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_DSYMUTIL" = x; then DSYMUTIL=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac DSYMUTIL=$ac_ct_DSYMUTIL fi else DSYMUTIL="$ac_cv_prog_DSYMUTIL" fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}nmedit", so it can be a program name with args. set dummy ${ac_tool_prefix}nmedit; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_NMEDIT+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$NMEDIT"; then ac_cv_prog_NMEDIT="$NMEDIT" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_NMEDIT="${ac_tool_prefix}nmedit" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi NMEDIT=$ac_cv_prog_NMEDIT if test -n "$NMEDIT"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $NMEDIT" >&5 $as_echo "$NMEDIT" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_NMEDIT"; then ac_ct_NMEDIT=$NMEDIT # Extract the first word of "nmedit", so it can be a program name with args. set dummy nmedit; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_NMEDIT+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_NMEDIT"; then ac_cv_prog_ac_ct_NMEDIT="$ac_ct_NMEDIT" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_NMEDIT="nmedit" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_NMEDIT=$ac_cv_prog_ac_ct_NMEDIT if test -n "$ac_ct_NMEDIT"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_NMEDIT" >&5 $as_echo "$ac_ct_NMEDIT" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_NMEDIT" = x; then NMEDIT=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac NMEDIT=$ac_ct_NMEDIT fi else NMEDIT="$ac_cv_prog_NMEDIT" fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}lipo", so it can be a program name with args. set dummy ${ac_tool_prefix}lipo; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_LIPO+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$LIPO"; then ac_cv_prog_LIPO="$LIPO" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_LIPO="${ac_tool_prefix}lipo" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi LIPO=$ac_cv_prog_LIPO if test -n "$LIPO"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIPO" >&5 $as_echo "$LIPO" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_LIPO"; then ac_ct_LIPO=$LIPO # Extract the first word of "lipo", so it can be a program name with args. set dummy lipo; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_LIPO+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_LIPO"; then ac_cv_prog_ac_ct_LIPO="$ac_ct_LIPO" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_LIPO="lipo" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_LIPO=$ac_cv_prog_ac_ct_LIPO if test -n "$ac_ct_LIPO"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_LIPO" >&5 $as_echo "$ac_ct_LIPO" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_LIPO" = x; then LIPO=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac LIPO=$ac_ct_LIPO fi else LIPO="$ac_cv_prog_LIPO" fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}otool", so it can be a program name with args. set dummy ${ac_tool_prefix}otool; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_OTOOL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$OTOOL"; then ac_cv_prog_OTOOL="$OTOOL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_OTOOL="${ac_tool_prefix}otool" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi OTOOL=$ac_cv_prog_OTOOL if test -n "$OTOOL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL" >&5 $as_echo "$OTOOL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_OTOOL"; then ac_ct_OTOOL=$OTOOL # Extract the first word of "otool", so it can be a program name with args. set dummy otool; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_OTOOL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_OTOOL"; then ac_cv_prog_ac_ct_OTOOL="$ac_ct_OTOOL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_OTOOL="otool" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_OTOOL=$ac_cv_prog_ac_ct_OTOOL if test -n "$ac_ct_OTOOL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL" >&5 $as_echo "$ac_ct_OTOOL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_OTOOL" = x; then OTOOL=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac OTOOL=$ac_ct_OTOOL fi else OTOOL="$ac_cv_prog_OTOOL" fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}otool64", so it can be a program name with args. set dummy ${ac_tool_prefix}otool64; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_OTOOL64+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$OTOOL64"; then ac_cv_prog_OTOOL64="$OTOOL64" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_OTOOL64="${ac_tool_prefix}otool64" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi OTOOL64=$ac_cv_prog_OTOOL64 if test -n "$OTOOL64"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL64" >&5 $as_echo "$OTOOL64" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_OTOOL64"; then ac_ct_OTOOL64=$OTOOL64 # Extract the first word of "otool64", so it can be a program name with args. set dummy otool64; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_OTOOL64+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_OTOOL64"; then ac_cv_prog_ac_ct_OTOOL64="$ac_ct_OTOOL64" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_OTOOL64="otool64" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_OTOOL64=$ac_cv_prog_ac_ct_OTOOL64 if test -n "$ac_ct_OTOOL64"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL64" >&5 $as_echo "$ac_ct_OTOOL64" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_OTOOL64" = x; then OTOOL64=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac OTOOL64=$ac_ct_OTOOL64 fi else OTOOL64="$ac_cv_prog_OTOOL64" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -single_module linker flag" >&5 $as_echo_n "checking for -single_module linker flag... " >&6; } if ${lt_cv_apple_cc_single_mod+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_apple_cc_single_mod=no if test -z "$LT_MULTI_MODULE"; then # By default we will add the -single_module flag. You can override # by either setting the environment variable LT_MULTI_MODULE # non-empty at configure time, or by adding -multi_module to the # link flags. rm -rf libconftest.dylib* echo "int foo(void){return 1;}" > conftest.c echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ -dynamiclib -Wl,-single_module conftest.c" >&5 $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ -dynamiclib -Wl,-single_module conftest.c 2>conftest.err _lt_result=$? # If there is a non-empty error log, and "single_module" # appears in it, assume the flag caused a linker warning if test -s conftest.err && $GREP single_module conftest.err; then cat conftest.err >&5 # Otherwise, if the output was created with a 0 exit code from # the compiler, it worked. elif test -f libconftest.dylib && test 0 = "$_lt_result"; then lt_cv_apple_cc_single_mod=yes else cat conftest.err >&5 fi rm -rf libconftest.dylib* rm -f conftest.* fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_apple_cc_single_mod" >&5 $as_echo "$lt_cv_apple_cc_single_mod" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -exported_symbols_list linker flag" >&5 $as_echo_n "checking for -exported_symbols_list linker flag... " >&6; } if ${lt_cv_ld_exported_symbols_list+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_ld_exported_symbols_list=no save_LDFLAGS=$LDFLAGS echo "_main" > conftest.sym LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : lt_cv_ld_exported_symbols_list=yes else lt_cv_ld_exported_symbols_list=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LDFLAGS=$save_LDFLAGS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_exported_symbols_list" >&5 $as_echo "$lt_cv_ld_exported_symbols_list" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -force_load linker flag" >&5 $as_echo_n "checking for -force_load linker flag... " >&6; } if ${lt_cv_ld_force_load+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_ld_force_load=no cat > conftest.c << _LT_EOF int forced_loaded() { return 2;} _LT_EOF echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&5 $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&5 echo "$AR cru libconftest.a conftest.o" >&5 $AR cru libconftest.a conftest.o 2>&5 echo "$RANLIB libconftest.a" >&5 $RANLIB libconftest.a 2>&5 cat > conftest.c << _LT_EOF int main() { return 0;} _LT_EOF echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&5 $LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err _lt_result=$? if test -s conftest.err && $GREP force_load conftest.err; then cat conftest.err >&5 elif test -f conftest && test 0 = "$_lt_result" && $GREP forced_load conftest >/dev/null 2>&1; then lt_cv_ld_force_load=yes else cat conftest.err >&5 fi rm -f conftest.err libconftest.a conftest conftest.c rm -rf conftest.dSYM fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_force_load" >&5 $as_echo "$lt_cv_ld_force_load" >&6; } case $host_os in rhapsody* | darwin1.[012]) _lt_dar_allow_undefined='$wl-undefined ${wl}suppress' ;; darwin1.*) _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;; darwin*) # darwin 5.x on # if running on 10.5 or later, the deployment target defaults # to the OS version, if on x86, and 10.4, the deployment # target defaults to 10.4. Don't you love it? case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in 10.0,*86*-darwin8*|10.0,*-darwin[91]*) _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;; 10.[012][,.]*) _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;; 10.*) _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;; esac ;; esac if test yes = "$lt_cv_apple_cc_single_mod"; then _lt_dar_single_mod='$single_module' fi if test yes = "$lt_cv_ld_exported_symbols_list"; then _lt_dar_export_syms=' $wl-exported_symbols_list,$output_objdir/$libname-symbols.expsym' else _lt_dar_export_syms='~$NMEDIT -s $output_objdir/$libname-symbols.expsym $lib' fi if test : != "$DSYMUTIL" && test no = "$lt_cv_ld_force_load"; then _lt_dsymutil='~$DSYMUTIL $lib || :' else _lt_dsymutil= fi ;; esac # func_munge_path_list VARIABLE PATH # ----------------------------------- # VARIABLE is name of variable containing _space_ separated list of # directories to be munged by the contents of PATH, which is string # having a format: # "DIR[:DIR]:" # string "DIR[ DIR]" will be prepended to VARIABLE # ":DIR[:DIR]" # string "DIR[ DIR]" will be appended to VARIABLE # "DIRP[:DIRP]::[DIRA:]DIRA" # string "DIRP[ DIRP]" will be prepended to VARIABLE and string # "DIRA[ DIRA]" will be appended to VARIABLE # "DIR[:DIR]" # VARIABLE will be replaced by "DIR[ DIR]" func_munge_path_list () { case x$2 in x) ;; *:) eval $1=\"`$ECHO $2 | $SED 's/:/ /g'` \$$1\" ;; x:*) eval $1=\"\$$1 `$ECHO $2 | $SED 's/:/ /g'`\" ;; *::*) eval $1=\"\$$1\ `$ECHO $2 | $SED -e 's/.*:://' -e 's/:/ /g'`\" eval $1=\"`$ECHO $2 | $SED -e 's/::.*//' -e 's/:/ /g'`\ \$$1\" ;; *) eval $1=\"`$ECHO $2 | $SED 's/:/ /g'`\" ;; esac } # On IRIX 5.3, sys/types and inttypes.h are conflicting. for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ inttypes.h stdint.h unistd.h do : as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default " if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done for ac_header in dlfcn.h do : ac_fn_c_check_header_compile "$LINENO" "dlfcn.h" "ac_cv_header_dlfcn_h" "$ac_includes_default " if test "x$ac_cv_header_dlfcn_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_DLFCN_H 1 _ACEOF fi done # Set options enable_dlopen=no enable_win32_dll=no # Check whether --enable-shared was given. if test "${enable_shared+set}" = set; then : enableval=$enable_shared; p=${PACKAGE-default} case $enableval in yes) enable_shared=yes ;; no) enable_shared=no ;; *) enable_shared=no # Look at the argument we got. We use all the common list separators. lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR, for pkg in $enableval; do IFS=$lt_save_ifs if test "X$pkg" = "X$p"; then enable_shared=yes fi done IFS=$lt_save_ifs ;; esac else enable_shared=yes fi # Check whether --enable-static was given. if test "${enable_static+set}" = set; then : enableval=$enable_static; p=${PACKAGE-default} case $enableval in yes) enable_static=yes ;; no) enable_static=no ;; *) enable_static=no # Look at the argument we got. We use all the common list separators. lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR, for pkg in $enableval; do IFS=$lt_save_ifs if test "X$pkg" = "X$p"; then enable_static=yes fi done IFS=$lt_save_ifs ;; esac else enable_static=yes fi # Check whether --with-pic was given. if test "${with_pic+set}" = set; then : withval=$with_pic; lt_p=${PACKAGE-default} case $withval in yes|no) pic_mode=$withval ;; *) pic_mode=default # Look at the argument we got. We use all the common list separators. lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR, for lt_pkg in $withval; do IFS=$lt_save_ifs if test "X$lt_pkg" = "X$lt_p"; then pic_mode=yes fi done IFS=$lt_save_ifs ;; esac else pic_mode=default fi # Check whether --enable-fast-install was given. if test "${enable_fast_install+set}" = set; then : enableval=$enable_fast_install; p=${PACKAGE-default} case $enableval in yes) enable_fast_install=yes ;; no) enable_fast_install=no ;; *) enable_fast_install=no # Look at the argument we got. We use all the common list separators. lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR, for pkg in $enableval; do IFS=$lt_save_ifs if test "X$pkg" = "X$p"; then enable_fast_install=yes fi done IFS=$lt_save_ifs ;; esac else enable_fast_install=yes fi shared_archive_member_spec= case $host,$enable_shared in power*-*-aix[5-9]*,yes) { $as_echo "$as_me:${as_lineno-$LINENO}: checking which variant of shared library versioning to provide" >&5 $as_echo_n "checking which variant of shared library versioning to provide... " >&6; } # Check whether --with-aix-soname was given. if test "${with_aix_soname+set}" = set; then : withval=$with_aix_soname; case $withval in aix|svr4|both) ;; *) as_fn_error $? "Unknown argument to --with-aix-soname" "$LINENO" 5 ;; esac lt_cv_with_aix_soname=$with_aix_soname else if ${lt_cv_with_aix_soname+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_with_aix_soname=aix fi with_aix_soname=$lt_cv_with_aix_soname fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_aix_soname" >&5 $as_echo "$with_aix_soname" >&6; } if test aix != "$with_aix_soname"; then # For the AIX way of multilib, we name the shared archive member # based on the bitwidth used, traditionally 'shr.o' or 'shr_64.o', # and 'shr.imp' or 'shr_64.imp', respectively, for the Import File. # Even when GNU compilers ignore OBJECT_MODE but need '-maix64' flag, # the AIX toolchain works better with OBJECT_MODE set (default 32). if test 64 = "${OBJECT_MODE-32}"; then shared_archive_member_spec=shr_64 else shared_archive_member_spec=shr fi fi ;; *) with_aix_soname=aix ;; esac # This can be used to rebuild libtool when needed LIBTOOL_DEPS=$ltmain # Always use our own libtool. LIBTOOL='$(SHELL) $(top_builddir)/libtool' test -z "$LN_S" && LN_S="ln -s" if test -n "${ZSH_VERSION+set}"; then setopt NO_GLOB_SUBST fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for objdir" >&5 $as_echo_n "checking for objdir... " >&6; } if ${lt_cv_objdir+:} false; then : $as_echo_n "(cached) " >&6 else rm -f .libs 2>/dev/null mkdir .libs 2>/dev/null if test -d .libs; then lt_cv_objdir=.libs else # MS-DOS does not allow filenames that begin with a dot. lt_cv_objdir=_libs fi rmdir .libs 2>/dev/null fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_objdir" >&5 $as_echo "$lt_cv_objdir" >&6; } objdir=$lt_cv_objdir cat >>confdefs.h <<_ACEOF #define LT_OBJDIR "$lt_cv_objdir/" _ACEOF case $host_os in aix3*) # AIX sometimes has problems with the GCC collect2 program. For some # reason, if we set the COLLECT_NAMES environment variable, the problems # vanish in a puff of smoke. if test set != "${COLLECT_NAMES+set}"; then COLLECT_NAMES= export COLLECT_NAMES fi ;; esac # Global variables: ofile=libtool can_build_shared=yes # All known linkers require a '.a' archive for static linking (except MSVC, # which needs '.lib'). libext=a with_gnu_ld=$lt_cv_prog_gnu_ld old_CC=$CC old_CFLAGS=$CFLAGS # Set sane defaults for various variables test -z "$CC" && CC=cc test -z "$LTCC" && LTCC=$CC test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS test -z "$LD" && LD=ld test -z "$ac_objext" && ac_objext=o func_cc_basename $compiler cc_basename=$func_cc_basename_result # Only perform the check for file, if the check method requires it test -z "$MAGIC_CMD" && MAGIC_CMD=file case $deplibs_check_method in file_magic*) if test "$file_magic_cmd" = '$MAGIC_CMD'; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${ac_tool_prefix}file" >&5 $as_echo_n "checking for ${ac_tool_prefix}file... " >&6; } if ${lt_cv_path_MAGIC_CMD+:} false; then : $as_echo_n "(cached) " >&6 else case $MAGIC_CMD in [\\/*] | ?:[\\/]*) lt_cv_path_MAGIC_CMD=$MAGIC_CMD # Let the user override the test with a path. ;; *) lt_save_MAGIC_CMD=$MAGIC_CMD lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR ac_dummy="/usr/bin$PATH_SEPARATOR$PATH" for ac_dir in $ac_dummy; do IFS=$lt_save_ifs test -z "$ac_dir" && ac_dir=. if test -f "$ac_dir/${ac_tool_prefix}file"; then lt_cv_path_MAGIC_CMD=$ac_dir/"${ac_tool_prefix}file" if test -n "$file_magic_test_file"; then case $deplibs_check_method in "file_magic "*) file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` MAGIC_CMD=$lt_cv_path_MAGIC_CMD if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | $EGREP "$file_magic_regex" > /dev/null; then : else cat <<_LT_EOF 1>&2 *** Warning: the command libtool uses to detect shared libraries, *** $file_magic_cmd, produces output that libtool cannot recognize. *** The result is that libtool may fail to recognize shared libraries *** as such. This will affect the creation of libtool libraries that *** depend on shared libraries, but programs linked with such libtool *** libraries will work regardless of this problem. Nevertheless, you *** may want to report the problem to your system manager and/or to *** bug-libtool@gnu.org _LT_EOF fi ;; esac fi break fi done IFS=$lt_save_ifs MAGIC_CMD=$lt_save_MAGIC_CMD ;; esac fi MAGIC_CMD=$lt_cv_path_MAGIC_CMD if test -n "$MAGIC_CMD"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5 $as_echo "$MAGIC_CMD" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test -z "$lt_cv_path_MAGIC_CMD"; then if test -n "$ac_tool_prefix"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for file" >&5 $as_echo_n "checking for file... " >&6; } if ${lt_cv_path_MAGIC_CMD+:} false; then : $as_echo_n "(cached) " >&6 else case $MAGIC_CMD in [\\/*] | ?:[\\/]*) lt_cv_path_MAGIC_CMD=$MAGIC_CMD # Let the user override the test with a path. ;; *) lt_save_MAGIC_CMD=$MAGIC_CMD lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR ac_dummy="/usr/bin$PATH_SEPARATOR$PATH" for ac_dir in $ac_dummy; do IFS=$lt_save_ifs test -z "$ac_dir" && ac_dir=. if test -f "$ac_dir/file"; then lt_cv_path_MAGIC_CMD=$ac_dir/"file" if test -n "$file_magic_test_file"; then case $deplibs_check_method in "file_magic "*) file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` MAGIC_CMD=$lt_cv_path_MAGIC_CMD if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | $EGREP "$file_magic_regex" > /dev/null; then : else cat <<_LT_EOF 1>&2 *** Warning: the command libtool uses to detect shared libraries, *** $file_magic_cmd, produces output that libtool cannot recognize. *** The result is that libtool may fail to recognize shared libraries *** as such. This will affect the creation of libtool libraries that *** depend on shared libraries, but programs linked with such libtool *** libraries will work regardless of this problem. Nevertheless, you *** may want to report the problem to your system manager and/or to *** bug-libtool@gnu.org _LT_EOF fi ;; esac fi break fi done IFS=$lt_save_ifs MAGIC_CMD=$lt_save_MAGIC_CMD ;; esac fi MAGIC_CMD=$lt_cv_path_MAGIC_CMD if test -n "$MAGIC_CMD"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5 $as_echo "$MAGIC_CMD" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi else MAGIC_CMD=: fi fi fi ;; esac # Use C for the default configuration in the libtool script lt_save_CC=$CC ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu # Source file extension for C test sources. ac_ext=c # Object file extension for compiled C test sources. objext=o objext=$objext # Code to be used in simple compile tests lt_simple_compile_test_code="int some_variable = 0;" # Code to be used in simple link tests lt_simple_link_test_code='int main(){return(0);}' # If no C compiler was specified, use CC. LTCC=${LTCC-"$CC"} # If no C compiler flags were specified, use CFLAGS. LTCFLAGS=${LTCFLAGS-"$CFLAGS"} # Allow CC to be a program name with arguments. compiler=$CC # Save the default compiler, since it gets overwritten when the other # tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP. compiler_DEFAULT=$CC # save warnings/boilerplate of simple test code ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" >conftest.$ac_ext eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_compiler_boilerplate=`cat conftest.err` $RM conftest* ac_outfile=conftest.$ac_objext echo "$lt_simple_link_test_code" >conftest.$ac_ext eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_linker_boilerplate=`cat conftest.err` $RM -r conftest* if test -n "$compiler"; then lt_prog_compiler_no_builtin_flag= if test yes = "$GCC"; then case $cc_basename in nvcc*) lt_prog_compiler_no_builtin_flag=' -Xcompiler -fno-builtin' ;; *) lt_prog_compiler_no_builtin_flag=' -fno-builtin' ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -fno-rtti -fno-exceptions" >&5 $as_echo_n "checking if $compiler supports -fno-rtti -fno-exceptions... " >&6; } if ${lt_cv_prog_compiler_rtti_exceptions+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_rtti_exceptions=no ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-fno-rtti -fno-exceptions" ## exclude from sc_useless_quotes_in_assignment # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. # The option is referenced via a variable to avoid confusing sed. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then lt_cv_prog_compiler_rtti_exceptions=yes fi fi $RM conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_rtti_exceptions" >&5 $as_echo "$lt_cv_prog_compiler_rtti_exceptions" >&6; } if test yes = "$lt_cv_prog_compiler_rtti_exceptions"; then lt_prog_compiler_no_builtin_flag="$lt_prog_compiler_no_builtin_flag -fno-rtti -fno-exceptions" else : fi fi lt_prog_compiler_wl= lt_prog_compiler_pic= lt_prog_compiler_static= if test yes = "$GCC"; then lt_prog_compiler_wl='-Wl,' lt_prog_compiler_static='-static' case $host_os in aix*) # All AIX code is PIC. if test ia64 = "$host_cpu"; then # AIX 5 now supports IA64 processor lt_prog_compiler_static='-Bstatic' fi lt_prog_compiler_pic='-fPIC' ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support lt_prog_compiler_pic='-fPIC' ;; m68k) # FIXME: we need at least 68020 code to build shared libraries, but # adding the '-m68020' flag to GCC prevents building anything better, # like '-m68040'. lt_prog_compiler_pic='-m68020 -resident32 -malways-restore-a4' ;; esac ;; beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; mingw* | cygwin* | pw32* | os2* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). # Although the cygwin gcc ignores -fPIC, still need this for old-style # (--disable-auto-import) libraries lt_prog_compiler_pic='-DDLL_EXPORT' case $host_os in os2*) lt_prog_compiler_static='$wl-static' ;; esac ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files lt_prog_compiler_pic='-fno-common' ;; haiku*) # PIC is the default for Haiku. # The "-static" flag exists, but is broken. lt_prog_compiler_static= ;; hpux*) # PIC is the default for 64-bit PA HP-UX, but not for 32-bit # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag # sets the default TLS model and affects inlining. case $host_cpu in hppa*64*) # +Z the default ;; *) lt_prog_compiler_pic='-fPIC' ;; esac ;; interix[3-9]*) # Interix 3.x gcc -fpic/-fPIC options generate broken code. # Instead, we relocate shared libraries at runtime. ;; msdosdjgpp*) # Just because we use GCC doesn't mean we suddenly get shared libraries # on systems that don't support them. lt_prog_compiler_can_build_shared=no enable_shared=no ;; *nto* | *qnx*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. lt_prog_compiler_pic='-fPIC -shared' ;; sysv4*MP*) if test -d /usr/nec; then lt_prog_compiler_pic=-Kconform_pic fi ;; *) lt_prog_compiler_pic='-fPIC' ;; esac case $cc_basename in nvcc*) # Cuda Compiler Driver 2.2 lt_prog_compiler_wl='-Xlinker ' if test -n "$lt_prog_compiler_pic"; then lt_prog_compiler_pic="-Xcompiler $lt_prog_compiler_pic" fi ;; esac else # PORTME Check for flag to pass linker flags through the system compiler. case $host_os in aix*) lt_prog_compiler_wl='-Wl,' if test ia64 = "$host_cpu"; then # AIX 5 now supports IA64 processor lt_prog_compiler_static='-Bstatic' else lt_prog_compiler_static='-bnso -bI:/lib/syscalls.exp' fi ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files lt_prog_compiler_pic='-fno-common' case $cc_basename in nagfor*) # NAG Fortran compiler lt_prog_compiler_wl='-Wl,-Wl,,' lt_prog_compiler_pic='-PIC' lt_prog_compiler_static='-Bstatic' ;; esac ;; mingw* | cygwin* | pw32* | os2* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). lt_prog_compiler_pic='-DDLL_EXPORT' case $host_os in os2*) lt_prog_compiler_static='$wl-static' ;; esac ;; hpux9* | hpux10* | hpux11*) lt_prog_compiler_wl='-Wl,' # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but # not for PA HP-UX. case $host_cpu in hppa*64*|ia64*) # +Z the default ;; *) lt_prog_compiler_pic='+Z' ;; esac # Is there a better lt_prog_compiler_static that works with the bundled CC? lt_prog_compiler_static='$wl-a ${wl}archive' ;; irix5* | irix6* | nonstopux*) lt_prog_compiler_wl='-Wl,' # PIC (with -KPIC) is the default. lt_prog_compiler_static='-non_shared' ;; linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) case $cc_basename in # old Intel for x86_64, which still supported -KPIC. ecc*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-static' ;; # icc used to be incompatible with GCC. # ICC 10 doesn't accept -KPIC any more. icc* | ifort*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-fPIC' lt_prog_compiler_static='-static' ;; # Lahey Fortran 8.1. lf95*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='--shared' lt_prog_compiler_static='--static' ;; nagfor*) # NAG Fortran compiler lt_prog_compiler_wl='-Wl,-Wl,,' lt_prog_compiler_pic='-PIC' lt_prog_compiler_static='-Bstatic' ;; tcc*) # Fabrice Bellard et al's Tiny C Compiler lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-fPIC' lt_prog_compiler_static='-static' ;; pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*) # Portland Group compilers (*not* the Pentium gcc compiler, # which looks to be a dead project) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-fpic' lt_prog_compiler_static='-Bstatic' ;; ccc*) lt_prog_compiler_wl='-Wl,' # All Alpha code is PIC. lt_prog_compiler_static='-non_shared' ;; xl* | bgxl* | bgf* | mpixl*) # IBM XL C 8.0/Fortran 10.1, 11.1 on PPC and BlueGene lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-qpic' lt_prog_compiler_static='-qstaticlink' ;; *) case `$CC -V 2>&1 | sed 5q` in *Sun\ Ceres\ Fortran* | *Sun*Fortran*\ [1-7].* | *Sun*Fortran*\ 8.[0-3]*) # Sun Fortran 8.3 passes all unrecognized flags to the linker lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' lt_prog_compiler_wl='' ;; *Sun\ F* | *Sun*Fortran*) lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' lt_prog_compiler_wl='-Qoption ld ' ;; *Sun\ C*) # Sun C 5.9 lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' lt_prog_compiler_wl='-Wl,' ;; *Intel*\ [CF]*Compiler*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-fPIC' lt_prog_compiler_static='-static' ;; *Portland\ Group*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-fpic' lt_prog_compiler_static='-Bstatic' ;; esac ;; esac ;; newsos6) lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' ;; *nto* | *qnx*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. lt_prog_compiler_pic='-fPIC -shared' ;; osf3* | osf4* | osf5*) lt_prog_compiler_wl='-Wl,' # All OSF/1 code is PIC. lt_prog_compiler_static='-non_shared' ;; rdos*) lt_prog_compiler_static='-non_shared' ;; solaris*) lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' case $cc_basename in f77* | f90* | f95* | sunf77* | sunf90* | sunf95*) lt_prog_compiler_wl='-Qoption ld ';; *) lt_prog_compiler_wl='-Wl,';; esac ;; sunos4*) lt_prog_compiler_wl='-Qoption ld ' lt_prog_compiler_pic='-PIC' lt_prog_compiler_static='-Bstatic' ;; sysv4 | sysv4.2uw2* | sysv4.3*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' ;; sysv4*MP*) if test -d /usr/nec; then lt_prog_compiler_pic='-Kconform_pic' lt_prog_compiler_static='-Bstatic' fi ;; sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' ;; unicos*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_can_build_shared=no ;; uts4*) lt_prog_compiler_pic='-pic' lt_prog_compiler_static='-Bstatic' ;; *) lt_prog_compiler_can_build_shared=no ;; esac fi case $host_os in # For platforms that do not support PIC, -DPIC is meaningless: *djgpp*) lt_prog_compiler_pic= ;; *) lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC" ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5 $as_echo_n "checking for $compiler option to produce PIC... " >&6; } if ${lt_cv_prog_compiler_pic+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_pic=$lt_prog_compiler_pic fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic" >&5 $as_echo "$lt_cv_prog_compiler_pic" >&6; } lt_prog_compiler_pic=$lt_cv_prog_compiler_pic # # Check to make sure the PIC flag actually works. # if test -n "$lt_prog_compiler_pic"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5 $as_echo_n "checking if $compiler PIC flag $lt_prog_compiler_pic works... " >&6; } if ${lt_cv_prog_compiler_pic_works+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_pic_works=no ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="$lt_prog_compiler_pic -DPIC" ## exclude from sc_useless_quotes_in_assignment # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. # The option is referenced via a variable to avoid confusing sed. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then lt_cv_prog_compiler_pic_works=yes fi fi $RM conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_works" >&5 $as_echo "$lt_cv_prog_compiler_pic_works" >&6; } if test yes = "$lt_cv_prog_compiler_pic_works"; then case $lt_prog_compiler_pic in "" | " "*) ;; *) lt_prog_compiler_pic=" $lt_prog_compiler_pic" ;; esac else lt_prog_compiler_pic= lt_prog_compiler_can_build_shared=no fi fi # # Check to make sure the static flag actually works. # wl=$lt_prog_compiler_wl eval lt_tmp_static_flag=\"$lt_prog_compiler_static\" { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler static flag $lt_tmp_static_flag works" >&5 $as_echo_n "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; } if ${lt_cv_prog_compiler_static_works+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_static_works=no save_LDFLAGS=$LDFLAGS LDFLAGS="$LDFLAGS $lt_tmp_static_flag" echo "$lt_simple_link_test_code" > conftest.$ac_ext if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then # The linker can only warn and ignore the option if not recognized # So say no if there are warnings if test -s conftest.err; then # Append any errors to the config.log. cat conftest.err 1>&5 $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if diff conftest.exp conftest.er2 >/dev/null; then lt_cv_prog_compiler_static_works=yes fi else lt_cv_prog_compiler_static_works=yes fi fi $RM -r conftest* LDFLAGS=$save_LDFLAGS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_static_works" >&5 $as_echo "$lt_cv_prog_compiler_static_works" >&6; } if test yes = "$lt_cv_prog_compiler_static_works"; then : else lt_prog_compiler_static= fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 $as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } if ${lt_cv_prog_compiler_c_o+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_c_o=no $RM -r conftest 2>/dev/null mkdir conftest cd conftest mkdir out echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-o out/conftest2.$ac_objext" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then lt_cv_prog_compiler_c_o=yes fi fi chmod u+w . 2>&5 $RM conftest* # SGI C++ compiler will create directory out/ii_files/ for # template instantiation test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files $RM out/* && rmdir out cd .. $RM -r conftest $RM conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5 $as_echo "$lt_cv_prog_compiler_c_o" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 $as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } if ${lt_cv_prog_compiler_c_o+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_c_o=no $RM -r conftest 2>/dev/null mkdir conftest cd conftest mkdir out echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-o out/conftest2.$ac_objext" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then lt_cv_prog_compiler_c_o=yes fi fi chmod u+w . 2>&5 $RM conftest* # SGI C++ compiler will create directory out/ii_files/ for # template instantiation test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files $RM out/* && rmdir out cd .. $RM -r conftest $RM conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5 $as_echo "$lt_cv_prog_compiler_c_o" >&6; } hard_links=nottested if test no = "$lt_cv_prog_compiler_c_o" && test no != "$need_locks"; then # do not overwrite the value of need_locks provided by the user { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we can lock with hard links" >&5 $as_echo_n "checking if we can lock with hard links... " >&6; } hard_links=yes $RM conftest* ln conftest.a conftest.b 2>/dev/null && hard_links=no touch conftest.a ln conftest.a conftest.b 2>&5 || hard_links=no ln conftest.a conftest.b 2>/dev/null && hard_links=no { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hard_links" >&5 $as_echo "$hard_links" >&6; } if test no = "$hard_links"; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: '$CC' does not support '-c -o', so 'make -j' may be unsafe" >&5 $as_echo "$as_me: WARNING: '$CC' does not support '-c -o', so 'make -j' may be unsafe" >&2;} need_locks=warn fi else need_locks=no fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5 $as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; } runpath_var= allow_undefined_flag= always_export_symbols=no archive_cmds= archive_expsym_cmds= compiler_needs_object=no enable_shared_with_static_runtimes=no export_dynamic_flag_spec= export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' hardcode_automatic=no hardcode_direct=no hardcode_direct_absolute=no hardcode_libdir_flag_spec= hardcode_libdir_separator= hardcode_minus_L=no hardcode_shlibpath_var=unsupported inherit_rpath=no link_all_deplibs=unknown module_cmds= module_expsym_cmds= old_archive_from_new_cmds= old_archive_from_expsyms_cmds= thread_safe_flag_spec= whole_archive_flag_spec= # include_expsyms should be a list of space-separated symbols to be *always* # included in the symbol list include_expsyms= # exclude_expsyms can be an extended regexp of symbols to exclude # it will be wrapped by ' (' and ')$', so one must not match beginning or # end of line. Example: 'a|bc|.*d.*' will exclude the symbols 'a' and 'bc', # as well as any symbol that contains 'd'. exclude_expsyms='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*' # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out # platforms (ab)use it in PIC code, but their linkers get confused if # the symbol is explicitly referenced. Since portable code cannot # rely on this symbol name, it's probably fine to never include it in # preloaded symbol tables. # Exclude shared library initialization/finalization symbols. extract_expsyms_cmds= case $host_os in cygwin* | mingw* | pw32* | cegcc*) # FIXME: the MSVC++ port hasn't been tested in a loooong time # When not using gcc, we currently assume that we are using # Microsoft Visual C++. if test yes != "$GCC"; then with_gnu_ld=no fi ;; interix*) # we just hope/assume this is gcc and not c89 (= MSVC++) with_gnu_ld=yes ;; openbsd* | bitrig*) with_gnu_ld=no ;; linux* | k*bsd*-gnu | gnu*) link_all_deplibs=no ;; esac ld_shlibs=yes # On some targets, GNU ld is compatible enough with the native linker # that we're better off using the native interface for both. lt_use_gnu_ld_interface=no if test yes = "$with_gnu_ld"; then case $host_os in aix*) # The AIX port of GNU ld has always aspired to compatibility # with the native linker. However, as the warning in the GNU ld # block says, versions before 2.19.5* couldn't really create working # shared libraries, regardless of the interface used. case `$LD -v 2>&1` in *\ \(GNU\ Binutils\)\ 2.19.5*) ;; *\ \(GNU\ Binutils\)\ 2.[2-9]*) ;; *\ \(GNU\ Binutils\)\ [3-9]*) ;; *) lt_use_gnu_ld_interface=yes ;; esac ;; *) lt_use_gnu_ld_interface=yes ;; esac fi if test yes = "$lt_use_gnu_ld_interface"; then # If archive_cmds runs LD, not CC, wlarc should be empty wlarc='$wl' # Set some defaults for GNU ld with shared library support. These # are reset later if shared libraries are not supported. Putting them # here allows them to be overridden if necessary. runpath_var=LD_RUN_PATH hardcode_libdir_flag_spec='$wl-rpath $wl$libdir' export_dynamic_flag_spec='$wl--export-dynamic' # ancient GNU ld didn't support --whole-archive et. al. if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then whole_archive_flag_spec=$wlarc'--whole-archive$convenience '$wlarc'--no-whole-archive' else whole_archive_flag_spec= fi supports_anon_versioning=no case `$LD -v | $SED -e 's/(^)\+)\s\+//' 2>&1` in *GNU\ gold*) supports_anon_versioning=yes ;; *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11 *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... *\ 2.11.*) ;; # other 2.11 versions *) supports_anon_versioning=yes ;; esac # See if GNU ld supports shared libraries. case $host_os in aix[3-9]*) # On AIX/PPC, the GNU linker is very broken if test ia64 != "$host_cpu"; then ld_shlibs=no cat <<_LT_EOF 1>&2 *** Warning: the GNU linker, at least up to release 2.19, is reported *** to be unable to reliably create shared libraries on AIX. *** Therefore, libtool is disabling shared libraries support. If you *** really care for shared libraries, you may want to install binutils *** 2.20 or above, or modify your PATH so that a non-GNU linker is found. *** You will then need to restart the configuration process. _LT_EOF fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' archive_expsym_cmds='' ;; m68k) archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes ;; esac ;; beos*) if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then allow_undefined_flag=unsupported # Joseph Beckenbach says some releases of gcc # support --undefined. This deserves some investigation. FIXME archive_cmds='$CC -nostart $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' else ld_shlibs=no fi ;; cygwin* | mingw* | pw32* | cegcc*) # _LT_TAGVAR(hardcode_libdir_flag_spec, ) is actually meaningless, # as there is no search path for DLLs. hardcode_libdir_flag_spec='-L$libdir' export_dynamic_flag_spec='$wl--export-all-symbols' allow_undefined_flag=unsupported always_export_symbols=no enable_shared_with_static_runtimes=yes export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //'\'' | sort | uniq > $export_symbols' exclude_expsyms='[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname' if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' # If the export-symbols file already is a .def file, use it as # is; otherwise, prepend EXPORTS... archive_expsym_cmds='if test DEF = "`$SED -n -e '\''s/^[ ]*//'\'' -e '\''/^\(;.*\)*$/d'\'' -e '\''s/^\(EXPORTS\|LIBRARY\)\([ ].*\)*$/DEF/p'\'' -e q $export_symbols`" ; then cp $export_symbols $output_objdir/$soname.def; else echo EXPORTS > $output_objdir/$soname.def; cat $export_symbols >> $output_objdir/$soname.def; fi~ $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' else ld_shlibs=no fi ;; haiku*) archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' link_all_deplibs=yes ;; os2*) hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes allow_undefined_flag=unsupported shrext_cmds=.dll archive_cmds='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ $ECHO EXPORTS >> $output_objdir/$libname.def~ emxexp $libobjs | $SED /"_DLL_InitTerm"/d >> $output_objdir/$libname.def~ $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ emximp -o $lib $output_objdir/$libname.def' archive_expsym_cmds='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ $ECHO EXPORTS >> $output_objdir/$libname.def~ prefix_cmds="$SED"~ if test EXPORTS = "`$SED 1q $export_symbols`"; then prefix_cmds="$prefix_cmds -e 1d"; fi~ prefix_cmds="$prefix_cmds -e \"s/^\(.*\)$/_\1/g\""~ cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~ $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ emximp -o $lib $output_objdir/$libname.def' old_archive_From_new_cmds='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def' enable_shared_with_static_runtimes=yes ;; interix[3-9]*) hardcode_direct=no hardcode_shlibpath_var=no hardcode_libdir_flag_spec='$wl-rpath,$libdir' export_dynamic_flag_spec='$wl-E' # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. # Instead, shared libraries are loaded at an image base (0x10000000 by # default) and relocated if they conflict, which is a slow very memory # consuming and fragmenting process. To avoid this, we pick a random, # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link # time. Moving up from 0x10000000 also allows more sbrk(2) space. archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' archive_expsym_cmds='sed "s|^|_|" $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--retain-symbols-file,$output_objdir/$soname.expsym $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' ;; gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu) tmp_diet=no if test linux-dietlibc = "$host_os"; then case $cc_basename in diet\ *) tmp_diet=yes;; # linux-dietlibc with static linking (!diet-dyn) esac fi if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \ && test no = "$tmp_diet" then tmp_addflag=' $pic_flag' tmp_sharedflag='-shared' case $cc_basename,$host_cpu in pgcc*) # Portland Group C compiler whole_archive_flag_spec='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' tmp_addflag=' $pic_flag' ;; pgf77* | pgf90* | pgf95* | pgfortran*) # Portland Group f77 and f90 compilers whole_archive_flag_spec='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' tmp_addflag=' $pic_flag -Mnomain' ;; ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 tmp_addflag=' -i_dynamic' ;; efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 tmp_addflag=' -i_dynamic -nofor_main' ;; ifc* | ifort*) # Intel Fortran compiler tmp_addflag=' -nofor_main' ;; lf95*) # Lahey Fortran 8.1 whole_archive_flag_spec= tmp_sharedflag='--shared' ;; nagfor*) # NAGFOR 5.3 tmp_sharedflag='-Wl,-shared' ;; xl[cC]* | bgxl[cC]* | mpixl[cC]*) # IBM XL C 8.0 on PPC (deal with xlf below) tmp_sharedflag='-qmkshrobj' tmp_addflag= ;; nvcc*) # Cuda Compiler Driver 2.2 whole_archive_flag_spec='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' compiler_needs_object=yes ;; esac case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C 5.9 whole_archive_flag_spec='$wl--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' compiler_needs_object=yes tmp_sharedflag='-G' ;; *Sun\ F*) # Sun Fortran 8.3 tmp_sharedflag='-G' ;; esac archive_cmds='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' if test yes = "$supports_anon_versioning"; then archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~ $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-version-script $wl$output_objdir/$libname.ver -o $lib' fi case $cc_basename in tcc*) export_dynamic_flag_spec='-rdynamic' ;; xlf* | bgf* | bgxlf* | mpixlf*) # IBM XL Fortran 10.1 on PPC cannot create shared libs itself whole_archive_flag_spec='--whole-archive$convenience --no-whole-archive' hardcode_libdir_flag_spec='$wl-rpath $wl$libdir' archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib' if test yes = "$supports_anon_versioning"; then archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~ $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' fi ;; esac else ld_shlibs=no fi ;; netbsd* | netbsdelf*-gnu) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' wlarc= else archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' fi ;; solaris*) if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then ld_shlibs=no cat <<_LT_EOF 1>&2 *** Warning: The releases 2.8.* of the GNU linker cannot reliably *** create shared libraries on Solaris systems. Therefore, libtool *** is disabling shared libraries support. We urge you to upgrade GNU *** binutils to release 2.9.1 or newer. Another option is to modify *** your PATH or compiler configuration so that the native linker is *** used, and then restart. _LT_EOF elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs=no fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) case `$LD -v 2>&1` in *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*) ld_shlibs=no cat <<_LT_EOF 1>&2 *** Warning: Releases of the GNU linker prior to 2.16.91.0.3 cannot *** reliably create shared libraries on SCO systems. Therefore, libtool *** is disabling shared libraries support. We urge you to upgrade GNU *** binutils to release 2.16.91.0.3 or newer. Another option is to modify *** your PATH or compiler configuration so that the native linker is *** used, and then restart. _LT_EOF ;; *) # For security reasons, it is highly recommended that you always # use absolute paths for naming shared libraries, and exclude the # DT_RUNPATH tag from executables and libraries. But doing so # requires that you compile everything twice, which is a pain. if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then hardcode_libdir_flag_spec='$wl-rpath $wl$libdir' archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs=no fi ;; esac ;; sunos4*) archive_cmds='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' wlarc= hardcode_direct=yes hardcode_shlibpath_var=no ;; *) if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs=no fi ;; esac if test no = "$ld_shlibs"; then runpath_var= hardcode_libdir_flag_spec= export_dynamic_flag_spec= whole_archive_flag_spec= fi else # PORTME fill in a description of your system's linker (not GNU ld) case $host_os in aix3*) allow_undefined_flag=unsupported always_export_symbols=yes archive_expsym_cmds='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' # Note: this linker hardcodes the directories in LIBPATH if there # are no directories specified by -L. hardcode_minus_L=yes if test yes = "$GCC" && test -z "$lt_prog_compiler_static"; then # Neither direct hardcoding nor static linking is supported with a # broken collect2. hardcode_direct=unsupported fi ;; aix[4-9]*) if test ia64 = "$host_cpu"; then # On IA64, the linker does run time linking by default, so we don't # have to do anything special. aix_use_runtimelinking=no exp_sym_flag='-Bexport' no_entry_flag= else # If we're using GNU nm, then we don't want the "-C" option. # -C means demangle to GNU nm, but means don't demangle to AIX nm. # Without the "-l" option, or with the "-B" option, AIX nm treats # weak defined symbols like other global defined symbols, whereas # GNU nm marks them as "W". # While the 'weak' keyword is ignored in the Export File, we need # it in the Import File for the 'aix-soname' feature, so we have # to replace the "-B" option with "-P" for AIX nm. if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then export_symbols_cmds='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && (substr(\$ 3,1,1) != ".")) { if (\$ 2 == "W") { print \$ 3 " weak" } else { print \$ 3 } } }'\'' | sort -u > $export_symbols' else export_symbols_cmds='`func_echo_all $NM | $SED -e '\''s/B\([^B]*\)$/P\1/'\''` -PCpgl $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) && (substr(\$ 1,1,1) != ".")) { if ((\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) { print \$ 1 " weak" } else { print \$ 1 } } }'\'' | sort -u > $export_symbols' fi aix_use_runtimelinking=no # Test if we are trying to use run time linking or normal # AIX style linking. If -brtl is somewhere in LDFLAGS, we # have runtime linking enabled, and use it for executables. # For shared libraries, we enable/disable runtime linking # depending on the kind of the shared library created - # when "with_aix_soname,aix_use_runtimelinking" is: # "aix,no" lib.a(lib.so.V) shared, rtl:no, for executables # "aix,yes" lib.so shared, rtl:yes, for executables # lib.a static archive # "both,no" lib.so.V(shr.o) shared, rtl:yes # lib.a(lib.so.V) shared, rtl:no, for executables # "both,yes" lib.so.V(shr.o) shared, rtl:yes, for executables # lib.a(lib.so.V) shared, rtl:no # "svr4,*" lib.so.V(shr.o) shared, rtl:yes, for executables # lib.a static archive case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*) for ld_flag in $LDFLAGS; do if (test x-brtl = "x$ld_flag" || test x-Wl,-brtl = "x$ld_flag"); then aix_use_runtimelinking=yes break fi done if test svr4,no = "$with_aix_soname,$aix_use_runtimelinking"; then # With aix-soname=svr4, we create the lib.so.V shared archives only, # so we don't have lib.a shared libs to link our executables. # We have to force runtime linking in this case. aix_use_runtimelinking=yes LDFLAGS="$LDFLAGS -Wl,-brtl" fi ;; esac exp_sym_flag='-bexport' no_entry_flag='-bnoentry' fi # When large executables or shared objects are built, AIX ld can # have problems creating the table of contents. If linking a library # or program results in "error TOC overflow" add -mminimal-toc to # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. archive_cmds='' hardcode_direct=yes hardcode_direct_absolute=yes hardcode_libdir_separator=':' link_all_deplibs=yes file_list_spec='$wl-f,' case $with_aix_soname,$aix_use_runtimelinking in aix,*) ;; # traditional, no import file svr4,* | *,yes) # use import file # The Import File defines what to hardcode. hardcode_direct=no hardcode_direct_absolute=no ;; esac if test yes = "$GCC"; then case $host_os in aix4.[012]|aix4.[012].*) # We only want to do this on AIX 4.2 and lower, the check # below for broken collect2 doesn't work under 4.3+ collect2name=`$CC -print-prog-name=collect2` if test -f "$collect2name" && strings "$collect2name" | $GREP resolve_lib_name >/dev/null then # We have reworked collect2 : else # We have old collect2 hardcode_direct=unsupported # It fails to find uninstalled libraries when the uninstalled # path is not listed in the libpath. Setting hardcode_minus_L # to unsupported forces relinking hardcode_minus_L=yes hardcode_libdir_flag_spec='-L$libdir' hardcode_libdir_separator= fi ;; esac shared_flag='-shared' if test yes = "$aix_use_runtimelinking"; then shared_flag="$shared_flag "'$wl-G' fi # Need to ensure runtime linking is disabled for the traditional # shared library, or the linker may eventually find shared libraries # /with/ Import File - we do not want to mix them. shared_flag_aix='-shared' shared_flag_svr4='-shared $wl-G' else # not using gcc if test ia64 = "$host_cpu"; then # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release # chokes on -Wl,-G. The following line is correct: shared_flag='-G' else if test yes = "$aix_use_runtimelinking"; then shared_flag='$wl-G' else shared_flag='$wl-bM:SRE' fi shared_flag_aix='$wl-bM:SRE' shared_flag_svr4='$wl-G' fi fi export_dynamic_flag_spec='$wl-bexpall' # It seems that -bexpall does not export symbols beginning with # underscore (_), so it is better to generate a list of symbols to export. always_export_symbols=yes if test aix,yes = "$with_aix_soname,$aix_use_runtimelinking"; then # Warning - without using the other runtime loading flags (-brtl), # -berok will link without error, but may produce a broken library. allow_undefined_flag='-berok' # Determine the default libpath from the value encoded in an # empty executable. if test set = "${lt_cv_aix_libpath+set}"; then aix_libpath=$lt_cv_aix_libpath else if ${lt_cv_aix_libpath_+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : lt_aix_libpath_sed=' /Import File Strings/,/^$/ { /^0/ { s/^0 *\([^ ]*\) *$/\1/ p } }' lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` # Check for a 64-bit object if we didn't find anything. if test -z "$lt_cv_aix_libpath_"; then lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` fi fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$lt_cv_aix_libpath_"; then lt_cv_aix_libpath_=/usr/lib:/lib fi fi aix_libpath=$lt_cv_aix_libpath_ fi hardcode_libdir_flag_spec='$wl-blibpath:$libdir:'"$aix_libpath" archive_expsym_cmds='$CC -o $output_objdir/$soname $libobjs $deplibs $wl'$no_entry_flag' $compiler_flags `if test -n "$allow_undefined_flag"; then func_echo_all "$wl$allow_undefined_flag"; else :; fi` $wl'$exp_sym_flag:\$export_symbols' '$shared_flag else if test ia64 = "$host_cpu"; then hardcode_libdir_flag_spec='$wl-R $libdir:/usr/lib:/lib' allow_undefined_flag="-z nodefs" archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\$wl$no_entry_flag"' $compiler_flags $wl$allow_undefined_flag '"\$wl$exp_sym_flag:\$export_symbols" else # Determine the default libpath from the value encoded in an # empty executable. if test set = "${lt_cv_aix_libpath+set}"; then aix_libpath=$lt_cv_aix_libpath else if ${lt_cv_aix_libpath_+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : lt_aix_libpath_sed=' /Import File Strings/,/^$/ { /^0/ { s/^0 *\([^ ]*\) *$/\1/ p } }' lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` # Check for a 64-bit object if we didn't find anything. if test -z "$lt_cv_aix_libpath_"; then lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` fi fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$lt_cv_aix_libpath_"; then lt_cv_aix_libpath_=/usr/lib:/lib fi fi aix_libpath=$lt_cv_aix_libpath_ fi hardcode_libdir_flag_spec='$wl-blibpath:$libdir:'"$aix_libpath" # Warning - without using the other run time loading flags, # -berok will link without error, but may produce a broken library. no_undefined_flag=' $wl-bernotok' allow_undefined_flag=' $wl-berok' if test yes = "$with_gnu_ld"; then # We only use this code for GNU lds that support --whole-archive. whole_archive_flag_spec='$wl--whole-archive$convenience $wl--no-whole-archive' else # Exported symbols can be pulled into shared objects from archives whole_archive_flag_spec='$convenience' fi archive_cmds_need_lc=yes archive_expsym_cmds='$RM -r $output_objdir/$realname.d~$MKDIR $output_objdir/$realname.d' # -brtl affects multiple linker settings, -berok does not and is overridden later compiler_flags_filtered='`func_echo_all "$compiler_flags " | $SED -e "s%-brtl\\([, ]\\)%-berok\\1%g"`' if test svr4 != "$with_aix_soname"; then # This is similar to how AIX traditionally builds its shared libraries. archive_expsym_cmds="$archive_expsym_cmds"'~$CC '$shared_flag_aix' -o $output_objdir/$realname.d/$soname $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$realname.d/$soname' fi if test aix != "$with_aix_soname"; then archive_expsym_cmds="$archive_expsym_cmds"'~$CC '$shared_flag_svr4' -o $output_objdir/$realname.d/$shared_archive_member_spec.o $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$STRIP -e $output_objdir/$realname.d/$shared_archive_member_spec.o~( func_echo_all "#! $soname($shared_archive_member_spec.o)"; if test shr_64 = "$shared_archive_member_spec"; then func_echo_all "# 64"; else func_echo_all "# 32"; fi; cat $export_symbols ) > $output_objdir/$realname.d/$shared_archive_member_spec.imp~$AR $AR_FLAGS $output_objdir/$soname $output_objdir/$realname.d/$shared_archive_member_spec.o $output_objdir/$realname.d/$shared_archive_member_spec.imp' else # used by -dlpreopen to get the symbols archive_expsym_cmds="$archive_expsym_cmds"'~$MV $output_objdir/$realname.d/$soname $output_objdir' fi archive_expsym_cmds="$archive_expsym_cmds"'~$RM -r $output_objdir/$realname.d' fi fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' archive_expsym_cmds='' ;; m68k) archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes ;; esac ;; bsdi[45]*) export_dynamic_flag_spec=-rdynamic ;; cygwin* | mingw* | pw32* | cegcc*) # When not using gcc, we currently assume that we are using # Microsoft Visual C++. # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. case $cc_basename in cl*) # Native MSVC hardcode_libdir_flag_spec=' ' allow_undefined_flag=unsupported always_export_symbols=yes file_list_spec='@' # Tell ltmain to make .lib files, not .a files. libext=lib # Tell ltmain to make .dll files, not .so files. shrext_cmds=.dll # FIXME: Setting linknames here is a bad hack. archive_cmds='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~linknames=' archive_expsym_cmds='if test DEF = "`$SED -n -e '\''s/^[ ]*//'\'' -e '\''/^\(;.*\)*$/d'\'' -e '\''s/^\(EXPORTS\|LIBRARY\)\([ ].*\)*$/DEF/p'\'' -e q $export_symbols`" ; then cp "$export_symbols" "$output_objdir/$soname.def"; echo "$tool_output_objdir$soname.def" > "$output_objdir/$soname.exp"; else $SED -e '\''s/^/-link -EXPORT:/'\'' < $export_symbols > $output_objdir/$soname.exp; fi~ $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ linknames=' # The linker will not automatically build a static lib if we build a DLL. # _LT_TAGVAR(old_archive_from_new_cmds, )='true' enable_shared_with_static_runtimes=yes exclude_expsyms='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*' export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1,DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols' # Don't use ranlib old_postinstall_cmds='chmod 644 $oldlib' postlink_cmds='lt_outputfile="@OUTPUT@"~ lt_tool_outputfile="@TOOL_OUTPUT@"~ case $lt_outputfile in *.exe|*.EXE) ;; *) lt_outputfile=$lt_outputfile.exe lt_tool_outputfile=$lt_tool_outputfile.exe ;; esac~ if test : != "$MANIFEST_TOOL" && test -f "$lt_outputfile.manifest"; then $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; $RM "$lt_outputfile.manifest"; fi' ;; *) # Assume MSVC wrapper hardcode_libdir_flag_spec=' ' allow_undefined_flag=unsupported # Tell ltmain to make .lib files, not .a files. libext=lib # Tell ltmain to make .dll files, not .so files. shrext_cmds=.dll # FIXME: Setting linknames here is a bad hack. archive_cmds='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames=' # The linker will automatically build a .lib file if we build a DLL. old_archive_from_new_cmds='true' # FIXME: Should let the user specify the lib program. old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs' enable_shared_with_static_runtimes=yes ;; esac ;; darwin* | rhapsody*) archive_cmds_need_lc=no hardcode_direct=no hardcode_automatic=yes hardcode_shlibpath_var=unsupported if test yes = "$lt_cv_ld_force_load"; then whole_archive_flag_spec='`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience $wl-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`' else whole_archive_flag_spec='' fi link_all_deplibs=yes allow_undefined_flag=$_lt_dar_allow_undefined case $cc_basename in ifort*|nagfor*) _lt_dar_can_shared=yes ;; *) _lt_dar_can_shared=$GCC ;; esac if test yes = "$_lt_dar_can_shared"; then output_verbose_link_cmd=func_echo_all archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dsymutil" module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dsymutil" archive_expsym_cmds="sed 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dar_export_syms$_lt_dsymutil" module_expsym_cmds="sed -e 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dar_export_syms$_lt_dsymutil" else ld_shlibs=no fi ;; dgux*) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec='-L$libdir' hardcode_shlibpath_var=no ;; # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor # support. Future versions do this automatically, but an explicit c++rt0.o # does not break anything, and helps significantly (at the cost of a little # extra space). freebsd2.2*) archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes hardcode_shlibpath_var=no ;; # Unfortunately, older versions of FreeBSD 2 do not have this feature. freebsd2.*) archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' hardcode_direct=yes hardcode_minus_L=yes hardcode_shlibpath_var=no ;; # FreeBSD 3 and greater uses gcc -shared to do shared libraries. freebsd* | dragonfly*) archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes hardcode_shlibpath_var=no ;; hpux9*) if test yes = "$GCC"; then archive_cmds='$RM $output_objdir/$soname~$CC -shared $pic_flag $wl+b $wl$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib' else archive_cmds='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib' fi hardcode_libdir_flag_spec='$wl+b $wl$libdir' hardcode_libdir_separator=: hardcode_direct=yes # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L=yes export_dynamic_flag_spec='$wl-E' ;; hpux10*) if test yes,no = "$GCC,$with_gnu_ld"; then archive_cmds='$CC -shared $pic_flag $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' fi if test no = "$with_gnu_ld"; then hardcode_libdir_flag_spec='$wl+b $wl$libdir' hardcode_libdir_separator=: hardcode_direct=yes hardcode_direct_absolute=yes export_dynamic_flag_spec='$wl-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L=yes fi ;; hpux11*) if test yes,no = "$GCC,$with_gnu_ld"; then case $host_cpu in hppa*64*) archive_cmds='$CC -shared $wl+h $wl$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) archive_cmds='$CC -shared $pic_flag $wl+h $wl$soname $wl+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) archive_cmds='$CC -shared $pic_flag $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ;; esac else case $host_cpu in hppa*64*) archive_cmds='$CC -b $wl+h $wl$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) archive_cmds='$CC -b $wl+h $wl$soname $wl+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) # Older versions of the 11.00 compiler do not understand -b yet # (HP92453-01 A.11.01.20 doesn't, HP92453-01 B.11.X.35175-35176.GP does) { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC understands -b" >&5 $as_echo_n "checking if $CC understands -b... " >&6; } if ${lt_cv_prog_compiler__b+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler__b=no save_LDFLAGS=$LDFLAGS LDFLAGS="$LDFLAGS -b" echo "$lt_simple_link_test_code" > conftest.$ac_ext if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then # The linker can only warn and ignore the option if not recognized # So say no if there are warnings if test -s conftest.err; then # Append any errors to the config.log. cat conftest.err 1>&5 $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if diff conftest.exp conftest.er2 >/dev/null; then lt_cv_prog_compiler__b=yes fi else lt_cv_prog_compiler__b=yes fi fi $RM -r conftest* LDFLAGS=$save_LDFLAGS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler__b" >&5 $as_echo "$lt_cv_prog_compiler__b" >&6; } if test yes = "$lt_cv_prog_compiler__b"; then archive_cmds='$CC -b $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' fi ;; esac fi if test no = "$with_gnu_ld"; then hardcode_libdir_flag_spec='$wl+b $wl$libdir' hardcode_libdir_separator=: case $host_cpu in hppa*64*|ia64*) hardcode_direct=no hardcode_shlibpath_var=no ;; *) hardcode_direct=yes hardcode_direct_absolute=yes export_dynamic_flag_spec='$wl-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L=yes ;; esac fi ;; irix5* | irix6* | nonstopux*) if test yes = "$GCC"; then archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' # Try to use the -exported_symbol ld option, if it does not # work, assume that -exports_file does not work either and # implicitly export all symbols. # This should be the same for all languages, so no per-tag cache variable. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $host_os linker accepts -exported_symbol" >&5 $as_echo_n "checking whether the $host_os linker accepts -exported_symbol... " >&6; } if ${lt_cv_irix_exported_symbol+:} false; then : $as_echo_n "(cached) " >&6 else save_LDFLAGS=$LDFLAGS LDFLAGS="$LDFLAGS -shared $wl-exported_symbol ${wl}foo $wl-update_registry $wl/dev/null" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int foo (void) { return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : lt_cv_irix_exported_symbol=yes else lt_cv_irix_exported_symbol=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LDFLAGS=$save_LDFLAGS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_irix_exported_symbol" >&5 $as_echo "$lt_cv_irix_exported_symbol" >&6; } if test yes = "$lt_cv_irix_exported_symbol"; then archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations $wl-exports_file $wl$export_symbols -o $lib' fi link_all_deplibs=no else archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -exports_file $export_symbols -o $lib' fi archive_cmds_need_lc='no' hardcode_libdir_flag_spec='$wl-rpath $wl$libdir' hardcode_libdir_separator=: inherit_rpath=yes link_all_deplibs=yes ;; linux*) case $cc_basename in tcc*) # Fabrice Bellard et al's Tiny C Compiler ld_shlibs=yes archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' ;; esac ;; netbsd* | netbsdelf*-gnu) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out else archive_cmds='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF fi hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes hardcode_shlibpath_var=no ;; newsos6) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct=yes hardcode_libdir_flag_spec='$wl-rpath $wl$libdir' hardcode_libdir_separator=: hardcode_shlibpath_var=no ;; *nto* | *qnx*) ;; openbsd* | bitrig*) if test -f /usr/libexec/ld.so; then hardcode_direct=yes hardcode_shlibpath_var=no hardcode_direct_absolute=yes if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags $wl-retain-symbols-file,$export_symbols' hardcode_libdir_flag_spec='$wl-rpath,$libdir' export_dynamic_flag_spec='$wl-E' else archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' hardcode_libdir_flag_spec='$wl-rpath,$libdir' fi else ld_shlibs=no fi ;; os2*) hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes allow_undefined_flag=unsupported shrext_cmds=.dll archive_cmds='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ $ECHO EXPORTS >> $output_objdir/$libname.def~ emxexp $libobjs | $SED /"_DLL_InitTerm"/d >> $output_objdir/$libname.def~ $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ emximp -o $lib $output_objdir/$libname.def' archive_expsym_cmds='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ $ECHO EXPORTS >> $output_objdir/$libname.def~ prefix_cmds="$SED"~ if test EXPORTS = "`$SED 1q $export_symbols`"; then prefix_cmds="$prefix_cmds -e 1d"; fi~ prefix_cmds="$prefix_cmds -e \"s/^\(.*\)$/_\1/g\""~ cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~ $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ emximp -o $lib $output_objdir/$libname.def' old_archive_From_new_cmds='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def' enable_shared_with_static_runtimes=yes ;; osf3*) if test yes = "$GCC"; then allow_undefined_flag=' $wl-expect_unresolved $wl\*' archive_cmds='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' else allow_undefined_flag=' -expect_unresolved \*' archive_cmds='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' fi archive_cmds_need_lc='no' hardcode_libdir_flag_spec='$wl-rpath $wl$libdir' hardcode_libdir_separator=: ;; osf4* | osf5*) # as osf3* with the addition of -msym flag if test yes = "$GCC"; then allow_undefined_flag=' $wl-expect_unresolved $wl\*' archive_cmds='$CC -shared$allow_undefined_flag $pic_flag $libobjs $deplibs $compiler_flags $wl-msym $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' hardcode_libdir_flag_spec='$wl-rpath $wl$libdir' else allow_undefined_flag=' -expect_unresolved \*' archive_cmds='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' archive_expsym_cmds='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~ $CC -shared$allow_undefined_flag $wl-input $wl$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib~$RM $lib.exp' # Both c and cxx compiler support -rpath directly hardcode_libdir_flag_spec='-rpath $libdir' fi archive_cmds_need_lc='no' hardcode_libdir_separator=: ;; solaris*) no_undefined_flag=' -z defs' if test yes = "$GCC"; then wlarc='$wl' archive_cmds='$CC -shared $pic_flag $wl-z ${wl}text $wl-h $wl$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -shared $pic_flag $wl-z ${wl}text $wl-M $wl$lib.exp $wl-h $wl$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' else case `$CC -V 2>&1` in *"Compilers 5.0"*) wlarc='' archive_cmds='$LD -G$allow_undefined_flag -h $soname -o $lib $libobjs $deplibs $linker_flags' archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $LD -G$allow_undefined_flag -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp' ;; *) wlarc='$wl' archive_cmds='$CC -G$allow_undefined_flag -h $soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -G$allow_undefined_flag -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' ;; esac fi hardcode_libdir_flag_spec='-R$libdir' hardcode_shlibpath_var=no case $host_os in solaris2.[0-5] | solaris2.[0-5].*) ;; *) # The compiler driver will combine and reorder linker options, # but understands '-z linker_flag'. GCC discards it without '$wl', # but is careful enough not to reorder. # Supported since Solaris 2.6 (maybe 2.5.1?) if test yes = "$GCC"; then whole_archive_flag_spec='$wl-z ${wl}allextract$convenience $wl-z ${wl}defaultextract' else whole_archive_flag_spec='-z allextract$convenience -z defaultextract' fi ;; esac link_all_deplibs=yes ;; sunos4*) if test sequent = "$host_vendor"; then # Use $CC to link under sequent, because it throws in some extra .o # files that make .init and .fini sections work. archive_cmds='$CC -G $wl-h $soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' fi hardcode_libdir_flag_spec='-L$libdir' hardcode_direct=yes hardcode_minus_L=yes hardcode_shlibpath_var=no ;; sysv4) case $host_vendor in sni) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct=yes # is this really true??? ;; siemens) ## LD is ld it makes a PLAMLIB ## CC just makes a GrossModule. archive_cmds='$LD -G -o $lib $libobjs $deplibs $linker_flags' reload_cmds='$CC -r -o $output$reload_objs' hardcode_direct=no ;; motorola) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct=no #Motorola manual says yes, but my tests say they lie ;; esac runpath_var='LD_RUN_PATH' hardcode_shlibpath_var=no ;; sysv4.3*) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_shlibpath_var=no export_dynamic_flag_spec='-Bexport' ;; sysv4*MP*) if test -d /usr/nec; then archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_shlibpath_var=no runpath_var=LD_RUN_PATH hardcode_runpath_var=yes ld_shlibs=yes fi ;; sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*) no_undefined_flag='$wl-z,text' archive_cmds_need_lc=no hardcode_shlibpath_var=no runpath_var='LD_RUN_PATH' if test yes = "$GCC"; then archive_cmds='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; sysv5* | sco3.2v5* | sco5v6*) # Note: We CANNOT use -z defs as we might desire, because we do not # link with -lc, and that would cause any symbols used from libc to # always be unresolved, which means just about no library would # ever link correctly. If we're not using GNU ld we use -z text # though, which does catch some bad symbols but isn't as heavy-handed # as -z defs. no_undefined_flag='$wl-z,text' allow_undefined_flag='$wl-z,nodefs' archive_cmds_need_lc=no hardcode_shlibpath_var=no hardcode_libdir_flag_spec='$wl-R,$libdir' hardcode_libdir_separator=':' link_all_deplibs=yes export_dynamic_flag_spec='$wl-Bexport' runpath_var='LD_RUN_PATH' if test yes = "$GCC"; then archive_cmds='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; uts4*) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec='-L$libdir' hardcode_shlibpath_var=no ;; *) ld_shlibs=no ;; esac if test sni = "$host_vendor"; then case $host in sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) export_dynamic_flag_spec='$wl-Blargedynsym' ;; esac fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs" >&5 $as_echo "$ld_shlibs" >&6; } test no = "$ld_shlibs" && can_build_shared=no with_gnu_ld=$with_gnu_ld # # Do we need to explicitly link libc? # case "x$archive_cmds_need_lc" in x|xyes) # Assume -lc should be added archive_cmds_need_lc=yes if test yes,yes = "$GCC,$enable_shared"; then case $archive_cmds in *'~'*) # FIXME: we may have to deal with multi-command sequences. ;; '$CC '*) # Test whether the compiler implicitly links with -lc since on some # systems, -lgcc has to come before -lc. If gcc already passes -lc # to ld, don't add -lc before -lgcc. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -lc should be explicitly linked in" >&5 $as_echo_n "checking whether -lc should be explicitly linked in... " >&6; } if ${lt_cv_archive_cmds_need_lc+:} false; then : $as_echo_n "(cached) " >&6 else $RM conftest* echo "$lt_simple_compile_test_code" > conftest.$ac_ext if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } 2>conftest.err; then soname=conftest lib=conftest libobjs=conftest.$ac_objext deplibs= wl=$lt_prog_compiler_wl pic_flag=$lt_prog_compiler_pic compiler_flags=-v linker_flags=-v verstring= output_objdir=. libname=conftest lt_save_allow_undefined_flag=$allow_undefined_flag allow_undefined_flag= if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\""; } >&5 (eval $archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } then lt_cv_archive_cmds_need_lc=no else lt_cv_archive_cmds_need_lc=yes fi allow_undefined_flag=$lt_save_allow_undefined_flag else cat conftest.err 1>&5 fi $RM conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_archive_cmds_need_lc" >&5 $as_echo "$lt_cv_archive_cmds_need_lc" >&6; } archive_cmds_need_lc=$lt_cv_archive_cmds_need_lc ;; esac fi ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking dynamic linker characteristics" >&5 $as_echo_n "checking dynamic linker characteristics... " >&6; } if test yes = "$GCC"; then case $host_os in darwin*) lt_awk_arg='/^libraries:/,/LR/' ;; *) lt_awk_arg='/^libraries:/' ;; esac case $host_os in mingw* | cegcc*) lt_sed_strip_eq='s|=\([A-Za-z]:\)|\1|g' ;; *) lt_sed_strip_eq='s|=/|/|g' ;; esac lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e $lt_sed_strip_eq` case $lt_search_path_spec in *\;*) # if the path contains ";" then we assume it to be the separator # otherwise default to the standard path separator (i.e. ":") - it is # assumed that no part of a normal pathname contains ";" but that should # okay in the real world where ";" in dirpaths is itself problematic. lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED 's/;/ /g'` ;; *) lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED "s/$PATH_SEPARATOR/ /g"` ;; esac # Ok, now we have the path, separated by spaces, we can step through it # and add multilib dir if necessary... lt_tmp_lt_search_path_spec= lt_multi_os_dir=/`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null` # ...but if some path component already ends with the multilib dir we assume # that all is fine and trust -print-search-dirs as is (GCC 4.2? or newer). case "$lt_multi_os_dir; $lt_search_path_spec " in "/; "* | "/.; "* | "/./; "* | *"$lt_multi_os_dir "* | *"$lt_multi_os_dir/ "*) lt_multi_os_dir= ;; esac for lt_sys_path in $lt_search_path_spec; do if test -d "$lt_sys_path$lt_multi_os_dir"; then lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path$lt_multi_os_dir" elif test -n "$lt_multi_os_dir"; then test -d "$lt_sys_path" && \ lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path" fi done lt_search_path_spec=`$ECHO "$lt_tmp_lt_search_path_spec" | awk ' BEGIN {RS = " "; FS = "/|\n";} { lt_foo = ""; lt_count = 0; for (lt_i = NF; lt_i > 0; lt_i--) { if ($lt_i != "" && $lt_i != ".") { if ($lt_i == "..") { lt_count++; } else { if (lt_count == 0) { lt_foo = "/" $lt_i lt_foo; } else { lt_count--; } } } } if (lt_foo != "") { lt_freq[lt_foo]++; } if (lt_freq[lt_foo] == 1) { print lt_foo; } }'` # AWK program above erroneously prepends '/' to C:/dos/paths # for these hosts. case $host_os in mingw* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\ $SED 's|/\([A-Za-z]:\)|\1|g'` ;; esac sys_lib_search_path_spec=`$ECHO "$lt_search_path_spec" | $lt_NL2SP` else sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" fi library_names_spec= libname_spec='lib$name' soname_spec= shrext_cmds=.so postinstall_cmds= postuninstall_cmds= finish_cmds= finish_eval= shlibpath_var= shlibpath_overrides_runpath=unknown version_type=none dynamic_linker="$host_os ld.so" sys_lib_dlsearch_path_spec="/lib /usr/lib" need_lib_prefix=unknown hardcode_into_libs=no # when you set need_version to no, make sure it does not cause -set_version # flags to be left without arguments need_version=unknown case $host_os in aix3*) version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='$libname$release$shared_ext$versuffix $libname.a' shlibpath_var=LIBPATH # AIX 3 has no versioning support, so we append a major version to the name. soname_spec='$libname$release$shared_ext$major' ;; aix[4-9]*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no hardcode_into_libs=yes if test ia64 = "$host_cpu"; then # AIX 5 supports IA64 library_names_spec='$libname$release$shared_ext$major $libname$release$shared_ext$versuffix $libname$shared_ext' shlibpath_var=LD_LIBRARY_PATH else # With GCC up to 2.95.x, collect2 would create an import file # for dependence libraries. The import file would start with # the line '#! .'. This would cause the generated library to # depend on '.', always an invalid library. This was fixed in # development snapshots of GCC prior to 3.0. case $host_os in aix4 | aix4.[01] | aix4.[01].*) if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' echo ' yes ' echo '#endif'; } | $CC -E - | $GREP yes > /dev/null; then : else can_build_shared=no fi ;; esac # Using Import Files as archive members, it is possible to support # filename-based versioning of shared library archives on AIX. While # this would work for both with and without runtime linking, it will # prevent static linking of such archives. So we do filename-based # shared library versioning with .so extension only, which is used # when both runtime linking and shared linking is enabled. # Unfortunately, runtime linking may impact performance, so we do # not want this to be the default eventually. Also, we use the # versioned .so libs for executables only if there is the -brtl # linker flag in LDFLAGS as well, or --with-aix-soname=svr4 only. # To allow for filename-based versioning support, we need to create # libNAME.so.V as an archive file, containing: # *) an Import File, referring to the versioned filename of the # archive as well as the shared archive member, telling the # bitwidth (32 or 64) of that shared object, and providing the # list of exported symbols of that shared object, eventually # decorated with the 'weak' keyword # *) the shared object with the F_LOADONLY flag set, to really avoid # it being seen by the linker. # At run time we better use the real file rather than another symlink, # but for link time we create the symlink libNAME.so -> libNAME.so.V case $with_aix_soname,$aix_use_runtimelinking in # AIX (on Power*) has no versioning support, so currently we cannot hardcode correct # soname into executable. Probably we can add versioning support to # collect2, so additional links can be useful in future. aix,yes) # traditional libtool dynamic_linker='AIX unversionable lib.so' # If using run time linking (on AIX 4.2 or later) use lib.so # instead of lib.a to let people know that these are not # typical AIX shared libraries. library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' ;; aix,no) # traditional AIX only dynamic_linker='AIX lib.a(lib.so.V)' # We preserve .a as extension for shared libraries through AIX4.2 # and later when we are not doing run time linking. library_names_spec='$libname$release.a $libname.a' soname_spec='$libname$release$shared_ext$major' ;; svr4,*) # full svr4 only dynamic_linker="AIX lib.so.V($shared_archive_member_spec.o)" library_names_spec='$libname$release$shared_ext$major $libname$shared_ext' # We do not specify a path in Import Files, so LIBPATH fires. shlibpath_overrides_runpath=yes ;; *,yes) # both, prefer svr4 dynamic_linker="AIX lib.so.V($shared_archive_member_spec.o), lib.a(lib.so.V)" library_names_spec='$libname$release$shared_ext$major $libname$shared_ext' # unpreferred sharedlib libNAME.a needs extra handling postinstall_cmds='test -n "$linkname" || linkname="$realname"~func_stripname "" ".so" "$linkname"~$install_shared_prog "$dir/$func_stripname_result.$libext" "$destdir/$func_stripname_result.$libext"~test -z "$tstripme" || test -z "$striplib" || $striplib "$destdir/$func_stripname_result.$libext"' postuninstall_cmds='for n in $library_names $old_library; do :; done~func_stripname "" ".so" "$n"~test "$func_stripname_result" = "$n" || func_append rmfiles " $odir/$func_stripname_result.$libext"' # We do not specify a path in Import Files, so LIBPATH fires. shlibpath_overrides_runpath=yes ;; *,no) # both, prefer aix dynamic_linker="AIX lib.a(lib.so.V), lib.so.V($shared_archive_member_spec.o)" library_names_spec='$libname$release.a $libname.a' soname_spec='$libname$release$shared_ext$major' # unpreferred sharedlib libNAME.so.V and symlink libNAME.so need extra handling postinstall_cmds='test -z "$dlname" || $install_shared_prog $dir/$dlname $destdir/$dlname~test -z "$tstripme" || test -z "$striplib" || $striplib $destdir/$dlname~test -n "$linkname" || linkname=$realname~func_stripname "" ".a" "$linkname"~(cd "$destdir" && $LN_S -f $dlname $func_stripname_result.so)' postuninstall_cmds='test -z "$dlname" || func_append rmfiles " $odir/$dlname"~for n in $old_library $library_names; do :; done~func_stripname "" ".a" "$n"~func_append rmfiles " $odir/$func_stripname_result.so"' ;; esac shlibpath_var=LIBPATH fi ;; amigaos*) case $host_cpu in powerpc) # Since July 2007 AmigaOS4 officially supports .so libraries. # When compiling the executable, add -use-dynld -Lsobjs: to the compileline. library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' ;; m68k) library_names_spec='$libname.ixlibrary $libname.a' # Create ${libname}_ixlibrary.a entries in /sys/libs. finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' ;; esac ;; beos*) library_names_spec='$libname$shared_ext' dynamic_linker="$host_os ld.so" shlibpath_var=LIBRARY_PATH ;; bsdi[45]*) version_type=linux # correct to gnu/linux during the next big refactor need_version=no library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" # the default ld.so.conf also contains /usr/contrib/lib and # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow # libtool to hard-code these into programs ;; cygwin* | mingw* | pw32* | cegcc*) version_type=windows shrext_cmds=.dll need_version=no need_lib_prefix=no case $GCC,$cc_basename in yes,*) # gcc library_names_spec='$libname.dll.a' # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \$file`~ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; echo \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog $dir/$dlname \$dldir/$dlname~ chmod a+x \$dldir/$dlname~ if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; fi' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ dlpath=$dir/\$dldll~ $RM \$dlpath' shlibpath_overrides_runpath=yes case $host_os in cygwin*) # Cygwin DLLs use 'cyg' prefix rather than 'lib' soname_spec='`echo $libname | sed -e 's/^lib/cyg/'``echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext' sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api" ;; mingw* | cegcc*) # MinGW DLLs use traditional 'lib' prefix soname_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext' ;; pw32*) # pw32 DLLs use 'pw' prefix rather than 'lib' library_names_spec='`echo $libname | sed -e 's/^lib/pw/'``echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext' ;; esac dynamic_linker='Win32 ld.exe' ;; *,cl*) # Native MSVC libname_spec='$name' soname_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext' library_names_spec='$libname.dll.lib' case $build_os in mingw*) sys_lib_search_path_spec= lt_save_ifs=$IFS IFS=';' for lt_path in $LIB do IFS=$lt_save_ifs # Let DOS variable expansion print the short 8.3 style file name. lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"` sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path" done IFS=$lt_save_ifs # Convert to MSYS style. sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([a-zA-Z]\\):| /\\1|g' -e 's|^ ||'` ;; cygwin*) # Convert to unix form, then to dos form, then back to unix form # but this time dos style (no spaces!) so that the unix form looks # like /cygdrive/c/PROGRA~1:/cygdr... sys_lib_search_path_spec=`cygpath --path --unix "$LIB"` sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null` sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` ;; *) sys_lib_search_path_spec=$LIB if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then # It is most probably a Windows format PATH. sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` else sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` fi # FIXME: find the short name or the path components, as spaces are # common. (e.g. "Program Files" -> "PROGRA~1") ;; esac # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \$file`~ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; echo \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog $dir/$dlname \$dldir/$dlname' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ dlpath=$dir/\$dldll~ $RM \$dlpath' shlibpath_overrides_runpath=yes dynamic_linker='Win32 link.exe' ;; *) # Assume MSVC wrapper library_names_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext $libname.lib' dynamic_linker='Win32 ld.exe' ;; esac # FIXME: first we should search . and the directory the executable is in shlibpath_var=PATH ;; darwin* | rhapsody*) dynamic_linker="$host_os dyld" version_type=darwin need_lib_prefix=no need_version=no library_names_spec='$libname$release$major$shared_ext $libname$shared_ext' soname_spec='$libname$release$major$shared_ext' shlibpath_overrides_runpath=yes shlibpath_var=DYLD_LIBRARY_PATH shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib" sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' ;; dgux*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' shlibpath_var=LD_LIBRARY_PATH ;; freebsd* | dragonfly*) # DragonFly does not have aout. When/if they implement a new # versioning mechanism, adjust this. if test -x /usr/bin/objformat; then objformat=`/usr/bin/objformat` else case $host_os in freebsd[23].*) objformat=aout ;; *) objformat=elf ;; esac fi version_type=freebsd-$objformat case $version_type in freebsd-elf*) library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' need_version=no need_lib_prefix=no ;; freebsd-*) library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix' need_version=yes ;; esac shlibpath_var=LD_LIBRARY_PATH case $host_os in freebsd2.*) shlibpath_overrides_runpath=yes ;; freebsd3.[01]* | freebsdelf3.[01]*) shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; freebsd3.[2-9]* | freebsdelf3.[2-9]* | \ freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1) shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; *) # from 4.6 on, and DragonFly shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; esac ;; haiku*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no dynamic_linker="$host_os runtime_loader" library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' shlibpath_var=LIBRARY_PATH shlibpath_overrides_runpath=no sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib' hardcode_into_libs=yes ;; hpux9* | hpux10* | hpux11*) # Give a soname corresponding to the major version so that dld.sl refuses to # link against other versions. version_type=sunos need_lib_prefix=no need_version=no case $host_cpu in ia64*) shrext_cmds='.so' hardcode_into_libs=yes dynamic_linker="$host_os dld.so" shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' if test 32 = "$HPUX_IA64_MODE"; then sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" sys_lib_dlsearch_path_spec=/usr/lib/hpux32 else sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" sys_lib_dlsearch_path_spec=/usr/lib/hpux64 fi ;; hppa*64*) shrext_cmds='.sl' hardcode_into_libs=yes dynamic_linker="$host_os dld.sl" shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; *) shrext_cmds='.sl' dynamic_linker="$host_os dld.sl" shlibpath_var=SHLIB_PATH shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' ;; esac # HP-UX runs *really* slowly unless shared libraries are mode 555, ... postinstall_cmds='chmod 555 $lib' # or fails outright, so override atomically: install_override_mode=555 ;; interix[3-9]*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; irix5* | irix6* | nonstopux*) case $host_os in nonstopux*) version_type=nonstopux ;; *) if test yes = "$lt_cv_prog_gnu_ld"; then version_type=linux # correct to gnu/linux during the next big refactor else version_type=irix fi ;; esac need_lib_prefix=no need_version=no soname_spec='$libname$release$shared_ext$major' library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$release$shared_ext $libname$shared_ext' case $host_os in irix5* | nonstopux*) libsuff= shlibsuff= ;; *) case $LD in # libtool.m4 will add one of these switches to LD *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") libsuff= shlibsuff= libmagic=32-bit;; *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") libsuff=32 shlibsuff=N32 libmagic=N32;; *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") libsuff=64 shlibsuff=64 libmagic=64-bit;; *) libsuff= shlibsuff= libmagic=never-match;; esac ;; esac shlibpath_var=LD_LIBRARY${shlibsuff}_PATH shlibpath_overrides_runpath=no sys_lib_search_path_spec="/usr/lib$libsuff /lib$libsuff /usr/local/lib$libsuff" sys_lib_dlsearch_path_spec="/usr/lib$libsuff /lib$libsuff" hardcode_into_libs=yes ;; # No shared lib support for Linux oldld, aout, or coff. linux*oldld* | linux*aout* | linux*coff*) dynamic_linker=no ;; linux*android*) version_type=none # Android doesn't support versioned libraries. need_lib_prefix=no need_version=no library_names_spec='$libname$release$shared_ext' soname_spec='$libname$release$shared_ext' finish_cmds= shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes # This implies no fast_install, which is unacceptable. # Some rework will be needed to allow for fast_install # before this can be enabled. hardcode_into_libs=yes dynamic_linker='Android linker' # Don't embed -rpath directories since the linker doesn't support them. hardcode_libdir_flag_spec='-L$libdir' ;; # This must be glibc/ELF. linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no # Some binutils ld are patched to set DT_RUNPATH if ${lt_cv_shlibpath_overrides_runpath+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_shlibpath_overrides_runpath=no save_LDFLAGS=$LDFLAGS save_libdir=$libdir eval "libdir=/foo; wl=\"$lt_prog_compiler_wl\"; \ LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec\"" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : if ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null; then : lt_cv_shlibpath_overrides_runpath=yes fi fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LDFLAGS=$save_LDFLAGS libdir=$save_libdir fi shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath # This implies no fast_install, which is unacceptable. # Some rework will be needed to allow for fast_install # before this can be enabled. hardcode_into_libs=yes # Ideally, we could use ldconfig to report *all* directores which are # searched for libraries, however this is still not possible. Aside from not # being certain /sbin/ldconfig is available, command # 'ldconfig -N -X -v | grep ^/' on 64bit Fedora does not report /usr/lib64, # even though it is searched at run-time. Try to do the best guess by # appending ld.so.conf contents (and includes) to the search path. if test -f /etc/ld.so.conf; then lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '` sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" fi # We used to test for /lib/ld.so.1 and disable shared libraries on # powerpc, because MkLinux only supported shared libraries with the # GNU dynamic linker. Since this was broken with cross compilers, # most powerpc-linux boxes support dynamic linking these days and # people can always --disable-shared, the test was removed, and we # assume the GNU/Linux dynamic linker is in use. dynamic_linker='GNU/Linux ld.so' ;; netbsdelf*-gnu) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='NetBSD ld.elf_so' ;; netbsd*) version_type=sunos need_lib_prefix=no need_version=no if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' dynamic_linker='NetBSD (a.out) ld.so' else library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' dynamic_linker='NetBSD ld.elf_so' fi shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; newsos6) version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes ;; *nto* | *qnx*) version_type=qnx need_lib_prefix=no need_version=no library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='ldqnx.so' ;; openbsd* | bitrig*) version_type=sunos sys_lib_dlsearch_path_spec=/usr/lib need_lib_prefix=no if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then need_version=no else need_version=yes fi library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes ;; os2*) libname_spec='$name' version_type=windows shrext_cmds=.dll need_version=no need_lib_prefix=no # OS/2 can only load a DLL with a base name of 8 characters or less. soname_spec='`test -n "$os2dllname" && libname="$os2dllname"; v=$($ECHO $release$versuffix | tr -d .-); n=$($ECHO $libname | cut -b -$((8 - ${#v})) | tr . _); $ECHO $n$v`$shared_ext' library_names_spec='${libname}_dll.$libext' dynamic_linker='OS/2 ld.exe' shlibpath_var=BEGINLIBPATH sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec postinstall_cmds='base_file=`basename \$file`~ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; $ECHO \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog $dir/$dlname \$dldir/$dlname~ chmod a+x \$dldir/$dlname~ if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; fi' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; $ECHO \$dlname'\''`~ dlpath=$dir/\$dldll~ $RM \$dlpath' ;; osf3* | osf4* | osf5*) version_type=osf need_lib_prefix=no need_version=no soname_spec='$libname$release$shared_ext$major' library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; rdos*) dynamic_linker=no ;; solaris*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes # ldd complains unless libraries are executable postinstall_cmds='chmod +x $lib' ;; sunos4*) version_type=sunos library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix' finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes if test yes = "$with_gnu_ld"; then need_lib_prefix=no fi need_version=yes ;; sysv4 | sysv4.3*) version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' shlibpath_var=LD_LIBRARY_PATH case $host_vendor in sni) shlibpath_overrides_runpath=no need_lib_prefix=no runpath_var=LD_RUN_PATH ;; siemens) need_lib_prefix=no ;; motorola) need_lib_prefix=no need_version=no shlibpath_overrides_runpath=no sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' ;; esac ;; sysv4*MP*) if test -d /usr/nec; then version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='$libname$shared_ext.$versuffix $libname$shared_ext.$major $libname$shared_ext' soname_spec='$libname$shared_ext.$major' shlibpath_var=LD_LIBRARY_PATH fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) version_type=sco need_lib_prefix=no need_version=no library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes if test yes = "$with_gnu_ld"; then sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' else sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' case $host_os in sco3.2v5*) sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" ;; esac fi sys_lib_dlsearch_path_spec='/usr/lib' ;; tpf*) # TPF is a cross-target only. Preferred cross-host = GNU/Linux. version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; uts4*) version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' shlibpath_var=LD_LIBRARY_PATH ;; *) dynamic_linker=no ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: result: $dynamic_linker" >&5 $as_echo "$dynamic_linker" >&6; } test no = "$dynamic_linker" && can_build_shared=no variables_saved_for_relink="PATH $shlibpath_var $runpath_var" if test yes = "$GCC"; then variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" fi if test set = "${lt_cv_sys_lib_search_path_spec+set}"; then sys_lib_search_path_spec=$lt_cv_sys_lib_search_path_spec fi if test set = "${lt_cv_sys_lib_dlsearch_path_spec+set}"; then sys_lib_dlsearch_path_spec=$lt_cv_sys_lib_dlsearch_path_spec fi # remember unaugmented sys_lib_dlsearch_path content for libtool script decls... configure_time_dlsearch_path=$sys_lib_dlsearch_path_spec # ... but it needs LT_SYS_LIBRARY_PATH munging for other configure-time code func_munge_path_list sys_lib_dlsearch_path_spec "$LT_SYS_LIBRARY_PATH" # to be used as default LT_SYS_LIBRARY_PATH value in generated libtool configure_time_lt_sys_library_path=$LT_SYS_LIBRARY_PATH { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to hardcode library paths into programs" >&5 $as_echo_n "checking how to hardcode library paths into programs... " >&6; } hardcode_action= if test -n "$hardcode_libdir_flag_spec" || test -n "$runpath_var" || test yes = "$hardcode_automatic"; then # We can hardcode non-existent directories. if test no != "$hardcode_direct" && # If the only mechanism to avoid hardcoding is shlibpath_var, we # have to relink, otherwise we might link with an installed library # when we should be linking with a yet-to-be-installed one ## test no != "$_LT_TAGVAR(hardcode_shlibpath_var, )" && test no != "$hardcode_minus_L"; then # Linking always hardcodes the temporary library directory. hardcode_action=relink else # We can link without hardcoding, and we can hardcode nonexisting dirs. hardcode_action=immediate fi else # We cannot hardcode anything, or else we can only hardcode existing # directories. hardcode_action=unsupported fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hardcode_action" >&5 $as_echo "$hardcode_action" >&6; } if test relink = "$hardcode_action" || test yes = "$inherit_rpath"; then # Fast installation is not supported enable_fast_install=no elif test yes = "$shlibpath_overrides_runpath" || test no = "$enable_shared"; then # Fast installation is not necessary enable_fast_install=needless fi if test yes != "$enable_dlopen"; then enable_dlopen=unknown enable_dlopen_self=unknown enable_dlopen_self_static=unknown else lt_cv_dlopen=no lt_cv_dlopen_libs= case $host_os in beos*) lt_cv_dlopen=load_add_on lt_cv_dlopen_libs= lt_cv_dlopen_self=yes ;; mingw* | pw32* | cegcc*) lt_cv_dlopen=LoadLibrary lt_cv_dlopen_libs= ;; cygwin*) lt_cv_dlopen=dlopen lt_cv_dlopen_libs= ;; darwin*) # if libdl is installed we need to link against it { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 $as_echo_n "checking for dlopen in -ldl... " >&6; } if ${ac_cv_lib_dl_dlopen+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldl $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char dlopen (); int main () { return dlopen (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_dl_dlopen=yes else ac_cv_lib_dl_dlopen=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5 $as_echo "$ac_cv_lib_dl_dlopen" >&6; } if test "x$ac_cv_lib_dl_dlopen" = xyes; then : lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-ldl else lt_cv_dlopen=dyld lt_cv_dlopen_libs= lt_cv_dlopen_self=yes fi ;; tpf*) # Don't try to run any link tests for TPF. We know it's impossible # because TPF is a cross-compiler, and we know how we open DSOs. lt_cv_dlopen=dlopen lt_cv_dlopen_libs= lt_cv_dlopen_self=no ;; *) ac_fn_c_check_func "$LINENO" "shl_load" "ac_cv_func_shl_load" if test "x$ac_cv_func_shl_load" = xyes; then : lt_cv_dlopen=shl_load else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shl_load in -ldld" >&5 $as_echo_n "checking for shl_load in -ldld... " >&6; } if ${ac_cv_lib_dld_shl_load+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldld $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char shl_load (); int main () { return shl_load (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_dld_shl_load=yes else ac_cv_lib_dld_shl_load=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_shl_load" >&5 $as_echo "$ac_cv_lib_dld_shl_load" >&6; } if test "x$ac_cv_lib_dld_shl_load" = xyes; then : lt_cv_dlopen=shl_load lt_cv_dlopen_libs=-ldld else ac_fn_c_check_func "$LINENO" "dlopen" "ac_cv_func_dlopen" if test "x$ac_cv_func_dlopen" = xyes; then : lt_cv_dlopen=dlopen else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 $as_echo_n "checking for dlopen in -ldl... " >&6; } if ${ac_cv_lib_dl_dlopen+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldl $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char dlopen (); int main () { return dlopen (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_dl_dlopen=yes else ac_cv_lib_dl_dlopen=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5 $as_echo "$ac_cv_lib_dl_dlopen" >&6; } if test "x$ac_cv_lib_dl_dlopen" = xyes; then : lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-ldl else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -lsvld" >&5 $as_echo_n "checking for dlopen in -lsvld... " >&6; } if ${ac_cv_lib_svld_dlopen+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lsvld $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char dlopen (); int main () { return dlopen (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_svld_dlopen=yes else ac_cv_lib_svld_dlopen=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_svld_dlopen" >&5 $as_echo "$ac_cv_lib_svld_dlopen" >&6; } if test "x$ac_cv_lib_svld_dlopen" = xyes; then : lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-lsvld else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dld_link in -ldld" >&5 $as_echo_n "checking for dld_link in -ldld... " >&6; } if ${ac_cv_lib_dld_dld_link+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldld $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char dld_link (); int main () { return dld_link (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_dld_dld_link=yes else ac_cv_lib_dld_dld_link=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_dld_link" >&5 $as_echo "$ac_cv_lib_dld_dld_link" >&6; } if test "x$ac_cv_lib_dld_dld_link" = xyes; then : lt_cv_dlopen=dld_link lt_cv_dlopen_libs=-ldld fi fi fi fi fi fi ;; esac if test no = "$lt_cv_dlopen"; then enable_dlopen=no else enable_dlopen=yes fi case $lt_cv_dlopen in dlopen) save_CPPFLAGS=$CPPFLAGS test yes = "$ac_cv_header_dlfcn_h" && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" save_LDFLAGS=$LDFLAGS wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" save_LIBS=$LIBS LIBS="$lt_cv_dlopen_libs $LIBS" { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a program can dlopen itself" >&5 $as_echo_n "checking whether a program can dlopen itself... " >&6; } if ${lt_cv_dlopen_self+:} false; then : $as_echo_n "(cached) " >&6 else if test yes = "$cross_compiling"; then : lt_cv_dlopen_self=cross else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF #line $LINENO "configure" #include "confdefs.h" #if HAVE_DLFCN_H #include #endif #include #ifdef RTLD_GLOBAL # define LT_DLGLOBAL RTLD_GLOBAL #else # ifdef DL_GLOBAL # define LT_DLGLOBAL DL_GLOBAL # else # define LT_DLGLOBAL 0 # endif #endif /* We may have to define LT_DLLAZY_OR_NOW in the command line if we find out it does not work in some platform. */ #ifndef LT_DLLAZY_OR_NOW # ifdef RTLD_LAZY # define LT_DLLAZY_OR_NOW RTLD_LAZY # else # ifdef DL_LAZY # define LT_DLLAZY_OR_NOW DL_LAZY # else # ifdef RTLD_NOW # define LT_DLLAZY_OR_NOW RTLD_NOW # else # ifdef DL_NOW # define LT_DLLAZY_OR_NOW DL_NOW # else # define LT_DLLAZY_OR_NOW 0 # endif # endif # endif # endif #endif /* When -fvisibility=hidden is used, assume the code has been annotated correspondingly for the symbols needed. */ #if defined __GNUC__ && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) int fnord () __attribute__((visibility("default"))); #endif int fnord () { return 42; } int main () { void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); int status = $lt_dlunknown; if (self) { if (dlsym (self,"fnord")) status = $lt_dlno_uscore; else { if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; else puts (dlerror ()); } /* dlclose (self); */ } else puts (dlerror ()); return status; } _LT_EOF if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 (eval $ac_link) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && test -s "conftest$ac_exeext" 2>/dev/null; then (./conftest; exit; ) >&5 2>/dev/null lt_status=$? case x$lt_status in x$lt_dlno_uscore) lt_cv_dlopen_self=yes ;; x$lt_dlneed_uscore) lt_cv_dlopen_self=yes ;; x$lt_dlunknown|x*) lt_cv_dlopen_self=no ;; esac else : # compilation failed lt_cv_dlopen_self=no fi fi rm -fr conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self" >&5 $as_echo "$lt_cv_dlopen_self" >&6; } if test yes = "$lt_cv_dlopen_self"; then wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\" { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a statically linked program can dlopen itself" >&5 $as_echo_n "checking whether a statically linked program can dlopen itself... " >&6; } if ${lt_cv_dlopen_self_static+:} false; then : $as_echo_n "(cached) " >&6 else if test yes = "$cross_compiling"; then : lt_cv_dlopen_self_static=cross else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF #line $LINENO "configure" #include "confdefs.h" #if HAVE_DLFCN_H #include #endif #include #ifdef RTLD_GLOBAL # define LT_DLGLOBAL RTLD_GLOBAL #else # ifdef DL_GLOBAL # define LT_DLGLOBAL DL_GLOBAL # else # define LT_DLGLOBAL 0 # endif #endif /* We may have to define LT_DLLAZY_OR_NOW in the command line if we find out it does not work in some platform. */ #ifndef LT_DLLAZY_OR_NOW # ifdef RTLD_LAZY # define LT_DLLAZY_OR_NOW RTLD_LAZY # else # ifdef DL_LAZY # define LT_DLLAZY_OR_NOW DL_LAZY # else # ifdef RTLD_NOW # define LT_DLLAZY_OR_NOW RTLD_NOW # else # ifdef DL_NOW # define LT_DLLAZY_OR_NOW DL_NOW # else # define LT_DLLAZY_OR_NOW 0 # endif # endif # endif # endif #endif /* When -fvisibility=hidden is used, assume the code has been annotated correspondingly for the symbols needed. */ #if defined __GNUC__ && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) int fnord () __attribute__((visibility("default"))); #endif int fnord () { return 42; } int main () { void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); int status = $lt_dlunknown; if (self) { if (dlsym (self,"fnord")) status = $lt_dlno_uscore; else { if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; else puts (dlerror ()); } /* dlclose (self); */ } else puts (dlerror ()); return status; } _LT_EOF if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 (eval $ac_link) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && test -s "conftest$ac_exeext" 2>/dev/null; then (./conftest; exit; ) >&5 2>/dev/null lt_status=$? case x$lt_status in x$lt_dlno_uscore) lt_cv_dlopen_self_static=yes ;; x$lt_dlneed_uscore) lt_cv_dlopen_self_static=yes ;; x$lt_dlunknown|x*) lt_cv_dlopen_self_static=no ;; esac else : # compilation failed lt_cv_dlopen_self_static=no fi fi rm -fr conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self_static" >&5 $as_echo "$lt_cv_dlopen_self_static" >&6; } fi CPPFLAGS=$save_CPPFLAGS LDFLAGS=$save_LDFLAGS LIBS=$save_LIBS ;; esac case $lt_cv_dlopen_self in yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; *) enable_dlopen_self=unknown ;; esac case $lt_cv_dlopen_self_static in yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; *) enable_dlopen_self_static=unknown ;; esac fi striplib= old_striplib= { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether stripping libraries is possible" >&5 $as_echo_n "checking whether stripping libraries is possible... " >&6; } if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" test -z "$striplib" && striplib="$STRIP --strip-unneeded" { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else # FIXME - insert some real tests, host_os isn't really good enough case $host_os in darwin*) if test -n "$STRIP"; then striplib="$STRIP -x" old_striplib="$STRIP -S" { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi ;; *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } ;; esac fi # Report what library types will actually be built { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libtool supports shared libraries" >&5 $as_echo_n "checking if libtool supports shared libraries... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: $can_build_shared" >&5 $as_echo "$can_build_shared" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build shared libraries" >&5 $as_echo_n "checking whether to build shared libraries... " >&6; } test no = "$can_build_shared" && enable_shared=no # On AIX, shared libraries and static libraries use the same namespace, and # are all built from PIC. case $host_os in aix3*) test yes = "$enable_shared" && enable_static=no if test -n "$RANLIB"; then archive_cmds="$archive_cmds~\$RANLIB \$lib" postinstall_cmds='$RANLIB $lib' fi ;; aix[4-9]*) if test ia64 != "$host_cpu"; then case $enable_shared,$with_aix_soname,$aix_use_runtimelinking in yes,aix,yes) ;; # shared object as lib.so file only yes,svr4,*) ;; # shared object as lib.so archive member only yes,*) enable_static=no ;; # shared object in lib.a archive as well esac fi ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_shared" >&5 $as_echo "$enable_shared" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build static libraries" >&5 $as_echo_n "checking whether to build static libraries... " >&6; } # Make sure either enable_shared or enable_static is yes. test yes = "$enable_shared" || enable_static=yes { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_static" >&5 $as_echo "$enable_static" >&6; } fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu CC=$lt_save_CC ac_config_commands="$ac_config_commands libtool" # Only expand once: { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether NLS is requested" >&5 $as_echo_n "checking whether NLS is requested... " >&6; } # Check whether --enable-nls was given. if test "${enable_nls+set}" = set; then : enableval=$enable_nls; USE_NLS=$enableval else USE_NLS=yes fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $USE_NLS" >&5 $as_echo "$USE_NLS" >&6; } case "$am__api_version" in 1.01234) as_fn_error $? "Automake 1.5 or newer is required to use intltool" "$LINENO" 5 ;; *) ;; esac INTLTOOL_REQUIRED_VERSION_AS_INT=`echo 0.35.5 | awk -F. '{ print $ 1 * 1000 + $ 2 * 100 + $ 3; }'` INTLTOOL_APPLIED_VERSION=`intltool-update --version | head -1 | cut -d" " -f3` INTLTOOL_APPLIED_VERSION_AS_INT=`echo $INTLTOOL_APPLIED_VERSION | awk -F. '{ print $ 1 * 1000 + $ 2 * 100 + $ 3; }'` if test -n "0.35.5"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for intltool >= 0.35.5" >&5 $as_echo_n "checking for intltool >= 0.35.5... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INTLTOOL_APPLIED_VERSION found" >&5 $as_echo "$INTLTOOL_APPLIED_VERSION found" >&6; } test "$INTLTOOL_APPLIED_VERSION_AS_INT" -ge "$INTLTOOL_REQUIRED_VERSION_AS_INT" || as_fn_error $? "Your intltool is too old. You need intltool 0.35.5 or later." "$LINENO" 5 fi # Extract the first word of "intltool-update", so it can be a program name with args. set dummy intltool-update; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_INTLTOOL_UPDATE+:} false; then : $as_echo_n "(cached) " >&6 else case $INTLTOOL_UPDATE in [\\/]* | ?:[\\/]*) ac_cv_path_INTLTOOL_UPDATE="$INTLTOOL_UPDATE" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_INTLTOOL_UPDATE="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi INTLTOOL_UPDATE=$ac_cv_path_INTLTOOL_UPDATE if test -n "$INTLTOOL_UPDATE"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INTLTOOL_UPDATE" >&5 $as_echo "$INTLTOOL_UPDATE" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi # Extract the first word of "intltool-merge", so it can be a program name with args. set dummy intltool-merge; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_INTLTOOL_MERGE+:} false; then : $as_echo_n "(cached) " >&6 else case $INTLTOOL_MERGE in [\\/]* | ?:[\\/]*) ac_cv_path_INTLTOOL_MERGE="$INTLTOOL_MERGE" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_INTLTOOL_MERGE="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi INTLTOOL_MERGE=$ac_cv_path_INTLTOOL_MERGE if test -n "$INTLTOOL_MERGE"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INTLTOOL_MERGE" >&5 $as_echo "$INTLTOOL_MERGE" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi # Extract the first word of "intltool-extract", so it can be a program name with args. set dummy intltool-extract; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_INTLTOOL_EXTRACT+:} false; then : $as_echo_n "(cached) " >&6 else case $INTLTOOL_EXTRACT in [\\/]* | ?:[\\/]*) ac_cv_path_INTLTOOL_EXTRACT="$INTLTOOL_EXTRACT" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_INTLTOOL_EXTRACT="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi INTLTOOL_EXTRACT=$ac_cv_path_INTLTOOL_EXTRACT if test -n "$INTLTOOL_EXTRACT"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INTLTOOL_EXTRACT" >&5 $as_echo "$INTLTOOL_EXTRACT" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test -z "$INTLTOOL_UPDATE" -o -z "$INTLTOOL_MERGE" -o -z "$INTLTOOL_EXTRACT"; then as_fn_error $? "The intltool scripts were not found. Please install intltool." "$LINENO" 5 fi if test -z "$AM_DEFAULT_VERBOSITY"; then AM_DEFAULT_VERBOSITY=1 fi INTLTOOL_V_MERGE='$(INTLTOOL__v_MERGE_$(V))' INTLTOOL__v_MERGE_='$(INTLTOOL__v_MERGE_$(AM_DEFAULT_VERBOSITY))' INTLTOOL__v_MERGE_0='@echo " ITMRG " $@;' INTLTOOL_V_MERGE_OPTIONS='$(intltool__v_merge_options_$(V))' intltool__v_merge_options_='$(intltool__v_merge_options_$(AM_DEFAULT_VERBOSITY))' intltool__v_merge_options_0='-q' INTLTOOL_DESKTOP_RULE='%.desktop: %.desktop.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_DIRECTORY_RULE='%.directory: %.directory.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_KEYS_RULE='%.keys: %.keys.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -k -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_PROP_RULE='%.prop: %.prop.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_OAF_RULE='%.oaf: %.oaf.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -o -p $(top_srcdir)/po $< $@' INTLTOOL_PONG_RULE='%.pong: %.pong.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_SERVER_RULE='%.server: %.server.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -o -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_SHEET_RULE='%.sheet: %.sheet.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_SOUNDLIST_RULE='%.soundlist: %.soundlist.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_UI_RULE='%.ui: %.ui.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_XML_RULE='%.xml: %.xml.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' if test "$INTLTOOL_APPLIED_VERSION_AS_INT" -ge 5000; then INTLTOOL_XML_NOMERGE_RULE='%.xml: %.xml.in $(INTLTOOL_MERGE) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u --no-translations $< $@' else INTLTOOL_XML_NOMERGE_RULE='%.xml: %.xml.in $(INTLTOOL_MERGE) ; $(INTLTOOL_V_MERGE)_it_tmp_dir=tmp.intltool.$$RANDOM && mkdir $$_it_tmp_dir && LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u $$_it_tmp_dir $< $@ && rmdir $$_it_tmp_dir' fi INTLTOOL_XAM_RULE='%.xam: %.xml.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_KBD_RULE='%.kbd: %.kbd.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -m -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_CAVES_RULE='%.caves: %.caves.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_SCHEMAS_RULE='%.schemas: %.schemas.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -s -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_THEME_RULE='%.theme: %.theme.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_SERVICE_RULE='%.service: %.service.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_POLICY_RULE='%.policy: %.policy.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' # Check the gettext tools to make sure they are GNU # Extract the first word of "xgettext", so it can be a program name with args. set dummy xgettext; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_XGETTEXT+:} false; then : $as_echo_n "(cached) " >&6 else case $XGETTEXT in [\\/]* | ?:[\\/]*) ac_cv_path_XGETTEXT="$XGETTEXT" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_XGETTEXT="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi XGETTEXT=$ac_cv_path_XGETTEXT if test -n "$XGETTEXT"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $XGETTEXT" >&5 $as_echo "$XGETTEXT" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi # Extract the first word of "msgmerge", so it can be a program name with args. set dummy msgmerge; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_MSGMERGE+:} false; then : $as_echo_n "(cached) " >&6 else case $MSGMERGE in [\\/]* | ?:[\\/]*) ac_cv_path_MSGMERGE="$MSGMERGE" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_MSGMERGE="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi MSGMERGE=$ac_cv_path_MSGMERGE if test -n "$MSGMERGE"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MSGMERGE" >&5 $as_echo "$MSGMERGE" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi # Extract the first word of "msgfmt", so it can be a program name with args. set dummy msgfmt; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_MSGFMT+:} false; then : $as_echo_n "(cached) " >&6 else case $MSGFMT in [\\/]* | ?:[\\/]*) ac_cv_path_MSGFMT="$MSGFMT" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_MSGFMT="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi MSGFMT=$ac_cv_path_MSGFMT if test -n "$MSGFMT"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MSGFMT" >&5 $as_echo "$MSGFMT" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi # Extract the first word of "gmsgfmt", so it can be a program name with args. set dummy gmsgfmt; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_GMSGFMT+:} false; then : $as_echo_n "(cached) " >&6 else case $GMSGFMT in [\\/]* | ?:[\\/]*) ac_cv_path_GMSGFMT="$GMSGFMT" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_GMSGFMT="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS test -z "$ac_cv_path_GMSGFMT" && ac_cv_path_GMSGFMT="$MSGFMT" ;; esac fi GMSGFMT=$ac_cv_path_GMSGFMT if test -n "$GMSGFMT"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GMSGFMT" >&5 $as_echo "$GMSGFMT" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test -z "$XGETTEXT" -o -z "$MSGMERGE" -o -z "$MSGFMT"; then as_fn_error $? "GNU gettext tools not found; required for intltool" "$LINENO" 5 fi xgversion="`$XGETTEXT --version|grep '(GNU ' 2> /dev/null`" mmversion="`$MSGMERGE --version|grep '(GNU ' 2> /dev/null`" mfversion="`$MSGFMT --version|grep '(GNU ' 2> /dev/null`" if test -z "$xgversion" -o -z "$mmversion" -o -z "$mfversion"; then as_fn_error $? "GNU gettext tools not found; required for intltool" "$LINENO" 5 fi # Extract the first word of "perl", so it can be a program name with args. set dummy perl; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_INTLTOOL_PERL+:} false; then : $as_echo_n "(cached) " >&6 else case $INTLTOOL_PERL in [\\/]* | ?:[\\/]*) ac_cv_path_INTLTOOL_PERL="$INTLTOOL_PERL" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_INTLTOOL_PERL="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi INTLTOOL_PERL=$ac_cv_path_INTLTOOL_PERL if test -n "$INTLTOOL_PERL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INTLTOOL_PERL" >&5 $as_echo "$INTLTOOL_PERL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test -z "$INTLTOOL_PERL"; then as_fn_error $? "perl not found" "$LINENO" 5 fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for perl >= 5.8.1" >&5 $as_echo_n "checking for perl >= 5.8.1... " >&6; } $INTLTOOL_PERL -e "use 5.8.1;" > /dev/null 2>&1 if test $? -ne 0; then as_fn_error $? "perl 5.8.1 is required for intltool" "$LINENO" 5 else IT_PERL_VERSION=`$INTLTOOL_PERL -e "printf '%vd', $^V"` { $as_echo "$as_me:${as_lineno-$LINENO}: result: $IT_PERL_VERSION" >&5 $as_echo "$IT_PERL_VERSION" >&6; } fi if test "x" != "xno-xml"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for XML::Parser" >&5 $as_echo_n "checking for XML::Parser... " >&6; } if `$INTLTOOL_PERL -e "require XML::Parser" 2>/dev/null`; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5 $as_echo "ok" >&6; } else as_fn_error $? "XML::Parser perl module is required for intltool" "$LINENO" 5 fi fi # Substitute ALL_LINGUAS so we can use it in po/Makefile GETTEXT_PACKAGE=ario cat >>confdefs.h <<_ACEOF #define GETTEXT_PACKAGE "$GETTEXT_PACKAGE" _ACEOF for ac_header in locale.h do : ac_fn_c_check_header_mongrel "$LINENO" "locale.h" "ac_cv_header_locale_h" "$ac_includes_default" if test "x$ac_cv_header_locale_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_LOCALE_H 1 _ACEOF fi done if test $ac_cv_header_locale_h = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for LC_MESSAGES" >&5 $as_echo_n "checking for LC_MESSAGES... " >&6; } if ${am_cv_val_LC_MESSAGES+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { return LC_MESSAGES ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : am_cv_val_LC_MESSAGES=yes else am_cv_val_LC_MESSAGES=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_val_LC_MESSAGES" >&5 $as_echo "$am_cv_val_LC_MESSAGES" >&6; } if test $am_cv_val_LC_MESSAGES = yes; then $as_echo "#define HAVE_LC_MESSAGES 1" >>confdefs.h fi fi USE_NLS=yes gt_cv_have_gettext=no CATOBJEXT=NONE XGETTEXT=: INTLLIBS= { $as_echo "$as_me:${as_lineno-$LINENO}: checking for CFPreferencesCopyAppValue" >&5 $as_echo_n "checking for CFPreferencesCopyAppValue... " >&6; } if ${gt_cv_func_CFPreferencesCopyAppValue+:} false; then : $as_echo_n "(cached) " >&6 else gt_save_LIBS="$LIBS" LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { CFPreferencesCopyAppValue(NULL, NULL) ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : gt_cv_func_CFPreferencesCopyAppValue=yes else gt_cv_func_CFPreferencesCopyAppValue=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS="$gt_save_LIBS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_func_CFPreferencesCopyAppValue" >&5 $as_echo "$gt_cv_func_CFPreferencesCopyAppValue" >&6; } if test $gt_cv_func_CFPreferencesCopyAppValue = yes; then $as_echo "#define HAVE_CFPREFERENCESCOPYAPPVALUE 1" >>confdefs.h fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for CFLocaleCopyCurrent" >&5 $as_echo_n "checking for CFLocaleCopyCurrent... " >&6; } if ${gt_cv_func_CFLocaleCopyCurrent+:} false; then : $as_echo_n "(cached) " >&6 else gt_save_LIBS="$LIBS" LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { CFLocaleCopyCurrent(); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : gt_cv_func_CFLocaleCopyCurrent=yes else gt_cv_func_CFLocaleCopyCurrent=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS="$gt_save_LIBS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_func_CFLocaleCopyCurrent" >&5 $as_echo "$gt_cv_func_CFLocaleCopyCurrent" >&6; } if test $gt_cv_func_CFLocaleCopyCurrent = yes; then $as_echo "#define HAVE_CFLOCALECOPYCURRENT 1" >>confdefs.h fi INTL_MACOSX_LIBS= if test $gt_cv_func_CFPreferencesCopyAppValue = yes || test $gt_cv_func_CFLocaleCopyCurrent = yes; then INTL_MACOSX_LIBS="-Wl,-framework -Wl,CoreFoundation" fi ac_fn_c_check_header_mongrel "$LINENO" "libintl.h" "ac_cv_header_libintl_h" "$ac_includes_default" if test "x$ac_cv_header_libintl_h" = xyes; then : gt_cv_func_dgettext_libintl="no" libintl_extra_libs="" # # First check in libc # { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ngettext in libc" >&5 $as_echo_n "checking for ngettext in libc... " >&6; } if ${gt_cv_func_ngettext_libc+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { return !ngettext ("","", 1) ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : gt_cv_func_ngettext_libc=yes else gt_cv_func_ngettext_libc=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_func_ngettext_libc" >&5 $as_echo "$gt_cv_func_ngettext_libc" >&6; } if test "$gt_cv_func_ngettext_libc" = "yes" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dgettext in libc" >&5 $as_echo_n "checking for dgettext in libc... " >&6; } if ${gt_cv_func_dgettext_libc+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { return !dgettext ("","") ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : gt_cv_func_dgettext_libc=yes else gt_cv_func_dgettext_libc=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_func_dgettext_libc" >&5 $as_echo "$gt_cv_func_dgettext_libc" >&6; } fi if test "$gt_cv_func_ngettext_libc" = "yes" ; then for ac_func in bind_textdomain_codeset do : ac_fn_c_check_func "$LINENO" "bind_textdomain_codeset" "ac_cv_func_bind_textdomain_codeset" if test "x$ac_cv_func_bind_textdomain_codeset" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_BIND_TEXTDOMAIN_CODESET 1 _ACEOF fi done fi # # If we don't have everything we want, check in libintl # if test "$gt_cv_func_dgettext_libc" != "yes" \ || test "$gt_cv_func_ngettext_libc" != "yes" \ || test "$ac_cv_func_bind_textdomain_codeset" != "yes" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for bindtextdomain in -lintl" >&5 $as_echo_n "checking for bindtextdomain in -lintl... " >&6; } if ${ac_cv_lib_intl_bindtextdomain+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lintl $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char bindtextdomain (); int main () { return bindtextdomain (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_intl_bindtextdomain=yes else ac_cv_lib_intl_bindtextdomain=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_intl_bindtextdomain" >&5 $as_echo "$ac_cv_lib_intl_bindtextdomain" >&6; } if test "x$ac_cv_lib_intl_bindtextdomain" = xyes; then : { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ngettext in -lintl" >&5 $as_echo_n "checking for ngettext in -lintl... " >&6; } if ${ac_cv_lib_intl_ngettext+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lintl $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char ngettext (); int main () { return ngettext (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_intl_ngettext=yes else ac_cv_lib_intl_ngettext=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_intl_ngettext" >&5 $as_echo "$ac_cv_lib_intl_ngettext" >&6; } if test "x$ac_cv_lib_intl_ngettext" = xyes; then : { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dgettext in -lintl" >&5 $as_echo_n "checking for dgettext in -lintl... " >&6; } if ${ac_cv_lib_intl_dgettext+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lintl $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char dgettext (); int main () { return dgettext (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_intl_dgettext=yes else ac_cv_lib_intl_dgettext=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_intl_dgettext" >&5 $as_echo "$ac_cv_lib_intl_dgettext" >&6; } if test "x$ac_cv_lib_intl_dgettext" = xyes; then : gt_cv_func_dgettext_libintl=yes fi fi fi if test "$gt_cv_func_dgettext_libintl" != "yes" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking if -liconv is needed to use gettext" >&5 $as_echo_n "checking if -liconv is needed to use gettext... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5 $as_echo "" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ngettext in -lintl" >&5 $as_echo_n "checking for ngettext in -lintl... " >&6; } if ${ac_cv_lib_intl_ngettext+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lintl -liconv $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char ngettext (); int main () { return ngettext (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_intl_ngettext=yes else ac_cv_lib_intl_ngettext=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_intl_ngettext" >&5 $as_echo "$ac_cv_lib_intl_ngettext" >&6; } if test "x$ac_cv_lib_intl_ngettext" = xyes; then : { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dcgettext in -lintl" >&5 $as_echo_n "checking for dcgettext in -lintl... " >&6; } if ${ac_cv_lib_intl_dcgettext+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lintl -liconv $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char dcgettext (); int main () { return dcgettext (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_intl_dcgettext=yes else ac_cv_lib_intl_dcgettext=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_intl_dcgettext" >&5 $as_echo "$ac_cv_lib_intl_dcgettext" >&6; } if test "x$ac_cv_lib_intl_dcgettext" = xyes; then : gt_cv_func_dgettext_libintl=yes libintl_extra_libs=-liconv else : fi else : fi fi # # If we found libintl, then check in it for bind_textdomain_codeset(); # we'll prefer libc if neither have bind_textdomain_codeset(), # and both have dgettext and ngettext # if test "$gt_cv_func_dgettext_libintl" = "yes" ; then glib_save_LIBS="$LIBS" LIBS="$LIBS -lintl $libintl_extra_libs" unset ac_cv_func_bind_textdomain_codeset for ac_func in bind_textdomain_codeset do : ac_fn_c_check_func "$LINENO" "bind_textdomain_codeset" "ac_cv_func_bind_textdomain_codeset" if test "x$ac_cv_func_bind_textdomain_codeset" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_BIND_TEXTDOMAIN_CODESET 1 _ACEOF fi done LIBS="$glib_save_LIBS" if test "$ac_cv_func_bind_textdomain_codeset" = "yes" ; then gt_cv_func_dgettext_libc=no else if test "$gt_cv_func_dgettext_libc" = "yes" \ && test "$gt_cv_func_ngettext_libc" = "yes"; then gt_cv_func_dgettext_libintl=no fi fi fi fi if test "$gt_cv_func_dgettext_libc" = "yes" \ || test "$gt_cv_func_dgettext_libintl" = "yes"; then gt_cv_have_gettext=yes fi if test "$gt_cv_func_dgettext_libintl" = "yes"; then INTLLIBS="-lintl $libintl_extra_libs $INTL_MACOSX_LIBS" fi if test "$gt_cv_have_gettext" = "yes"; then $as_echo "#define HAVE_GETTEXT 1" >>confdefs.h # Extract the first word of "msgfmt", so it can be a program name with args. set dummy msgfmt; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_MSGFMT+:} false; then : $as_echo_n "(cached) " >&6 else case "$MSGFMT" in /*) ac_cv_path_MSGFMT="$MSGFMT" # Let the user override the test with a path. ;; *) IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" for ac_dir in $PATH; do test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/$ac_word; then if test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"; then ac_cv_path_MSGFMT="$ac_dir/$ac_word" break fi fi done IFS="$ac_save_ifs" test -z "$ac_cv_path_MSGFMT" && ac_cv_path_MSGFMT="no" ;; esac fi MSGFMT="$ac_cv_path_MSGFMT" if test "$MSGFMT" != "no"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MSGFMT" >&5 $as_echo "$MSGFMT" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "$MSGFMT" != "no"; then glib_save_LIBS="$LIBS" LIBS="$LIBS $INTLLIBS" for ac_func in dcgettext do : ac_fn_c_check_func "$LINENO" "dcgettext" "ac_cv_func_dcgettext" if test "x$ac_cv_func_dcgettext" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_DCGETTEXT 1 _ACEOF fi done MSGFMT_OPTS= { $as_echo "$as_me:${as_lineno-$LINENO}: checking if msgfmt accepts -c" >&5 $as_echo_n "checking if msgfmt accepts -c... " >&6; } cat >conftest.foo <<_ACEOF msgid "" msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Project-Id-Version: test 1.0\n" "PO-Revision-Date: 2007-02-15 12:01+0100\n" "Last-Translator: test \n" "Language-Team: C \n" "MIME-Version: 1.0\n" "Content-Transfer-Encoding: 8bit\n" _ACEOF if { { $as_echo "$as_me:${as_lineno-$LINENO}: \$MSGFMT -c -o /dev/null conftest.foo"; } >&5 ($MSGFMT -c -o /dev/null conftest.foo) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then MSGFMT_OPTS=-c; { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } echo "$as_me: failed input was:" >&5 sed 's/^/| /' conftest.foo >&5 fi # Extract the first word of "gmsgfmt", so it can be a program name with args. set dummy gmsgfmt; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_GMSGFMT+:} false; then : $as_echo_n "(cached) " >&6 else case $GMSGFMT in [\\/]* | ?:[\\/]*) ac_cv_path_GMSGFMT="$GMSGFMT" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_GMSGFMT="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS test -z "$ac_cv_path_GMSGFMT" && ac_cv_path_GMSGFMT="$MSGFMT" ;; esac fi GMSGFMT=$ac_cv_path_GMSGFMT if test -n "$GMSGFMT"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GMSGFMT" >&5 $as_echo "$GMSGFMT" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi # Extract the first word of "xgettext", so it can be a program name with args. set dummy xgettext; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_XGETTEXT+:} false; then : $as_echo_n "(cached) " >&6 else case "$XGETTEXT" in /*) ac_cv_path_XGETTEXT="$XGETTEXT" # Let the user override the test with a path. ;; *) IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" for ac_dir in $PATH; do test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/$ac_word; then if test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"; then ac_cv_path_XGETTEXT="$ac_dir/$ac_word" break fi fi done IFS="$ac_save_ifs" test -z "$ac_cv_path_XGETTEXT" && ac_cv_path_XGETTEXT=":" ;; esac fi XGETTEXT="$ac_cv_path_XGETTEXT" if test "$XGETTEXT" != ":"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $XGETTEXT" >&5 $as_echo "$XGETTEXT" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { extern int _nl_msg_cat_cntr; return _nl_msg_cat_cntr ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : CATOBJEXT=.gmo DATADIRNAME=share else case $host in *-*-solaris*) ac_fn_c_check_func "$LINENO" "bind_textdomain_codeset" "ac_cv_func_bind_textdomain_codeset" if test "x$ac_cv_func_bind_textdomain_codeset" = xyes; then : CATOBJEXT=.gmo DATADIRNAME=share else CATOBJEXT=.mo DATADIRNAME=lib fi ;; *-*-openbsd*) CATOBJEXT=.mo DATADIRNAME=share ;; *) CATOBJEXT=.mo DATADIRNAME=lib ;; esac fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS="$glib_save_LIBS" INSTOBJEXT=.mo else gt_cv_have_gettext=no fi fi fi if test "$gt_cv_have_gettext" = "yes" ; then $as_echo "#define ENABLE_NLS 1" >>confdefs.h fi if test "$XGETTEXT" != ":"; then if $XGETTEXT --omit-header /dev/null 2> /dev/null; then : ; else { $as_echo "$as_me:${as_lineno-$LINENO}: result: found xgettext program is not GNU xgettext; ignore it" >&5 $as_echo "found xgettext program is not GNU xgettext; ignore it" >&6; } XGETTEXT=":" fi fi # We need to process the po/ directory. POSUB=po ac_config_commands="$ac_config_commands default-1" for lang in $ALL_LINGUAS; do GMOFILES="$GMOFILES $lang.gmo" POFILES="$POFILES $lang.po" done if test "$gt_cv_have_gettext" = "yes"; then if test "x$ALL_LINGUAS" = "x"; then LINGUAS= else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for catalogs to be installed" >&5 $as_echo_n "checking for catalogs to be installed... " >&6; } NEW_LINGUAS= for presentlang in $ALL_LINGUAS; do useit=no if test "%UNSET%" != "${LINGUAS-%UNSET%}"; then desiredlanguages="$LINGUAS" else desiredlanguages="$ALL_LINGUAS" fi for desiredlang in $desiredlanguages; do # Use the presentlang catalog if desiredlang is # a. equal to presentlang, or # b. a variant of presentlang (because in this case, # presentlang can be used as a fallback for messages # which are not translated in the desiredlang catalog). case "$desiredlang" in "$presentlang"*) useit=yes;; esac done if test $useit = yes; then NEW_LINGUAS="$NEW_LINGUAS $presentlang" fi done LINGUAS=$NEW_LINGUAS { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LINGUAS" >&5 $as_echo "$LINGUAS" >&6; } fi if test -n "$LINGUAS"; then for lang in $LINGUAS; do CATALOGS="$CATALOGS $lang$CATOBJEXT"; done fi fi MKINSTALLDIRS= if test -n "$ac_aux_dir"; then MKINSTALLDIRS="$ac_aux_dir/mkinstalldirs" fi if test -z "$MKINSTALLDIRS"; then MKINSTALLDIRS="\$(top_srcdir)/mkinstalldirs" fi test -d po || mkdir po if test "x$srcdir" != "x."; then if test "x`echo $srcdir | sed 's@/.*@@'`" = "x"; then posrcprefix="$srcdir/" else posrcprefix="../$srcdir/" fi else posrcprefix="../" fi rm -f po/POTFILES sed -e "/^#/d" -e "/^\$/d" -e "s,.*, $posrcprefix& \\\\," -e "\$s/\(.*\) \\\\/\1/" \ < $srcdir/po/POTFILES.in > po/POTFILES if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args. set dummy ${ac_tool_prefix}pkg-config; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_PKG_CONFIG+:} false; then : $as_echo_n "(cached) " >&6 else case $PKG_CONFIG in [\\/]* | ?:[\\/]*) ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi PKG_CONFIG=$ac_cv_path_PKG_CONFIG if test -n "$PKG_CONFIG"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5 $as_echo "$PKG_CONFIG" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_path_PKG_CONFIG"; then ac_pt_PKG_CONFIG=$PKG_CONFIG # Extract the first word of "pkg-config", so it can be a program name with args. set dummy pkg-config; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_ac_pt_PKG_CONFIG+:} false; then : $as_echo_n "(cached) " >&6 else case $ac_pt_PKG_CONFIG in [\\/]* | ?:[\\/]*) ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG if test -n "$ac_pt_PKG_CONFIG"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5 $as_echo "$ac_pt_PKG_CONFIG" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_pt_PKG_CONFIG" = x; then PKG_CONFIG="" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac PKG_CONFIG=$ac_pt_PKG_CONFIG fi else PKG_CONFIG="$ac_cv_path_PKG_CONFIG" fi fi if test -n "$PKG_CONFIG"; then _pkg_min_version=0.9.0 { $as_echo "$as_me:${as_lineno-$LINENO}: checking pkg-config is at least version $_pkg_min_version" >&5 $as_echo_n "checking pkg-config is at least version $_pkg_min_version... " >&6; } if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } PKG_CONFIG="" fi fi pkg_failed=no { $as_echo "$as_me:${as_lineno-$LINENO}: checking for DEPS" >&5 $as_echo_n "checking for DEPS... " >&6; } if test -n "$DEPS_CFLAGS"; then pkg_cv_DEPS_CFLAGS="$DEPS_CFLAGS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gtk+-3.0 glib-2.0 >= 2.4 gobject-2.0 >= 2.4 gmodule-2.0 gthread-2.0 gio-2.0 libxml-2.0 libcurl\""; } >&5 ($PKG_CONFIG --exists --print-errors "gtk+-3.0 glib-2.0 >= 2.4 gobject-2.0 >= 2.4 gmodule-2.0 gthread-2.0 gio-2.0 libxml-2.0 libcurl") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_DEPS_CFLAGS=`$PKG_CONFIG --cflags "gtk+-3.0 glib-2.0 >= 2.4 gobject-2.0 >= 2.4 gmodule-2.0 gthread-2.0 gio-2.0 libxml-2.0 libcurl" 2>/dev/null` test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes fi else pkg_failed=untried fi if test -n "$DEPS_LIBS"; then pkg_cv_DEPS_LIBS="$DEPS_LIBS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gtk+-3.0 glib-2.0 >= 2.4 gobject-2.0 >= 2.4 gmodule-2.0 gthread-2.0 gio-2.0 libxml-2.0 libcurl\""; } >&5 ($PKG_CONFIG --exists --print-errors "gtk+-3.0 glib-2.0 >= 2.4 gobject-2.0 >= 2.4 gmodule-2.0 gthread-2.0 gio-2.0 libxml-2.0 libcurl") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_DEPS_LIBS=`$PKG_CONFIG --libs "gtk+-3.0 glib-2.0 >= 2.4 gobject-2.0 >= 2.4 gmodule-2.0 gthread-2.0 gio-2.0 libxml-2.0 libcurl" 2>/dev/null` test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes fi else pkg_failed=untried fi if test $pkg_failed = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then _pkg_short_errors_supported=yes else _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then DEPS_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "gtk+-3.0 glib-2.0 >= 2.4 gobject-2.0 >= 2.4 gmodule-2.0 gthread-2.0 gio-2.0 libxml-2.0 libcurl" 2>&1` else DEPS_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "gtk+-3.0 glib-2.0 >= 2.4 gobject-2.0 >= 2.4 gmodule-2.0 gthread-2.0 gio-2.0 libxml-2.0 libcurl" 2>&1` fi # Put the nasty error message in config.log where it belongs echo "$DEPS_PKG_ERRORS" >&5 as_fn_error $? "Package requirements (gtk+-3.0 glib-2.0 >= 2.4 gobject-2.0 >= 2.4 gmodule-2.0 gthread-2.0 gio-2.0 libxml-2.0 libcurl) were not met: $DEPS_PKG_ERRORS Consider adjusting the PKG_CONFIG_PATH environment variable if you installed software in a non-standard prefix. Alternatively, you may set the environment variables DEPS_CFLAGS and DEPS_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details." "$LINENO" 5 elif test $pkg_failed = untried; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it is in your PATH or set the PKG_CONFIG environment variable to the full path to pkg-config. Alternatively, you may set the environment variables DEPS_CFLAGS and DEPS_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details. To get pkg-config, see . See \`config.log' for more details" "$LINENO" 5; } else DEPS_CFLAGS=$pkg_cv_DEPS_CFLAGS DEPS_LIBS=$pkg_cv_DEPS_LIBS { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } fi # Extract the first word of "glib-mkenums", so it can be a program name with args. set dummy glib-mkenums; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_GLIB_MKENUMS+:} false; then : $as_echo_n "(cached) " >&6 else case $GLIB_MKENUMS in [\\/]* | ?:[\\/]*) ac_cv_path_GLIB_MKENUMS="$GLIB_MKENUMS" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_GLIB_MKENUMS="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi GLIB_MKENUMS=$ac_cv_path_GLIB_MKENUMS if test -n "$GLIB_MKENUMS"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GLIB_MKENUMS" >&5 $as_echo "$GLIB_MKENUMS" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi WARN_CFLAGS="-Wall \ -Wall -Wimplicit -Wunused-label \ -Wmissing-declarations -Wmissing-prototypes \ -Wnested-externs -Wpointer-arith \ -Wcast-align -Wpointer-sign \ -Wclobbered -Wempty-body -Wignored-qualifiers \ -Wmissing-parameter-type \ -Wold-style-declaration -Woverride-init \ -Wsign-compare -Wtype-limits -Wuninitialized \ -Wold-style-definition" for option in $WARN_CFLAGS; do SAVE_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS $option" { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether gcc understands $option" >&5 $as_echo_n "checking whether gcc understands $option... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : has_option=yes else has_option=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext if test x$has_option = xyes; then WARNINGS="$WARNINGS $option" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $has_option" >&5 $as_echo "$has_option" >&6; } CFLAGS="$SAVE_CFLAGS" unset has_option unset SAVE_CFLAGS done unset option # Check whether --enable-debug was given. if test "${enable_debug+set}" = set; then : enableval=$enable_debug; fi if test x"$enable_debug" = xyes; then $as_echo "#define DEBUG 1" >>confdefs.h fi # Check whether --enable-xmms2 was given. if test "${enable_xmms2+set}" = set; then : enableval=$enable_xmms2; fi if test x"$enable_xmms2" = xyes; then $as_echo "#define ENABLE_XMMS2 1" >>confdefs.h pkg_failed=no { $as_echo "$as_me:${as_lineno-$LINENO}: checking for XMMS2" >&5 $as_echo_n "checking for XMMS2... " >&6; } if test -n "$XMMS2_CFLAGS"; then pkg_cv_XMMS2_CFLAGS="$XMMS2_CFLAGS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"xmms2-client xmms2-client-glib\""; } >&5 ($PKG_CONFIG --exists --print-errors "xmms2-client xmms2-client-glib") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_XMMS2_CFLAGS=`$PKG_CONFIG --cflags "xmms2-client xmms2-client-glib" 2>/dev/null` test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes fi else pkg_failed=untried fi if test -n "$XMMS2_LIBS"; then pkg_cv_XMMS2_LIBS="$XMMS2_LIBS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"xmms2-client xmms2-client-glib\""; } >&5 ($PKG_CONFIG --exists --print-errors "xmms2-client xmms2-client-glib") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_XMMS2_LIBS=`$PKG_CONFIG --libs "xmms2-client xmms2-client-glib" 2>/dev/null` test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes fi else pkg_failed=untried fi if test $pkg_failed = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then _pkg_short_errors_supported=yes else _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then XMMS2_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "xmms2-client xmms2-client-glib" 2>&1` else XMMS2_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "xmms2-client xmms2-client-glib" 2>&1` fi # Put the nasty error message in config.log where it belongs echo "$XMMS2_PKG_ERRORS" >&5 as_fn_error $? "Package requirements (xmms2-client xmms2-client-glib) were not met: $XMMS2_PKG_ERRORS Consider adjusting the PKG_CONFIG_PATH environment variable if you installed software in a non-standard prefix. Alternatively, you may set the environment variables XMMS2_CFLAGS and XMMS2_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details." "$LINENO" 5 elif test $pkg_failed = untried; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it is in your PATH or set the PKG_CONFIG environment variable to the full path to pkg-config. Alternatively, you may set the environment variables XMMS2_CFLAGS and XMMS2_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details. To get pkg-config, see . See \`config.log' for more details" "$LINENO" 5; } else XMMS2_CFLAGS=$pkg_cv_XMMS2_CFLAGS XMMS2_LIBS=$pkg_cv_XMMS2_LIBS { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } fi fi if test x${enable_xmms2} = xyes; then USE_XMMS2_TRUE= USE_XMMS2_FALSE='#' else USE_XMMS2_TRUE='#' USE_XMMS2_FALSE= fi # Check whether --enable-libmpdclient2 was given. if test "${enable_libmpdclient2+set}" = set; then : enableval=$enable_libmpdclient2; fi if test x"$enable_libmpdclient2" != xno; then $as_echo "#define ENABLE_LIBMPDCLIENT2 1" >>confdefs.h pkg_failed=no { $as_echo "$as_me:${as_lineno-$LINENO}: checking for LIBMPDCLIENT2" >&5 $as_echo_n "checking for LIBMPDCLIENT2... " >&6; } if test -n "$LIBMPDCLIENT2_CFLAGS"; then pkg_cv_LIBMPDCLIENT2_CFLAGS="$LIBMPDCLIENT2_CFLAGS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libmpdclient >= 2.0\""; } >&5 ($PKG_CONFIG --exists --print-errors "libmpdclient >= 2.0") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_LIBMPDCLIENT2_CFLAGS=`$PKG_CONFIG --cflags "libmpdclient >= 2.0" 2>/dev/null` test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes fi else pkg_failed=untried fi if test -n "$LIBMPDCLIENT2_LIBS"; then pkg_cv_LIBMPDCLIENT2_LIBS="$LIBMPDCLIENT2_LIBS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libmpdclient >= 2.0\""; } >&5 ($PKG_CONFIG --exists --print-errors "libmpdclient >= 2.0") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_LIBMPDCLIENT2_LIBS=`$PKG_CONFIG --libs "libmpdclient >= 2.0" 2>/dev/null` test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes fi else pkg_failed=untried fi if test $pkg_failed = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then _pkg_short_errors_supported=yes else _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then LIBMPDCLIENT2_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "libmpdclient >= 2.0" 2>&1` else LIBMPDCLIENT2_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "libmpdclient >= 2.0" 2>&1` fi # Put the nasty error message in config.log where it belongs echo "$LIBMPDCLIENT2_PKG_ERRORS" >&5 as_fn_error $? "Package requirements (libmpdclient >= 2.0) were not met: $LIBMPDCLIENT2_PKG_ERRORS Consider adjusting the PKG_CONFIG_PATH environment variable if you installed software in a non-standard prefix. Alternatively, you may set the environment variables LIBMPDCLIENT2_CFLAGS and LIBMPDCLIENT2_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details." "$LINENO" 5 elif test $pkg_failed = untried; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it is in your PATH or set the PKG_CONFIG environment variable to the full path to pkg-config. Alternatively, you may set the environment variables LIBMPDCLIENT2_CFLAGS and LIBMPDCLIENT2_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details. To get pkg-config, see . See \`config.log' for more details" "$LINENO" 5; } else LIBMPDCLIENT2_CFLAGS=$pkg_cv_LIBMPDCLIENT2_CFLAGS LIBMPDCLIENT2_LIBS=$pkg_cv_LIBMPDCLIENT2_LIBS { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } fi fi if test x${enable_libmpdclient2} != xno; then USE_LIBMPDCLIENT2_TRUE= USE_LIBMPDCLIENT2_FALSE='#' else USE_LIBMPDCLIENT2_TRUE='#' USE_LIBMPDCLIENT2_FALSE= fi # Check whether --enable-python was given. if test "${enable_python+set}" = set; then : enableval=$enable_python; fi if test x"$enable_python" = xyes; then $as_echo "#define ENABLE_PYTHON 1" >>confdefs.h fi if test "x$enable_python" = "xyes"; then if test -n "$PYTHON"; then # If the user set $PYTHON, use it and don't search something else. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $PYTHON version is >= 2.3" >&5 $as_echo_n "checking whether $PYTHON version is >= 2.3... " >&6; } prog="import sys # split strings by '.' and convert to numeric. Append some zeros # because we need at least 4 digits for the hex conversion. # map returns an iterator in Python 3.0 and a list in 2.x minver = list(map(int, '2.3'.split('.'))) + [0, 0, 0] minverhex = 0 # xrange is not present in Python 3.0 and range returns an iterator for i in list(range(0, 4)): minverhex = (minverhex << 8) + minver[i] sys.exit(sys.hexversion < minverhex)" if { echo "$as_me:$LINENO: $PYTHON -c "$prog"" >&5 ($PYTHON -c "$prog") >&5 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then : { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } as_fn_error $? "Python interpreter is too old" "$LINENO" 5 fi am_display_PYTHON=$PYTHON else # Otherwise, try each interpreter until we find one that satisfies # VERSION. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a Python interpreter with version >= 2.3" >&5 $as_echo_n "checking for a Python interpreter with version >= 2.3... " >&6; } if ${am_cv_pathless_PYTHON+:} false; then : $as_echo_n "(cached) " >&6 else for am_cv_pathless_PYTHON in python python2 python3 python3.8 python3.7 python3.6 python3.5 python3.4 python3.3 python3.2 python3.1 python3.0 python2.7 python2.6 python2.5 python2.4 python2.3 python2.2 python2.1 python2.0 none; do test "$am_cv_pathless_PYTHON" = none && break prog="import sys # split strings by '.' and convert to numeric. Append some zeros # because we need at least 4 digits for the hex conversion. # map returns an iterator in Python 3.0 and a list in 2.x minver = list(map(int, '2.3'.split('.'))) + [0, 0, 0] minverhex = 0 # xrange is not present in Python 3.0 and range returns an iterator for i in list(range(0, 4)): minverhex = (minverhex << 8) + minver[i] sys.exit(sys.hexversion < minverhex)" if { echo "$as_me:$LINENO: $am_cv_pathless_PYTHON -c "$prog"" >&5 ($am_cv_pathless_PYTHON -c "$prog") >&5 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then : break fi done fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_pathless_PYTHON" >&5 $as_echo "$am_cv_pathless_PYTHON" >&6; } # Set $PYTHON to the absolute path of $am_cv_pathless_PYTHON. if test "$am_cv_pathless_PYTHON" = none; then PYTHON=: else # Extract the first word of "$am_cv_pathless_PYTHON", so it can be a program name with args. set dummy $am_cv_pathless_PYTHON; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_PYTHON+:} false; then : $as_echo_n "(cached) " >&6 else case $PYTHON in [\\/]* | ?:[\\/]*) ac_cv_path_PYTHON="$PYTHON" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_PYTHON="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi PYTHON=$ac_cv_path_PYTHON if test -n "$PYTHON"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PYTHON" >&5 $as_echo "$PYTHON" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi am_display_PYTHON=$am_cv_pathless_PYTHON fi if test "$PYTHON" = :; then no else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $am_display_PYTHON version" >&5 $as_echo_n "checking for $am_display_PYTHON version... " >&6; } if ${am_cv_python_version+:} false; then : $as_echo_n "(cached) " >&6 else am_cv_python_version=`$PYTHON -c "import sys; sys.stdout.write(sys.version[:3])"` fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_python_version" >&5 $as_echo "$am_cv_python_version" >&6; } PYTHON_VERSION=$am_cv_python_version PYTHON_PREFIX='${prefix}' PYTHON_EXEC_PREFIX='${exec_prefix}' { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $am_display_PYTHON platform" >&5 $as_echo_n "checking for $am_display_PYTHON platform... " >&6; } if ${am_cv_python_platform+:} false; then : $as_echo_n "(cached) " >&6 else am_cv_python_platform=`$PYTHON -c "import sys; sys.stdout.write(sys.platform)"` fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_python_platform" >&5 $as_echo "$am_cv_python_platform" >&6; } PYTHON_PLATFORM=$am_cv_python_platform # Just factor out some code duplication. am_python_setup_sysconfig="\ import sys # Prefer sysconfig over distutils.sysconfig, for better compatibility # with python 3.x. See automake bug#10227. try: import sysconfig except ImportError: can_use_sysconfig = 0 else: can_use_sysconfig = 1 # Can't use sysconfig in CPython 2.7, since it's broken in virtualenvs: # try: from platform import python_implementation if python_implementation() == 'CPython' and sys.version[:3] == '2.7': can_use_sysconfig = 0 except ImportError: pass" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $am_display_PYTHON script directory" >&5 $as_echo_n "checking for $am_display_PYTHON script directory... " >&6; } if ${am_cv_python_pythondir+:} false; then : $as_echo_n "(cached) " >&6 else if test "x$prefix" = xNONE then am_py_prefix=$ac_default_prefix else am_py_prefix=$prefix fi am_cv_python_pythondir=`$PYTHON -c " $am_python_setup_sysconfig if can_use_sysconfig: sitedir = sysconfig.get_path('purelib', vars={'base':'$am_py_prefix'}) else: from distutils import sysconfig sitedir = sysconfig.get_python_lib(0, 0, prefix='$am_py_prefix') sys.stdout.write(sitedir)"` case $am_cv_python_pythondir in $am_py_prefix*) am__strip_prefix=`echo "$am_py_prefix" | sed 's|.|.|g'` am_cv_python_pythondir=`echo "$am_cv_python_pythondir" | sed "s,^$am__strip_prefix,$PYTHON_PREFIX,"` ;; *) case $am_py_prefix in /usr|/System*) ;; *) am_cv_python_pythondir=$PYTHON_PREFIX/lib/python$PYTHON_VERSION/site-packages ;; esac ;; esac fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_python_pythondir" >&5 $as_echo "$am_cv_python_pythondir" >&6; } pythondir=$am_cv_python_pythondir pkgpythondir=\${pythondir}/$PACKAGE { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $am_display_PYTHON extension module directory" >&5 $as_echo_n "checking for $am_display_PYTHON extension module directory... " >&6; } if ${am_cv_python_pyexecdir+:} false; then : $as_echo_n "(cached) " >&6 else if test "x$exec_prefix" = xNONE then am_py_exec_prefix=$am_py_prefix else am_py_exec_prefix=$exec_prefix fi am_cv_python_pyexecdir=`$PYTHON -c " $am_python_setup_sysconfig if can_use_sysconfig: sitedir = sysconfig.get_path('platlib', vars={'platbase':'$am_py_prefix'}) else: from distutils import sysconfig sitedir = sysconfig.get_python_lib(1, 0, prefix='$am_py_prefix') sys.stdout.write(sitedir)"` case $am_cv_python_pyexecdir in $am_py_exec_prefix*) am__strip_prefix=`echo "$am_py_exec_prefix" | sed 's|.|.|g'` am_cv_python_pyexecdir=`echo "$am_cv_python_pyexecdir" | sed "s,^$am__strip_prefix,$PYTHON_EXEC_PREFIX,"` ;; *) case $am_py_exec_prefix in /usr|/System*) ;; *) am_cv_python_pyexecdir=$PYTHON_EXEC_PREFIX/lib/python$PYTHON_VERSION/site-packages ;; esac ;; esac fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_python_pyexecdir" >&5 $as_echo "$am_cv_python_pyexecdir" >&6; } pyexecdir=$am_cv_python_pyexecdir pkgpyexecdir=\${pyexecdir}/$PACKAGE fi if test "x$PYTHON" = "x:"; then enable_python=no fi fi if test "x$enable_python" = "xyes"; then PY_PREFIX=`$PYTHON -c 'import sys ; print sys.prefix'` PY_EXEC_PREFIX=`$PYTHON -c 'import sys ; print sys.exec_prefix'` PYTHON_LIBS="-lpython$PYTHON_VERSION" PYTHON_LIB_LOC="-L$PY_EXEC_PREFIX/lib/python$PYTHON_VERSION/config" PYTHON_CFLAGS="-I$PY_PREFIX/include/python$PYTHON_VERSION" PYTHON_MAKEFILE="$PY_EXEC_PREFIX/lib/python$PYTHON_VERSION/config/Makefile" PYTHON_LOCALMODLIBS=`sed -n -e 's/^LOCALMODLIBS=\(.*\)/\1/p' $PYTHON_MAKEFILE` PYTHON_BASEMODLIBS=`sed -n -e 's/^BASEMODLIBS=\(.*\)/\1/p' $PYTHON_MAKEFILE` PYTHON_OTHER_LIBS=`sed -n -e 's/^LIBS=\(.*\)/\1/p' $PYTHON_MAKEFILE` PYTHON_EXTRA_LIBS="$PYTHON_LOCALMODLIBS $PYTHON_BASEMODLIBS $PYTHON_OTHER_LIBS" pkg_failed=no { $as_echo "$as_me:${as_lineno-$LINENO}: checking for PYGTK" >&5 $as_echo_n "checking for PYGTK... " >&6; } if test -n "$PYGTK_CFLAGS"; then pkg_cv_PYGTK_CFLAGS="$PYGTK_CFLAGS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"pygobject-2.0 >= 2.11.5 pygtk-2.0 >= 2.8.0\""; } >&5 ($PKG_CONFIG --exists --print-errors "pygobject-2.0 >= 2.11.5 pygtk-2.0 >= 2.8.0") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_PYGTK_CFLAGS=`$PKG_CONFIG --cflags "pygobject-2.0 >= 2.11.5 pygtk-2.0 >= 2.8.0" 2>/dev/null` test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes fi else pkg_failed=untried fi if test -n "$PYGTK_LIBS"; then pkg_cv_PYGTK_LIBS="$PYGTK_LIBS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"pygobject-2.0 >= 2.11.5 pygtk-2.0 >= 2.8.0\""; } >&5 ($PKG_CONFIG --exists --print-errors "pygobject-2.0 >= 2.11.5 pygtk-2.0 >= 2.8.0") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_PYGTK_LIBS=`$PKG_CONFIG --libs "pygobject-2.0 >= 2.11.5 pygtk-2.0 >= 2.8.0" 2>/dev/null` test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes fi else pkg_failed=untried fi if test $pkg_failed = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then _pkg_short_errors_supported=yes else _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then PYGTK_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "pygobject-2.0 >= 2.11.5 pygtk-2.0 >= 2.8.0" 2>&1` else PYGTK_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "pygobject-2.0 >= 2.11.5 pygtk-2.0 >= 2.8.0" 2>&1` fi # Put the nasty error message in config.log where it belongs echo "$PYGTK_PKG_ERRORS" >&5 as_fn_error $? "Package requirements (pygobject-2.0 >= 2.11.5 pygtk-2.0 >= 2.8.0) were not met: $PYGTK_PKG_ERRORS Consider adjusting the PKG_CONFIG_PATH environment variable if you installed software in a non-standard prefix. Alternatively, you may set the environment variables PYGTK_CFLAGS and PYGTK_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details." "$LINENO" 5 elif test $pkg_failed = untried; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it is in your PATH or set the PKG_CONFIG environment variable to the full path to pkg-config. Alternatively, you may set the environment variables PYGTK_CFLAGS and PYGTK_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details. To get pkg-config, see . See \`config.log' for more details" "$LINENO" 5; } else PYGTK_CFLAGS=$pkg_cv_PYGTK_CFLAGS PYGTK_LIBS=$pkg_cv_PYGTK_LIBS { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pygtk defs" >&5 $as_echo_n "checking for pygtk defs... " >&6; } PYGTK_DEFSDIR=`$PKG_CONFIG --variable=defsdir pygtk-2.0` { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PYGTK_DEFSDIR" >&5 $as_echo "$PYGTK_DEFSDIR" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pygtk codegen" >&5 $as_echo_n "checking for pygtk codegen... " >&6; } PYGTK_CODEGEN="$PYTHON `$PKG_CONFIG --variable=codegendir pygtk-2.0`/codegen.py" { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PYGTK_CODEGEN" >&5 $as_echo "$PYGTK_CODEGEN" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pygtk h2def" >&5 $as_echo_n "checking for pygtk h2def... " >&6; } PYGTK_H2DEF="$PYTHON `$PKG_CONFIG --variable=codegendir pygtk-2.0`/h2def.py" { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PYGTK_H2DEF" >&5 $as_echo "$PYGTK_H2DEF" >&6; } fi if test x"$enable_python" = xyes; then ENABLE_PYTHON_TRUE= ENABLE_PYTHON_FALSE='#' else ENABLE_PYTHON_TRUE='#' ENABLE_PYTHON_FALSE= fi # Silence warning: ar: 'u' modifier ignored since 'D' is the default AR_FLAGS=cr # Check whether --enable-search was given. if test "${enable_search+set}" = set; then : enableval=$enable_search; fi if test x"$enable_search" != xno; then $as_echo "#define ENABLE_SEARCH 1" >>confdefs.h fi # Check whether --enable-mpdidle was given. if test "${enable_mpdidle+set}" = set; then : enableval=$enable_mpdidle; fi if test x"$enable_mpdidle" != xno; then $as_echo "#define ENABLE_MPDIDLE 1" >>confdefs.h fi if test x"$enable_mpdidle" != xno; then MPD_GLIB_TRUE= MPD_GLIB_FALSE='#' else MPD_GLIB_TRUE='#' MPD_GLIB_FALSE= fi # Check whether --enable-playlists was given. if test "${enable_playlists+set}" = set; then : enableval=$enable_playlists; fi if test x"$enable_playlists" != xno; then $as_echo "#define ENABLE_STOREDPLAYLISTS 1" >>confdefs.h fi # Check whether --enable-dbus was given. if test "${enable_dbus+set}" = set; then : enableval=$enable_dbus; fi if test x"$enable_dbus" != xno; then pkg_failed=no { $as_echo "$as_me:${as_lineno-$LINENO}: checking for DBUS" >&5 $as_echo_n "checking for DBUS... " >&6; } if test -n "$DBUS_CFLAGS"; then pkg_cv_DBUS_CFLAGS="$DBUS_CFLAGS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"dbus-glib-1 >= 0.35\""; } >&5 ($PKG_CONFIG --exists --print-errors "dbus-glib-1 >= 0.35") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_DBUS_CFLAGS=`$PKG_CONFIG --cflags "dbus-glib-1 >= 0.35" 2>/dev/null` test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes fi else pkg_failed=untried fi if test -n "$DBUS_LIBS"; then pkg_cv_DBUS_LIBS="$DBUS_LIBS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"dbus-glib-1 >= 0.35\""; } >&5 ($PKG_CONFIG --exists --print-errors "dbus-glib-1 >= 0.35") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_DBUS_LIBS=`$PKG_CONFIG --libs "dbus-glib-1 >= 0.35" 2>/dev/null` test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes fi else pkg_failed=untried fi if test $pkg_failed = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then _pkg_short_errors_supported=yes else _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then DBUS_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "dbus-glib-1 >= 0.35" 2>&1` else DBUS_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "dbus-glib-1 >= 0.35" 2>&1` fi # Put the nasty error message in config.log where it belongs echo "$DBUS_PKG_ERRORS" >&5 as_fn_error $? "Package requirements (dbus-glib-1 >= 0.35) were not met: $DBUS_PKG_ERRORS Consider adjusting the PKG_CONFIG_PATH environment variable if you installed software in a non-standard prefix. Alternatively, you may set the environment variables DBUS_CFLAGS and DBUS_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details." "$LINENO" 5 elif test $pkg_failed = untried; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it is in your PATH or set the PKG_CONFIG environment variable to the full path to pkg-config. Alternatively, you may set the environment variables DBUS_CFLAGS and DBUS_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details. To get pkg-config, see . See \`config.log' for more details" "$LINENO" 5; } else DBUS_CFLAGS=$pkg_cv_DBUS_CFLAGS DBUS_LIBS=$pkg_cv_DBUS_LIBS { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } fi DBUS_CFLAGS="$DBUS_CFLAGS -DDBUS_API_SUBJECT_TO_CHANGE" DBUS_GLIB_BIN="`$PKG_CONFIG --variable=exec_prefix dbus-glib-1`/bin" fi if test x"$enable_dbus" != xno; then USE_DBUS_TRUE= USE_DBUS_FALSE='#' else USE_DBUS_TRUE='#' USE_DBUS_FALSE= fi # Check whether --enable-avahi was given. if test "${enable_avahi+set}" = set; then : enableval=$enable_avahi; fi if test x"$enable_avahi" != xno; then $as_echo "#define ENABLE_AVAHI 1" >>confdefs.h pkg_failed=no { $as_echo "$as_me:${as_lineno-$LINENO}: checking for AVAHI" >&5 $as_echo_n "checking for AVAHI... " >&6; } if test -n "$AVAHI_CFLAGS"; then pkg_cv_AVAHI_CFLAGS="$AVAHI_CFLAGS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"avahi-client avahi-glib\""; } >&5 ($PKG_CONFIG --exists --print-errors "avahi-client avahi-glib") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_AVAHI_CFLAGS=`$PKG_CONFIG --cflags "avahi-client avahi-glib" 2>/dev/null` test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes fi else pkg_failed=untried fi if test -n "$AVAHI_LIBS"; then pkg_cv_AVAHI_LIBS="$AVAHI_LIBS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"avahi-client avahi-glib\""; } >&5 ($PKG_CONFIG --exists --print-errors "avahi-client avahi-glib") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_AVAHI_LIBS=`$PKG_CONFIG --libs "avahi-client avahi-glib" 2>/dev/null` test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes fi else pkg_failed=untried fi if test $pkg_failed = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then _pkg_short_errors_supported=yes else _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then AVAHI_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "avahi-client avahi-glib" 2>&1` else AVAHI_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "avahi-client avahi-glib" 2>&1` fi # Put the nasty error message in config.log where it belongs echo "$AVAHI_PKG_ERRORS" >&5 as_fn_error $? "Package requirements (avahi-client avahi-glib) were not met: $AVAHI_PKG_ERRORS Consider adjusting the PKG_CONFIG_PATH environment variable if you installed software in a non-standard prefix. Alternatively, you may set the environment variables AVAHI_CFLAGS and AVAHI_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details." "$LINENO" 5 elif test $pkg_failed = untried; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it is in your PATH or set the PKG_CONFIG environment variable to the full path to pkg-config. Alternatively, you may set the environment variables AVAHI_CFLAGS and AVAHI_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details. To get pkg-config, see . See \`config.log' for more details" "$LINENO" 5; } else AVAHI_CFLAGS=$pkg_cv_AVAHI_CFLAGS AVAHI_LIBS=$pkg_cv_AVAHI_LIBS { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } fi fi if test x"$enable_avahi" != xno; then USE_AVAHI_TRUE= USE_AVAHI_FALSE='#' else USE_AVAHI_TRUE='#' USE_AVAHI_FALSE= fi # Check whether --enable-taglib was given. if test "${enable_taglib+set}" = set; then : enableval=$enable_taglib; fi if test x"$enable_taglib" != xno; then $as_echo "#define ENABLE_TAGLIB 1" >>confdefs.h pkg_failed=no { $as_echo "$as_me:${as_lineno-$LINENO}: checking for TAGLIB" >&5 $as_echo_n "checking for TAGLIB... " >&6; } if test -n "$TAGLIB_CFLAGS"; then pkg_cv_TAGLIB_CFLAGS="$TAGLIB_CFLAGS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"taglib_c\""; } >&5 ($PKG_CONFIG --exists --print-errors "taglib_c") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_TAGLIB_CFLAGS=`$PKG_CONFIG --cflags "taglib_c" 2>/dev/null` test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes fi else pkg_failed=untried fi if test -n "$TAGLIB_LIBS"; then pkg_cv_TAGLIB_LIBS="$TAGLIB_LIBS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"taglib_c\""; } >&5 ($PKG_CONFIG --exists --print-errors "taglib_c") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_TAGLIB_LIBS=`$PKG_CONFIG --libs "taglib_c" 2>/dev/null` test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes fi else pkg_failed=untried fi if test $pkg_failed = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then _pkg_short_errors_supported=yes else _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then TAGLIB_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "taglib_c" 2>&1` else TAGLIB_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "taglib_c" 2>&1` fi # Put the nasty error message in config.log where it belongs echo "$TAGLIB_PKG_ERRORS" >&5 as_fn_error $? "Package requirements (taglib_c) were not met: $TAGLIB_PKG_ERRORS Consider adjusting the PKG_CONFIG_PATH environment variable if you installed software in a non-standard prefix. Alternatively, you may set the environment variables TAGLIB_CFLAGS and TAGLIB_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details." "$LINENO" 5 elif test $pkg_failed = untried; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it is in your PATH or set the PKG_CONFIG environment variable to the full path to pkg-config. Alternatively, you may set the environment variables TAGLIB_CFLAGS and TAGLIB_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details. To get pkg-config, see . See \`config.log' for more details" "$LINENO" 5; } else TAGLIB_CFLAGS=$pkg_cv_TAGLIB_CFLAGS TAGLIB_LIBS=$pkg_cv_TAGLIB_LIBS { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } fi fi # Check whether --enable-deprecations was given. if test "${enable_deprecations+set}" = set; then : enableval=$enable_deprecations; fi if test x"$enable_deprecations" = xyes; then WARNINGS="$WARNINGS -DG_DISABLE_DEPRECATED \ -DGDK_DISABLE_DEPRECATED \ -DGTK_DISABLE_SINGLE_INCLUDES \ -DGDK_PIXBUF_DISABLE_DEPRECATED \ -DGTK_DISABLE_DEPRECATED \ -DGSEAL_ENABLE \ -DG_DISABLE_SINGLE_INCLUDES" fi PLUGINDIR='${libdir}/ario/plugins' PLUGIN_DATA_DIR='${pkgdatadir}/plugins' ac_config_files="$ac_config_files Makefile bindings/Makefile bindings/python/Makefile src/Makefile data/Makefile data/icons/Makefile data/icons/hicolor/Makefile data/icons/hicolor/16x16/Makefile data/icons/hicolor/16x16/apps/Makefile data/icons/hicolor/22x22/Makefile data/icons/hicolor/22x22/apps/Makefile data/icons/hicolor/24x24/Makefile data/icons/hicolor/24x24/apps/Makefile data/icons/hicolor/32x32/Makefile data/icons/hicolor/32x32/apps/Makefile data/icons/hicolor/48x48/Makefile data/icons/hicolor/48x48/apps/Makefile data/icons/hicolor/64x64/Makefile data/icons/hicolor/64x64/apps/Makefile data/icons/hicolor/72x72/Makefile data/icons/hicolor/72x72/apps/Makefile data/icons/hicolor/96x96/Makefile data/icons/hicolor/96x96/apps/Makefile data/icons/hicolor/128x128/Makefile data/icons/hicolor/128x128/apps/Makefile data/icons/hicolor/256x256/Makefile data/icons/hicolor/256x256/apps/Makefile data/icons/hicolor/scalable/Makefile data/icons/hicolor/scalable/apps/Makefile plugins/Makefile plugins/filesystem/Makefile plugins/information/Makefile plugins/mmkeys/Makefile plugins/radios/Makefile po/Makefile.in data/ario.desktop.in" cat >confcache <<\_ACEOF # This file is a shell script that caches the results of configure # tests run on this system so they can be shared between configure # scripts and configure runs, see configure's option --config-cache. # It is not useful on other systems. If it contains results you don't # want to keep, you may remove or edit it. # # config.status only pays attention to the cache file if you give it # the --recheck option to rerun configure. # # `ac_cv_env_foo' variables (set or unset) will be overridden when # loading this file, other *unset* `ac_cv_foo' will be assigned the # following values. _ACEOF # The following way of writing the cache mishandles newlines in values, # but we know of no workaround that is simple, portable, and efficient. # So, we kill variables containing newlines. # Ultrix sh set writes to stderr and can't be redirected directly, # and sets the high bit in the cache file unless we assign to the vars. ( for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do eval ac_val=\$$ac_var case $ac_val in #( *${as_nl}*) case $ac_var in #( *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( *) { eval $ac_var=; unset $ac_var;} ;; esac ;; esac done (set) 2>&1 | case $as_nl`(ac_space=' '; set) 2>&1` in #( *${as_nl}ac_space=\ *) # `set' does not quote correctly, so add quotes: double-quote # substitution turns \\\\ into \\, and sed turns \\ into \. sed -n \ "s/'/'\\\\''/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" ;; #( *) # `set' quotes correctly as required by POSIX, so do not add quotes. sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" ;; esac | sort ) | sed ' /^ac_cv_env_/b end t clear :clear s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ t end s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ :end' >>confcache if diff "$cache_file" confcache >/dev/null 2>&1; then :; else if test -w "$cache_file"; then if test "x$cache_file" != "x/dev/null"; then { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5 $as_echo "$as_me: updating cache $cache_file" >&6;} if test ! -f "$cache_file" || test -h "$cache_file"; then cat confcache >"$cache_file" else case $cache_file in #( */* | ?:*) mv -f confcache "$cache_file"$$ && mv -f "$cache_file"$$ "$cache_file" ;; #( *) mv -f confcache "$cache_file" ;; esac fi fi else { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5 $as_echo "$as_me: not updating unwritable cache $cache_file" >&6;} fi fi rm -f confcache test "x$prefix" = xNONE && prefix=$ac_default_prefix # Let make expand exec_prefix. test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' DEFS=-DHAVE_CONFIG_H ac_libobjs= ac_ltlibobjs= for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue # 1. Remove the extension, and $U if already installed. ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' ac_i=`$as_echo "$ac_i" | sed "$ac_script"` # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR # will be set to the directory where LIBOBJS objects are built. as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext" as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo' done LIBOBJS=$ac_libobjs LTLIBOBJS=$ac_ltlibobjs { $as_echo "$as_me:${as_lineno-$LINENO}: checking that generated files are newer than configure" >&5 $as_echo_n "checking that generated files are newer than configure... " >&6; } if test -n "$am_sleep_pid"; then # Hide warnings about reused PIDs. wait $am_sleep_pid 2>/dev/null fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: done" >&5 $as_echo "done" >&6; } if test -n "$EXEEXT"; then am__EXEEXT_TRUE= am__EXEEXT_FALSE='#' else am__EXEEXT_TRUE='#' am__EXEEXT_FALSE= fi if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then as_fn_error $? "conditional \"AMDEP\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then as_fn_error $? "conditional \"am__fastdepCC\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi ac_config_commands="$ac_config_commands po/stamp-it" if test -z "${USE_XMMS2_TRUE}" && test -z "${USE_XMMS2_FALSE}"; then as_fn_error $? "conditional \"USE_XMMS2\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${USE_LIBMPDCLIENT2_TRUE}" && test -z "${USE_LIBMPDCLIENT2_FALSE}"; then as_fn_error $? "conditional \"USE_LIBMPDCLIENT2\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${ENABLE_PYTHON_TRUE}" && test -z "${ENABLE_PYTHON_FALSE}"; then as_fn_error $? "conditional \"ENABLE_PYTHON\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${MPD_GLIB_TRUE}" && test -z "${MPD_GLIB_FALSE}"; then as_fn_error $? "conditional \"MPD_GLIB\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${USE_DBUS_TRUE}" && test -z "${USE_DBUS_FALSE}"; then as_fn_error $? "conditional \"USE_DBUS\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${USE_AVAHI_TRUE}" && test -z "${USE_AVAHI_FALSE}"; then as_fn_error $? "conditional \"USE_AVAHI\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi : "${CONFIG_STATUS=./config.status}" ac_write_fail=0 ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files $CONFIG_STATUS" { $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5 $as_echo "$as_me: creating $CONFIG_STATUS" >&6;} as_write_fail=0 cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1 #! $SHELL # Generated by $as_me. # Run this file to recreate the current configuration. # Compiler output produced by configure, useful for debugging # configure, is in config.log if it exists. debug=false ac_cs_recheck=false ac_cs_silent=false SHELL=\${CONFIG_SHELL-$SHELL} export SHELL _ASEOF cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1 ## -------------------- ## ## M4sh Initialization. ## ## -------------------- ## # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi as_nl=' ' export as_nl # Printing a long string crashes Solaris 7 /usr/bin/printf. as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo # Prefer a ksh shell builtin over an external printf program on Solaris, # but without wasting forks for bash or zsh. if test -z "$BASH_VERSION$ZSH_VERSION" \ && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='print -r --' as_echo_n='print -rn --' elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='printf %s\n' as_echo_n='printf %s' else if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' as_echo_n='/usr/ucb/echo -n' else as_echo_body='eval expr "X$1" : "X\\(.*\\)"' as_echo_n_body='eval arg=$1; case $arg in #( *"$as_nl"*) expr "X$arg" : "X\\(.*\\)$as_nl"; arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; esac; expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" ' export as_echo_n_body as_echo_n='sh -c $as_echo_n_body as_echo' fi export as_echo_body as_echo='sh -c $as_echo_body as_echo' fi # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || PATH_SEPARATOR=';' } fi # IFS # We need space, tab and new line, in precisely that order. Quoting is # there to prevent editors from complaining about space-tab. # (If _AS_PATH_WALK were called with IFS unset, it would disable word # splitting by setting IFS to empty value.) IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. as_myself= case $0 in #(( *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break done IFS=$as_save_IFS ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 exit 1 fi # Unset variables that we do not need and which cause bugs (e.g. in # pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" # suppresses any "Segmentation fault" message there. '((' could # trigger a bug in pdksh 5.2.14. for as_var in BASH_ENV ENV MAIL MAILPATH do eval test x\${$as_var+set} = xset \ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : done PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. LC_ALL=C export LC_ALL LANGUAGE=C export LANGUAGE # CDPATH. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH # as_fn_error STATUS ERROR [LINENO LOG_FD] # ---------------------------------------- # Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are # provided, also output the error to LOG_FD, referencing LINENO. Then exit the # script with STATUS, using 1 if that was 0. as_fn_error () { as_status=$1; test $as_status -eq 0 && as_status=1 if test "$4"; then as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 fi $as_echo "$as_me: error: $2" >&2 as_fn_exit $as_status } # as_fn_error # as_fn_set_status STATUS # ----------------------- # Set $? to STATUS, without forking. as_fn_set_status () { return $1 } # as_fn_set_status # as_fn_exit STATUS # ----------------- # Exit the shell with STATUS, even in a "trap 0" or "set -e" context. as_fn_exit () { set +e as_fn_set_status $1 exit $1 } # as_fn_exit # as_fn_unset VAR # --------------- # Portably unset VAR. as_fn_unset () { { eval $1=; unset $1;} } as_unset=as_fn_unset # as_fn_append VAR VALUE # ---------------------- # Append the text in VALUE to the end of the definition contained in VAR. Take # advantage of any shell optimizations that allow amortized linear growth over # repeated appends, instead of the typical quadratic growth present in naive # implementations. if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : eval 'as_fn_append () { eval $1+=\$2 }' else as_fn_append () { eval $1=\$$1\$2 } fi # as_fn_append # as_fn_arith ARG... # ------------------ # Perform arithmetic evaluation on the ARGs, and store the result in the # global $as_val. Take advantage of shells that can avoid forks. The arguments # must be portable across $(()) and expr. if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : eval 'as_fn_arith () { as_val=$(( $* )) }' else as_fn_arith () { as_val=`expr "$@" || test $? -eq 1` } fi # as_fn_arith if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then as_dirname=dirname else as_dirname=false fi as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || $as_echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } /^X\/\(\/\/\)$/{ s//\1/ q } /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in #((((( -n*) case `echo 'xy\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. xy) ECHO_C='\c';; *) echo `echo ksh88 bug on AIX 6.1` > /dev/null ECHO_T=' ';; esac;; *) ECHO_N='-n';; esac rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file else rm -f conf$$.dir mkdir conf$$.dir 2>/dev/null fi if (echo >conf$$.file) 2>/dev/null; then if ln -s conf$$.file conf$$ 2>/dev/null; then as_ln_s='ln -s' # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. # In both cases, we have to default to `cp -pR'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -pR' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -pR' fi else as_ln_s='cp -pR' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null # as_fn_mkdir_p # ------------- # Create "$as_dir" as a directory, including parents if necessary. as_fn_mkdir_p () { case $as_dir in #( -*) as_dir=./$as_dir;; esac test -d "$as_dir" || eval $as_mkdir_p || { as_dirs= while :; do case $as_dir in #( *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( *) as_qdir=$as_dir;; esac as_dirs="'$as_qdir' $as_dirs" as_dir=`$as_dirname -- "$as_dir" || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` test -d "$as_dir" && break done test -z "$as_dirs" || eval "mkdir $as_dirs" } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" } # as_fn_mkdir_p if mkdir -p . 2>/dev/null; then as_mkdir_p='mkdir -p "$as_dir"' else test -d ./-p && rmdir ./-p as_mkdir_p=false fi # as_fn_executable_p FILE # ----------------------- # Test if FILE is an executable regular file. as_fn_executable_p () { test -f "$1" && test -x "$1" } # as_fn_executable_p as_test_x='test -x' as_executable_p=as_fn_executable_p # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" exec 6>&1 ## ----------------------------------- ## ## Main body of $CONFIG_STATUS script. ## ## ----------------------------------- ## _ASEOF test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1 cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # Save the log message, to keep $0 and so on meaningful, and to # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" This file was extended by Ario $as_me 1.6, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES CONFIG_HEADERS = $CONFIG_HEADERS CONFIG_LINKS = $CONFIG_LINKS CONFIG_COMMANDS = $CONFIG_COMMANDS $ $0 $@ on `(hostname || uname -n) 2>/dev/null | sed 1q` " _ACEOF case $ac_config_files in *" "*) set x $ac_config_files; shift; ac_config_files=$*;; esac case $ac_config_headers in *" "*) set x $ac_config_headers; shift; ac_config_headers=$*;; esac cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 # Files that config.status was made for. config_files="$ac_config_files" config_headers="$ac_config_headers" config_commands="$ac_config_commands" _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 ac_cs_usage="\ \`$as_me' instantiates files and other configuration actions from templates according to the current configuration. Unless the files and actions are specified as TAGs, all are instantiated by default. Usage: $0 [OPTION]... [TAG]... -h, --help print this help, then exit -V, --version print version number and configuration settings, then exit --config print configuration, then exit -q, --quiet, --silent do not print progress messages -d, --debug don't remove temporary files --recheck update $as_me by reconfiguring in the same conditions --file=FILE[:TEMPLATE] instantiate the configuration file FILE --header=FILE[:TEMPLATE] instantiate the configuration header FILE Configuration files: $config_files Configuration headers: $config_headers Configuration commands: $config_commands Report bugs to ." _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ Ario config.status 1.6 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" Copyright (C) 2012 Free Software Foundation, Inc. This config.status script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it." ac_pwd='$ac_pwd' srcdir='$srcdir' INSTALL='$INSTALL' MKDIR_P='$MKDIR_P' AWK='$AWK' test -n "\$AWK" || AWK=awk _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # The default lists apply if the user does not specify any file. ac_need_defaults=: while test $# != 0 do case $1 in --*=?*) ac_option=`expr "X$1" : 'X\([^=]*\)='` ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'` ac_shift=: ;; --*=) ac_option=`expr "X$1" : 'X\([^=]*\)='` ac_optarg= ac_shift=: ;; *) ac_option=$1 ac_optarg=$2 ac_shift=shift ;; esac case $ac_option in # Handling of the options. -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) ac_cs_recheck=: ;; --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) $as_echo "$ac_cs_version"; exit ;; --config | --confi | --conf | --con | --co | --c ) $as_echo "$ac_cs_config"; exit ;; --debug | --debu | --deb | --de | --d | -d ) debug=: ;; --file | --fil | --fi | --f ) $ac_shift case $ac_optarg in *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; '') as_fn_error $? "missing file argument" ;; esac as_fn_append CONFIG_FILES " '$ac_optarg'" ac_need_defaults=false;; --header | --heade | --head | --hea ) $ac_shift case $ac_optarg in *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; esac as_fn_append CONFIG_HEADERS " '$ac_optarg'" ac_need_defaults=false;; --he | --h) # Conflict between --help and --header as_fn_error $? "ambiguous option: \`$1' Try \`$0 --help' for more information.";; --help | --hel | -h ) $as_echo "$ac_cs_usage"; exit ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil | --si | --s) ac_cs_silent=: ;; # This is an error. -*) as_fn_error $? "unrecognized option: \`$1' Try \`$0 --help' for more information." ;; *) as_fn_append ac_config_targets " $1" ac_need_defaults=false ;; esac shift done ac_configure_extra_args= if $ac_cs_silent; then exec 6>/dev/null ac_configure_extra_args="$ac_configure_extra_args --silent" fi _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 if \$ac_cs_recheck; then set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion shift \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6 CONFIG_SHELL='$SHELL' export CONFIG_SHELL exec "\$@" fi _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 exec 5>>config.log { echo sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX ## Running $as_me. ## _ASBOX $as_echo "$ac_log" } >&5 _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 # # INIT-COMMANDS # AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir" # The HP-UX ksh and POSIX shell print the target directory to stdout # if CDPATH is set. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH sed_quote_subst='$sed_quote_subst' double_quote_subst='$double_quote_subst' delay_variable_subst='$delay_variable_subst' macro_version='`$ECHO "$macro_version" | $SED "$delay_single_quote_subst"`' macro_revision='`$ECHO "$macro_revision" | $SED "$delay_single_quote_subst"`' enable_shared='`$ECHO "$enable_shared" | $SED "$delay_single_quote_subst"`' enable_static='`$ECHO "$enable_static" | $SED "$delay_single_quote_subst"`' pic_mode='`$ECHO "$pic_mode" | $SED "$delay_single_quote_subst"`' enable_fast_install='`$ECHO "$enable_fast_install" | $SED "$delay_single_quote_subst"`' shared_archive_member_spec='`$ECHO "$shared_archive_member_spec" | $SED "$delay_single_quote_subst"`' SHELL='`$ECHO "$SHELL" | $SED "$delay_single_quote_subst"`' ECHO='`$ECHO "$ECHO" | $SED "$delay_single_quote_subst"`' PATH_SEPARATOR='`$ECHO "$PATH_SEPARATOR" | $SED "$delay_single_quote_subst"`' host_alias='`$ECHO "$host_alias" | $SED "$delay_single_quote_subst"`' host='`$ECHO "$host" | $SED "$delay_single_quote_subst"`' host_os='`$ECHO "$host_os" | $SED "$delay_single_quote_subst"`' build_alias='`$ECHO "$build_alias" | $SED "$delay_single_quote_subst"`' build='`$ECHO "$build" | $SED "$delay_single_quote_subst"`' build_os='`$ECHO "$build_os" | $SED "$delay_single_quote_subst"`' SED='`$ECHO "$SED" | $SED "$delay_single_quote_subst"`' Xsed='`$ECHO "$Xsed" | $SED "$delay_single_quote_subst"`' GREP='`$ECHO "$GREP" | $SED "$delay_single_quote_subst"`' EGREP='`$ECHO "$EGREP" | $SED "$delay_single_quote_subst"`' FGREP='`$ECHO "$FGREP" | $SED "$delay_single_quote_subst"`' LD='`$ECHO "$LD" | $SED "$delay_single_quote_subst"`' NM='`$ECHO "$NM" | $SED "$delay_single_quote_subst"`' LN_S='`$ECHO "$LN_S" | $SED "$delay_single_quote_subst"`' max_cmd_len='`$ECHO "$max_cmd_len" | $SED "$delay_single_quote_subst"`' ac_objext='`$ECHO "$ac_objext" | $SED "$delay_single_quote_subst"`' exeext='`$ECHO "$exeext" | $SED "$delay_single_quote_subst"`' lt_unset='`$ECHO "$lt_unset" | $SED "$delay_single_quote_subst"`' lt_SP2NL='`$ECHO "$lt_SP2NL" | $SED "$delay_single_quote_subst"`' lt_NL2SP='`$ECHO "$lt_NL2SP" | $SED "$delay_single_quote_subst"`' lt_cv_to_host_file_cmd='`$ECHO "$lt_cv_to_host_file_cmd" | $SED "$delay_single_quote_subst"`' lt_cv_to_tool_file_cmd='`$ECHO "$lt_cv_to_tool_file_cmd" | $SED "$delay_single_quote_subst"`' reload_flag='`$ECHO "$reload_flag" | $SED "$delay_single_quote_subst"`' reload_cmds='`$ECHO "$reload_cmds" | $SED "$delay_single_quote_subst"`' OBJDUMP='`$ECHO "$OBJDUMP" | $SED "$delay_single_quote_subst"`' deplibs_check_method='`$ECHO "$deplibs_check_method" | $SED "$delay_single_quote_subst"`' file_magic_cmd='`$ECHO "$file_magic_cmd" | $SED "$delay_single_quote_subst"`' file_magic_glob='`$ECHO "$file_magic_glob" | $SED "$delay_single_quote_subst"`' want_nocaseglob='`$ECHO "$want_nocaseglob" | $SED "$delay_single_quote_subst"`' DLLTOOL='`$ECHO "$DLLTOOL" | $SED "$delay_single_quote_subst"`' sharedlib_from_linklib_cmd='`$ECHO "$sharedlib_from_linklib_cmd" | $SED "$delay_single_quote_subst"`' AR='`$ECHO "$AR" | $SED "$delay_single_quote_subst"`' AR_FLAGS='`$ECHO "$AR_FLAGS" | $SED "$delay_single_quote_subst"`' archiver_list_spec='`$ECHO "$archiver_list_spec" | $SED "$delay_single_quote_subst"`' STRIP='`$ECHO "$STRIP" | $SED "$delay_single_quote_subst"`' RANLIB='`$ECHO "$RANLIB" | $SED "$delay_single_quote_subst"`' old_postinstall_cmds='`$ECHO "$old_postinstall_cmds" | $SED "$delay_single_quote_subst"`' old_postuninstall_cmds='`$ECHO "$old_postuninstall_cmds" | $SED "$delay_single_quote_subst"`' old_archive_cmds='`$ECHO "$old_archive_cmds" | $SED "$delay_single_quote_subst"`' lock_old_archive_extraction='`$ECHO "$lock_old_archive_extraction" | $SED "$delay_single_quote_subst"`' CC='`$ECHO "$CC" | $SED "$delay_single_quote_subst"`' CFLAGS='`$ECHO "$CFLAGS" | $SED "$delay_single_quote_subst"`' compiler='`$ECHO "$compiler" | $SED "$delay_single_quote_subst"`' GCC='`$ECHO "$GCC" | $SED "$delay_single_quote_subst"`' lt_cv_sys_global_symbol_pipe='`$ECHO "$lt_cv_sys_global_symbol_pipe" | $SED "$delay_single_quote_subst"`' lt_cv_sys_global_symbol_to_cdecl='`$ECHO "$lt_cv_sys_global_symbol_to_cdecl" | $SED "$delay_single_quote_subst"`' lt_cv_sys_global_symbol_to_import='`$ECHO "$lt_cv_sys_global_symbol_to_import" | $SED "$delay_single_quote_subst"`' lt_cv_sys_global_symbol_to_c_name_address='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address" | $SED "$delay_single_quote_subst"`' lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address_lib_prefix" | $SED "$delay_single_quote_subst"`' lt_cv_nm_interface='`$ECHO "$lt_cv_nm_interface" | $SED "$delay_single_quote_subst"`' nm_file_list_spec='`$ECHO "$nm_file_list_spec" | $SED "$delay_single_quote_subst"`' lt_sysroot='`$ECHO "$lt_sysroot" | $SED "$delay_single_quote_subst"`' lt_cv_truncate_bin='`$ECHO "$lt_cv_truncate_bin" | $SED "$delay_single_quote_subst"`' objdir='`$ECHO "$objdir" | $SED "$delay_single_quote_subst"`' MAGIC_CMD='`$ECHO "$MAGIC_CMD" | $SED "$delay_single_quote_subst"`' lt_prog_compiler_no_builtin_flag='`$ECHO "$lt_prog_compiler_no_builtin_flag" | $SED "$delay_single_quote_subst"`' lt_prog_compiler_pic='`$ECHO "$lt_prog_compiler_pic" | $SED "$delay_single_quote_subst"`' lt_prog_compiler_wl='`$ECHO "$lt_prog_compiler_wl" | $SED "$delay_single_quote_subst"`' lt_prog_compiler_static='`$ECHO "$lt_prog_compiler_static" | $SED "$delay_single_quote_subst"`' lt_cv_prog_compiler_c_o='`$ECHO "$lt_cv_prog_compiler_c_o" | $SED "$delay_single_quote_subst"`' need_locks='`$ECHO "$need_locks" | $SED "$delay_single_quote_subst"`' MANIFEST_TOOL='`$ECHO "$MANIFEST_TOOL" | $SED "$delay_single_quote_subst"`' DSYMUTIL='`$ECHO "$DSYMUTIL" | $SED "$delay_single_quote_subst"`' NMEDIT='`$ECHO "$NMEDIT" | $SED "$delay_single_quote_subst"`' LIPO='`$ECHO "$LIPO" | $SED "$delay_single_quote_subst"`' OTOOL='`$ECHO "$OTOOL" | $SED "$delay_single_quote_subst"`' OTOOL64='`$ECHO "$OTOOL64" | $SED "$delay_single_quote_subst"`' libext='`$ECHO "$libext" | $SED "$delay_single_quote_subst"`' shrext_cmds='`$ECHO "$shrext_cmds" | $SED "$delay_single_quote_subst"`' extract_expsyms_cmds='`$ECHO "$extract_expsyms_cmds" | $SED "$delay_single_quote_subst"`' archive_cmds_need_lc='`$ECHO "$archive_cmds_need_lc" | $SED "$delay_single_quote_subst"`' enable_shared_with_static_runtimes='`$ECHO "$enable_shared_with_static_runtimes" | $SED "$delay_single_quote_subst"`' export_dynamic_flag_spec='`$ECHO "$export_dynamic_flag_spec" | $SED "$delay_single_quote_subst"`' whole_archive_flag_spec='`$ECHO "$whole_archive_flag_spec" | $SED "$delay_single_quote_subst"`' compiler_needs_object='`$ECHO "$compiler_needs_object" | $SED "$delay_single_quote_subst"`' old_archive_from_new_cmds='`$ECHO "$old_archive_from_new_cmds" | $SED "$delay_single_quote_subst"`' old_archive_from_expsyms_cmds='`$ECHO "$old_archive_from_expsyms_cmds" | $SED "$delay_single_quote_subst"`' archive_cmds='`$ECHO "$archive_cmds" | $SED "$delay_single_quote_subst"`' archive_expsym_cmds='`$ECHO "$archive_expsym_cmds" | $SED "$delay_single_quote_subst"`' module_cmds='`$ECHO "$module_cmds" | $SED "$delay_single_quote_subst"`' module_expsym_cmds='`$ECHO "$module_expsym_cmds" | $SED "$delay_single_quote_subst"`' with_gnu_ld='`$ECHO "$with_gnu_ld" | $SED "$delay_single_quote_subst"`' allow_undefined_flag='`$ECHO "$allow_undefined_flag" | $SED "$delay_single_quote_subst"`' no_undefined_flag='`$ECHO "$no_undefined_flag" | $SED "$delay_single_quote_subst"`' hardcode_libdir_flag_spec='`$ECHO "$hardcode_libdir_flag_spec" | $SED "$delay_single_quote_subst"`' hardcode_libdir_separator='`$ECHO "$hardcode_libdir_separator" | $SED "$delay_single_quote_subst"`' hardcode_direct='`$ECHO "$hardcode_direct" | $SED "$delay_single_quote_subst"`' hardcode_direct_absolute='`$ECHO "$hardcode_direct_absolute" | $SED "$delay_single_quote_subst"`' hardcode_minus_L='`$ECHO "$hardcode_minus_L" | $SED "$delay_single_quote_subst"`' hardcode_shlibpath_var='`$ECHO "$hardcode_shlibpath_var" | $SED "$delay_single_quote_subst"`' hardcode_automatic='`$ECHO "$hardcode_automatic" | $SED "$delay_single_quote_subst"`' inherit_rpath='`$ECHO "$inherit_rpath" | $SED "$delay_single_quote_subst"`' link_all_deplibs='`$ECHO "$link_all_deplibs" | $SED "$delay_single_quote_subst"`' always_export_symbols='`$ECHO "$always_export_symbols" | $SED "$delay_single_quote_subst"`' export_symbols_cmds='`$ECHO "$export_symbols_cmds" | $SED "$delay_single_quote_subst"`' exclude_expsyms='`$ECHO "$exclude_expsyms" | $SED "$delay_single_quote_subst"`' include_expsyms='`$ECHO "$include_expsyms" | $SED "$delay_single_quote_subst"`' prelink_cmds='`$ECHO "$prelink_cmds" | $SED "$delay_single_quote_subst"`' postlink_cmds='`$ECHO "$postlink_cmds" | $SED "$delay_single_quote_subst"`' file_list_spec='`$ECHO "$file_list_spec" | $SED "$delay_single_quote_subst"`' variables_saved_for_relink='`$ECHO "$variables_saved_for_relink" | $SED "$delay_single_quote_subst"`' need_lib_prefix='`$ECHO "$need_lib_prefix" | $SED "$delay_single_quote_subst"`' need_version='`$ECHO "$need_version" | $SED "$delay_single_quote_subst"`' version_type='`$ECHO "$version_type" | $SED "$delay_single_quote_subst"`' runpath_var='`$ECHO "$runpath_var" | $SED "$delay_single_quote_subst"`' shlibpath_var='`$ECHO "$shlibpath_var" | $SED "$delay_single_quote_subst"`' shlibpath_overrides_runpath='`$ECHO "$shlibpath_overrides_runpath" | $SED "$delay_single_quote_subst"`' libname_spec='`$ECHO "$libname_spec" | $SED "$delay_single_quote_subst"`' library_names_spec='`$ECHO "$library_names_spec" | $SED "$delay_single_quote_subst"`' soname_spec='`$ECHO "$soname_spec" | $SED "$delay_single_quote_subst"`' install_override_mode='`$ECHO "$install_override_mode" | $SED "$delay_single_quote_subst"`' postinstall_cmds='`$ECHO "$postinstall_cmds" | $SED "$delay_single_quote_subst"`' postuninstall_cmds='`$ECHO "$postuninstall_cmds" | $SED "$delay_single_quote_subst"`' finish_cmds='`$ECHO "$finish_cmds" | $SED "$delay_single_quote_subst"`' finish_eval='`$ECHO "$finish_eval" | $SED "$delay_single_quote_subst"`' hardcode_into_libs='`$ECHO "$hardcode_into_libs" | $SED "$delay_single_quote_subst"`' sys_lib_search_path_spec='`$ECHO "$sys_lib_search_path_spec" | $SED "$delay_single_quote_subst"`' configure_time_dlsearch_path='`$ECHO "$configure_time_dlsearch_path" | $SED "$delay_single_quote_subst"`' configure_time_lt_sys_library_path='`$ECHO "$configure_time_lt_sys_library_path" | $SED "$delay_single_quote_subst"`' hardcode_action='`$ECHO "$hardcode_action" | $SED "$delay_single_quote_subst"`' enable_dlopen='`$ECHO "$enable_dlopen" | $SED "$delay_single_quote_subst"`' enable_dlopen_self='`$ECHO "$enable_dlopen_self" | $SED "$delay_single_quote_subst"`' enable_dlopen_self_static='`$ECHO "$enable_dlopen_self_static" | $SED "$delay_single_quote_subst"`' old_striplib='`$ECHO "$old_striplib" | $SED "$delay_single_quote_subst"`' striplib='`$ECHO "$striplib" | $SED "$delay_single_quote_subst"`' LTCC='$LTCC' LTCFLAGS='$LTCFLAGS' compiler='$compiler_DEFAULT' # A function that is used when there is no print builtin or printf. func_fallback_echo () { eval 'cat <<_LTECHO_EOF \$1 _LTECHO_EOF' } # Quote evaled strings. for var in SHELL \ ECHO \ PATH_SEPARATOR \ SED \ GREP \ EGREP \ FGREP \ LD \ NM \ LN_S \ lt_SP2NL \ lt_NL2SP \ reload_flag \ OBJDUMP \ deplibs_check_method \ file_magic_cmd \ file_magic_glob \ want_nocaseglob \ DLLTOOL \ sharedlib_from_linklib_cmd \ AR \ AR_FLAGS \ archiver_list_spec \ STRIP \ RANLIB \ CC \ CFLAGS \ compiler \ lt_cv_sys_global_symbol_pipe \ lt_cv_sys_global_symbol_to_cdecl \ lt_cv_sys_global_symbol_to_import \ lt_cv_sys_global_symbol_to_c_name_address \ lt_cv_sys_global_symbol_to_c_name_address_lib_prefix \ lt_cv_nm_interface \ nm_file_list_spec \ lt_cv_truncate_bin \ lt_prog_compiler_no_builtin_flag \ lt_prog_compiler_pic \ lt_prog_compiler_wl \ lt_prog_compiler_static \ lt_cv_prog_compiler_c_o \ need_locks \ MANIFEST_TOOL \ DSYMUTIL \ NMEDIT \ LIPO \ OTOOL \ OTOOL64 \ shrext_cmds \ export_dynamic_flag_spec \ whole_archive_flag_spec \ compiler_needs_object \ with_gnu_ld \ allow_undefined_flag \ no_undefined_flag \ hardcode_libdir_flag_spec \ hardcode_libdir_separator \ exclude_expsyms \ include_expsyms \ file_list_spec \ variables_saved_for_relink \ libname_spec \ library_names_spec \ soname_spec \ install_override_mode \ finish_eval \ old_striplib \ striplib; do case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in *[\\\\\\\`\\"\\\$]*) eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" ## exclude from sc_prohibit_nested_quotes ;; *) eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" ;; esac done # Double-quote double-evaled strings. for var in reload_cmds \ old_postinstall_cmds \ old_postuninstall_cmds \ old_archive_cmds \ extract_expsyms_cmds \ old_archive_from_new_cmds \ old_archive_from_expsyms_cmds \ archive_cmds \ archive_expsym_cmds \ module_cmds \ module_expsym_cmds \ export_symbols_cmds \ prelink_cmds \ postlink_cmds \ postinstall_cmds \ postuninstall_cmds \ finish_cmds \ sys_lib_search_path_spec \ configure_time_dlsearch_path \ configure_time_lt_sys_library_path; do case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in *[\\\\\\\`\\"\\\$]*) eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" ## exclude from sc_prohibit_nested_quotes ;; *) eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" ;; esac done ac_aux_dir='$ac_aux_dir' # See if we are running on zsh, and set the options that allow our # commands through without removal of \ escapes INIT. if test -n "\${ZSH_VERSION+set}"; then setopt NO_GLOB_SUBST fi PACKAGE='$PACKAGE' VERSION='$VERSION' RM='$RM' ofile='$ofile' _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # Handling of arguments. for ac_config_target in $ac_config_targets do case $ac_config_target in "config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;; "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;; "libtool") CONFIG_COMMANDS="$CONFIG_COMMANDS libtool" ;; "default-1") CONFIG_COMMANDS="$CONFIG_COMMANDS default-1" ;; "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; "bindings/Makefile") CONFIG_FILES="$CONFIG_FILES bindings/Makefile" ;; "bindings/python/Makefile") CONFIG_FILES="$CONFIG_FILES bindings/python/Makefile" ;; "src/Makefile") CONFIG_FILES="$CONFIG_FILES src/Makefile" ;; "data/Makefile") CONFIG_FILES="$CONFIG_FILES data/Makefile" ;; "data/icons/Makefile") CONFIG_FILES="$CONFIG_FILES data/icons/Makefile" ;; "data/icons/hicolor/Makefile") CONFIG_FILES="$CONFIG_FILES data/icons/hicolor/Makefile" ;; "data/icons/hicolor/16x16/Makefile") CONFIG_FILES="$CONFIG_FILES data/icons/hicolor/16x16/Makefile" ;; "data/icons/hicolor/16x16/apps/Makefile") CONFIG_FILES="$CONFIG_FILES data/icons/hicolor/16x16/apps/Makefile" ;; "data/icons/hicolor/22x22/Makefile") CONFIG_FILES="$CONFIG_FILES data/icons/hicolor/22x22/Makefile" ;; "data/icons/hicolor/22x22/apps/Makefile") CONFIG_FILES="$CONFIG_FILES data/icons/hicolor/22x22/apps/Makefile" ;; "data/icons/hicolor/24x24/Makefile") CONFIG_FILES="$CONFIG_FILES data/icons/hicolor/24x24/Makefile" ;; "data/icons/hicolor/24x24/apps/Makefile") CONFIG_FILES="$CONFIG_FILES data/icons/hicolor/24x24/apps/Makefile" ;; "data/icons/hicolor/32x32/Makefile") CONFIG_FILES="$CONFIG_FILES data/icons/hicolor/32x32/Makefile" ;; "data/icons/hicolor/32x32/apps/Makefile") CONFIG_FILES="$CONFIG_FILES data/icons/hicolor/32x32/apps/Makefile" ;; "data/icons/hicolor/48x48/Makefile") CONFIG_FILES="$CONFIG_FILES data/icons/hicolor/48x48/Makefile" ;; "data/icons/hicolor/48x48/apps/Makefile") CONFIG_FILES="$CONFIG_FILES data/icons/hicolor/48x48/apps/Makefile" ;; "data/icons/hicolor/64x64/Makefile") CONFIG_FILES="$CONFIG_FILES data/icons/hicolor/64x64/Makefile" ;; "data/icons/hicolor/64x64/apps/Makefile") CONFIG_FILES="$CONFIG_FILES data/icons/hicolor/64x64/apps/Makefile" ;; "data/icons/hicolor/72x72/Makefile") CONFIG_FILES="$CONFIG_FILES data/icons/hicolor/72x72/Makefile" ;; "data/icons/hicolor/72x72/apps/Makefile") CONFIG_FILES="$CONFIG_FILES data/icons/hicolor/72x72/apps/Makefile" ;; "data/icons/hicolor/96x96/Makefile") CONFIG_FILES="$CONFIG_FILES data/icons/hicolor/96x96/Makefile" ;; "data/icons/hicolor/96x96/apps/Makefile") CONFIG_FILES="$CONFIG_FILES data/icons/hicolor/96x96/apps/Makefile" ;; "data/icons/hicolor/128x128/Makefile") CONFIG_FILES="$CONFIG_FILES data/icons/hicolor/128x128/Makefile" ;; "data/icons/hicolor/128x128/apps/Makefile") CONFIG_FILES="$CONFIG_FILES data/icons/hicolor/128x128/apps/Makefile" ;; "data/icons/hicolor/256x256/Makefile") CONFIG_FILES="$CONFIG_FILES data/icons/hicolor/256x256/Makefile" ;; "data/icons/hicolor/256x256/apps/Makefile") CONFIG_FILES="$CONFIG_FILES data/icons/hicolor/256x256/apps/Makefile" ;; "data/icons/hicolor/scalable/Makefile") CONFIG_FILES="$CONFIG_FILES data/icons/hicolor/scalable/Makefile" ;; "data/icons/hicolor/scalable/apps/Makefile") CONFIG_FILES="$CONFIG_FILES data/icons/hicolor/scalable/apps/Makefile" ;; "plugins/Makefile") CONFIG_FILES="$CONFIG_FILES plugins/Makefile" ;; "plugins/filesystem/Makefile") CONFIG_FILES="$CONFIG_FILES plugins/filesystem/Makefile" ;; "plugins/information/Makefile") CONFIG_FILES="$CONFIG_FILES plugins/information/Makefile" ;; "plugins/mmkeys/Makefile") CONFIG_FILES="$CONFIG_FILES plugins/mmkeys/Makefile" ;; "plugins/radios/Makefile") CONFIG_FILES="$CONFIG_FILES plugins/radios/Makefile" ;; "po/Makefile.in") CONFIG_FILES="$CONFIG_FILES po/Makefile.in" ;; "data/ario.desktop.in") CONFIG_FILES="$CONFIG_FILES data/ario.desktop.in" ;; "po/stamp-it") CONFIG_COMMANDS="$CONFIG_COMMANDS po/stamp-it" ;; *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;; esac done # If the user did not use the arguments to specify the items to instantiate, # then the envvar interface is used. Set only those that are not. # We use the long form for the default assignment because of an extremely # bizarre bug on SunOS 4.1.3. if $ac_need_defaults; then test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands fi # Have a temporary directory for convenience. Make it in the build tree # simply because there is no reason against having it here, and in addition, # creating and moving files from /tmp can sometimes cause problems. # Hook for its removal unless debugging. # Note that there is a small window in which the directory will not be cleaned: # after its creation but before its name has been assigned to `$tmp'. $debug || { tmp= ac_tmp= trap 'exit_status=$? : "${ac_tmp:=$tmp}" { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status ' 0 trap 'as_fn_exit 1' 1 2 13 15 } # Create a (secure) tmp directory for tmp files. { tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && test -d "$tmp" } || { tmp=./conf$$-$RANDOM (umask 077 && mkdir "$tmp") } || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5 ac_tmp=$tmp # Set up the scripts for CONFIG_FILES section. # No need to generate them if there are no CONFIG_FILES. # This happens for instance with `./config.status config.h'. if test -n "$CONFIG_FILES"; then ac_cr=`echo X | tr X '\015'` # On cygwin, bash can eat \r inside `` if the user requested igncr. # But we know of no other shell where ac_cr would be empty at this # point, so we can use a bashism as a fallback. if test "x$ac_cr" = x; then eval ac_cr=\$\'\\r\' fi ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' /dev/null` if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then ac_cs_awk_cr='\\r' else ac_cs_awk_cr=$ac_cr fi echo 'BEGIN {' >"$ac_tmp/subs1.awk" && _ACEOF { echo "cat >conf$$subs.awk <<_ACEOF" && echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' && echo "_ACEOF" } >conf$$subs.sh || as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'` ac_delim='%!_!# ' for ac_last_try in false false false false false :; do . ./conf$$subs.sh || as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X` if test $ac_delim_n = $ac_delim_num; then break elif $ac_last_try; then as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 else ac_delim="$ac_delim!$ac_delim _$ac_delim!! " fi done rm -f conf$$subs.sh cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK && _ACEOF sed -n ' h s/^/S["/; s/!.*/"]=/ p g s/^[^!]*!// :repl t repl s/'"$ac_delim"'$// t delim :nl h s/\(.\{148\}\)..*/\1/ t more1 s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/ p n b repl :more1 s/["\\]/\\&/g; s/^/"/; s/$/"\\/ p g s/.\{148\}// t nl :delim h s/\(.\{148\}\)..*/\1/ t more2 s/["\\]/\\&/g; s/^/"/; s/$/"/ p b :more2 s/["\\]/\\&/g; s/^/"/; s/$/"\\/ p g s/.\{148\}// t delim ' >$CONFIG_STATUS || ac_write_fail=1 rm -f conf$$subs.awk cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 _ACAWK cat >>"\$ac_tmp/subs1.awk" <<_ACAWK && for (key in S) S_is_set[key] = 1 FS = "" } { line = $ 0 nfields = split(line, field, "@") substed = 0 len = length(field[1]) for (i = 2; i < nfields; i++) { key = field[i] keylen = length(key) if (S_is_set[key]) { value = S[key] line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3) len += length(value) + length(field[++i]) substed = 1 } else len += 1 + keylen } print line } _ACAWK _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g" else cat fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \ || as_fn_error $? "could not setup config files machinery" "$LINENO" 5 _ACEOF # VPATH may cause trouble with some makes, so we remove sole $(srcdir), # ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and # trailing colons and then remove the whole line if VPATH becomes empty # (actually we leave an empty line to preserve line numbers). if test "x$srcdir" = x.; then ac_vpsub='/^[ ]*VPATH[ ]*=[ ]*/{ h s/// s/^/:/ s/[ ]*$/:/ s/:\$(srcdir):/:/g s/:\${srcdir}:/:/g s/:@srcdir@:/:/g s/^:*// s/:*$// x s/\(=[ ]*\).*/\1/ G s/\n// s/^[^=]*=[ ]*$// }' fi cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 fi # test -n "$CONFIG_FILES" # Set up the scripts for CONFIG_HEADERS section. # No need to generate them if there are no CONFIG_HEADERS. # This happens for instance with `./config.status Makefile'. if test -n "$CONFIG_HEADERS"; then cat >"$ac_tmp/defines.awk" <<\_ACAWK || BEGIN { _ACEOF # Transform confdefs.h into an awk script `defines.awk', embedded as # here-document in config.status, that substitutes the proper values into # config.h.in to produce config.h. # Create a delimiter string that does not exist in confdefs.h, to ease # handling of long lines. ac_delim='%!_!# ' for ac_last_try in false false :; do ac_tt=`sed -n "/$ac_delim/p" confdefs.h` if test -z "$ac_tt"; then break elif $ac_last_try; then as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5 else ac_delim="$ac_delim!$ac_delim _$ac_delim!! " fi done # For the awk script, D is an array of macro values keyed by name, # likewise P contains macro parameters if any. Preserve backslash # newline sequences. ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]* sed -n ' s/.\{148\}/&'"$ac_delim"'/g t rset :rset s/^[ ]*#[ ]*define[ ][ ]*/ / t def d :def s/\\$// t bsnl s/["\\]/\\&/g s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ D["\1"]=" \3"/p s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2"/p d :bsnl s/["\\]/\\&/g s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ D["\1"]=" \3\\\\\\n"\\/p t cont s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2\\\\\\n"\\/p t cont d :cont n s/.\{148\}/&'"$ac_delim"'/g t clear :clear s/\\$// t bsnlc s/["\\]/\\&/g; s/^/"/; s/$/"/p d :bsnlc s/["\\]/\\&/g; s/^/"/; s/$/\\\\\\n"\\/p b cont ' >$CONFIG_STATUS || ac_write_fail=1 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 for (key in D) D_is_set[key] = 1 FS = "" } /^[\t ]*#[\t ]*(define|undef)[\t ]+$ac_word_re([\t (]|\$)/ { line = \$ 0 split(line, arg, " ") if (arg[1] == "#") { defundef = arg[2] mac1 = arg[3] } else { defundef = substr(arg[1], 2) mac1 = arg[2] } split(mac1, mac2, "(") #) macro = mac2[1] prefix = substr(line, 1, index(line, defundef) - 1) if (D_is_set[macro]) { # Preserve the white space surrounding the "#". print prefix "define", macro P[macro] D[macro] next } else { # Replace #undef with comments. This is necessary, for example, # in the case of _POSIX_SOURCE, which is predefined and required # on some systems where configure will not decide to define it. if (defundef == "undef") { print "/*", prefix defundef, macro, "*/" next } } } { print } _ACAWK _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 as_fn_error $? "could not setup config headers machinery" "$LINENO" 5 fi # test -n "$CONFIG_HEADERS" eval set X " :F $CONFIG_FILES :H $CONFIG_HEADERS :C $CONFIG_COMMANDS" shift for ac_tag do case $ac_tag in :[FHLC]) ac_mode=$ac_tag; continue;; esac case $ac_mode$ac_tag in :[FHL]*:*);; :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;; :[FH]-) ac_tag=-:-;; :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; esac ac_save_IFS=$IFS IFS=: set x $ac_tag IFS=$ac_save_IFS shift ac_file=$1 shift case $ac_mode in :L) ac_source=$1;; :[FH]) ac_file_inputs= for ac_f do case $ac_f in -) ac_f="$ac_tmp/stdin";; *) # Look for the file first in the build tree, then in the source tree # (if the path is not absolute). The absolute path cannot be DOS-style, # because $ac_f cannot contain `:'. test -f "$ac_f" || case $ac_f in [\\/$]*) false;; *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; esac || as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;; esac case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac as_fn_append ac_file_inputs " '$ac_f'" done # Let's still pretend it is `configure' which instantiates (i.e., don't # use $as_me), people would be surprised to read: # /* config.h. Generated by config.status. */ configure_input='Generated from '` $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g' `' by configure.' if test x"$ac_file" != x-; then configure_input="$ac_file. $configure_input" { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5 $as_echo "$as_me: creating $ac_file" >&6;} fi # Neutralize special characters interpreted by sed in replacement strings. case $configure_input in #( *\&* | *\|* | *\\* ) ac_sed_conf_input=`$as_echo "$configure_input" | sed 's/[\\\\&|]/\\\\&/g'`;; #( *) ac_sed_conf_input=$configure_input;; esac case $ac_tag in *:-:* | *:-) cat >"$ac_tmp/stdin" \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; esac ;; esac ac_dir=`$as_dirname -- "$ac_file" || $as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$ac_file" : 'X\(//\)[^/]' \| \ X"$ac_file" : 'X\(//\)$' \| \ X"$ac_file" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$ac_file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` as_dir="$ac_dir"; as_fn_mkdir_p ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` # A ".." for each directory in $ac_dir_suffix. ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; esac ;; esac ac_abs_top_builddir=$ac_pwd ac_abs_builddir=$ac_pwd$ac_dir_suffix # for backward compatibility: ac_top_builddir=$ac_top_build_prefix case $srcdir in .) # We are building in place. ac_srcdir=. ac_top_srcdir=$ac_top_builddir_sub ac_abs_top_srcdir=$ac_pwd ;; [\\/]* | ?:[\\/]* ) # Absolute name. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ac_abs_top_srcdir=$srcdir ;; *) # Relative name. ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_build_prefix$srcdir ac_abs_top_srcdir=$ac_pwd/$srcdir ;; esac ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix case $ac_mode in :F) # # CONFIG_FILE # case $INSTALL in [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;; esac ac_MKDIR_P=$MKDIR_P case $MKDIR_P in [\\/$]* | ?:[\\/]* ) ;; */*) ac_MKDIR_P=$ac_top_build_prefix$MKDIR_P ;; esac _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # If the template does not know about datarootdir, expand it. # FIXME: This hack should be removed a few years after 2.60. ac_datarootdir_hack=; ac_datarootdir_seen= ac_sed_dataroot=' /datarootdir/ { p q } /@datadir@/p /@docdir@/p /@infodir@/p /@localedir@/p /@mandir@/p' case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in *datarootdir*) ac_datarootdir_seen=yes;; *@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 $as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_datarootdir_hack=' s&@datadir@&$datadir&g s&@docdir@&$docdir&g s&@infodir@&$infodir&g s&@localedir@&$localedir&g s&@mandir@&$mandir&g s&\\\${datarootdir}&$datarootdir&g' ;; esac _ACEOF # Neutralize VPATH when `$srcdir' = `.'. # Shell code in configure.ac might set extrasub. # FIXME: do we really want to maintain this feature? cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_sed_extra="$ac_vpsub $extrasub _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 :t /@[a-zA-Z_][a-zA-Z_0-9]*@/!b s|@configure_input@|$ac_sed_conf_input|;t t s&@top_builddir@&$ac_top_builddir_sub&;t t s&@top_build_prefix@&$ac_top_build_prefix&;t t s&@srcdir@&$ac_srcdir&;t t s&@abs_srcdir@&$ac_abs_srcdir&;t t s&@top_srcdir@&$ac_top_srcdir&;t t s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t s&@builddir@&$ac_builddir&;t t s&@abs_builddir@&$ac_abs_builddir&;t t s&@abs_top_builddir@&$ac_abs_top_builddir&;t t s&@INSTALL@&$ac_INSTALL&;t t s&@MKDIR_P@&$ac_MKDIR_P&;t t $ac_datarootdir_hack " eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \ >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5 test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } && { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \ "$ac_tmp/out"`; test -z "$ac_out"; } && { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined" >&5 $as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined" >&2;} rm -f "$ac_tmp/stdin" case $ac_file in -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";; *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";; esac \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; :H) # # CONFIG_HEADER # if test x"$ac_file" != x-; then { $as_echo "/* $configure_input */" \ && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" } >"$ac_tmp/config.h" \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 if diff "$ac_file" "$ac_tmp/config.h" >/dev/null 2>&1; then { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5 $as_echo "$as_me: $ac_file is unchanged" >&6;} else rm -f "$ac_file" mv "$ac_tmp/config.h" "$ac_file" \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 fi else $as_echo "/* $configure_input */" \ && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" \ || as_fn_error $? "could not create -" "$LINENO" 5 fi # Compute "$ac_file"'s index in $config_headers. _am_arg="$ac_file" _am_stamp_count=1 for _am_header in $config_headers :; do case $_am_header in $_am_arg | $_am_arg:* ) break ;; * ) _am_stamp_count=`expr $_am_stamp_count + 1` ;; esac done echo "timestamp for $_am_arg" >`$as_dirname -- "$_am_arg" || $as_expr X"$_am_arg" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$_am_arg" : 'X\(//\)[^/]' \| \ X"$_am_arg" : 'X\(//\)$' \| \ X"$_am_arg" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$_am_arg" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'`/stamp-h$_am_stamp_count ;; :C) { $as_echo "$as_me:${as_lineno-$LINENO}: executing $ac_file commands" >&5 $as_echo "$as_me: executing $ac_file commands" >&6;} ;; esac case $ac_file$ac_mode in "depfiles":C) test x"$AMDEP_TRUE" != x"" || { # Older Autoconf quotes --file arguments for eval, but not when files # are listed without --file. Let's play safe and only enable the eval # if we detect the quoting. case $CONFIG_FILES in *\'*) eval set x "$CONFIG_FILES" ;; *) set x $CONFIG_FILES ;; esac shift for mf do # Strip MF so we end up with the name of the file. mf=`echo "$mf" | sed -e 's/:.*$//'` # Check whether this is an Automake generated Makefile or not. # We used to match only the files named 'Makefile.in', but # some people rename them; so instead we look at the file content. # Grep'ing the first line is not enough: some people post-process # each Makefile.in and add a new line on top of each file to say so. # Grep'ing the whole file is not good either: AIX grep has a line # limit of 2048, but all sed's we know have understand at least 4000. if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then dirpart=`$as_dirname -- "$mf" || $as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$mf" : 'X\(//\)[^/]' \| \ X"$mf" : 'X\(//\)$' \| \ X"$mf" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$mf" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` else continue fi # Extract the definition of DEPDIR, am__include, and am__quote # from the Makefile without running 'make'. DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` test -z "$DEPDIR" && continue am__include=`sed -n 's/^am__include = //p' < "$mf"` test -z "$am__include" && continue am__quote=`sed -n 's/^am__quote = //p' < "$mf"` # Find all dependency output files, they are included files with # $(DEPDIR) in their names. We invoke sed twice because it is the # simplest approach to changing $(DEPDIR) to its actual value in the # expansion. for file in `sed -n " s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g'`; do # Make sure the directory exists. test -f "$dirpart/$file" && continue fdir=`$as_dirname -- "$file" || $as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$file" : 'X\(//\)[^/]' \| \ X"$file" : 'X\(//\)$' \| \ X"$file" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` as_dir=$dirpart/$fdir; as_fn_mkdir_p # echo "creating $dirpart/$file" echo '# dummy' > "$dirpart/$file" done done } ;; "libtool":C) # See if we are running on zsh, and set the options that allow our # commands through without removal of \ escapes. if test -n "${ZSH_VERSION+set}"; then setopt NO_GLOB_SUBST fi cfgfile=${ofile}T trap "$RM \"$cfgfile\"; exit 1" 1 2 15 $RM "$cfgfile" cat <<_LT_EOF >> "$cfgfile" #! $SHELL # Generated automatically by $as_me ($PACKAGE) $VERSION # NOTE: Changes made to this file will be lost: look at ltmain.sh. # Provide generalized library-building support services. # Written by Gordon Matzigkeit, 1996 # Copyright (C) 2014 Free Software Foundation, Inc. # This is free software; see the source for copying conditions. There is NO # warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. # GNU Libtool 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 of the License, or # (at your option) any later version. # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program or library that is built # using GNU Libtool, you may include this file under the same # distribution terms that you use for the rest of that program. # # GNU Libtool 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, see . # The names of the tagged configurations supported by this script. available_tags='' # Configured defaults for sys_lib_dlsearch_path munging. : \${LT_SYS_LIBRARY_PATH="$configure_time_lt_sys_library_path"} # ### BEGIN LIBTOOL CONFIG # Which release of libtool.m4 was used? macro_version=$macro_version macro_revision=$macro_revision # Whether or not to build shared libraries. build_libtool_libs=$enable_shared # Whether or not to build static libraries. build_old_libs=$enable_static # What type of objects to build. pic_mode=$pic_mode # Whether or not to optimize for fast installation. fast_install=$enable_fast_install # Shared archive member basename,for filename based shared library versioning on AIX. shared_archive_member_spec=$shared_archive_member_spec # Shell to use when invoking shell scripts. SHELL=$lt_SHELL # An echo program that protects backslashes. ECHO=$lt_ECHO # The PATH separator for the build system. PATH_SEPARATOR=$lt_PATH_SEPARATOR # The host system. host_alias=$host_alias host=$host host_os=$host_os # The build system. build_alias=$build_alias build=$build build_os=$build_os # A sed program that does not truncate output. SED=$lt_SED # Sed that helps us avoid accidentally triggering echo(1) options like -n. Xsed="\$SED -e 1s/^X//" # A grep program that handles long lines. GREP=$lt_GREP # An ERE matcher. EGREP=$lt_EGREP # A literal string matcher. FGREP=$lt_FGREP # A BSD- or MS-compatible name lister. NM=$lt_NM # Whether we need soft or hard links. LN_S=$lt_LN_S # What is the maximum length of a command? max_cmd_len=$max_cmd_len # Object file suffix (normally "o"). objext=$ac_objext # Executable file suffix (normally ""). exeext=$exeext # whether the shell understands "unset". lt_unset=$lt_unset # turn spaces into newlines. SP2NL=$lt_lt_SP2NL # turn newlines into spaces. NL2SP=$lt_lt_NL2SP # convert \$build file names to \$host format. to_host_file_cmd=$lt_cv_to_host_file_cmd # convert \$build files to toolchain format. to_tool_file_cmd=$lt_cv_to_tool_file_cmd # An object symbol dumper. OBJDUMP=$lt_OBJDUMP # Method to check whether dependent libraries are shared objects. deplibs_check_method=$lt_deplibs_check_method # Command to use when deplibs_check_method = "file_magic". file_magic_cmd=$lt_file_magic_cmd # How to find potential files when deplibs_check_method = "file_magic". file_magic_glob=$lt_file_magic_glob # Find potential files using nocaseglob when deplibs_check_method = "file_magic". want_nocaseglob=$lt_want_nocaseglob # DLL creation program. DLLTOOL=$lt_DLLTOOL # Command to associate shared and link libraries. sharedlib_from_linklib_cmd=$lt_sharedlib_from_linklib_cmd # The archiver. AR=$lt_AR # Flags to create an archive. AR_FLAGS=$lt_AR_FLAGS # How to feed a file listing to the archiver. archiver_list_spec=$lt_archiver_list_spec # A symbol stripping program. STRIP=$lt_STRIP # Commands used to install an old-style archive. RANLIB=$lt_RANLIB old_postinstall_cmds=$lt_old_postinstall_cmds old_postuninstall_cmds=$lt_old_postuninstall_cmds # Whether to use a lock for old archive extraction. lock_old_archive_extraction=$lock_old_archive_extraction # A C compiler. LTCC=$lt_CC # LTCC compiler flags. LTCFLAGS=$lt_CFLAGS # Take the output of nm and produce a listing of raw symbols and C names. global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe # Transform the output of nm in a proper C declaration. global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl # Transform the output of nm into a list of symbols to manually relocate. global_symbol_to_import=$lt_lt_cv_sys_global_symbol_to_import # Transform the output of nm in a C name address pair. global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address # Transform the output of nm in a C name address pair when lib prefix is needed. global_symbol_to_c_name_address_lib_prefix=$lt_lt_cv_sys_global_symbol_to_c_name_address_lib_prefix # The name lister interface. nm_interface=$lt_lt_cv_nm_interface # Specify filename containing input files for \$NM. nm_file_list_spec=$lt_nm_file_list_spec # The root where to search for dependent libraries,and where our libraries should be installed. lt_sysroot=$lt_sysroot # Command to truncate a binary pipe. lt_truncate_bin=$lt_lt_cv_truncate_bin # The name of the directory that contains temporary libtool files. objdir=$objdir # Used to examine libraries when file_magic_cmd begins with "file". MAGIC_CMD=$MAGIC_CMD # Must we lock files when doing compilation? need_locks=$lt_need_locks # Manifest tool. MANIFEST_TOOL=$lt_MANIFEST_TOOL # Tool to manipulate archived DWARF debug symbol files on Mac OS X. DSYMUTIL=$lt_DSYMUTIL # Tool to change global to local symbols on Mac OS X. NMEDIT=$lt_NMEDIT # Tool to manipulate fat objects and archives on Mac OS X. LIPO=$lt_LIPO # ldd/readelf like tool for Mach-O binaries on Mac OS X. OTOOL=$lt_OTOOL # ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4. OTOOL64=$lt_OTOOL64 # Old archive suffix (normally "a"). libext=$libext # Shared library suffix (normally ".so"). shrext_cmds=$lt_shrext_cmds # The commands to extract the exported symbol list from a shared archive. extract_expsyms_cmds=$lt_extract_expsyms_cmds # Variables whose values should be saved in libtool wrapper scripts and # restored at link time. variables_saved_for_relink=$lt_variables_saved_for_relink # Do we need the "lib" prefix for modules? need_lib_prefix=$need_lib_prefix # Do we need a version for libraries? need_version=$need_version # Library versioning type. version_type=$version_type # Shared library runtime path variable. runpath_var=$runpath_var # Shared library path variable. shlibpath_var=$shlibpath_var # Is shlibpath searched before the hard-coded library search path? shlibpath_overrides_runpath=$shlibpath_overrides_runpath # Format of library name prefix. libname_spec=$lt_libname_spec # List of archive names. First name is the real one, the rest are links. # The last name is the one that the linker finds with -lNAME library_names_spec=$lt_library_names_spec # The coded name of the library, if different from the real name. soname_spec=$lt_soname_spec # Permission mode override for installation of shared libraries. install_override_mode=$lt_install_override_mode # Command to use after installation of a shared archive. postinstall_cmds=$lt_postinstall_cmds # Command to use after uninstallation of a shared archive. postuninstall_cmds=$lt_postuninstall_cmds # Commands used to finish a libtool library installation in a directory. finish_cmds=$lt_finish_cmds # As "finish_cmds", except a single script fragment to be evaled but # not shown. finish_eval=$lt_finish_eval # Whether we should hardcode library paths into libraries. hardcode_into_libs=$hardcode_into_libs # Compile-time system search path for libraries. sys_lib_search_path_spec=$lt_sys_lib_search_path_spec # Detected run-time system search path for libraries. sys_lib_dlsearch_path_spec=$lt_configure_time_dlsearch_path # Explicit LT_SYS_LIBRARY_PATH set during ./configure time. configure_time_lt_sys_library_path=$lt_configure_time_lt_sys_library_path # Whether dlopen is supported. dlopen_support=$enable_dlopen # Whether dlopen of programs is supported. dlopen_self=$enable_dlopen_self # Whether dlopen of statically linked programs is supported. dlopen_self_static=$enable_dlopen_self_static # Commands to strip libraries. old_striplib=$lt_old_striplib striplib=$lt_striplib # The linker used to build libraries. LD=$lt_LD # How to create reloadable object files. reload_flag=$lt_reload_flag reload_cmds=$lt_reload_cmds # Commands used to build an old-style archive. old_archive_cmds=$lt_old_archive_cmds # A language specific compiler. CC=$lt_compiler # Is the compiler the GNU compiler? with_gcc=$GCC # Compiler flag to turn off builtin functions. no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag # Additional compiler flags for building library objects. pic_flag=$lt_lt_prog_compiler_pic # How to pass a linker flag through the compiler. wl=$lt_lt_prog_compiler_wl # Compiler flag to prevent dynamic linking. link_static_flag=$lt_lt_prog_compiler_static # Does compiler simultaneously support -c and -o options? compiler_c_o=$lt_lt_cv_prog_compiler_c_o # Whether or not to add -lc for building shared libraries. build_libtool_need_lc=$archive_cmds_need_lc # Whether or not to disallow shared libs when runtime libs are static. allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes # Compiler flag to allow reflexive dlopens. export_dynamic_flag_spec=$lt_export_dynamic_flag_spec # Compiler flag to generate shared objects directly from archives. whole_archive_flag_spec=$lt_whole_archive_flag_spec # Whether the compiler copes with passing no objects directly. compiler_needs_object=$lt_compiler_needs_object # Create an old-style archive from a shared archive. old_archive_from_new_cmds=$lt_old_archive_from_new_cmds # Create a temporary old-style archive to link instead of a shared archive. old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds # Commands used to build a shared archive. archive_cmds=$lt_archive_cmds archive_expsym_cmds=$lt_archive_expsym_cmds # Commands used to build a loadable module if different from building # a shared archive. module_cmds=$lt_module_cmds module_expsym_cmds=$lt_module_expsym_cmds # Whether we are building with GNU ld or not. with_gnu_ld=$lt_with_gnu_ld # Flag that allows shared libraries with undefined symbols to be built. allow_undefined_flag=$lt_allow_undefined_flag # Flag that enforces no undefined symbols. no_undefined_flag=$lt_no_undefined_flag # Flag to hardcode \$libdir into a binary during linking. # This must work even if \$libdir does not exist hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec # Whether we need a single "-rpath" flag with a separated argument. hardcode_libdir_separator=$lt_hardcode_libdir_separator # Set to "yes" if using DIR/libNAME\$shared_ext during linking hardcodes # DIR into the resulting binary. hardcode_direct=$hardcode_direct # Set to "yes" if using DIR/libNAME\$shared_ext during linking hardcodes # DIR into the resulting binary and the resulting library dependency is # "absolute",i.e impossible to change by setting \$shlibpath_var if the # library is relocated. hardcode_direct_absolute=$hardcode_direct_absolute # Set to "yes" if using the -LDIR flag during linking hardcodes DIR # into the resulting binary. hardcode_minus_L=$hardcode_minus_L # Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR # into the resulting binary. hardcode_shlibpath_var=$hardcode_shlibpath_var # Set to "yes" if building a shared library automatically hardcodes DIR # into the library and all subsequent libraries and executables linked # against it. hardcode_automatic=$hardcode_automatic # Set to yes if linker adds runtime paths of dependent libraries # to runtime path list. inherit_rpath=$inherit_rpath # Whether libtool must link a program against all its dependency libraries. link_all_deplibs=$link_all_deplibs # Set to "yes" if exported symbols are required. always_export_symbols=$always_export_symbols # The commands to list exported symbols. export_symbols_cmds=$lt_export_symbols_cmds # Symbols that should not be listed in the preloaded symbols. exclude_expsyms=$lt_exclude_expsyms # Symbols that must always be exported. include_expsyms=$lt_include_expsyms # Commands necessary for linking programs (against libraries) with templates. prelink_cmds=$lt_prelink_cmds # Commands necessary for finishing linking programs. postlink_cmds=$lt_postlink_cmds # Specify filename containing input files. file_list_spec=$lt_file_list_spec # How to hardcode a shared library path into an executable. hardcode_action=$hardcode_action # ### END LIBTOOL CONFIG _LT_EOF cat <<'_LT_EOF' >> "$cfgfile" # ### BEGIN FUNCTIONS SHARED WITH CONFIGURE # func_munge_path_list VARIABLE PATH # ----------------------------------- # VARIABLE is name of variable containing _space_ separated list of # directories to be munged by the contents of PATH, which is string # having a format: # "DIR[:DIR]:" # string "DIR[ DIR]" will be prepended to VARIABLE # ":DIR[:DIR]" # string "DIR[ DIR]" will be appended to VARIABLE # "DIRP[:DIRP]::[DIRA:]DIRA" # string "DIRP[ DIRP]" will be prepended to VARIABLE and string # "DIRA[ DIRA]" will be appended to VARIABLE # "DIR[:DIR]" # VARIABLE will be replaced by "DIR[ DIR]" func_munge_path_list () { case x$2 in x) ;; *:) eval $1=\"`$ECHO $2 | $SED 's/:/ /g'` \$$1\" ;; x:*) eval $1=\"\$$1 `$ECHO $2 | $SED 's/:/ /g'`\" ;; *::*) eval $1=\"\$$1\ `$ECHO $2 | $SED -e 's/.*:://' -e 's/:/ /g'`\" eval $1=\"`$ECHO $2 | $SED -e 's/::.*//' -e 's/:/ /g'`\ \$$1\" ;; *) eval $1=\"`$ECHO $2 | $SED 's/:/ /g'`\" ;; esac } # Calculate cc_basename. Skip known compiler wrappers and cross-prefix. func_cc_basename () { for cc_temp in $*""; do case $cc_temp in compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; \-*) ;; *) break;; esac done func_cc_basename_result=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"` } # ### END FUNCTIONS SHARED WITH CONFIGURE _LT_EOF case $host_os in aix3*) cat <<\_LT_EOF >> "$cfgfile" # AIX sometimes has problems with the GCC collect2 program. For some # reason, if we set the COLLECT_NAMES environment variable, the problems # vanish in a puff of smoke. if test set != "${COLLECT_NAMES+set}"; then COLLECT_NAMES= export COLLECT_NAMES fi _LT_EOF ;; esac ltmain=$ac_aux_dir/ltmain.sh # We use sed instead of cat because bash on DJGPP gets confused if # if finds mixed CR/LF and LF-only lines. Since sed operates in # text mode, it properly converts lines to CR/LF. This bash problem # is reportedly fixed, but why not run on old versions too? sed '$q' "$ltmain" >> "$cfgfile" \ || (rm -f "$cfgfile"; exit 1) mv -f "$cfgfile" "$ofile" || (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") chmod +x "$ofile" ;; "default-1":C) case "$CONFIG_FILES" in *po/Makefile.in*) sed -e "/POTFILES =/r po/POTFILES" po/Makefile.in > po/Makefile esac ;; "po/stamp-it":C) if ! grep "^# INTLTOOL_MAKEFILE$" "po/Makefile.in" > /dev/null ; then as_fn_error $? "po/Makefile.in.in was not created by intltoolize." "$LINENO" 5 fi rm -f "po/stamp-it" "po/stamp-it.tmp" "po/POTFILES" "po/Makefile.tmp" >"po/stamp-it.tmp" sed '/^#/d s/^[[].*] *// /^[ ]*$/d '"s|^| $ac_top_srcdir/|" \ "$srcdir/po/POTFILES.in" | sed '$!s/$/ \\/' >"po/POTFILES" sed '/^POTFILES =/,/[^\\]$/ { /^POTFILES =/!d r po/POTFILES } ' "po/Makefile.in" >"po/Makefile" rm -f "po/Makefile.tmp" mv "po/stamp-it.tmp" "po/stamp-it" ;; esac done # for ac_tag as_fn_exit 0 _ACEOF ac_clean_files=$ac_clean_files_save test $ac_write_fail = 0 || as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5 # configure is writing to config.log, and then calls config.status. # config.status does its own redirection, appending to config.log. # Unfortunately, on DOS this fails, as config.log is still kept open # by configure, so config.status won't be able to write to it; its # output is simply discarded. So we exec the FD to /dev/null, # effectively closing config.log, so it can be properly (re)opened and # appended to by config.status. When coming back to configure, we # need to make the FD available again. if test "$no_create" != yes; then ac_cs_success=: ac_config_status_args= test "$silent" = yes && ac_config_status_args="$ac_config_status_args --quiet" exec 5>/dev/null $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false exec 5>>config.log # Use ||, not &&, to avoid exiting from the if with $? = 1, which # would make configure fail if this is the last instruction. $ac_cs_success || as_fn_exit 1 fi if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;} fi echo "" echo "" echo "-------------- Options --------------" if test x${enable_debug} = xyes; then echo "Debug information is: ENABLED" else echo "Debug information is: DISABLED (--enable-debug)" fi if test x${enable_xmms2} = xyes; then echo "XMMS2 support (VERY EXPERIMENTAL) is: ENABLED" else echo "XMMS2 support (VERY EXPERIMENTAL) is: DISABLED (--enable-xmms2)" fi if test x${enable_python} = xyes; then echo "Python plugins support (Experimental) is: ENABLED" else echo "Python plugins support (Experimental) is: DISABLED (--enable-python)" fi if test x${enable_search} != xno; then echo "Search view support is: ENABLED (--disable-search)" else echo "Search view support is: DISABLED" fi if test x${enable_avahi} != xno; then echo "Avahi support is: ENABLED (--disable-avahi)" else echo "Avahi support is: DISABLED" fi if test x${enable_dbus} != xno; then echo "DBUS support is: ENABLED (--disable-dbus)" else echo "DBUS support is: DISABLED" fi if test x${enable_playlists} != xno; then echo "Playlists support is: ENABLED (--disable-playlists)" else echo "Playlists support is: DISABLED" fi if test x${enable_mpdidle} != xno; then echo "MPD 'idle' mode support is: ENABLED (--enable-mpdidle)" else echo "MPD 'idle' mode support is: DISABLED" fi if test x${enable_taglib} != xno; then echo "Taglib support is: ENABLED (--disable-taglib)" else echo "Taglib support is: DISABLED" fi if test x${enable_libmpdclient2} != xno; then echo "libmpdclient2 support is: ENABLED (--enable-libmpdclient2)" else echo "libmpdclient2 support is: DISABLED" fi ario-1.6/data/0000755000175000017500000000000013226745610010232 500000000000000ario-1.6/data/ui/0000755000175000017500000000000013226745610010647 500000000000000ario-1.6/data/ui/others-prefs.ui0000644000175000017500000004204513226723431013551 00000000000000 10000 8080 1 10 True False vertical True False 10 0 in True False 12 True False GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK 12 vertical Show tabs True True False GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK True False False 0 Hide window when close button is pressed True True False GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK True False False 1 Allow only one instance of Ario True True False True False True 2 True False True False False False 0 Playlist below tabs True True False True True False True 1 False True 2 3 True False True False False False 0 Playlist at the right of tabs True True False True True pl_below_radiobutton False True 1 False True 2 4 True False True False False False 0 Playlist within tabs True True False True True pl_below_radiobutton False True 1 False True 2 5 True False Interface False False 0 True False 10 0 in True False 12 6 True False vertical 5 Use a proxy True True False True True True False False 0 True False True False Proxy Address : 0 0 True False Proxy Port : 2 0 1 True True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK 192.168.0.1 1 0 True True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK adjustment1 1 1 False True 1 True False Proxy False False 1 ario-1.6/data/ui/similar-artists.ui0000644000175000017500000003263313226723431014261 00000000000000 True False GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK vertical True True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK never in True True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK liststore fixed 120 Image 0 Artist 1 Songs 2 False True 0 True False False True 1 True False start True True True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK True False GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK True False GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK gtk-find False True 0 True False GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK Find on Last.fm False True 1 True True 0 True True True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK True False GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK True False GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK gtk-add False True 0 True False GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK Add to playlist False True 1 True True 1 True True True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK True False GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK True False GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK gtk-add False True 0 True False GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK Add all to playlist False True 1 True True 2 False True 2 True False False True 3 True False end vertical start gtk-close True True True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK 3 True True True 0 False True 4 ario-1.6/data/ui/stats-prefs.ui0000644000175000017500000002376313226723431013411 00000000000000 True False GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK vertical True False GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK 10 0 in True False 6 True False GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK start Number of artists : 0 0 True False GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK start Number of albums : 0 1 True False GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK start Number of songs : 0 2 True False GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK start Uptime : 0 3 True False GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK start Play time : 0 4 True False GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK start Database play time : 0 5 True False GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK True start True 1 0 True False GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK start True 1 1 True False GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK start True 1 2 True False GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK start True 1 3 True False GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK start True 1 4 True False GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK start True 1 5 True False GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK Statistics False False 0 ario-1.6/data/ui/playlist-prefs.ui0000644000175000017500000005107613226723431014112 00000000000000 Add to playlist Add and play Replace in playlist Add after playing song True False vertical True False 10 0 in True False 12 True False vertical 4 Go to current song when a new song is played True True False True False True 0 True False start Show rows: False True 1 True False True Track True True False True 0 0 Title True True False True 0 1 Artist True True False True 0 2 Album True True False True 1 0 Date True True False True 2 0 Duration True True False True 1 2 Genre True True False True 1 1 File True True False True 2 1 Disc True True False True 2 2 False True 2 True False Playlist False False 0 True False True 10 0 in True False 8 12 True False GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK 12 vertical 4 True False GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK True False GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK Playlist mode: False False 0 True False GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK liststore 0 False False 1 False True 0 True False Mode False False 1 True False True 10 0 in True False 8 12 True False GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK 12 vertical 4 True False GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK True False GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK On double click: False False 0 True False GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK doubleclick_liststore 0 False False 1 False True 0 True False Double click False False 2 ario-1.6/data/ui/song-infos.ui0000644000175000017500000004277113226723431013220 00000000000000 True False GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK vertical True False GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK 12 0 in True False GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK 8 8 12 12 True False True False GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK Title : 0 0 True False GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK Artist : 0 1 True False GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK Album : 0 2 True False GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK Album Artist : 0 3 True False GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK Track : 0 4 True False GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK Date : 0 5 True False GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK Genre : 0 6 True False GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK Comment : 0 7 True False GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK Filename : 0 8 True False GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK Length : 0 9 True False GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK Composer : 0 10 True False GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK Performer : 0 11 True False GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK Disc : 0 12 True True 1 0 True True 1 1 True True 1 2 True True 1 3 True True 1 4 True True 1 5 True True 1 6 True True 1 7 True True 1 8 True True 1 9 True True 1 10 True True 1 11 True True 1 12 True False GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK Song False False 0 ario-1.6/data/ui/ario-shell-menu.ui0000644000175000017500000001266213226723431014133 00000000000000
Music server
Connect app.connect Disconnect app.disconnect Update database app.update
_View
Upper part app.view-upperpart Playlist app.view-playlist Status bar app.view-statusbar
_Music
Change current album cover app.cover-select Download album covers app.dlcovers Find similar artists app.similar-artists Add similar songs to playlist app.add-similar Show _lyrics app.view-lyrics
Preferences app.preferences Plugins app.plugins
_About app.about _Quit app.quit
ario-1.6/data/ui/ario-songlist-menu.ui0000644000175000017500000000657013226723431014667 00000000000000
Add to playlist app.search-add-to-pl Add and play app.search-add-play Replace in playlist app.search-replace-in-pl Properties app.search-properties
Add to playlist app.storedpl-add-to-pl Add and play app.storedpl-add-play Replace in playlist app.storedpl-clear-add-play Delete app.storedpl-delete
Add to playlist app.storedpl-add-to-pl-songs Add and play app.storedpl-add-play-songs Replace in playlist app.storedpl-clear-add-play-songs Properties app.storedpl-songs-properties
ario-1.6/data/ui/browser-prefs.ui0000644000175000017500000001773313226723431013736 00000000000000 1 5 1 1 10 Alphabetically By year True False vertical True False 10 0 in True False 12 True False GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK 12 vertical True False True True adjustment1 False False 0 False False 0 True False 6 False True 1 True False Library Organisation False False 0 True False 10 0 in True False 12 True False GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK 12 vertical True False True False Sort albums: False False 0 True False liststore 0 False False 1 False True 0 True False Library Options False False 1 ario-1.6/data/ui/cover-progress.ui0000644000175000017500000001772213226723431014114 00000000000000 True False vertical 372 True False 0 none True False 7 12 True False vertical True False 9 6 True False Artist : False False 0 True False False False 1 False True 0 True False 9 6 True False Album : False False 0 True False False False 1 False True 1 True False 0.10000000149 False True 16 2 True False Downloading cover False True 0 True False False True 1 True False gtk-cancel True True False True False False 8 end 0 gtk-close True True False True False False 8 end 1 False True 8 2 ario-1.6/data/ui/connection-dialog.ui0000644000175000017500000000327613226723431014527 00000000000000 False Ario False True center True False vertical True False Connecting to server... False True 6 0 True False False True 6 1 ario-1.6/data/ui/cover-prefs.ui0000644000175000017500000003547413226723431013373 00000000000000 com fr de uk ca jp True False vertical True False 10 0 in True False 12 6 True False vertical 5 Show the covers in the albums list True True False start True True True False False 0 Automatically download the album cover of the playing song True True False GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK True False True 1 True False Covers False False 0 True False GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK 10 0 in True False GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK 6 True True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK in True True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK covers_model fixed 80 Enabled 0 fixed Name 1 True True 0 True False GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK vertical 3 True True True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK True False GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK gtk-goto-top False False 0 True True True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK True False GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK gtk-go-up False True 1 True True True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK True False GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK gtk-go-down False True 2 True True True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK True False GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK gtk-goto-bottom False True 3 False False 1 True False GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK Covers Sources False False 1 ario-1.6/data/ui/ario-playlist-menu.ui0000644000175000017500000000436113226723431014662 00000000000000
_Remove app.playlist-remove Crop app.playlist-crop Clear app.playlist-clear
Go to playing song app.playlist-goto Shuffle app.playlist-shuffle _Save app.playlist-save
_Properties app.playlist-properties
ario-1.6/data/ui/server-prefs.ui0000644000175000017500000003724713226723431013563 00000000000000 15 1 1 10 True False vertical True False 7 0 in True False True False fade time (s): 0 1 True True adjustment1 1 True True 1 1 enable crossfade True True False start True True 0 0 2 True False Crossfade False False 0 True False 7 0 in True False 12 vertical 6 True False 6 True False Last updated: False False 0 True False n/a False False 1 True True 0 True False 0 0 True True False True False 0 0 True False 2 True False gtk-refresh False False 0 True False _Update True False False 1 False False 1 Update on startup True True False True True True 2 Stop music on exit True True False True True True 3 True False Database False False 1 True False 7 0 in 140 True False GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK 12 True True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK 12 in True True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK outputs_model fixed 80 Enabled 0 fixed Name True 1 True False GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK Audio outputs False False 2 ario-1.6/data/ui/ario-browser-menu.ui0000644000175000017500000001032013226723431014474 00000000000000
Add to playlist app.add-to-pl Add and play app.add-play Replace in playlist app.clear-add-play
Get the covers app.get-covers Delete the covers app.remove-covers
Add to playlist app.add-to-pl Add and play app.add-play Replace in playlist app.clear-add-play
Get the covers app.get-covers Delete the covers app.remove-covers
Properties app.albums-properties
Add to playlist app.add-to-pl Add and play app.add-play Replace in playlist app.clear-add-play
Properties app.songs-properties
ario-1.6/data/ui/connection-assistant.ui0000644000175000017500000000524613226723431015300 00000000000000 True False 6 vertical True False 12 True False GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK vertical True False GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK You need to specify a server to connect to. If you don't see your server thanks to the autodetection, you should check that zeroconf/avahi is activated in your server or use the manual configuration. True False True 12 0 True False False True 1 False True 0 ario-1.6/data/ui/connection-widget.ui0000644000175000017500000005613313226723431014553 00000000000000 1 65536 6600 1 10 100 5 1 10 True False GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK 12 True False GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK vertical True True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK never in True True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK profile_model fixed 120 Profile True 0 True True 0 True False GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK True False True True True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK True New profile True False GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK True gtk-new 2 False False 0 False True True True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK True Delete profile True False GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK gtk-delete 2 False False 1 False False 4 1 True True 0 True False True False GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK 4 True True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK True The Music directory as defined in your mpd.conf file. False False True True 0 True True True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK True False GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK gtk-open False False 1 1 7 Music server is on the same computer as Ario True True False True 0 6 2 True False GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK True The Music directory as defined in your mpd.conf file. Music directory : 0 7 True True False False adjustment2 1 True True 1 3 True False Timeout : 0 3 True True True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK True True Autodetect MPD servers True False GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK True False GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK gtk-find False False 0 True False GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK Auto detect False False 1 0 8 2 True False MPD True True False True True True True 0 XMMS 2 (Experimental) True True False True True mpd_radiobutton True True 1 1 5 True False Server type : 0 5 True False Host : 0 1 True False Port : 0 2 True True localhost False False 1 1 True True False False adjustment1 1 True True 1 2 True False GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK Name : 0 0 True True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK Default False False 1 0 True False Password : 0 4 True True False False False 1 4 False True 1 ario-1.6/data/ui/lyrics-prefs.ui0000644000175000017500000002543113226723431013552 00000000000000 True False vertical True False GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK 10 0 in True False GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK 6 True True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK in True True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK lyrics_model fixed 80 Enabled 0 fixed Name 1 True True 0 True False GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK vertical 3 True True True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK True False GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK gtk-goto-top False False 0 True True True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK True False GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK gtk-go-up False True 1 True True True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK True False GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK gtk-go-down False True 2 True True True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK True False GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK gtk-goto-bottom False True 3 False False 1 True False GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK Lyrics Sources False False 0 ario-1.6/data/ui/lyrics-select.ui0000644000175000017500000002774013226723431013717 00000000000000 True False GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK vertical True False vertical True False 4 True False Artist : False False 0 True False ... False False 1 False False 0 True False 4 True False Title : False False 0 True False ... False False 1 False False 1 False False 15 0 True False False True 1 True False GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK True False True True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK 1 0 True False GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK Artist : 0 0 True True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK 1 1 True False GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK Title : 0 1 gtk-find True True True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK True 0 2 2 False True 0 True True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK never in True True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK liststore True fixed 125 Artist True 0 True fixed 125 Title True 1 True fixed 125 Source True 2 False True 1 False True 2 ario-1.6/data/ui/connection-prefs.ui0000644000175000017500000002066413226723431014407 00000000000000 True False vertical True False 10 0 in True False 12 True False Connection False True 0 True False GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK _Autoconnect on startup True True False True True False False end 0 False False 1 True False 10 12 True False True False True False 0 0 True False 2 True False gtk-cancel False False 0 True False _Disconnect True False False 1 False False end 0 True True False True False 0 0 True False 2 True False gtk-ok False False 0 True False _Connect True False False 1 False False 12 end 1 False False 2 ario-1.6/data/ui/cover-select.ui0000644000175000017500000003571313226741125013527 00000000000000 True False vertical True False True False vertical True False 4 True False Artist : False False 0 True False ... False False 1 False False 0 True False 4 True False Album : False False 0 True False ... False False 1 False False 1 False False 15 0 True False gtk-missing-image False False 15 end 1 False False 7 0 True False False True 1 True True True False True False 11 vertical 16 True False True False Artist : 0 0 True False Album : 0 1 True True * 1 0 True True * 1 1 False True 0 gtk-find True True False True False False end 1 False False 6 0 True True never in True True liststore Covers 0 False True 1 True False Search False True False 12 vertical 20 True False 9 True True * False True 0 gtk-open True True False True False False 1 False False 0 1 False True False Local search 1 False False True 2 ario-1.6/data/ui/connection-autodetect.ui0000644000175000017500000001571213226723431015427 00000000000000 False 12 Server autodetection center 400 280 normal True False vertical 2 True False end gtk-cancel True True True True True True 0 gtk-ok True True True True True True 1 False False end 0 True False If you don't see your MPD server thanks to the automatic detection, you should check that zeroconf is activated in your MPD configuration or use the manual configuration. True False False 1 True True never in True True autodetect_model fixed 150 Name 0 fixed 150 Host 1 fixed 50 Port 2 False True 8 2 True False False True 3 cancel_button ok_button ario-1.6/data/Makefile.in0000644000175000017500000006537313226745576012250 00000000000000# Makefile.in generated by automake 1.15.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2017 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__is_gnu_make = { \ if test -z '$(MAKELEVEL)'; then \ false; \ elif test -n '$(MAKE_HOST)'; then \ true; \ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ true; \ else \ false; \ fi; \ } am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = data ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = ario.desktop.in CONFIG_CLEAN_VPATH_FILES = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ ctags-recursive dvi-recursive html-recursive info-recursive \ install-data-recursive install-dvi-recursive \ install-exec-recursive install-html-recursive \ install-info-recursive install-pdf-recursive \ install-ps-recursive install-recursive installcheck-recursive \ installdirs-recursive pdf-recursive ps-recursive \ tags-recursive uninstall-recursive am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__uninstall_files_from_dir = { \ test -z "$$files" \ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } am__installdirs = "$(DESTDIR)$(alldatadir)" "$(DESTDIR)$(artdir)" \ "$(DESTDIR)$(desktopdir)" "$(DESTDIR)$(uidir)" DATA = $(alldata_DATA) $(art_DATA) $(desktop_DATA) $(ui_DATA) RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive am__recursive_targets = \ $(RECURSIVE_TARGETS) \ $(RECURSIVE_CLEAN_TARGETS) \ $(am__extra_recursive_targets) AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ distdir am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) # Read a list of newline-separated strings from the standard input, # and print each of them once, without duplicates. Input order is # *not* preserved. am__uniquify_input = $(AWK) '\ BEGIN { nonempty = 0; } \ { items[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in items) print i; }; } \ ' # Make sure the list of sources is unique. This is necessary because, # e.g., the same source file might be shared among _SOURCES variables # for different programs/libraries. am__define_uniq_tagged_files = \ list='$(am__tagged_files)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) am__DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/ario.desktop.in.in DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_rest='s,^[^/]*/*,,'; \ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ sed_butlast='s,/*[^/]*$$,,'; \ while test -n "$$dir1"; do \ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ if test "$$first" != "."; then \ if test "$$first" = ".."; then \ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ else \ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ if test "$$first2" = "$$first"; then \ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ else \ dir2="../$$dir2"; \ fi; \ dir0="$$dir0"/"$$first"; \ fi; \ fi; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" ACLOCAL = @ACLOCAL@ ALL_LINGUAS = @ALL_LINGUAS@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AR_FLAGS = @AR_FLAGS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AVAHI_CFLAGS = @AVAHI_CFLAGS@ AVAHI_LIBS = @AVAHI_LIBS@ AWK = @AWK@ CATALOGS = @CATALOGS@ CATOBJEXT = @CATOBJEXT@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIRNAME = @DATADIRNAME@ DBUS_CFLAGS = @DBUS_CFLAGS@ DBUS_GLIB_BIN = @DBUS_GLIB_BIN@ DBUS_LIBS = @DBUS_LIBS@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DEPS_CFLAGS = @DEPS_CFLAGS@ DEPS_LIBS = @DEPS_LIBS@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ GLIB_MKENUMS = @GLIB_MKENUMS@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INSTOBJEXT = @INSTOBJEXT@ INTLLIBS = @INTLLIBS@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@ INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@ INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBMPDCLIENT2_CFLAGS = @LIBMPDCLIENT2_CFLAGS@ LIBMPDCLIENT2_LIBS = @LIBMPDCLIENT2_LIBS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MKINSTALLDIRS = @MKINSTALLDIRS@ MSGFMT = @MSGFMT@ MSGFMT_OPTS = @MSGFMT_OPTS@ MSGMERGE = @MSGMERGE@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ PLUGINDIR = @PLUGINDIR@ PLUGIN_DATA_DIR = @PLUGIN_DATA_DIR@ POFILES = @POFILES@ POSUB = @POSUB@ PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ PYGTK_CFLAGS = @PYGTK_CFLAGS@ PYGTK_CODEGEN = @PYGTK_CODEGEN@ PYGTK_DEFSDIR = @PYGTK_DEFSDIR@ PYGTK_H2DEF = @PYGTK_H2DEF@ PYGTK_LIBS = @PYGTK_LIBS@ PYTHON = @PYTHON@ PYTHON_CFLAGS = @PYTHON_CFLAGS@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_EXTRA_LIBS = @PYTHON_EXTRA_LIBS@ PYTHON_LIBS = @PYTHON_LIBS@ PYTHON_LIB_LOC = @PYTHON_LIB_LOC@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ PYTHON_PREFIX = @PYTHON_PREFIX@ PYTHON_VERSION = @PYTHON_VERSION@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ TAGLIB_CFLAGS = @TAGLIB_CFLAGS@ TAGLIB_LIBS = @TAGLIB_LIBS@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ WARNINGS = @WARNINGS@ XGETTEXT = @XGETTEXT@ XMMS2_CFLAGS = @XMMS2_CFLAGS@ XMMS2_LIBS = @XMMS2_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ intltool__v_merge_options_ = @intltool__v_merge_options_@ intltool__v_merge_options_0 = @intltool__v_merge_options_0@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pkgpyexecdir = @pkgpyexecdir@ pkgpythondir = @pkgpythondir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ pyexecdir = @pyexecdir@ pythondir = @pythondir@ runstatedir = @runstatedir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ SUBDIRS = icons desktopdir = $(datadir)/applications desktop_in_files = ario.desktop.in desktop_DATA = $(desktop_in_files:.desktop.in=.desktop) artdir = $(pkgdatadir)/art art_DATA = ario.png \ ario-play.png \ ario-pause.png \ logo.png \ play.png \ shuffle.png \ repeat.png \ consume.png \ pl-below.png \ pl-right.png \ pl-inside.png uidir = $(pkgdatadir)/ui ui_DATA = ui/ario-shell-menu.ui \ ui/ario-playlist-menu.ui \ ui/ario-browser-menu.ui \ ui/ario-songlist-menu.ui \ ui/browser-prefs.ui \ ui/connection-autodetect.ui \ ui/connection-prefs.ui \ ui/connection-assistant.ui \ ui/connection-widget.ui \ ui/connection-dialog.ui \ ui/cover-prefs.ui \ ui/cover-progress.ui \ ui/cover-select.ui \ ui/lyrics-select.ui \ ui/lyrics-prefs.ui \ ui/others-prefs.ui \ ui/playlist-prefs.ui \ ui/server-prefs.ui \ ui/similar-artists.ui \ ui/song-infos.ui \ ui/stats-prefs.ui alldatadir = $(pkgdatadir)/data alldata_DATA = profiles.xml.default # Rule to update the icon cache after installing the icon gtk_update_icon_cache = gtk-update-icon-cache -f -t $(datadir)/icons/hicolor EXTRA_DIST = \ $(desktop_in_files) \ $(art_DATA) \ $(ui_DATA) \ $(alldata_DATA) \ $(ui_DATA) CLEANFILES = $(desktop_DATA) all: all-recursive .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign data/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign data/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): ario.desktop.in: $(top_builddir)/config.status $(srcdir)/ario.desktop.in.in cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs install-alldataDATA: $(alldata_DATA) @$(NORMAL_INSTALL) @list='$(alldata_DATA)'; test -n "$(alldatadir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(alldatadir)'"; \ $(MKDIR_P) "$(DESTDIR)$(alldatadir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(alldatadir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(alldatadir)" || exit $$?; \ done uninstall-alldataDATA: @$(NORMAL_UNINSTALL) @list='$(alldata_DATA)'; test -n "$(alldatadir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(alldatadir)'; $(am__uninstall_files_from_dir) install-artDATA: $(art_DATA) @$(NORMAL_INSTALL) @list='$(art_DATA)'; test -n "$(artdir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(artdir)'"; \ $(MKDIR_P) "$(DESTDIR)$(artdir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(artdir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(artdir)" || exit $$?; \ done uninstall-artDATA: @$(NORMAL_UNINSTALL) @list='$(art_DATA)'; test -n "$(artdir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(artdir)'; $(am__uninstall_files_from_dir) install-desktopDATA: $(desktop_DATA) @$(NORMAL_INSTALL) @list='$(desktop_DATA)'; test -n "$(desktopdir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(desktopdir)'"; \ $(MKDIR_P) "$(DESTDIR)$(desktopdir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(desktopdir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(desktopdir)" || exit $$?; \ done uninstall-desktopDATA: @$(NORMAL_UNINSTALL) @list='$(desktop_DATA)'; test -n "$(desktopdir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(desktopdir)'; $(am__uninstall_files_from_dir) install-uiDATA: $(ui_DATA) @$(NORMAL_INSTALL) @list='$(ui_DATA)'; test -n "$(uidir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(uidir)'"; \ $(MKDIR_P) "$(DESTDIR)$(uidir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(uidir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(uidir)" || exit $$?; \ done uninstall-uiDATA: @$(NORMAL_UNINSTALL) @list='$(ui_DATA)'; test -n "$(uidir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(uidir)'; $(am__uninstall_files_from_dir) # This directory's subdirectories are mostly independent; you can cd # into them and run 'make' without going through this Makefile. # To change the values of 'make' variables: instead of editing Makefiles, # (1) if the variable is set in 'config.status', edit 'config.status' # (which will cause the Makefiles to be regenerated when you run 'make'); # (2) otherwise, pass the desired values on the 'make' command line. $(am__recursive_targets): @fail=; \ if $(am__make_keepgoing); then \ failcom='fail=yes'; \ else \ failcom='exit 1'; \ fi; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" ID: $(am__tagged_files) $(am__define_uniq_tagged_files); mkid -fID $$unique tags: tags-recursive TAGS: tags tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: ctags-recursive CTAGS: ctags ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" cscopelist: cscopelist-recursive cscopelist-am: $(am__tagged_files) list='$(am__tagged_files)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ esac; \ for i in $$list; do \ if test -f "$$i"; then \ echo "$(subdir)/$$i"; \ else \ echo "$$sdir/$$i"; \ fi; \ done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ $(am__make_dryrun) \ || test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done check-am: all-am check: check-recursive all-am: Makefile $(DATA) installdirs: installdirs-recursive installdirs-am: for dir in "$(DESTDIR)$(alldatadir)" "$(DESTDIR)$(artdir)" "$(DESTDIR)$(desktopdir)" "$(DESTDIR)$(uidir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-recursive -rm -f Makefile distclean-am: clean-am distclean-generic distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-alldataDATA install-artDATA \ install-desktopDATA install-uiDATA @$(NORMAL_INSTALL) $(MAKE) $(AM_MAKEFLAGS) install-data-hook install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: uninstall-alldataDATA uninstall-artDATA \ uninstall-desktopDATA uninstall-uiDATA @$(NORMAL_INSTALL) $(MAKE) $(AM_MAKEFLAGS) uninstall-hook .MAKE: $(am__recursive_targets) install-am install-data-am \ install-strip uninstall-am .PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \ check-am clean clean-generic clean-libtool cscopelist-am ctags \ ctags-am distclean distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-alldataDATA install-am install-artDATA \ install-data install-data-am install-data-hook \ install-desktopDATA install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-pdf install-pdf-am \ install-ps install-ps-am install-strip install-uiDATA \ installcheck installcheck-am installdirs installdirs-am \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags tags-am uninstall uninstall-alldataDATA uninstall-am \ uninstall-artDATA uninstall-desktopDATA uninstall-hook \ uninstall-uiDATA .PRECIOUS: Makefile @INTLTOOL_DESKTOP_RULE@ install-data-hook: update-icon-cache uninstall-hook: update-icon-cache update-icon-cache: @-if test -z "$(DESTDIR)"; then \ echo "Updating Gtk icon cache."; \ $(gtk_update_icon_cache); \ else \ echo "*** Icon cache not updated. After (un)install, run this:"; \ echo "*** $(gtk_update_icon_cache)"; \ fi # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: ario-1.6/data/logo.png0000644000175000017500000004553413226723431011630 00000000000000PNG  IHDRUgAMA a OiCCPPhotoshop ICC profilexڝSgTS=BKKoR RB&*! J!QEEȠQ, !{kּ> H3Q5 B.@ $pd!s#~<<+"x M0B\t8K@zB@F&S`cbP-`'{[! eDh;VEX0fK9-0IWfH  0Q){`##xFW<+*x<$9E[-qWW.(I+6aa@.y24x6_-"bbϫp@t~,/;m%h^ uf@Wp~<5j>{-]cK'Xto(hw?G%fIq^D$.Tʳ?D*A, `6B$BB dr`)B(Ͱ*`/@4Qhp.U=pa( Aa!ڈbX#!H$ ɈQ"K5H1RT UH=r9\F;2G1Q= C7F dt1r=6Ыhڏ>C03l0.B8, c˱" VcϱwE 6wB aAHXLXNH $4 7 Q'"K&b21XH,#/{C7$C2'ITFnR#,4H#dk9, +ȅ3![ b@qS(RjJ4e2AURݨT5ZBRQ4u9̓IKhhitݕNWGw Ljg(gwLӋT071oUX**| J&*/Tު UUT^S}FU3S ԖUPSSg;goT?~YYLOCQ_ cx,!k u5&|v*=9C3J3WRf?qtN (~))4L1e\kXHQG6EYAJ'\'GgSSݧ M=:.kDwn^Loy}/TmG X $ <5qo</QC]@Caaᄑ.ȽJtq]zۯ6iܟ4)Y3sCQ? 0k߬~OCOg#/c/Wװwa>>r><72Y_7ȷOo_C#dz%gA[z|!?:eAAA!h쐭!ΑiP~aa~ 'W?pX15wCsDDDޛg1O9-J5*>.j<74?.fYXXIlK9.*6nl {/]py.,:@LN8A*%w% yg"/6шC\*NH*Mz쑼5y$3,幄'L Lݛ:v m2=:1qB!Mggfvˬen/kY- BTZ(*geWf͉9+̳ې7ᒶKW-X潬j9(xoʿܔĹdff-[n ڴ VE/(ۻCɾUUMfeI?m]Nmq#׹=TR+Gw- 6 U#pDy  :v{vg/jBFS[b[O>zG499?rCd&ˮ/~јѡ򗓿m|x31^VwwO| (hSЧc3- pHYs  tIME!X IDATxiWy.{ݧh߽ 8_/BO/֢ ^{ThpΟ_yknH0}X,5eEUΩ|y`@g PXc=l$xd{.SaBƶ*yPm޵ks3 @#Xȯ< j&k3Ddֹ" B lۑ81]4?3{"[K&υKkC  cAq:'فKdzM̔V& }yղ-H.^ԛiʾ8<> -cQZHF"DTN>}pjphnXnd0j9# Yԝ|Ģ80u~::BA1eBPbLؾwCr#=V;R]u⁷mYKl I1C,+: XEh( c#O]'?Hztzd0Uk6.ӡ1 54|quX"ӗ·shN^:=>6U\3[È.K,Kt5TLXǤڙh<ګkґ  @wH$lLvPR UKГ/O$z'#G 6XLj-ض~Q◷h74C?F.^S|=s*iZaK9ݍ%iIX)"#xt|tώWHWtk3Zi@}ot1c R s> B<<|ׅB!nYV/c,!D$H4i 7襓3+lGn2tmղ+/~5zHB#Z id U)r_P)2VK""TxV3Rsn3SD5'o;TqF# nZ߽y 3Sg`BRg~,'2%,L=3R|R1kn78Q T*f>iith_~tCz0b'dLYjcBA4f zhFeKՙR}玿@Pyi^ {&IUVJ/^ z]`؊'^ITfiu]m4ٿ<5C;.g) I~Obt*NǦ Ūu/|N)<اjrTNT u(@Eux/ T ,%V2S[W8v HdK51)[cRtq:_=Z~>JS' r#R sTd`D{f-,E\OMMJpՉX`T) ]պ#g5g G'* rB;O}: σJRWR/sPA0E*Le˖n><<% &Pxjs٬xbشY6u;r9q(u:'^JˑYʖv\=#g>L8.V37lؠxvZi@\}0q:,9m޼ټ+^zʕ+V\.J-ZKpDd#"MJYSJJ)GJYvTקr#G?tP:ݻwg=j>|X |UKTdX dT;0->:{RS?!<]E1!tg~۾II}U7K U J*ܼm8ҿ 5ෟڱcwwӟL`uXAYYk v }Ajŋ뒷-{ϋmZT*\.chU^٤0'lӬJTD=`0zLR:Gtrud6pgʐla$UmpBH 0iڊ7t;~~ic>`106b& .|=w+ T<TŴO}SCK, J feiTĜ 0..V@n`0Y jtU`?OY|>aw&Z3H!?dgjj5}z*3T*u^z= /|=>]M/m~{ ,u mUT@ ^ N3O>mojί{zO__{o֫/`ݵD$@(9'ihV{ںu=-%DXD:Ɖt}ͯASbV߽x2@#DCا|` d~lġyvw`7.{\ x iҿssϑ̟oқ9Iܰa}C>PEe2`L2B-^8wׯ_qX }ӘRǭ<>/Qnb7n \d s-@b1ejpHfYh#]k9Ҿ|l}O֯,^3aFW?/w?C{a:#RA-²> ~%$oGׯTea||OT9?9'b.xkԅ{a^lGmw@pdc{k=W{e-} `e ǫ/_GƁj|-?R쵳jB4m͛39cn8B 8ҷnݚGFF>j5c|2-He].6j(RQ½MS#ٴ̑ ̗(6_]:|z[xgM&8QjbU5o}[o+o?=!z֘k;[H!nz3^|]>622ATJccc8<:YctRx +Xle!cRj0UTsBKXѫWc1o?_|͠ixC LnA)D"qmv

[%h ,B+VľoƪU>HD:TUؔ&ZN4"-uukA%he;<`waHJZ͂ V?U7`*TjBJ ]WtMرmګZja._[7mcI/MLLDKgp Z.r(8y`Dd;=lm|=> -d}1wcBB1s;w| W;ΧRA4MW_}'4M۶N1:vDLepV[.V,}(@Q b5!@c`a .}+Bao^B^xl߾g\B;%-2]4B `brJkHML%d;+|mw]@L?c9`E{CXQˁnyԔO pk׮vyKh, cJ/0  G7="r;߱ud6BRhPma¡yywt\;8>"Fs1cט5qO`'!z\ %01}nڵktKe֪:3S^!WD3~G1_F2D#(rPX h+~7o}8,29KwARun%A0(5mSt06J_ ` R,̤R1袋>C];Zev(l'?kbl6i-3ki/1?[1rkcnZ Lyٟ IQ Sk ,va.CS߮kvY)m۾p}]Y,WcU6HC?,>ﮙL@~9HA1WP ZC[0 ᜰPά݀ƚKrWF*vLR 馛g?8D/XH\ RvLXƭ+D""B\^>-PHp'gJDRa(,#0`QNhB+ [/{߾­3ۛ׺?ź o>%aqauJRja*HAgh7z]6z|vrĴ [1r5+ ,BDm۶-dɒzYJ}>sB Fƙ, 7a><"ac8!l 7[G=ӲU{gwlwVj'e 8okMt[& Yg`'#"O|R0=j5TkurrHFMTS>SȈmdQD4NDMs~%b]d6Ǿ $nFw wmCà] $u\?/)KH2=L^w]w1aA̹5[*YaKƍ/jbͶT{1nSvpX&B6N5}5@ P["Wgl881{~xw횔EhÆ >PlU+Ԝ #g۶m[%Dļ~zlVZC>쵊3[İbٯ jC+o$UlY҉R+K*2zNRb ?l?CW!2*c뇺VeY8Y6Nkqϰb ] l>o;q5Tg~G֊0Zcn㝳ѓ"ի[n靇dskن yU @=E`Z|>[_X^4 WaQhgGZh\ 傪ۘ=gDsXRuu}~ cZRF(cuޑ֭[Vvډ-aVMڣ EZLfch!]~\a"y;Td;ƛZ ˗/7܍7 Y S^Y/-AN1;!*֨-ۭIyM6fS-D ɤS%C|f+ވH!j`oF5Kz9T H(L"2{='f 4H5:2+ޭ8c@Qeǭ ^p )&{]I ,0WɊ7=_cy3]ɠ1wEK}}}?>]%Ј;B/9bť5MiQ WXMp 8gԫ jJNXDnWGM#y(:NPj[FEje("W".bK ]&n+u L!qiUh9bWS+cTK ( ʿ>ülƤc^g~i)  zW3q.,"Ɲfd%E+\n/nǬuP.XD v1"'8ͪ!7cVOE|[_"ecNsf=[,Vn5 /xU@Żvg/^N4Mk|qKAQN [x7kZ z%͂;>!̽&N c_WFY s턘 K_0w?9[ zm֢uuS. {O[(軣zz:s/Lv{pbY_P\]c0~(GꄓN7T!,_ﯷ:ߩVsx$֭\ )0Z#LU*cP4$M՚1|[`súٛe۰mB AA)jqx<dLo٬wd4% /#1R JmqP<žX*|>:↦Mr#),R4umh vI.KKyK)1cP܉ L]GFXlkV,-,LI }7<;–0ec5lkL%8 U %3ZYasFRK;/_~߁ukSv,U+Uetw mBB_j) dPlt$^8< נ:R>A)b<:pé;,,(APh,s`s|ENL3*HRM B \)c؈XC]<بeFF$07¬jz>kx lIbH1P妹44Р T*H$(Lea;"5#c/gs|@,8ǿfTB ַ5vmqC[{hZZ1: N MP Dʕg@1)0YLp})ZHt鴅Cp SFjhEXʺ-PVыnpd}/!uBaԔo߾'oFEChE҉f"Ňb( FFJ.(;9?}J"7@ &+t[ Ԭ l"^gbvt6}aj,m+b4e/%wrUc;#_I{17wx?^4vzvh,Tl `I(58u dv|Ov~ X~J|{;M}UoLR43!qK]Z;y/>q,/ob!UUKН,i@6v4ky$ѽC ?Է#?%^xd~꺞.'ҬNFehH c 7]8k!3?ލn(BW٪*Txx~`к ֮1(Vݔc;jblPvt**w< TTj$s !X>Ͽ4^ ۗъ.@X˜*|%bnHmI1ׄe V+nwfrXDi ϧ NM@c}쎃LtpsG^퇟} }θDO"~8K/W\"^X#F㶖Dca'5mO<8e$1H[b -2'8ugh{lQJxoӅ(<>1 |*Ǒ\ٝ_|26u>kbhQضs=_|MR%!feSrwY ~\x dOBH,G" ]Qk{w}N%lh-ar* )U'PrX+f+M7v2ܲ65yl1V'%#ȿn޼8 qy]U./C줭b/ЯcFJ8KjcӺ0Yژ`&1ݢo ۚk&#~;Q>Vw]-{0 ld#n2$bFƘ뺇 A>O/+1BR+j)38r2̾L&Skv'3T i:x`}_9O18e;[QZWsjF7q~pT"&P%ޤP_͛0>1ǖ}rK,KT*!ͪÇ{wo**uOTa|sٳ'{ 7l!"g/N@;9IBj?m=k =ؽ8`ͯYd2|ތmVAe0vj"X+8   .W, wllr<TLj!kH|^I)Ol۶maEW\ƴ~CZ'JD̈Ή&@P8ӅKpdRdܓPSE_ކ[nKa553j}DH$ yauR:%7ʒ J%fOB'ę  c:_|֬Ys<2y,NNaJ:/X#R`?K.Z tLΔQ@1Jpj k»v.\[V1xb!#OQ!!C; @KYRkU&A6;v㡇:HdTghV 1J_r%l`fZ*&SJК-^*rYFXNїc>,O!7u7Q΍EM*GcҷqHTVtk}0::>h[g[k 05~`bg>/_W.Zlٻc:6CuQ ҂3aHDz81_-뗶<a:x! ,wUx_JKg#\;e)pP,/њ@gM/ƚ+$6011!2̞]+}. wXjr,D㴗P,8^U ݂8r34zk#Q:b fffNN_9:5\ kj޽.+cJ)%]<^Y1bY{-zYZK%gH>P 30bMN󘒉"H! D!˛ȄA/S@JfryuVߙV aO~2s[rUD1bx\+hkgϻ< Y d0BGQC[8YXU=Z/ȶmLNN"NcttzzL0a6_?c_~ynxxxRPJ5A !k,̡(:`ދ`* DP)6 IWJ!cbbL~g뮻vJ)_Yζ$QV?UW]e^ҽjLMӼLz{/B__%Loz&2Xl U;ELgD:ensNsgNaC3{_jqLMM!w?2 0Y nW,~}[noVJ%6`p|MHg! & * `!öjQ +3DSWm߾7* QVBeY;aÆ.Պ-Ƞ>VQfDWRk}0 BY()Z G6ͽ wy?mzù9Z&yc/,_||XARf|c4`Ś3%eBq%Q'J1Q[ޭus+慿 ̔>1LOOT*ٳjPW3 <{\8zgvԊ+NRضMAy-3zb,cp Pu8cTPp JYJRPi}qޥw"L&1LLL ˩b̏~_Q.>u9譖f~8;.]4mĶmnL@#-exoW$ j1oT(\hUHeI!Jz1T=! BJH(Jt:}7=(zX;g@IpGk5jK#"mɒ%[o#Wxlǎ7RZPA~N\B5_y}被o6M0 7kCӴfBIJ ۶QQTP.R^K۶gfff޵ksR, >vb)sB9n b1_t7^|4{t]t]a-M&@^ $q`Y,BVC^GZm6˲mU˲G||6Ӄ 2T'Sub0bƈ _ҫe˖]L&/0 cHuC4 A`i6XǑmWB>wmA)(yTe`EWEe=>k޸q5k\JV'ɍ%5MK0tι#Ƙ'*o(PB˶mSZGyiǎGvޝGp(չf~5_06-[,Zr咁#a2L1hDĥu)eVU*b8'&&ۗ޿1XJ)~$9GS Z;V+YVX1cR/6t]gJEcT*ĉL&D NQxdXYWEtCN z 0XX 1^0kP`u`:<: xIDATCXdx=Na`NL5_BQz]B:,lL(_عy :|<^༨S|r~9_///V'IENDB`ario-1.6/data/ario-pause.png0000644000175000017500000001577413226723431012740 00000000000000PNG  IHDR00W OiCCPPhotoshop ICC profilexڝSgTS=BKKoR RB&*! J!QEEȠQ, !{kּ> H3Q5 B.@ $pd!s#~<<+"x M0B\t8K@zB@F&S`cbP-`'{[! eDh;VEX0fK9-0IWfH  0Q){`##xFW<+*x<$9E[-qWW.(I+6aa@.y24x6_-"bbϫp@t~,/;m%h^ uf@Wp~<5j>{-]cK'Xto(hw?G%fIq^D$.Tʳ?D*A, `6B$BB dr`)B(Ͱ*`/@4Qhp.U=pa( Aa!ڈbX#!H$ ɈQ"K5H1RT UH=r9\F;2G1Q= C7F dt1r=6Ыhڏ>C03l0.B8, c˱" VcϱwE 6wB aAHXLXNH $4 7 Q'"K&b21XH,#/{C7$C2'ITFnR#,4H#dk9, +ȅ3![ b@qS(RjJ4e2AURݨT5ZBRQ4u9̓IKhhitݕNWGw Ljg(gwLӋT071oUX**| J&*/Tު UUT^S}FU3S ԖUPSSg;goT?~YYLOCQ_ cx,!k u5&|v*=9C3J3WRf?qtN (~))4L1e\kXHQG6EYAJ'\'GgSSݧ M=:.kDwn^Loy}/TmG X $ <5qo</QC]@Caaᄑ.ȽJtq]zۯ6iܟ4)Y3sCQ? 0k߬~OCOg#/c/Wװwa>>r><72Y_7ȷOo_C#dz%gA[z|!?:eAAA!h쐭!ΑiP~aa~ 'W?pX15wCsDDDޛg1O9-J5*>.j<74?.fYXXIlK9.*6nl {/]py.,:@LN8A*%w% yg"/6шC\*NH*Mz쑼5y$3,幄'L Lݛ:v m2=:1qB!Mggfvˬen/kY- BTZ(*geWf͉9+̳ې7ᒶKW-X潬j9(xoʿܔĹdff-[n ڴ VE/(ۻCɾUUMfeI?m]Nmq#׹=TR+Gw- 6 U#pDy  :v{vg/jBFS[b[O>zG499?rCd&ˮ/~јѡ򗓿m|x31^VwwO| (hSЧc3-bKGD pHYs  tIMEbWW.IDAThYyp]}~gywy/%Y&6i!.i&6]@I[x\I[ORڲ$iCgN)2@qi!@+xd˲+2Μ>]}[9$9x8 @i@пz]{Ic (~{ušY[u44IK`\ŘC{cl9raZk* }{߫\{UUOOlzjڟs2Kl _d:W,mJ}0[[ %~?M?ֲܴ%f#"U 4119D{Fr81Ė3R~YO{!{q_KG kA/K,->p߃0Bu1==w_Z,퉉 `l6}<ժ_زw2R[א.[.3l'N#RӵhT=U*U`Юv5@ >`\@pB@k$X6C3Zر#TN\׷;gi D~A͛'5{LWWGA:NAJi4 h}Ju<@c ! 3g`&?m`ܻk0q@r nBs@kkb D3˗- u;ަc A=mۿMcBzr(F }o-;gHFKfdBsF a~gM ݕK[JֹOBp."HNjLmjkW_ݲm۶75598u }A0WBr9@sp@keLi߿'$D 8<n5nO.O!W|ɻ瞏SXVDi$y4 s\_! 3Vtq ‰xAfl-H|рЯWqlڴiM\ܬؠ<DjXOeYy "B H) jD(@9d&RxLPɀ[3yԳӅK._7vLIF0`/[GJ15Z6) @M18 qy@ce(r\ odoQkw۷o_9R7&R,qW֚2E)f(Np"ak:ywo$Fu?S[[[/#h41p&8&

7lMm/Tfh Jz[xR+_%?0R J1iEl5!{0M9^ZX7nr ZS\cNir,kJATJʐ2DQ yЌD.KJ/s(yc][{(x! C 8q3! 8i/P ?ONFLh;яzj‰jS&#a=~CX@Ph롱._a45 huƪ&zhj4\' Uѻ$@l:h:`bTëjmXܷ|Ze$( 7;il Ϫ|  h2>&<#@ >utcmmmm-wuuդbUxW`eԹ*_-4lRڊ4@R72$4ЩL𨄀ŀ,S>e-tjRۯ_v!g'A<666FDhveSk)26!9M= "`AZo/,}Ail5S < O@|֬Y %eP҆@(#c1E,: S" X[5G1Bd F yG=x{珅a86}&bFiζ0H2f 4,.!À 'd!%3#󞮬!6(9T5t@*|7/ddG 63g,S?:<koT*MH$mK){l&fq&Tb;UJAyK '8{x*M#y#7 " w}3p>ZWZ*("<9c$#H̙hٙսX\ Թn}qQ9Twu}QUb|e^ziϪUl6)y&=j"QET$9SN攷ƍ=88x,.@ P=sWXd7\YZM1.Hf[ڮǃ<#崿 ]vE=>̤Ҧ4$TEg\xB۲[6JB呖ˬ Dh zo㜟^Wiy6Ւ+yJ7ZZZ.du5dmѕSZJ FtVfa8tlhaD<%j[n}gXL;voڴ޲"Nk֜ A+t1@ aQŠ|1v|ԁ~G5_KUOTj]/}[쾾[n/|qH)aZbjj 㵓'O9r{={-^ov,?-7"2 `5\ӳqeYMs[k >~ĉqRt??ӖIENDB`ario-1.6/data/profiles.xml.default0000644000175000017500000000020013226723431014127 00000000000000 Default ario-1.6/data/ario.desktop.in0000644000175000017500000000027013226745607013111 00000000000000[Desktop Entry] Name=Ario _GenericName=Ario music player _Comment=Client application to mpd Exec=ario Icon=ario Terminal=false Type=Application Categories=GNOME;GTK;AudioVideo;Audio; ario-1.6/data/ario.desktop.in.in0000644000175000017500000000027013226723431013505 00000000000000[Desktop Entry] Name=Ario _GenericName=Ario music player _Comment=Client application to mpd Exec=ario Icon=ario Terminal=false Type=Application Categories=GNOME;GTK;AudioVideo;Audio; ario-1.6/data/icons/0000755000175000017500000000000013226745610011345 500000000000000ario-1.6/data/icons/Makefile.in0000644000175000017500000004754513226745576013364 00000000000000# Makefile.in generated by automake 1.15.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2017 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__is_gnu_make = { \ if test -z '$(MAKELEVEL)'; then \ false; \ elif test -n '$(MAKE_HOST)'; then \ true; \ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ true; \ else \ false; \ fi; \ } am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = data/icons ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ ctags-recursive dvi-recursive html-recursive info-recursive \ install-data-recursive install-dvi-recursive \ install-exec-recursive install-html-recursive \ install-info-recursive install-pdf-recursive \ install-ps-recursive install-recursive installcheck-recursive \ installdirs-recursive pdf-recursive ps-recursive \ tags-recursive uninstall-recursive am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive am__recursive_targets = \ $(RECURSIVE_TARGETS) \ $(RECURSIVE_CLEAN_TARGETS) \ $(am__extra_recursive_targets) AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ distdir am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) # Read a list of newline-separated strings from the standard input, # and print each of them once, without duplicates. Input order is # *not* preserved. am__uniquify_input = $(AWK) '\ BEGIN { nonempty = 0; } \ { items[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in items) print i; }; } \ ' # Make sure the list of sources is unique. This is necessary because, # e.g., the same source file might be shared among _SOURCES variables # for different programs/libraries. am__define_uniq_tagged_files = \ list='$(am__tagged_files)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) am__DIST_COMMON = $(srcdir)/Makefile.in DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_rest='s,^[^/]*/*,,'; \ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ sed_butlast='s,/*[^/]*$$,,'; \ while test -n "$$dir1"; do \ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ if test "$$first" != "."; then \ if test "$$first" = ".."; then \ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ else \ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ if test "$$first2" = "$$first"; then \ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ else \ dir2="../$$dir2"; \ fi; \ dir0="$$dir0"/"$$first"; \ fi; \ fi; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" ACLOCAL = @ACLOCAL@ ALL_LINGUAS = @ALL_LINGUAS@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AR_FLAGS = @AR_FLAGS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AVAHI_CFLAGS = @AVAHI_CFLAGS@ AVAHI_LIBS = @AVAHI_LIBS@ AWK = @AWK@ CATALOGS = @CATALOGS@ CATOBJEXT = @CATOBJEXT@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIRNAME = @DATADIRNAME@ DBUS_CFLAGS = @DBUS_CFLAGS@ DBUS_GLIB_BIN = @DBUS_GLIB_BIN@ DBUS_LIBS = @DBUS_LIBS@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DEPS_CFLAGS = @DEPS_CFLAGS@ DEPS_LIBS = @DEPS_LIBS@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ GLIB_MKENUMS = @GLIB_MKENUMS@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INSTOBJEXT = @INSTOBJEXT@ INTLLIBS = @INTLLIBS@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@ INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@ INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBMPDCLIENT2_CFLAGS = @LIBMPDCLIENT2_CFLAGS@ LIBMPDCLIENT2_LIBS = @LIBMPDCLIENT2_LIBS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MKINSTALLDIRS = @MKINSTALLDIRS@ MSGFMT = @MSGFMT@ MSGFMT_OPTS = @MSGFMT_OPTS@ MSGMERGE = @MSGMERGE@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ PLUGINDIR = @PLUGINDIR@ PLUGIN_DATA_DIR = @PLUGIN_DATA_DIR@ POFILES = @POFILES@ POSUB = @POSUB@ PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ PYGTK_CFLAGS = @PYGTK_CFLAGS@ PYGTK_CODEGEN = @PYGTK_CODEGEN@ PYGTK_DEFSDIR = @PYGTK_DEFSDIR@ PYGTK_H2DEF = @PYGTK_H2DEF@ PYGTK_LIBS = @PYGTK_LIBS@ PYTHON = @PYTHON@ PYTHON_CFLAGS = @PYTHON_CFLAGS@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_EXTRA_LIBS = @PYTHON_EXTRA_LIBS@ PYTHON_LIBS = @PYTHON_LIBS@ PYTHON_LIB_LOC = @PYTHON_LIB_LOC@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ PYTHON_PREFIX = @PYTHON_PREFIX@ PYTHON_VERSION = @PYTHON_VERSION@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ TAGLIB_CFLAGS = @TAGLIB_CFLAGS@ TAGLIB_LIBS = @TAGLIB_LIBS@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ WARNINGS = @WARNINGS@ XGETTEXT = @XGETTEXT@ XMMS2_CFLAGS = @XMMS2_CFLAGS@ XMMS2_LIBS = @XMMS2_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ intltool__v_merge_options_ = @intltool__v_merge_options_@ intltool__v_merge_options_0 = @intltool__v_merge_options_0@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pkgpyexecdir = @pkgpyexecdir@ pkgpythondir = @pkgpythondir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ pyexecdir = @pyexecdir@ pythondir = @pythondir@ runstatedir = @runstatedir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ SUBDIRS = hicolor all: all-recursive .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign data/icons/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign data/icons/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs # This directory's subdirectories are mostly independent; you can cd # into them and run 'make' without going through this Makefile. # To change the values of 'make' variables: instead of editing Makefiles, # (1) if the variable is set in 'config.status', edit 'config.status' # (which will cause the Makefiles to be regenerated when you run 'make'); # (2) otherwise, pass the desired values on the 'make' command line. $(am__recursive_targets): @fail=; \ if $(am__make_keepgoing); then \ failcom='fail=yes'; \ else \ failcom='exit 1'; \ fi; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" ID: $(am__tagged_files) $(am__define_uniq_tagged_files); mkid -fID $$unique tags: tags-recursive TAGS: tags tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: ctags-recursive CTAGS: ctags ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" cscopelist: cscopelist-recursive cscopelist-am: $(am__tagged_files) list='$(am__tagged_files)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ esac; \ for i in $$list; do \ if test -f "$$i"; then \ echo "$(subdir)/$$i"; \ else \ echo "$$sdir/$$i"; \ fi; \ done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ $(am__make_dryrun) \ || test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done check-am: all-am check: check-recursive all-am: Makefile installdirs: installdirs-recursive installdirs-am: install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-recursive -rm -f Makefile distclean-am: clean-am distclean-generic distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: .MAKE: $(am__recursive_targets) install-am install-strip .PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \ check-am clean clean-generic clean-libtool cscopelist-am ctags \ ctags-am distclean distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ installdirs-am maintainer-clean maintainer-clean-generic \ mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ ps ps-am tags tags-am uninstall uninstall-am .PRECIOUS: Makefile # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: ario-1.6/data/icons/hicolor/0000755000175000017500000000000013226745612013006 500000000000000ario-1.6/data/icons/hicolor/22x22/0000755000175000017500000000000013226745610013563 500000000000000ario-1.6/data/icons/hicolor/22x22/apps/0000755000175000017500000000000013226745610014526 500000000000000ario-1.6/data/icons/hicolor/22x22/apps/Makefile.in0000644000175000017500000004001313226745576016524 00000000000000# Makefile.in generated by automake 1.15.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2017 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__is_gnu_make = { \ if test -z '$(MAKELEVEL)'; then \ false; \ elif test -n '$(MAKE_HOST)'; then \ true; \ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ true; \ else \ false; \ fi; \ } am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = data/icons/hicolor/22x22/apps ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__uninstall_files_from_dir = { \ test -z "$$files" \ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } am__installdirs = "$(DESTDIR)$(iconsdir)" DATA = $(icons_DATA) $(noinst_DATA) am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) am__DIST_COMMON = $(srcdir)/Makefile.in DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALL_LINGUAS = @ALL_LINGUAS@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AR_FLAGS = @AR_FLAGS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AVAHI_CFLAGS = @AVAHI_CFLAGS@ AVAHI_LIBS = @AVAHI_LIBS@ AWK = @AWK@ CATALOGS = @CATALOGS@ CATOBJEXT = @CATOBJEXT@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIRNAME = @DATADIRNAME@ DBUS_CFLAGS = @DBUS_CFLAGS@ DBUS_GLIB_BIN = @DBUS_GLIB_BIN@ DBUS_LIBS = @DBUS_LIBS@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DEPS_CFLAGS = @DEPS_CFLAGS@ DEPS_LIBS = @DEPS_LIBS@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ GLIB_MKENUMS = @GLIB_MKENUMS@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INSTOBJEXT = @INSTOBJEXT@ INTLLIBS = @INTLLIBS@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@ INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@ INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBMPDCLIENT2_CFLAGS = @LIBMPDCLIENT2_CFLAGS@ LIBMPDCLIENT2_LIBS = @LIBMPDCLIENT2_LIBS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MKINSTALLDIRS = @MKINSTALLDIRS@ MSGFMT = @MSGFMT@ MSGFMT_OPTS = @MSGFMT_OPTS@ MSGMERGE = @MSGMERGE@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ PLUGINDIR = @PLUGINDIR@ PLUGIN_DATA_DIR = @PLUGIN_DATA_DIR@ POFILES = @POFILES@ POSUB = @POSUB@ PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ PYGTK_CFLAGS = @PYGTK_CFLAGS@ PYGTK_CODEGEN = @PYGTK_CODEGEN@ PYGTK_DEFSDIR = @PYGTK_DEFSDIR@ PYGTK_H2DEF = @PYGTK_H2DEF@ PYGTK_LIBS = @PYGTK_LIBS@ PYTHON = @PYTHON@ PYTHON_CFLAGS = @PYTHON_CFLAGS@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_EXTRA_LIBS = @PYTHON_EXTRA_LIBS@ PYTHON_LIBS = @PYTHON_LIBS@ PYTHON_LIB_LOC = @PYTHON_LIB_LOC@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ PYTHON_PREFIX = @PYTHON_PREFIX@ PYTHON_VERSION = @PYTHON_VERSION@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ TAGLIB_CFLAGS = @TAGLIB_CFLAGS@ TAGLIB_LIBS = @TAGLIB_LIBS@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ WARNINGS = @WARNINGS@ XGETTEXT = @XGETTEXT@ XMMS2_CFLAGS = @XMMS2_CFLAGS@ XMMS2_LIBS = @XMMS2_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ intltool__v_merge_options_ = @intltool__v_merge_options_@ intltool__v_merge_options_0 = @intltool__v_merge_options_0@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pkgpyexecdir = @pkgpyexecdir@ pkgpythondir = @pkgpythondir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ pyexecdir = @pyexecdir@ pythondir = @pythondir@ runstatedir = @runstatedir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ themedir = $(datadir)/icons/hicolor size = 22x22 context = apps iconsdir = $(themedir)/$(size)/$(context) icons_DATA = \ ario.png noinst_DATA = EXTRA_DIST = \ $(icons_DATA) \ $(noinst_DATA) all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign data/icons/hicolor/22x22/apps/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign data/icons/hicolor/22x22/apps/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs install-iconsDATA: $(icons_DATA) @$(NORMAL_INSTALL) @list='$(icons_DATA)'; test -n "$(iconsdir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(iconsdir)'"; \ $(MKDIR_P) "$(DESTDIR)$(iconsdir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(iconsdir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(iconsdir)" || exit $$?; \ done uninstall-iconsDATA: @$(NORMAL_UNINSTALL) @list='$(icons_DATA)'; test -n "$(iconsdir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(iconsdir)'; $(am__uninstall_files_from_dir) tags TAGS: ctags CTAGS: cscope cscopelist: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(DATA) installdirs: for dir in "$(DESTDIR)$(iconsdir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-iconsDATA install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-iconsDATA .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic clean-libtool \ cscopelist-am ctags-am distclean distclean-generic \ distclean-libtool distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-iconsDATA install-info install-info-am \ install-man install-pdf install-pdf-am install-ps \ install-ps-am install-strip installcheck installcheck-am \ installdirs maintainer-clean maintainer-clean-generic \ mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ ps ps-am tags-am uninstall uninstall-am uninstall-iconsDATA .PRECIOUS: Makefile # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: ario-1.6/data/icons/hicolor/22x22/apps/ario.png0000644000175000017500000000271613226723431016111 00000000000000PNG  IHDRĴl;sBIT|d pHYsyy8tEXtSoftwarewww.inkscape.org<KIDAT8KlE3;;Mı[&UH/A)$R)EHQ'z(8TxH8 zZQ8 ʳTg88i+_ηH}DJt*\(Eٗ-d!H)޽{L&a'cpb8RHV2dI FiRQcEFayjpĔAi:TR2D4įҗ?6hI8}'18t:=fmoobɥQ~yJ}1<^ϗ~vmsV:}< )ĥ6o<78 H6̈́i{6m~ݩc0ұ}݁۵ )ue0xBHBȁX,aƍ/ GS/ơm&2&0kP%|Xw?UU75≉ bf2榌Y ]lkPv&@ 7εEQP(p_ȖqX䪪gvi5uR-XN9mᝩT˗/[[t:mq4CK~K59@oM{\.w 2Jnf_Ci@*(X$ 5VD+FX]`m}$"0T8enhq $|?'("NP5No=L@$`-O&B*@o"[Q`@üyJOaqņE[GA @Сb?fe"^!{ ̔ilFRfXEmgcnvӧkI[*ÎxۊAYا.fFӶs?NnZ={8JX]MAw9~e9ҕ+Wuz`p!;{6ݠ7RW*_m R9s, aR);vc֌x0t`hIt%ЗMR{仯 !O$۷K 5M:55_qznK˫‥C˹`6p.'889rJٔ/ONNj4{LRA7 sb zNJ \.]+7v|>Oljr7>>22%JukK!FQV .B jB{ ]D&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = data/icons/hicolor/22x22 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ ctags-recursive dvi-recursive html-recursive info-recursive \ install-data-recursive install-dvi-recursive \ install-exec-recursive install-html-recursive \ install-info-recursive install-pdf-recursive \ install-ps-recursive install-recursive installcheck-recursive \ installdirs-recursive pdf-recursive ps-recursive \ tags-recursive uninstall-recursive am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive am__recursive_targets = \ $(RECURSIVE_TARGETS) \ $(RECURSIVE_CLEAN_TARGETS) \ $(am__extra_recursive_targets) AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ distdir am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) # Read a list of newline-separated strings from the standard input, # and print each of them once, without duplicates. Input order is # *not* preserved. am__uniquify_input = $(AWK) '\ BEGIN { nonempty = 0; } \ { items[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in items) print i; }; } \ ' # Make sure the list of sources is unique. This is necessary because, # e.g., the same source file might be shared among _SOURCES variables # for different programs/libraries. am__define_uniq_tagged_files = \ list='$(am__tagged_files)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) am__DIST_COMMON = $(srcdir)/Makefile.in DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_rest='s,^[^/]*/*,,'; \ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ sed_butlast='s,/*[^/]*$$,,'; \ while test -n "$$dir1"; do \ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ if test "$$first" != "."; then \ if test "$$first" = ".."; then \ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ else \ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ if test "$$first2" = "$$first"; then \ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ else \ dir2="../$$dir2"; \ fi; \ dir0="$$dir0"/"$$first"; \ fi; \ fi; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" ACLOCAL = @ACLOCAL@ ALL_LINGUAS = @ALL_LINGUAS@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AR_FLAGS = @AR_FLAGS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AVAHI_CFLAGS = @AVAHI_CFLAGS@ AVAHI_LIBS = @AVAHI_LIBS@ AWK = @AWK@ CATALOGS = @CATALOGS@ CATOBJEXT = @CATOBJEXT@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIRNAME = @DATADIRNAME@ DBUS_CFLAGS = @DBUS_CFLAGS@ DBUS_GLIB_BIN = @DBUS_GLIB_BIN@ DBUS_LIBS = @DBUS_LIBS@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DEPS_CFLAGS = @DEPS_CFLAGS@ DEPS_LIBS = @DEPS_LIBS@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ GLIB_MKENUMS = @GLIB_MKENUMS@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INSTOBJEXT = @INSTOBJEXT@ INTLLIBS = @INTLLIBS@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@ INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@ INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBMPDCLIENT2_CFLAGS = @LIBMPDCLIENT2_CFLAGS@ LIBMPDCLIENT2_LIBS = @LIBMPDCLIENT2_LIBS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MKINSTALLDIRS = @MKINSTALLDIRS@ MSGFMT = @MSGFMT@ MSGFMT_OPTS = @MSGFMT_OPTS@ MSGMERGE = @MSGMERGE@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ PLUGINDIR = @PLUGINDIR@ PLUGIN_DATA_DIR = @PLUGIN_DATA_DIR@ POFILES = @POFILES@ POSUB = @POSUB@ PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ PYGTK_CFLAGS = @PYGTK_CFLAGS@ PYGTK_CODEGEN = @PYGTK_CODEGEN@ PYGTK_DEFSDIR = @PYGTK_DEFSDIR@ PYGTK_H2DEF = @PYGTK_H2DEF@ PYGTK_LIBS = @PYGTK_LIBS@ PYTHON = @PYTHON@ PYTHON_CFLAGS = @PYTHON_CFLAGS@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_EXTRA_LIBS = @PYTHON_EXTRA_LIBS@ PYTHON_LIBS = @PYTHON_LIBS@ PYTHON_LIB_LOC = @PYTHON_LIB_LOC@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ PYTHON_PREFIX = @PYTHON_PREFIX@ PYTHON_VERSION = @PYTHON_VERSION@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ TAGLIB_CFLAGS = @TAGLIB_CFLAGS@ TAGLIB_LIBS = @TAGLIB_LIBS@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ WARNINGS = @WARNINGS@ XGETTEXT = @XGETTEXT@ XMMS2_CFLAGS = @XMMS2_CFLAGS@ XMMS2_LIBS = @XMMS2_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ intltool__v_merge_options_ = @intltool__v_merge_options_@ intltool__v_merge_options_0 = @intltool__v_merge_options_0@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pkgpyexecdir = @pkgpyexecdir@ pkgpythondir = @pkgpythondir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ pyexecdir = @pyexecdir@ pythondir = @pythondir@ runstatedir = @runstatedir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ SUBDIRS = apps all: all-recursive .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign data/icons/hicolor/22x22/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign data/icons/hicolor/22x22/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs # This directory's subdirectories are mostly independent; you can cd # into them and run 'make' without going through this Makefile. # To change the values of 'make' variables: instead of editing Makefiles, # (1) if the variable is set in 'config.status', edit 'config.status' # (which will cause the Makefiles to be regenerated when you run 'make'); # (2) otherwise, pass the desired values on the 'make' command line. $(am__recursive_targets): @fail=; \ if $(am__make_keepgoing); then \ failcom='fail=yes'; \ else \ failcom='exit 1'; \ fi; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" ID: $(am__tagged_files) $(am__define_uniq_tagged_files); mkid -fID $$unique tags: tags-recursive TAGS: tags tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: ctags-recursive CTAGS: ctags ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" cscopelist: cscopelist-recursive cscopelist-am: $(am__tagged_files) list='$(am__tagged_files)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ esac; \ for i in $$list; do \ if test -f "$$i"; then \ echo "$(subdir)/$$i"; \ else \ echo "$$sdir/$$i"; \ fi; \ done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ $(am__make_dryrun) \ || test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done check-am: all-am check: check-recursive all-am: Makefile installdirs: installdirs-recursive installdirs-am: install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-recursive -rm -f Makefile distclean-am: clean-am distclean-generic distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: .MAKE: $(am__recursive_targets) install-am install-strip .PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \ check-am clean clean-generic clean-libtool cscopelist-am ctags \ ctags-am distclean distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ installdirs-am maintainer-clean maintainer-clean-generic \ mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ ps ps-am tags tags-am uninstall uninstall-am .PRECIOUS: Makefile # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: ario-1.6/data/icons/hicolor/22x22/Makefile.am0000644000175000017500000000001713226723431015532 00000000000000SUBDIRS = apps ario-1.6/data/icons/hicolor/Makefile.in0000644000175000017500000005100613226745576015006 00000000000000# Makefile.in generated by automake 1.15.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2017 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__is_gnu_make = { \ if test -z '$(MAKELEVEL)'; then \ false; \ elif test -n '$(MAKE_HOST)'; then \ true; \ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ true; \ else \ false; \ fi; \ } am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = data/icons/hicolor ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ ctags-recursive dvi-recursive html-recursive info-recursive \ install-data-recursive install-dvi-recursive \ install-exec-recursive install-html-recursive \ install-info-recursive install-pdf-recursive \ install-ps-recursive install-recursive installcheck-recursive \ installdirs-recursive pdf-recursive ps-recursive \ tags-recursive uninstall-recursive am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive am__recursive_targets = \ $(RECURSIVE_TARGETS) \ $(RECURSIVE_CLEAN_TARGETS) \ $(am__extra_recursive_targets) AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ distdir am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) # Read a list of newline-separated strings from the standard input, # and print each of them once, without duplicates. Input order is # *not* preserved. am__uniquify_input = $(AWK) '\ BEGIN { nonempty = 0; } \ { items[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in items) print i; }; } \ ' # Make sure the list of sources is unique. This is necessary because, # e.g., the same source file might be shared among _SOURCES variables # for different programs/libraries. am__define_uniq_tagged_files = \ list='$(am__tagged_files)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) am__DIST_COMMON = $(srcdir)/Makefile.in DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_rest='s,^[^/]*/*,,'; \ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ sed_butlast='s,/*[^/]*$$,,'; \ while test -n "$$dir1"; do \ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ if test "$$first" != "."; then \ if test "$$first" = ".."; then \ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ else \ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ if test "$$first2" = "$$first"; then \ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ else \ dir2="../$$dir2"; \ fi; \ dir0="$$dir0"/"$$first"; \ fi; \ fi; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" ACLOCAL = @ACLOCAL@ ALL_LINGUAS = @ALL_LINGUAS@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AR_FLAGS = @AR_FLAGS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AVAHI_CFLAGS = @AVAHI_CFLAGS@ AVAHI_LIBS = @AVAHI_LIBS@ AWK = @AWK@ CATALOGS = @CATALOGS@ CATOBJEXT = @CATOBJEXT@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIRNAME = @DATADIRNAME@ DBUS_CFLAGS = @DBUS_CFLAGS@ DBUS_GLIB_BIN = @DBUS_GLIB_BIN@ DBUS_LIBS = @DBUS_LIBS@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DEPS_CFLAGS = @DEPS_CFLAGS@ DEPS_LIBS = @DEPS_LIBS@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ GLIB_MKENUMS = @GLIB_MKENUMS@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INSTOBJEXT = @INSTOBJEXT@ INTLLIBS = @INTLLIBS@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@ INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@ INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBMPDCLIENT2_CFLAGS = @LIBMPDCLIENT2_CFLAGS@ LIBMPDCLIENT2_LIBS = @LIBMPDCLIENT2_LIBS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MKINSTALLDIRS = @MKINSTALLDIRS@ MSGFMT = @MSGFMT@ MSGFMT_OPTS = @MSGFMT_OPTS@ MSGMERGE = @MSGMERGE@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ PLUGINDIR = @PLUGINDIR@ PLUGIN_DATA_DIR = @PLUGIN_DATA_DIR@ POFILES = @POFILES@ POSUB = @POSUB@ PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ PYGTK_CFLAGS = @PYGTK_CFLAGS@ PYGTK_CODEGEN = @PYGTK_CODEGEN@ PYGTK_DEFSDIR = @PYGTK_DEFSDIR@ PYGTK_H2DEF = @PYGTK_H2DEF@ PYGTK_LIBS = @PYGTK_LIBS@ PYTHON = @PYTHON@ PYTHON_CFLAGS = @PYTHON_CFLAGS@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_EXTRA_LIBS = @PYTHON_EXTRA_LIBS@ PYTHON_LIBS = @PYTHON_LIBS@ PYTHON_LIB_LOC = @PYTHON_LIB_LOC@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ PYTHON_PREFIX = @PYTHON_PREFIX@ PYTHON_VERSION = @PYTHON_VERSION@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ TAGLIB_CFLAGS = @TAGLIB_CFLAGS@ TAGLIB_LIBS = @TAGLIB_LIBS@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ WARNINGS = @WARNINGS@ XGETTEXT = @XGETTEXT@ XMMS2_CFLAGS = @XMMS2_CFLAGS@ XMMS2_LIBS = @XMMS2_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ intltool__v_merge_options_ = @intltool__v_merge_options_@ intltool__v_merge_options_0 = @intltool__v_merge_options_0@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pkgpyexecdir = @pkgpyexecdir@ pkgpythondir = @pkgpythondir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ pyexecdir = @pyexecdir@ pythondir = @pythondir@ runstatedir = @runstatedir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ SUBDIRS = 16x16 22x22 24x24 32x32 48x48 64x64 72x72 96x96 128x128 256x256 scalable gtk_update_icon_cache = gtk-update-icon-cache -f -t $(datadir)/icons/hicolor all: all-recursive .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign data/icons/hicolor/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign data/icons/hicolor/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs # This directory's subdirectories are mostly independent; you can cd # into them and run 'make' without going through this Makefile. # To change the values of 'make' variables: instead of editing Makefiles, # (1) if the variable is set in 'config.status', edit 'config.status' # (which will cause the Makefiles to be regenerated when you run 'make'); # (2) otherwise, pass the desired values on the 'make' command line. $(am__recursive_targets): @fail=; \ if $(am__make_keepgoing); then \ failcom='fail=yes'; \ else \ failcom='exit 1'; \ fi; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" ID: $(am__tagged_files) $(am__define_uniq_tagged_files); mkid -fID $$unique tags: tags-recursive TAGS: tags tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: ctags-recursive CTAGS: ctags ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" cscopelist: cscopelist-recursive cscopelist-am: $(am__tagged_files) list='$(am__tagged_files)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ esac; \ for i in $$list; do \ if test -f "$$i"; then \ echo "$(subdir)/$$i"; \ else \ echo "$$sdir/$$i"; \ fi; \ done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ $(am__make_dryrun) \ || test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done check-am: all-am check: check-recursive all-am: Makefile installdirs: installdirs-recursive installdirs-am: install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-recursive -rm -f Makefile distclean-am: clean-am distclean-generic distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: @$(NORMAL_INSTALL) $(MAKE) $(AM_MAKEFLAGS) install-data-hook install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: @$(NORMAL_INSTALL) $(MAKE) $(AM_MAKEFLAGS) uninstall-hook .MAKE: $(am__recursive_targets) install-am install-data-am \ install-strip uninstall-am .PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \ check-am clean clean-generic clean-libtool cscopelist-am ctags \ ctags-am distclean distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am \ install-data-hook install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-pdf install-pdf-am \ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs installdirs-am maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic \ mostlyclean-libtool pdf pdf-am ps ps-am tags tags-am uninstall \ uninstall-am uninstall-hook .PRECIOUS: Makefile install-data-hook: update-icon-cache uninstall-hook: update-icon-cache update-icon-cache: @-if test -z "$(DESTDIR)"; then \ echo "Updating Gtk icon cache."; \ $(gtk_update_icon_cache); \ else \ echo "*** Icon cache not updated. After (un)install, run this:"; \ echo "*** $(gtk_update_icon_cache)"; \ fi # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: ario-1.6/data/icons/hicolor/64x64/0000755000175000017500000000000013226745611013600 500000000000000ario-1.6/data/icons/hicolor/64x64/apps/0000755000175000017500000000000013226745611014543 500000000000000ario-1.6/data/icons/hicolor/64x64/apps/Makefile.in0000644000175000017500000004001313226745576016540 00000000000000# Makefile.in generated by automake 1.15.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2017 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__is_gnu_make = { \ if test -z '$(MAKELEVEL)'; then \ false; \ elif test -n '$(MAKE_HOST)'; then \ true; \ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ true; \ else \ false; \ fi; \ } am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = data/icons/hicolor/64x64/apps ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__uninstall_files_from_dir = { \ test -z "$$files" \ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } am__installdirs = "$(DESTDIR)$(iconsdir)" DATA = $(icons_DATA) $(noinst_DATA) am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) am__DIST_COMMON = $(srcdir)/Makefile.in DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALL_LINGUAS = @ALL_LINGUAS@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AR_FLAGS = @AR_FLAGS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AVAHI_CFLAGS = @AVAHI_CFLAGS@ AVAHI_LIBS = @AVAHI_LIBS@ AWK = @AWK@ CATALOGS = @CATALOGS@ CATOBJEXT = @CATOBJEXT@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIRNAME = @DATADIRNAME@ DBUS_CFLAGS = @DBUS_CFLAGS@ DBUS_GLIB_BIN = @DBUS_GLIB_BIN@ DBUS_LIBS = @DBUS_LIBS@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DEPS_CFLAGS = @DEPS_CFLAGS@ DEPS_LIBS = @DEPS_LIBS@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ GLIB_MKENUMS = @GLIB_MKENUMS@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INSTOBJEXT = @INSTOBJEXT@ INTLLIBS = @INTLLIBS@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@ INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@ INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBMPDCLIENT2_CFLAGS = @LIBMPDCLIENT2_CFLAGS@ LIBMPDCLIENT2_LIBS = @LIBMPDCLIENT2_LIBS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MKINSTALLDIRS = @MKINSTALLDIRS@ MSGFMT = @MSGFMT@ MSGFMT_OPTS = @MSGFMT_OPTS@ MSGMERGE = @MSGMERGE@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ PLUGINDIR = @PLUGINDIR@ PLUGIN_DATA_DIR = @PLUGIN_DATA_DIR@ POFILES = @POFILES@ POSUB = @POSUB@ PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ PYGTK_CFLAGS = @PYGTK_CFLAGS@ PYGTK_CODEGEN = @PYGTK_CODEGEN@ PYGTK_DEFSDIR = @PYGTK_DEFSDIR@ PYGTK_H2DEF = @PYGTK_H2DEF@ PYGTK_LIBS = @PYGTK_LIBS@ PYTHON = @PYTHON@ PYTHON_CFLAGS = @PYTHON_CFLAGS@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_EXTRA_LIBS = @PYTHON_EXTRA_LIBS@ PYTHON_LIBS = @PYTHON_LIBS@ PYTHON_LIB_LOC = @PYTHON_LIB_LOC@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ PYTHON_PREFIX = @PYTHON_PREFIX@ PYTHON_VERSION = @PYTHON_VERSION@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ TAGLIB_CFLAGS = @TAGLIB_CFLAGS@ TAGLIB_LIBS = @TAGLIB_LIBS@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ WARNINGS = @WARNINGS@ XGETTEXT = @XGETTEXT@ XMMS2_CFLAGS = @XMMS2_CFLAGS@ XMMS2_LIBS = @XMMS2_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ intltool__v_merge_options_ = @intltool__v_merge_options_@ intltool__v_merge_options_0 = @intltool__v_merge_options_0@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pkgpyexecdir = @pkgpyexecdir@ pkgpythondir = @pkgpythondir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ pyexecdir = @pyexecdir@ pythondir = @pythondir@ runstatedir = @runstatedir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ themedir = $(datadir)/icons/hicolor size = 64x64 context = apps iconsdir = $(themedir)/$(size)/$(context) icons_DATA = \ ario.png noinst_DATA = EXTRA_DIST = \ $(icons_DATA) \ $(noinst_DATA) all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign data/icons/hicolor/64x64/apps/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign data/icons/hicolor/64x64/apps/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs install-iconsDATA: $(icons_DATA) @$(NORMAL_INSTALL) @list='$(icons_DATA)'; test -n "$(iconsdir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(iconsdir)'"; \ $(MKDIR_P) "$(DESTDIR)$(iconsdir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(iconsdir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(iconsdir)" || exit $$?; \ done uninstall-iconsDATA: @$(NORMAL_UNINSTALL) @list='$(icons_DATA)'; test -n "$(iconsdir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(iconsdir)'; $(am__uninstall_files_from_dir) tags TAGS: ctags CTAGS: cscope cscopelist: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(DATA) installdirs: for dir in "$(DESTDIR)$(iconsdir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-iconsDATA install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-iconsDATA .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic clean-libtool \ cscopelist-am ctags-am distclean distclean-generic \ distclean-libtool distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-iconsDATA install-info install-info-am \ install-man install-pdf install-pdf-am install-ps \ install-ps-am install-strip installcheck installcheck-am \ installdirs maintainer-clean maintainer-clean-generic \ mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ ps ps-am tags-am uninstall uninstall-am uninstall-iconsDATA .PRECIOUS: Makefile # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: ario-1.6/data/icons/hicolor/64x64/apps/ario.png0000644000175000017500000001577213226723431016133 00000000000000PNG  IHDR@@iqsBIT|d pHYsaa>tEXtSoftwarewww.inkscape.org<wIDATx{kוwWCΌnj9Z%W+Y$;HEH0lb# ao8Hh`aALp;kee)?VJἺg{򣺧k]'HR@޺|so&fG6^%}B :/X',}[QEh*ۇX:;b2N!ʰP6WT/ DYK!PGMTDn;q^%' }ײm%ĊSٟ"0RTv rTڥ}bW; 3󎢳455E3g>OO:3hYVr@c `yY{W~NBe *{y9\\"}vUIƲ(xo}wh01==MV^ӡCT.lyGDZ03ʒ\Si )e-PC٣2 "j?3ho暺fnsNh6>gqSCdG0DDt:$f2(dqEm[O|}?b`&e j!eF'S %@ eVfn7nWһ/_i^jB#‚b h  @RJ"D^v}&"q݇BDQdDY])1#I5ݨwʼ{}odfP DB<8IO=v횝dl!v)!gq8r{{{V3IwKL;V%wͪ.y~iy癈4`4VF<(б/H$kccd2R*%LQ3BaԩS/L/Nrqb'I)Ԉ"ȨjF\^ͣ9|Efn !ŭcǚP/_k0,;V| 9lRJOBd9'MNN#Gy<{qHk'@kz#98 0X#>f=Vf, ZvEu)e=4 hͅJEOOOeaf7tKKK6bJdօt:=xԩO?=44t8N#JAW+?CXT( i;Gk!v~^D 8;$pzPaxxc>s7oʕ+/A2lEQTZ7rΟ?{3` c9??o۶c2e噹8>>~̙3_fp\Z+ |-3p%a^F2@=o1"⿾c75>RXo~GSSSGƎ?~?qDbfAu]hh(G?BX f@G{Nl61s3gΜ?y.J\.WW15w+eSkFv OYj2㟟/[/;ѣG|׷oI)(Jx@6=\CJ"l6jZyL&3vܹ/NLL<Ӄg?Y쇢3*T0K?|dm3sfzx[ |ar G 1Ok#Loll/_.\ НH fMj?DD.\sssr}} xatܹ866vP(࿽?), lIT_BwIPghb53hb _<<>ƗfJWQ+YO?gx2eYA0LJ%{jjJ  vmiKPEm "Dݎ; ߝ2?5r2={o481*Eomm}T aH]xV(2 kKw\>rc̜BͦQXݙ0 ff7<];{XX`ʘ Dw ͻ˜lk?Z<Q3;Zk9ݼyS EDN:.Y)%4$)jm,8H|8P\8hԞm$jc3(0W%w"P)`eYrH>x(,Yt(b533GQT5me☀h+{0 6 E@`$WigNܫw P4.Ht:]`c4]A(b!&"l6W1 7w}@JX:V(@ISW.c60*Fy[ceB A<|jps1Fbt>fh4R++J)7c].q2T|;'ۋnj{Gpz]`(ݦѕ&qyyX|iwp`"=kss=̬Y(`Z^KO5y /+vib&2wt۷$`4H#|eT3 E !4I_"^[x Rʠ[noo/EQ p4VB{ XyAdc_+]C)G_1 =l5@mWdԝJj5f:j7z+ ChX9aCY me?"^zuDV"BF%TE;ܥ݃@'y'f?\ D//$XNߴ&9?`U*@jz}pppjXDjXw,ߋ e2 +iC׺',D *P6q-*K?o (\׍m3ZkcccShV}0;xqqo%t,@ j)@ef  К5]ykξYZJ0skqqՊ8QHG[Vl3@ G?f':QؽFLؽ j~4"C'eA+'U?9B CLMMq;*T lcof [%\b~ HnWiwj%g9mۼ$4vٯV襣7>HSSS;A0@kPy?L&r7ޯBvp#f7x0XkHvg}>ƏDK+iş*O{^J{[\X+򗿌URJIED3۞ Ň)!s$ϲ-t$X-0V:O|8=}7V]v%oؠFG3/cLUJ~kmmM_I,c^GT'm"\XXr|:JO crUo!{{Y)id&'gЙOːcY PT֮^c!DJV1['XkA/DTa%! !b߳SSS\*tfER;?}Wu@xA{f@509TB{キyҥo[VkDn*?==wc@rd2VPHEQcR_1 :uԅ_A>GSՂ3aɿTp;,X_E9[[[XZZھt%w+ljzVk5ŋWwwvFi]TP(Zjf|ͯonnVN< \.&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = data/icons/hicolor/64x64 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ ctags-recursive dvi-recursive html-recursive info-recursive \ install-data-recursive install-dvi-recursive \ install-exec-recursive install-html-recursive \ install-info-recursive install-pdf-recursive \ install-ps-recursive install-recursive installcheck-recursive \ installdirs-recursive pdf-recursive ps-recursive \ tags-recursive uninstall-recursive am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive am__recursive_targets = \ $(RECURSIVE_TARGETS) \ $(RECURSIVE_CLEAN_TARGETS) \ $(am__extra_recursive_targets) AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ distdir am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) # Read a list of newline-separated strings from the standard input, # and print each of them once, without duplicates. Input order is # *not* preserved. am__uniquify_input = $(AWK) '\ BEGIN { nonempty = 0; } \ { items[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in items) print i; }; } \ ' # Make sure the list of sources is unique. This is necessary because, # e.g., the same source file might be shared among _SOURCES variables # for different programs/libraries. am__define_uniq_tagged_files = \ list='$(am__tagged_files)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) am__DIST_COMMON = $(srcdir)/Makefile.in DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_rest='s,^[^/]*/*,,'; \ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ sed_butlast='s,/*[^/]*$$,,'; \ while test -n "$$dir1"; do \ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ if test "$$first" != "."; then \ if test "$$first" = ".."; then \ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ else \ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ if test "$$first2" = "$$first"; then \ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ else \ dir2="../$$dir2"; \ fi; \ dir0="$$dir0"/"$$first"; \ fi; \ fi; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" ACLOCAL = @ACLOCAL@ ALL_LINGUAS = @ALL_LINGUAS@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AR_FLAGS = @AR_FLAGS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AVAHI_CFLAGS = @AVAHI_CFLAGS@ AVAHI_LIBS = @AVAHI_LIBS@ AWK = @AWK@ CATALOGS = @CATALOGS@ CATOBJEXT = @CATOBJEXT@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIRNAME = @DATADIRNAME@ DBUS_CFLAGS = @DBUS_CFLAGS@ DBUS_GLIB_BIN = @DBUS_GLIB_BIN@ DBUS_LIBS = @DBUS_LIBS@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DEPS_CFLAGS = @DEPS_CFLAGS@ DEPS_LIBS = @DEPS_LIBS@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ GLIB_MKENUMS = @GLIB_MKENUMS@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INSTOBJEXT = @INSTOBJEXT@ INTLLIBS = @INTLLIBS@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@ INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@ INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBMPDCLIENT2_CFLAGS = @LIBMPDCLIENT2_CFLAGS@ LIBMPDCLIENT2_LIBS = @LIBMPDCLIENT2_LIBS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MKINSTALLDIRS = @MKINSTALLDIRS@ MSGFMT = @MSGFMT@ MSGFMT_OPTS = @MSGFMT_OPTS@ MSGMERGE = @MSGMERGE@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ PLUGINDIR = @PLUGINDIR@ PLUGIN_DATA_DIR = @PLUGIN_DATA_DIR@ POFILES = @POFILES@ POSUB = @POSUB@ PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ PYGTK_CFLAGS = @PYGTK_CFLAGS@ PYGTK_CODEGEN = @PYGTK_CODEGEN@ PYGTK_DEFSDIR = @PYGTK_DEFSDIR@ PYGTK_H2DEF = @PYGTK_H2DEF@ PYGTK_LIBS = @PYGTK_LIBS@ PYTHON = @PYTHON@ PYTHON_CFLAGS = @PYTHON_CFLAGS@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_EXTRA_LIBS = @PYTHON_EXTRA_LIBS@ PYTHON_LIBS = @PYTHON_LIBS@ PYTHON_LIB_LOC = @PYTHON_LIB_LOC@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ PYTHON_PREFIX = @PYTHON_PREFIX@ PYTHON_VERSION = @PYTHON_VERSION@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ TAGLIB_CFLAGS = @TAGLIB_CFLAGS@ TAGLIB_LIBS = @TAGLIB_LIBS@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ WARNINGS = @WARNINGS@ XGETTEXT = @XGETTEXT@ XMMS2_CFLAGS = @XMMS2_CFLAGS@ XMMS2_LIBS = @XMMS2_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ intltool__v_merge_options_ = @intltool__v_merge_options_@ intltool__v_merge_options_0 = @intltool__v_merge_options_0@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pkgpyexecdir = @pkgpyexecdir@ pkgpythondir = @pkgpythondir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ pyexecdir = @pyexecdir@ pythondir = @pythondir@ runstatedir = @runstatedir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ SUBDIRS = apps all: all-recursive .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign data/icons/hicolor/64x64/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign data/icons/hicolor/64x64/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs # This directory's subdirectories are mostly independent; you can cd # into them and run 'make' without going through this Makefile. # To change the values of 'make' variables: instead of editing Makefiles, # (1) if the variable is set in 'config.status', edit 'config.status' # (which will cause the Makefiles to be regenerated when you run 'make'); # (2) otherwise, pass the desired values on the 'make' command line. $(am__recursive_targets): @fail=; \ if $(am__make_keepgoing); then \ failcom='fail=yes'; \ else \ failcom='exit 1'; \ fi; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" ID: $(am__tagged_files) $(am__define_uniq_tagged_files); mkid -fID $$unique tags: tags-recursive TAGS: tags tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: ctags-recursive CTAGS: ctags ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" cscopelist: cscopelist-recursive cscopelist-am: $(am__tagged_files) list='$(am__tagged_files)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ esac; \ for i in $$list; do \ if test -f "$$i"; then \ echo "$(subdir)/$$i"; \ else \ echo "$$sdir/$$i"; \ fi; \ done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ $(am__make_dryrun) \ || test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done check-am: all-am check: check-recursive all-am: Makefile installdirs: installdirs-recursive installdirs-am: install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-recursive -rm -f Makefile distclean-am: clean-am distclean-generic distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: .MAKE: $(am__recursive_targets) install-am install-strip .PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \ check-am clean clean-generic clean-libtool cscopelist-am ctags \ ctags-am distclean distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ installdirs-am maintainer-clean maintainer-clean-generic \ mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ ps ps-am tags tags-am uninstall uninstall-am .PRECIOUS: Makefile # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: ario-1.6/data/icons/hicolor/64x64/Makefile.am0000644000175000017500000000001713226723431015546 00000000000000SUBDIRS = apps ario-1.6/data/icons/hicolor/32x32/0000755000175000017500000000000013226745611013566 500000000000000ario-1.6/data/icons/hicolor/32x32/apps/0000755000175000017500000000000013226745611014531 500000000000000ario-1.6/data/icons/hicolor/32x32/apps/Makefile.in0000644000175000017500000004001313226745576016526 00000000000000# Makefile.in generated by automake 1.15.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2017 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__is_gnu_make = { \ if test -z '$(MAKELEVEL)'; then \ false; \ elif test -n '$(MAKE_HOST)'; then \ true; \ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ true; \ else \ false; \ fi; \ } am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = data/icons/hicolor/32x32/apps ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__uninstall_files_from_dir = { \ test -z "$$files" \ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } am__installdirs = "$(DESTDIR)$(iconsdir)" DATA = $(icons_DATA) $(noinst_DATA) am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) am__DIST_COMMON = $(srcdir)/Makefile.in DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALL_LINGUAS = @ALL_LINGUAS@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AR_FLAGS = @AR_FLAGS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AVAHI_CFLAGS = @AVAHI_CFLAGS@ AVAHI_LIBS = @AVAHI_LIBS@ AWK = @AWK@ CATALOGS = @CATALOGS@ CATOBJEXT = @CATOBJEXT@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIRNAME = @DATADIRNAME@ DBUS_CFLAGS = @DBUS_CFLAGS@ DBUS_GLIB_BIN = @DBUS_GLIB_BIN@ DBUS_LIBS = @DBUS_LIBS@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DEPS_CFLAGS = @DEPS_CFLAGS@ DEPS_LIBS = @DEPS_LIBS@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ GLIB_MKENUMS = @GLIB_MKENUMS@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INSTOBJEXT = @INSTOBJEXT@ INTLLIBS = @INTLLIBS@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@ INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@ INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBMPDCLIENT2_CFLAGS = @LIBMPDCLIENT2_CFLAGS@ LIBMPDCLIENT2_LIBS = @LIBMPDCLIENT2_LIBS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MKINSTALLDIRS = @MKINSTALLDIRS@ MSGFMT = @MSGFMT@ MSGFMT_OPTS = @MSGFMT_OPTS@ MSGMERGE = @MSGMERGE@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ PLUGINDIR = @PLUGINDIR@ PLUGIN_DATA_DIR = @PLUGIN_DATA_DIR@ POFILES = @POFILES@ POSUB = @POSUB@ PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ PYGTK_CFLAGS = @PYGTK_CFLAGS@ PYGTK_CODEGEN = @PYGTK_CODEGEN@ PYGTK_DEFSDIR = @PYGTK_DEFSDIR@ PYGTK_H2DEF = @PYGTK_H2DEF@ PYGTK_LIBS = @PYGTK_LIBS@ PYTHON = @PYTHON@ PYTHON_CFLAGS = @PYTHON_CFLAGS@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_EXTRA_LIBS = @PYTHON_EXTRA_LIBS@ PYTHON_LIBS = @PYTHON_LIBS@ PYTHON_LIB_LOC = @PYTHON_LIB_LOC@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ PYTHON_PREFIX = @PYTHON_PREFIX@ PYTHON_VERSION = @PYTHON_VERSION@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ TAGLIB_CFLAGS = @TAGLIB_CFLAGS@ TAGLIB_LIBS = @TAGLIB_LIBS@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ WARNINGS = @WARNINGS@ XGETTEXT = @XGETTEXT@ XMMS2_CFLAGS = @XMMS2_CFLAGS@ XMMS2_LIBS = @XMMS2_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ intltool__v_merge_options_ = @intltool__v_merge_options_@ intltool__v_merge_options_0 = @intltool__v_merge_options_0@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pkgpyexecdir = @pkgpyexecdir@ pkgpythondir = @pkgpythondir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ pyexecdir = @pyexecdir@ pythondir = @pythondir@ runstatedir = @runstatedir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ themedir = $(datadir)/icons/hicolor size = 32x32 context = apps iconsdir = $(themedir)/$(size)/$(context) icons_DATA = \ ario.png noinst_DATA = EXTRA_DIST = \ $(icons_DATA) \ $(noinst_DATA) all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign data/icons/hicolor/32x32/apps/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign data/icons/hicolor/32x32/apps/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs install-iconsDATA: $(icons_DATA) @$(NORMAL_INSTALL) @list='$(icons_DATA)'; test -n "$(iconsdir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(iconsdir)'"; \ $(MKDIR_P) "$(DESTDIR)$(iconsdir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(iconsdir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(iconsdir)" || exit $$?; \ done uninstall-iconsDATA: @$(NORMAL_UNINSTALL) @list='$(icons_DATA)'; test -n "$(iconsdir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(iconsdir)'; $(am__uninstall_files_from_dir) tags TAGS: ctags CTAGS: cscope cscopelist: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(DATA) installdirs: for dir in "$(DESTDIR)$(iconsdir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-iconsDATA install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-iconsDATA .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic clean-libtool \ cscopelist-am ctags-am distclean distclean-generic \ distclean-libtool distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-iconsDATA install-info install-info-am \ install-man install-pdf install-pdf-am install-ps \ install-ps-am install-strip installcheck installcheck-am \ installdirs maintainer-clean maintainer-clean-generic \ mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ ps ps-am tags-am uninstall uninstall-am uninstall-iconsDATA .PRECIOUS: Makefile # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: ario-1.6/data/icons/hicolor/32x32/apps/ario.png0000644000175000017500000000501113226723431016102 00000000000000PNG  IHDR szzsBIT|d pHYsjitEXtSoftwarewww.inkscape.org< IDATXV[le27v kcc0`0 4:IKҦ(iJ^H}\)UU!jJU) QmhW$N؆$166^{;;sNfLd_g3!J)|W @ ܢ|;'r dMd_|gW]cMP6{]Y׃o¡CٷofFsRPJ DUvmѕe4wqIJjRēT_K@!RLLL00x:fJqؾ?~%+V=1RFJsVք-|W\PW՞K?+z 4_~e @4$$I$D>_Dbmvk¬Oz:~cﶹ3(K4șeYT*Op:3eeVtl".ʎYxfrOu eMyWre&ΫӮ~;+J5uӜ5[n=c/7d 2<9Wvxr}Sx)s.hmYm{ONV-˪FQ4ɓO~~)K{/.IT;~Sg '38nGp@X}+ږcêXz'5}t] RʗJ!~[oo;{~g*n!= ئu[! @GH^;mX|TWfeOE]yBH\|O6mui,ׁہy6]w#Pi=X+zdݏ?(\8QTHWJ% y^kZ)Ѐ+_5i` >P ¼@6C߻wV !Z]J)O( tbbr9=otF@@`fua feZ`rv8==JuTP%6+ 4%BfΓxm<_{y8HlJK+dX4RHRw]tGt 0݌_ [,Օ!Xbk׮cfFȀ h"`h,˘J×tTe&"P} TST ˄ J)h4$z;9( I*M)@*ૅcb6:ຮ ۶(ٙg`8]~&j3 2[`Z* w*La  tӄ!>99~\~t}&RB 8qڥƐcJ8kUmfه_? M۶ϏْV,ڒU t]BQ_-;VBo35B?|s*lDtfʯoZJ)ņ{n9Eڊ+ULEI € ̍Q.#-x{LpޢQzskāZOeڿ{άIMܾ>ERx饗\. gCV <\E%;v(!!n`?~qT*J)UTU0񑑑fU޾Wkn%%b SȦΛN9qP*Rˁ_><8ޛVh3yxuozG 8cǎTӌ q7χ:r䈜"Ȅy8qϴ ]Yb0N89BF=zw9qO-: /9۷O[fMRJR۷?ޮ9.lAb:b-K =7 ٤+cS|ާm{^>|Vu݂R3tww?q9mfrn7 `D1J)>;;kN~GMRM$i B-udD"-=sjZʕ+7n0% \WJnJ%q;W h^e̲c, JBtTRJ>!ĖRBu+RI݉ l.uIENDB`ario-1.6/data/icons/hicolor/32x32/apps/Makefile.am0000644000175000017500000000030513226723431016477 00000000000000themedir = $(datadir)/icons/hicolor size = 32x32 context = apps iconsdir = $(themedir)/$(size)/$(context) icons_DATA = \ ario.png noinst_DATA = EXTRA_DIST = \ $(icons_DATA) \ $(noinst_DATA) ario-1.6/data/icons/hicolor/32x32/Makefile.in0000644000175000017500000004761413226745576015601 00000000000000# Makefile.in generated by automake 1.15.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2017 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__is_gnu_make = { \ if test -z '$(MAKELEVEL)'; then \ false; \ elif test -n '$(MAKE_HOST)'; then \ true; \ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ true; \ else \ false; \ fi; \ } am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = data/icons/hicolor/32x32 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ ctags-recursive dvi-recursive html-recursive info-recursive \ install-data-recursive install-dvi-recursive \ install-exec-recursive install-html-recursive \ install-info-recursive install-pdf-recursive \ install-ps-recursive install-recursive installcheck-recursive \ installdirs-recursive pdf-recursive ps-recursive \ tags-recursive uninstall-recursive am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive am__recursive_targets = \ $(RECURSIVE_TARGETS) \ $(RECURSIVE_CLEAN_TARGETS) \ $(am__extra_recursive_targets) AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ distdir am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) # Read a list of newline-separated strings from the standard input, # and print each of them once, without duplicates. Input order is # *not* preserved. am__uniquify_input = $(AWK) '\ BEGIN { nonempty = 0; } \ { items[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in items) print i; }; } \ ' # Make sure the list of sources is unique. This is necessary because, # e.g., the same source file might be shared among _SOURCES variables # for different programs/libraries. am__define_uniq_tagged_files = \ list='$(am__tagged_files)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) am__DIST_COMMON = $(srcdir)/Makefile.in DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_rest='s,^[^/]*/*,,'; \ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ sed_butlast='s,/*[^/]*$$,,'; \ while test -n "$$dir1"; do \ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ if test "$$first" != "."; then \ if test "$$first" = ".."; then \ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ else \ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ if test "$$first2" = "$$first"; then \ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ else \ dir2="../$$dir2"; \ fi; \ dir0="$$dir0"/"$$first"; \ fi; \ fi; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" ACLOCAL = @ACLOCAL@ ALL_LINGUAS = @ALL_LINGUAS@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AR_FLAGS = @AR_FLAGS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AVAHI_CFLAGS = @AVAHI_CFLAGS@ AVAHI_LIBS = @AVAHI_LIBS@ AWK = @AWK@ CATALOGS = @CATALOGS@ CATOBJEXT = @CATOBJEXT@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIRNAME = @DATADIRNAME@ DBUS_CFLAGS = @DBUS_CFLAGS@ DBUS_GLIB_BIN = @DBUS_GLIB_BIN@ DBUS_LIBS = @DBUS_LIBS@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DEPS_CFLAGS = @DEPS_CFLAGS@ DEPS_LIBS = @DEPS_LIBS@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ GLIB_MKENUMS = @GLIB_MKENUMS@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INSTOBJEXT = @INSTOBJEXT@ INTLLIBS = @INTLLIBS@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@ INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@ INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBMPDCLIENT2_CFLAGS = @LIBMPDCLIENT2_CFLAGS@ LIBMPDCLIENT2_LIBS = @LIBMPDCLIENT2_LIBS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MKINSTALLDIRS = @MKINSTALLDIRS@ MSGFMT = @MSGFMT@ MSGFMT_OPTS = @MSGFMT_OPTS@ MSGMERGE = @MSGMERGE@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ PLUGINDIR = @PLUGINDIR@ PLUGIN_DATA_DIR = @PLUGIN_DATA_DIR@ POFILES = @POFILES@ POSUB = @POSUB@ PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ PYGTK_CFLAGS = @PYGTK_CFLAGS@ PYGTK_CODEGEN = @PYGTK_CODEGEN@ PYGTK_DEFSDIR = @PYGTK_DEFSDIR@ PYGTK_H2DEF = @PYGTK_H2DEF@ PYGTK_LIBS = @PYGTK_LIBS@ PYTHON = @PYTHON@ PYTHON_CFLAGS = @PYTHON_CFLAGS@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_EXTRA_LIBS = @PYTHON_EXTRA_LIBS@ PYTHON_LIBS = @PYTHON_LIBS@ PYTHON_LIB_LOC = @PYTHON_LIB_LOC@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ PYTHON_PREFIX = @PYTHON_PREFIX@ PYTHON_VERSION = @PYTHON_VERSION@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ TAGLIB_CFLAGS = @TAGLIB_CFLAGS@ TAGLIB_LIBS = @TAGLIB_LIBS@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ WARNINGS = @WARNINGS@ XGETTEXT = @XGETTEXT@ XMMS2_CFLAGS = @XMMS2_CFLAGS@ XMMS2_LIBS = @XMMS2_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ intltool__v_merge_options_ = @intltool__v_merge_options_@ intltool__v_merge_options_0 = @intltool__v_merge_options_0@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pkgpyexecdir = @pkgpyexecdir@ pkgpythondir = @pkgpythondir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ pyexecdir = @pyexecdir@ pythondir = @pythondir@ runstatedir = @runstatedir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ SUBDIRS = apps all: all-recursive .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign data/icons/hicolor/32x32/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign data/icons/hicolor/32x32/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs # This directory's subdirectories are mostly independent; you can cd # into them and run 'make' without going through this Makefile. # To change the values of 'make' variables: instead of editing Makefiles, # (1) if the variable is set in 'config.status', edit 'config.status' # (which will cause the Makefiles to be regenerated when you run 'make'); # (2) otherwise, pass the desired values on the 'make' command line. $(am__recursive_targets): @fail=; \ if $(am__make_keepgoing); then \ failcom='fail=yes'; \ else \ failcom='exit 1'; \ fi; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" ID: $(am__tagged_files) $(am__define_uniq_tagged_files); mkid -fID $$unique tags: tags-recursive TAGS: tags tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: ctags-recursive CTAGS: ctags ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" cscopelist: cscopelist-recursive cscopelist-am: $(am__tagged_files) list='$(am__tagged_files)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ esac; \ for i in $$list; do \ if test -f "$$i"; then \ echo "$(subdir)/$$i"; \ else \ echo "$$sdir/$$i"; \ fi; \ done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ $(am__make_dryrun) \ || test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done check-am: all-am check: check-recursive all-am: Makefile installdirs: installdirs-recursive installdirs-am: install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-recursive -rm -f Makefile distclean-am: clean-am distclean-generic distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: .MAKE: $(am__recursive_targets) install-am install-strip .PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \ check-am clean clean-generic clean-libtool cscopelist-am ctags \ ctags-am distclean distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ installdirs-am maintainer-clean maintainer-clean-generic \ mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ ps ps-am tags tags-am uninstall uninstall-am .PRECIOUS: Makefile # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: ario-1.6/data/icons/hicolor/32x32/Makefile.am0000644000175000017500000000001713226723431015534 00000000000000SUBDIRS = apps ario-1.6/data/icons/hicolor/128x128/0000755000175000017500000000000013226745612013743 500000000000000ario-1.6/data/icons/hicolor/128x128/apps/0000755000175000017500000000000013226745612014706 500000000000000ario-1.6/data/icons/hicolor/128x128/apps/Makefile.in0000644000175000017500000004002313226745576016703 00000000000000# Makefile.in generated by automake 1.15.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2017 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__is_gnu_make = { \ if test -z '$(MAKELEVEL)'; then \ false; \ elif test -n '$(MAKE_HOST)'; then \ true; \ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ true; \ else \ false; \ fi; \ } am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = data/icons/hicolor/128x128/apps ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__uninstall_files_from_dir = { \ test -z "$$files" \ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } am__installdirs = "$(DESTDIR)$(iconsdir)" DATA = $(icons_DATA) $(noinst_DATA) am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) am__DIST_COMMON = $(srcdir)/Makefile.in DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALL_LINGUAS = @ALL_LINGUAS@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AR_FLAGS = @AR_FLAGS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AVAHI_CFLAGS = @AVAHI_CFLAGS@ AVAHI_LIBS = @AVAHI_LIBS@ AWK = @AWK@ CATALOGS = @CATALOGS@ CATOBJEXT = @CATOBJEXT@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIRNAME = @DATADIRNAME@ DBUS_CFLAGS = @DBUS_CFLAGS@ DBUS_GLIB_BIN = @DBUS_GLIB_BIN@ DBUS_LIBS = @DBUS_LIBS@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DEPS_CFLAGS = @DEPS_CFLAGS@ DEPS_LIBS = @DEPS_LIBS@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ GLIB_MKENUMS = @GLIB_MKENUMS@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INSTOBJEXT = @INSTOBJEXT@ INTLLIBS = @INTLLIBS@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@ INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@ INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBMPDCLIENT2_CFLAGS = @LIBMPDCLIENT2_CFLAGS@ LIBMPDCLIENT2_LIBS = @LIBMPDCLIENT2_LIBS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MKINSTALLDIRS = @MKINSTALLDIRS@ MSGFMT = @MSGFMT@ MSGFMT_OPTS = @MSGFMT_OPTS@ MSGMERGE = @MSGMERGE@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ PLUGINDIR = @PLUGINDIR@ PLUGIN_DATA_DIR = @PLUGIN_DATA_DIR@ POFILES = @POFILES@ POSUB = @POSUB@ PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ PYGTK_CFLAGS = @PYGTK_CFLAGS@ PYGTK_CODEGEN = @PYGTK_CODEGEN@ PYGTK_DEFSDIR = @PYGTK_DEFSDIR@ PYGTK_H2DEF = @PYGTK_H2DEF@ PYGTK_LIBS = @PYGTK_LIBS@ PYTHON = @PYTHON@ PYTHON_CFLAGS = @PYTHON_CFLAGS@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_EXTRA_LIBS = @PYTHON_EXTRA_LIBS@ PYTHON_LIBS = @PYTHON_LIBS@ PYTHON_LIB_LOC = @PYTHON_LIB_LOC@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ PYTHON_PREFIX = @PYTHON_PREFIX@ PYTHON_VERSION = @PYTHON_VERSION@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ TAGLIB_CFLAGS = @TAGLIB_CFLAGS@ TAGLIB_LIBS = @TAGLIB_LIBS@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ WARNINGS = @WARNINGS@ XGETTEXT = @XGETTEXT@ XMMS2_CFLAGS = @XMMS2_CFLAGS@ XMMS2_LIBS = @XMMS2_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ intltool__v_merge_options_ = @intltool__v_merge_options_@ intltool__v_merge_options_0 = @intltool__v_merge_options_0@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pkgpyexecdir = @pkgpyexecdir@ pkgpythondir = @pkgpythondir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ pyexecdir = @pyexecdir@ pythondir = @pythondir@ runstatedir = @runstatedir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ themedir = $(datadir)/icons/hicolor size = 128x128 context = apps iconsdir = $(themedir)/$(size)/$(context) icons_DATA = \ ario.png noinst_DATA = EXTRA_DIST = \ $(icons_DATA) \ $(noinst_DATA) all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign data/icons/hicolor/128x128/apps/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign data/icons/hicolor/128x128/apps/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs install-iconsDATA: $(icons_DATA) @$(NORMAL_INSTALL) @list='$(icons_DATA)'; test -n "$(iconsdir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(iconsdir)'"; \ $(MKDIR_P) "$(DESTDIR)$(iconsdir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(iconsdir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(iconsdir)" || exit $$?; \ done uninstall-iconsDATA: @$(NORMAL_UNINSTALL) @list='$(icons_DATA)'; test -n "$(iconsdir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(iconsdir)'; $(am__uninstall_files_from_dir) tags TAGS: ctags CTAGS: cscope cscopelist: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(DATA) installdirs: for dir in "$(DESTDIR)$(iconsdir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-iconsDATA install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-iconsDATA .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic clean-libtool \ cscopelist-am ctags-am distclean distclean-generic \ distclean-libtool distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-iconsDATA install-info install-info-am \ install-man install-pdf install-pdf-am install-ps \ install-ps-am install-strip installcheck installcheck-am \ installdirs maintainer-clean maintainer-clean-generic \ mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ ps ps-am tags-am uninstall uninstall-am uninstall-iconsDATA .PRECIOUS: Makefile # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: ario-1.6/data/icons/hicolor/128x128/apps/ario.png0000644000175000017500000004450513226723431016271 00000000000000PNG  IHDR>asBIT|d pHYsv+tEXtSoftwarewww.inkscape.org< IDATxyp$y'{y q>螙 !j$ruWt|^ ;<ݶZ^+^k#W҆(EQZ4Ms}M.tG5 ud{BVV>x͌H +_˗}x/_3F.]E 9 [:VpN%wPwlgz濹'+ wgL/P=MAc¡!x߇C33Ox!}+3',iphH:44RWyJ)Ivp{ o=_=2I+F'#Jݵ VC=\1m5>$"D$ o~>qw(&Q{m$?d 'Y̌Ǐ칩)}c k- !D'={wHK m6i >3J*jI!(wr.& v cѣm~,%΋eYjN)B9uB(Ӻ^i0ӡfMҡȤU:}RZ6`mFĠ3sF?~333O-T,ueY}eR), Jk-22ƴB󵉙3a-l1$ Oڃn^J+.m`v簔Z`<1 s>zՊ>3#>6@O=;;K^T\.8Z _k=&`6B1D3gih-* G MZ}uClN9cnkst+Z .oMOot~'gLH{ibH1TT9C|ju*JmVVVh``JuxPL.Мc'"nҋmTiw LmMXfNk;﷗3 W|sW/.ׂ7_[^}] AEѣG[^,~\xVBVVV"SZ%۶)bmm,j{Z&ժyV WS/0[D wY?`WvAX?vMūr+.˫ʵͫu7`u;SHXRP(AD²,j6" }!$cp֤")%O dV4 m?K}j,Nf ?f !m`EpJ;luJ,] SE}l.\/^ |-x7wo>5ỳ_\\-KKK"p,[4MfERk-2ɴm Z$1b Fln_wBM06o긵1TM7/-+׃ KW\^#!db0lSO=ErBJ)j "y,J<,K6Mi۶}_ cR (! c E@k-z_Q&lVV$'鼽7emʧb0W[1W罯W+/v;;1D !~o4iT*q!L&#}ߗe)yT1]k dfPBDOq Z4~rBlh 8;f*oc+\;].s|k!vG?ڹ3<==3LD wy*3Z @G@ZJ!fruuUeYIDqEDJkmٶ13+c@ !3+"RBee{.+:sUJelJ)3D$3e//1F n7+k~qsmџs՛Ko^udrUzdvd5@EGcǎ3<É~ŞQozi=1>>.Z&l6<%1Jkm),c n)T6-NNNN ?7d!5,ܣ6%׊rm=u=SbFVZ}~UW˯ y+׷|KA1uh-lzd2 fzzLMM8v;Dt ƶe=H/.. ( ^K)eLVBXB[km .xbll|>#RJoEc %|XFFY_ʛνrΫiAs="ARZ{RJOk}cudtRAЉ'8cpـGa^4wFCE}<BؑGkm3388}pdd@6uRPJ'մjq͊?y8.#hi]x0v=_~\.;~ <"jxZk)`Y U[js˸Y70DGI[` mI`.\_Ȓ h nahh? ^~T*71MIDMul1'mAQ X,|qdDy{kb;FǏ8qB8#INJi(cCD.3;Bw||ÇfeYwTWЯ\ƫ+x{8KZ ^<*r;گQ %Ы9v{! ۱ 8NihhK.;(ai*Zk[ьB91l6ERB!V-6Nw9 1^$)LX\\TlVyg-֎RZDp'&&>C@6lۆmPJeeu ^_ }N[j=6V`FyŎx* Jqx۶߻w/_~˗/ pQR|>ﭮ I`p*toVRJwi;]_..0OzC'wL;M~`RH^aY޸|%=/ +޷5_~d;2N#ʮ]vJϟ>>~q ۶.@*+ 7p{j;I=LY/Ot@[ģb֍a0!f>2#w \s/]y8$H܌G,֑#G>1::z7ӧ_cf0)Ym[D>RʯVؘqpI#ZBdgjj)mBB7:+ܹ?R4.\ׅ8l g_f |: ă"Ҭ ta 0_8<xlg/~œǡ0dB`cbvW_} ,#!D$"')%e2uBV&3a@)9mT/eZAXL~eR9f>.&$pk` = *Igffĉl9|B۶mG*2̜Zy䑧{_d2we)x >ŷlKDտpC LǠşSekbgfм:;8pQ`|O|Y߽|@Pffؾ}Oӟ(/1s3B;XAXjUrLSSStq`0LMOغ[;#d>AXZk<!l >z?L&Xg57z"/ "<iӶoFe:'3~oVGw_;g&XՓ;kq!,2 ƶ}S'i1y9"Z&;XRJ ' 4muOHj+DVfrNJ5Zg9|jjj2 %'A/įލuOa6~ GkVވbwv y]ZZ{GDmdiwx-d!G߿"3s" Ab ZB88q℘xe!X`YrnK}B8?OF xk޽{?b.Sq.K'?#K֓B ĄfnX$: GO_]C2 ^LÇ$1&ODy!DBZkGJiA`yY*8bzzfff(N2 38>v4Qݵk#Gr>ZϿx2ө'ۇ>;dJ|)9U:qI{~[4rERٷz9fn@D`fضn6\Vb<==m rz}B+IRJDZVJ9̜aLXB0{@*_^e zrri:>McFf8f~yvMĽm G笫>7|2Dudg=?|c&`\Ĩȿr Rʲ,UTd,]6 4$W*0s&r=r/n?x~s~$Q˳@uAÃ`#p@2/ A۽ S|2ˇ=ݕօu]r9v߾}"|8GDY)e&?18Qĥ  ,,,t2Mo8 WDdG̙\.7zuAqp~o]|Wg/W?nܦ ;h?o>3Kye4<<\G>RʾbSE\-P)%M"eDC7f{'"Ivd9=!~[7pv/w'n S&$'h !DDv ttZe]×߼!DBk׮=O<Q6 3Q!"qRt7oKQiBUEDJ)e1#tݿ;w|2 moW:tGlnؾk8;884&;ڛ(뷁/|n!_7޻ܚh8~Rkbr֎* jeeE%M)L2ʹ?1EDٽ{gm&s\u!dW{@KSs6p}N H[ljL iVN&&d0AUuQ۱cP<#?9117Π1}ߊ&޴L X%.nlfbddd_YUBdj\u4 JBApLne`fggi~~ y'Ǒ8VaRemg[ oAk\.g:t|t1w+,"Rɕh4(f6`=NƋ3TU+hMDCÇb͏)l݁blIhIGCvmH`rRHWpO d-Ӯ0}W.#D4[䄻`MD*zZyf&A0a`M$… Bl4 b Ҳ,sWSЩݜJN Bc”؟B 6QNlBȘJ 7Gpfz˿r]WLMM}">qQJYVZMD hF'"Q"IB(Zmi""w```*xRF=&`hҮtiۙu^qMRHr Ȯv6D6 $Ld*/N j ]w}W7q#܎gc ) Փb]ḱhMcw`HR $, }N!ظcۨ>y'm0(D6?ٮnn FVQtkøP:NI}_i#`c[Bz91J%j$eIc$"222eY-RxΩ]}/`RѱNN~/]M׆@)sSt:FW$6\g_ynu`RJ@Ipv% >+;)N.AHzSzxxxt޽QKRj4Jk-1&`q[{ ,..R>'uɶmMQa˲(2WcN5*kKǦ|6E 7(GLvF5y+5K*곗o `adؽcǎC B p JH rc10FCEٵC7eu!31Da`RfNv[tgzfϝum۶m8E;Jԩf9\'Qh* eYVrk#2̶Z0h֭eՒ\ї:a"DN:[w.-LBaQ&^<"\%l4'^mI)D,@Bm n|- AխX[67 t u1^3 =N*qѥ) YԳ- ?fSC D++!* J%R|OOB;>|C)3Dc8 .Z?PwY]:U?w>3ڟXP(B& b{%F, ~6cQ[jll> Îc\ ) ;A چme׭DqjjL;3hߒ{۝9 &)%g%ms/ዣu$x5:{q^3s{ HׇD==j.F[(^,'IRk-#̢u4Pk&`ǎ i~[]/!SBSoAI;.PnJ u="ԽxK)E.afh 33x0(aF @\.N 1x2O$#a]MkeIO V^#.u^ءi֣VtcQX ;2BضC3s`fL`x~uVWɈG4'BB"n..Qh]Ii`u3-U1E5E6 NH1.D#kS.&;l6+9Ʋ,PHp-00&nǂo1d[w+eCOXTr]v_ In”t,[ϣ7(MlKhGhD Ge"UV6xKEPJu].)J__/$C i, ~;JD"Aai @Z;(˒5f %;{cF,k㴭.b[^&XX8zI;tuVVGt>^D&+p-˷AԖ p4˶mNDpB;Lo*G09ض5d2B0?я#D @% GLqdдN޻, ";b }"uL}O߷Y$no+A!9NɩOؠ*RJ[J3`bxE Jte,bRr{fA33v :-uH7E#AɲL ,Ş@; kzD}ѭ h;uy}?$ #iv"73Ċ!33DH @zSdZBJɞ!,` < nQb 4{C'u;YFvX2/(UrGP#8Qֵò$(9!VC#z>N,,k4D"O=o#xSB `˲֚cLÈw #D+~+\`REG)q$dGZBb0AVS7Nq2d>pBь/ąfQX~Dàp5.5D %}]6566ƧNbq1wҥ+ʒyHvc[HZ  ZKC߀F~<۷F[-DN#?j-i>]uow-²Ċ\(\.s%`l֑#h}f#yrBY۶y,˂yxl{_]B{2"/YnjTpiݢ ݤO?\QuFm8.~+e/k_)ykXj`u *kjM6¿Z[R::v,/..r/gGrXlEfSK))OD1Ƌy…GGG?hHyعmXuN0@uՃx⣏btE([& S?xޝ`FF~{1;v0 3˲ tqcs1%LOOs4˲43b"jQ3WDلyxtg3 ƥ1}=Ϧۘ:'qZvivL Ы88VD_?x`y1[ED3s aZ/=NMMq7YK_,J6jRey !DB4.]͛7i_`[=up^ߪ>t{ 784Q|On+Ugon?K(szinQ+B#mg}:?"3@&ZXX0- &3;sss(SJQr%ė>ȾN$ _~-@vϐrfGCڔ$܎ԫ;m>zp7 !7TlyVVVfgg`1)h&mIlD] 333|!m1DfnxZׅ5f_rgu^)عm0ryky7Fr瞁kl(>w@̠={ZvCш|FľMfni8:qiOY $`VVVb1jD~@kBڅ vbHc<2$wɷ;amy',\݉I؈56*(lbmmͼ_[ZZ;Ƙ:"ASьlvH$FɡhU  Z]]]u}?'Qؑ#G~addd" u]ׯ,۽~'T,Ý(upeчk؝g3-ňw}uvv1f U*U)ekZ놔y-{g6K )X\\jU+|cy^Ӳ/` ]{7 ijpm 9z{ԩA;a2#Z' .:&ja8xyy܎0SSSt 1>>.ժ^msRʜ1&@޲C=cHwg._u S-(K RUr  R zr|W^#y *U"ZUcLͲ1aA J`yMSǏ|>h4#lێ%֪Gko]hM{aG[sg`TGGnܮew^e~<ڽAI^Z~e"jcRfI)Dy/?}-߱iܟ6e*,KeY h4\cLF)a3" /8p'x+p{ޅ^U]l]㣭8?v:.kl6h\e*l1fiH)ZkP(¿cǎ1}ܿ׶ޒS(t6ՋAMcL#VTU쟝ܺ)؊(2Zl |dDR8G3 d۶Q^k P}[۳ س,u"]|*,# "$M௮6O:1ykƘ5!Dִknid2F]cccX,Y]ǯ- BIDAT e挔2&Ƙ` K .W3/ wbe[-3Wr۶>%&}疗/'AO8}7Mc纮_Tt n[:22'N"JAٌ׵gRh i" @7۷OgY+Q, #`FGad}!0w%,>$?,\GP[C^IE1fZϝ;oD]GH8"\ܲzݷ,+Hf#h]%G3*JjmmBؖe9J1&cQV1d9CD={|ttttdYV $x2o;vcp3ih; yo!Au$lڵkgϾVVVV/]ٳg_Z4>@"+Ei ˲5٬h4h[ܵq3C.we$Ah A|Pb4 ;j>,g(,AJ E5Lׯ_at:Uu]+\yA !Z<0@By1?88xǏ_D$Da'ކ'a_Os~~~zzzzÇ߬W1҉3ι ]vץ>s `ͿS;"@ak@H݁۶͜s3D9W0s "P.y>}eY|aP:C-7D PUU}vvǧO~?;;;~)$Bsv5Mcֶ*_Co | x6p_ɼYe+!Ƙ+r}̹A4uEL1{OeY|yyɑ`߽zġq5Ƙ6c,w}}q7o[ p$ niX(+h4R 1c. "#SU\eOx<)RG h6\WUu>?efBDd>{R?DlC8uŅo&ȥ99X[!?gXAUUzooO[km:#"38LG!,`R:Ƙ!MDs)Z8qcc̮1f+SCW!Xko꺮R_,ryc.Nܱ6vO$ Z|9 o޼Y9Kq+@d#իWq6Et u ϲyD"!lpWXHD$|>+|fbN5J>e.!8s,j,kmUJH"ZEQrEGQHiRݻwk8<Z62> RJa +"bB 4FW|]Qs2DZSJٺ1F9 *~Sۚ eS Vm۪(uq5i{NZ 3ʚ"*HQ/10̜Erg>F{c ok?bϟ?gx`R۷o!D( 7mQH2:H]1H$ذlDn=̓jwMr1^ܶf(0| @?$f3"L&:>>VeY2nFYk1F9Te{֪m[V2ưH{5Ys9bHӭ=3{ #ZM,|Q+#Iݧgq` bޯ$#IENDB`ario-1.6/data/icons/hicolor/128x128/apps/Makefile.am0000644000175000017500000000030713226723431016655 00000000000000themedir = $(datadir)/icons/hicolor size = 128x128 context = apps iconsdir = $(themedir)/$(size)/$(context) icons_DATA = \ ario.png noinst_DATA = EXTRA_DIST = \ $(icons_DATA) \ $(noinst_DATA) ario-1.6/data/icons/hicolor/128x128/Makefile.in0000644000175000017500000004762213226745576015754 00000000000000# Makefile.in generated by automake 1.15.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2017 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__is_gnu_make = { \ if test -z '$(MAKELEVEL)'; then \ false; \ elif test -n '$(MAKE_HOST)'; then \ true; \ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ true; \ else \ false; \ fi; \ } am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = data/icons/hicolor/128x128 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ ctags-recursive dvi-recursive html-recursive info-recursive \ install-data-recursive install-dvi-recursive \ install-exec-recursive install-html-recursive \ install-info-recursive install-pdf-recursive \ install-ps-recursive install-recursive installcheck-recursive \ installdirs-recursive pdf-recursive ps-recursive \ tags-recursive uninstall-recursive am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive am__recursive_targets = \ $(RECURSIVE_TARGETS) \ $(RECURSIVE_CLEAN_TARGETS) \ $(am__extra_recursive_targets) AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ distdir am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) # Read a list of newline-separated strings from the standard input, # and print each of them once, without duplicates. Input order is # *not* preserved. am__uniquify_input = $(AWK) '\ BEGIN { nonempty = 0; } \ { items[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in items) print i; }; } \ ' # Make sure the list of sources is unique. This is necessary because, # e.g., the same source file might be shared among _SOURCES variables # for different programs/libraries. am__define_uniq_tagged_files = \ list='$(am__tagged_files)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) am__DIST_COMMON = $(srcdir)/Makefile.in DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_rest='s,^[^/]*/*,,'; \ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ sed_butlast='s,/*[^/]*$$,,'; \ while test -n "$$dir1"; do \ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ if test "$$first" != "."; then \ if test "$$first" = ".."; then \ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ else \ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ if test "$$first2" = "$$first"; then \ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ else \ dir2="../$$dir2"; \ fi; \ dir0="$$dir0"/"$$first"; \ fi; \ fi; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" ACLOCAL = @ACLOCAL@ ALL_LINGUAS = @ALL_LINGUAS@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AR_FLAGS = @AR_FLAGS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AVAHI_CFLAGS = @AVAHI_CFLAGS@ AVAHI_LIBS = @AVAHI_LIBS@ AWK = @AWK@ CATALOGS = @CATALOGS@ CATOBJEXT = @CATOBJEXT@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIRNAME = @DATADIRNAME@ DBUS_CFLAGS = @DBUS_CFLAGS@ DBUS_GLIB_BIN = @DBUS_GLIB_BIN@ DBUS_LIBS = @DBUS_LIBS@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DEPS_CFLAGS = @DEPS_CFLAGS@ DEPS_LIBS = @DEPS_LIBS@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ GLIB_MKENUMS = @GLIB_MKENUMS@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INSTOBJEXT = @INSTOBJEXT@ INTLLIBS = @INTLLIBS@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@ INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@ INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBMPDCLIENT2_CFLAGS = @LIBMPDCLIENT2_CFLAGS@ LIBMPDCLIENT2_LIBS = @LIBMPDCLIENT2_LIBS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MKINSTALLDIRS = @MKINSTALLDIRS@ MSGFMT = @MSGFMT@ MSGFMT_OPTS = @MSGFMT_OPTS@ MSGMERGE = @MSGMERGE@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ PLUGINDIR = @PLUGINDIR@ PLUGIN_DATA_DIR = @PLUGIN_DATA_DIR@ POFILES = @POFILES@ POSUB = @POSUB@ PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ PYGTK_CFLAGS = @PYGTK_CFLAGS@ PYGTK_CODEGEN = @PYGTK_CODEGEN@ PYGTK_DEFSDIR = @PYGTK_DEFSDIR@ PYGTK_H2DEF = @PYGTK_H2DEF@ PYGTK_LIBS = @PYGTK_LIBS@ PYTHON = @PYTHON@ PYTHON_CFLAGS = @PYTHON_CFLAGS@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_EXTRA_LIBS = @PYTHON_EXTRA_LIBS@ PYTHON_LIBS = @PYTHON_LIBS@ PYTHON_LIB_LOC = @PYTHON_LIB_LOC@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ PYTHON_PREFIX = @PYTHON_PREFIX@ PYTHON_VERSION = @PYTHON_VERSION@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ TAGLIB_CFLAGS = @TAGLIB_CFLAGS@ TAGLIB_LIBS = @TAGLIB_LIBS@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ WARNINGS = @WARNINGS@ XGETTEXT = @XGETTEXT@ XMMS2_CFLAGS = @XMMS2_CFLAGS@ XMMS2_LIBS = @XMMS2_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ intltool__v_merge_options_ = @intltool__v_merge_options_@ intltool__v_merge_options_0 = @intltool__v_merge_options_0@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pkgpyexecdir = @pkgpyexecdir@ pkgpythondir = @pkgpythondir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ pyexecdir = @pyexecdir@ pythondir = @pythondir@ runstatedir = @runstatedir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ SUBDIRS = apps all: all-recursive .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign data/icons/hicolor/128x128/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign data/icons/hicolor/128x128/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs # This directory's subdirectories are mostly independent; you can cd # into them and run 'make' without going through this Makefile. # To change the values of 'make' variables: instead of editing Makefiles, # (1) if the variable is set in 'config.status', edit 'config.status' # (which will cause the Makefiles to be regenerated when you run 'make'); # (2) otherwise, pass the desired values on the 'make' command line. $(am__recursive_targets): @fail=; \ if $(am__make_keepgoing); then \ failcom='fail=yes'; \ else \ failcom='exit 1'; \ fi; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" ID: $(am__tagged_files) $(am__define_uniq_tagged_files); mkid -fID $$unique tags: tags-recursive TAGS: tags tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: ctags-recursive CTAGS: ctags ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" cscopelist: cscopelist-recursive cscopelist-am: $(am__tagged_files) list='$(am__tagged_files)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ esac; \ for i in $$list; do \ if test -f "$$i"; then \ echo "$(subdir)/$$i"; \ else \ echo "$$sdir/$$i"; \ fi; \ done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ $(am__make_dryrun) \ || test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done check-am: all-am check: check-recursive all-am: Makefile installdirs: installdirs-recursive installdirs-am: install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-recursive -rm -f Makefile distclean-am: clean-am distclean-generic distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: .MAKE: $(am__recursive_targets) install-am install-strip .PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \ check-am clean clean-generic clean-libtool cscopelist-am ctags \ ctags-am distclean distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ installdirs-am maintainer-clean maintainer-clean-generic \ mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ ps ps-am tags tags-am uninstall uninstall-am .PRECIOUS: Makefile # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: ario-1.6/data/icons/hicolor/128x128/Makefile.am0000644000175000017500000000001713226723431015710 00000000000000SUBDIRS = apps ario-1.6/data/icons/hicolor/72x72/0000755000175000017500000000000013226745611013576 500000000000000ario-1.6/data/icons/hicolor/72x72/apps/0000755000175000017500000000000013226745611014541 500000000000000ario-1.6/data/icons/hicolor/72x72/apps/Makefile.in0000644000175000017500000004001313226745576016536 00000000000000# Makefile.in generated by automake 1.15.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2017 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__is_gnu_make = { \ if test -z '$(MAKELEVEL)'; then \ false; \ elif test -n '$(MAKE_HOST)'; then \ true; \ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ true; \ else \ false; \ fi; \ } am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = data/icons/hicolor/72x72/apps ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__uninstall_files_from_dir = { \ test -z "$$files" \ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } am__installdirs = "$(DESTDIR)$(iconsdir)" DATA = $(icons_DATA) $(noinst_DATA) am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) am__DIST_COMMON = $(srcdir)/Makefile.in DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALL_LINGUAS = @ALL_LINGUAS@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AR_FLAGS = @AR_FLAGS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AVAHI_CFLAGS = @AVAHI_CFLAGS@ AVAHI_LIBS = @AVAHI_LIBS@ AWK = @AWK@ CATALOGS = @CATALOGS@ CATOBJEXT = @CATOBJEXT@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIRNAME = @DATADIRNAME@ DBUS_CFLAGS = @DBUS_CFLAGS@ DBUS_GLIB_BIN = @DBUS_GLIB_BIN@ DBUS_LIBS = @DBUS_LIBS@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DEPS_CFLAGS = @DEPS_CFLAGS@ DEPS_LIBS = @DEPS_LIBS@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ GLIB_MKENUMS = @GLIB_MKENUMS@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INSTOBJEXT = @INSTOBJEXT@ INTLLIBS = @INTLLIBS@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@ INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@ INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBMPDCLIENT2_CFLAGS = @LIBMPDCLIENT2_CFLAGS@ LIBMPDCLIENT2_LIBS = @LIBMPDCLIENT2_LIBS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MKINSTALLDIRS = @MKINSTALLDIRS@ MSGFMT = @MSGFMT@ MSGFMT_OPTS = @MSGFMT_OPTS@ MSGMERGE = @MSGMERGE@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ PLUGINDIR = @PLUGINDIR@ PLUGIN_DATA_DIR = @PLUGIN_DATA_DIR@ POFILES = @POFILES@ POSUB = @POSUB@ PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ PYGTK_CFLAGS = @PYGTK_CFLAGS@ PYGTK_CODEGEN = @PYGTK_CODEGEN@ PYGTK_DEFSDIR = @PYGTK_DEFSDIR@ PYGTK_H2DEF = @PYGTK_H2DEF@ PYGTK_LIBS = @PYGTK_LIBS@ PYTHON = @PYTHON@ PYTHON_CFLAGS = @PYTHON_CFLAGS@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_EXTRA_LIBS = @PYTHON_EXTRA_LIBS@ PYTHON_LIBS = @PYTHON_LIBS@ PYTHON_LIB_LOC = @PYTHON_LIB_LOC@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ PYTHON_PREFIX = @PYTHON_PREFIX@ PYTHON_VERSION = @PYTHON_VERSION@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ TAGLIB_CFLAGS = @TAGLIB_CFLAGS@ TAGLIB_LIBS = @TAGLIB_LIBS@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ WARNINGS = @WARNINGS@ XGETTEXT = @XGETTEXT@ XMMS2_CFLAGS = @XMMS2_CFLAGS@ XMMS2_LIBS = @XMMS2_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ intltool__v_merge_options_ = @intltool__v_merge_options_@ intltool__v_merge_options_0 = @intltool__v_merge_options_0@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pkgpyexecdir = @pkgpyexecdir@ pkgpythondir = @pkgpythondir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ pyexecdir = @pyexecdir@ pythondir = @pythondir@ runstatedir = @runstatedir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ themedir = $(datadir)/icons/hicolor size = 72x72 context = apps iconsdir = $(themedir)/$(size)/$(context) icons_DATA = \ ario.png noinst_DATA = EXTRA_DIST = \ $(icons_DATA) \ $(noinst_DATA) all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign data/icons/hicolor/72x72/apps/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign data/icons/hicolor/72x72/apps/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs install-iconsDATA: $(icons_DATA) @$(NORMAL_INSTALL) @list='$(icons_DATA)'; test -n "$(iconsdir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(iconsdir)'"; \ $(MKDIR_P) "$(DESTDIR)$(iconsdir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(iconsdir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(iconsdir)" || exit $$?; \ done uninstall-iconsDATA: @$(NORMAL_UNINSTALL) @list='$(icons_DATA)'; test -n "$(iconsdir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(iconsdir)'; $(am__uninstall_files_from_dir) tags TAGS: ctags CTAGS: cscope cscopelist: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(DATA) installdirs: for dir in "$(DESTDIR)$(iconsdir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-iconsDATA install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-iconsDATA .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic clean-libtool \ cscopelist-am ctags-am distclean distclean-generic \ distclean-libtool distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-iconsDATA install-info install-info-am \ install-man install-pdf install-pdf-am install-ps \ install-ps-am install-strip installcheck installcheck-am \ installdirs maintainer-clean maintainer-clean-generic \ mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ ps ps-am tags-am uninstall uninstall-am uninstall-iconsDATA .PRECIOUS: Makefile # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: ario-1.6/data/icons/hicolor/72x72/apps/ario.png0000644000175000017500000002043613226723431016122 00000000000000PNG  IHDRHHUGsBIT|d pHYsaӖ'tEXtSoftwarewww.inkscape.org< IDATx|{$yvn1;xǻ۽;GC,-\!vB.#XA1pm',[lRMJ'{^ٻ۝ۙgwW՗?{gwx'*4骯&fr|n()hP !? irm# ٳQ᭓J.&Nχퟏlro7E AD6&YR%h֦8w7e~&7s1OŅAc*9Ta&[dbi :O?x'EZ-ٶMQR1`!І'3A$Id*ٲ5Q, mQpodz? J@af0!VTUJB|fd,+XkMܤi~i\x eE[\I4D2&/|,i@ 0 (sssTDZJBfSE* ^r MjǘY03LSj/rIQa)*mb|o 0u x1CrUo^mjӋSQϗ?_< `DD%6 DPnWe @ Ð H``bii)_.yiR3XAKX AI몿:Tɧχ'Ϟw64`yR$* ݮBXm[Zk;"[Jiah !,RJmۢhvB=P܇ @1 0k@p :(uuI:tQ:fů}7jfF`\׵VղGkc\fvN\:gvY)7yA8@ZK;aG37׏ϝpzgggGc0̚ KҬ *,˲BGkڶ !< ;M,hՈЉߑ@*z,| G۽{}=O_xͳg~̙3k[Z< ZVY4vX3Cp_~Ye;7 C߲1~ȑ#?STvL&۱qnqqJxi 0v%D;2 G.Wߺxgb"\3'vDzׅ$C`D{ 4)s39ח{#oSSS'&&ogc\"rBA (OOO6 qL 7@̌9z,+'1l;t|_/y\n~ _6/@6{ &@iNA H=o __ j{rrVƍgRJ*j۸ H `mD333bzz:98 FDTB_2~\Awz ؞5Bk0eMe@#o?U=oXijG'o߾=7]\\|DD0plj4Q 矧R$XABSRn{?522""KhK L P wO&܏ ̀M T'* 8=Ͽ5˫];w{g~eǎSJ(ٶm{aaÄjC((0<<̋481DZDf+Jg< ~u;UؒHQnPO tg楙 C1 ) J|u۷oyg> !F1۔RcLVkJxmpChڝNǓR昹k׮>|Ţ( /kߞ%h9csW ȬŃ<պ~ܧ~ RϽC;TT*'|رac( ny3bvv.]4`6ԨE,)>3):t3|r;s eH)|/O(d!֖ f`b&AyI#oKdhhW/_t<Ƽ~?GG7ݮHzk׮]d6LTדY!D?STr9,u ~ ḵp Gl[z`mXO'^q RP1e}E/vqP(ȇz[gR*RF3 [ X,J"r^E' B< džN rfؼ)tOi3g$eLM4@/~\.]v;==a"*'4ƐeQ샆 yfhXZk<"GGG:ukg]S!`E8`BँLߏ`"_q-*J) 䭬XZk 4l49#9Dry㍆ H1hHaЍK"hxx4K4]zZvA}LNNV:$3U1Z b1fjY%kUq]W87"?Ln))6MN7>14˒do<b:2 afQ."_)j%h`UUDd)fv dy;7xK$Ӌ&ƦH27C)9i~r3Δ?y&''g,)fD)5O;ja۶Z캮;l`q2!:IP@<mi~YFG2duow!2 v1U9cqT jf9xKd1-=+Z7[%V4ܻoNu)% [Hނ]CbҺj']mqLNNe yZk PlZb`cxII ҌتW'lJI`60Qc2"ΣyA N5Ov0>>R[ZJ)aKh#?^mDdϬ|!n4`Q? 5y6G&ɿRq7}m r;ED3;iY^5?$69CD$\.7.`=ohkpR#-vR$ MiM D4M2ԥ㮏f V`Y&''pQJIf yӊmd畒=5Ltɍ<1P.4t,Zlۼ洇&셰y}P<eJL$FFF18RJ[k-, b1haaahmL䓛\V#zLĊ ZW4i&fTȁ0ô^(UWJ6-6Z R"8l6v1BaG>M_t]?`B2ƀQxS%[8MI5&ōb$NZxrl:`JAzp\ T2@>mJ%逸:8N"Zfb۶YJDĭVk Bnsk'?JXuS 7yb49-oL'=XO0 (,!H!DĈa3gάXfqX)Lټ:Jl%mvnҁ x` 4`%`%C=N[bMAk]n||'nZ} BK,{΁0-^_\or9nl۶Bhz7lÈYE[mEV 6p?x1Zk$|$%n/V7Ƽכ8ZE@M{@$! R Vd!Rj:N])C)\J;;T4=<`Wv}$`4xo6KE(N؊ɂjfM_8 <D&" <PXfiREnFZ]vY~W_X HKTqd(^lyfSڷWpZ``!A@ Dr%P!:K) 3+cLDDaݾE(¾W&iJ =ދ񿎽ldbbxu xAwkEg_ 5hO C @[GWa*\׍eYZ)QP}+J !Ƭ!Vt'V[h&`(V.9qvP 1n͚> Z8@Gt!⺷`:V8w֝4㺮ff̡2hZVVV.G,tnFE I?y URʦpQBly;ldrVw|չH =kssN)Z f]~^^}y [.n,co]Gj0GU%iB& zK/el cx5g\N5Hb޸ߪC!XXX`1(qBfczN';; S`Iܬ;A`5PĠXqE@<y+0l^Vsg V:3QG_sOON8t萙21A`04t{ZBXѱ,.ֺ`O?@Xa_F.68Hs{*8ls$M'ћx hD V l7Fm HL6Xcǎl6I)%2%^mV*'\׵ Y* Р,dd8-4,u'{ۃg>(2QfRݤ'w~?xFK'[/v'VJEQxQ~vMYADbR* ÀBvӹtʕt:t:8R [}k_C32~P*m<9%4n<_i[xQazD8cR!P036g PR Ν;եNG }HnVOQ<xE9.7~?r _)<\"d.3 %IfAtA<IDAT̬(QkoQs+{ϡ@ ȞONhXLB8Dp1RʑRx+ 51h"Q4FQ!L&AcZܹSfeeLOO߬IO͊IENDB`ario-1.6/data/icons/hicolor/72x72/apps/Makefile.am0000644000175000017500000000030513226723431016507 00000000000000themedir = $(datadir)/icons/hicolor size = 72x72 context = apps iconsdir = $(themedir)/$(size)/$(context) icons_DATA = \ ario.png noinst_DATA = EXTRA_DIST = \ $(icons_DATA) \ $(noinst_DATA) ario-1.6/data/icons/hicolor/72x72/Makefile.in0000644000175000017500000004761413226745576015611 00000000000000# Makefile.in generated by automake 1.15.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2017 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__is_gnu_make = { \ if test -z '$(MAKELEVEL)'; then \ false; \ elif test -n '$(MAKE_HOST)'; then \ true; \ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ true; \ else \ false; \ fi; \ } am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = data/icons/hicolor/72x72 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ ctags-recursive dvi-recursive html-recursive info-recursive \ install-data-recursive install-dvi-recursive \ install-exec-recursive install-html-recursive \ install-info-recursive install-pdf-recursive \ install-ps-recursive install-recursive installcheck-recursive \ installdirs-recursive pdf-recursive ps-recursive \ tags-recursive uninstall-recursive am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive am__recursive_targets = \ $(RECURSIVE_TARGETS) \ $(RECURSIVE_CLEAN_TARGETS) \ $(am__extra_recursive_targets) AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ distdir am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) # Read a list of newline-separated strings from the standard input, # and print each of them once, without duplicates. Input order is # *not* preserved. am__uniquify_input = $(AWK) '\ BEGIN { nonempty = 0; } \ { items[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in items) print i; }; } \ ' # Make sure the list of sources is unique. This is necessary because, # e.g., the same source file might be shared among _SOURCES variables # for different programs/libraries. am__define_uniq_tagged_files = \ list='$(am__tagged_files)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) am__DIST_COMMON = $(srcdir)/Makefile.in DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_rest='s,^[^/]*/*,,'; \ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ sed_butlast='s,/*[^/]*$$,,'; \ while test -n "$$dir1"; do \ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ if test "$$first" != "."; then \ if test "$$first" = ".."; then \ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ else \ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ if test "$$first2" = "$$first"; then \ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ else \ dir2="../$$dir2"; \ fi; \ dir0="$$dir0"/"$$first"; \ fi; \ fi; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" ACLOCAL = @ACLOCAL@ ALL_LINGUAS = @ALL_LINGUAS@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AR_FLAGS = @AR_FLAGS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AVAHI_CFLAGS = @AVAHI_CFLAGS@ AVAHI_LIBS = @AVAHI_LIBS@ AWK = @AWK@ CATALOGS = @CATALOGS@ CATOBJEXT = @CATOBJEXT@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIRNAME = @DATADIRNAME@ DBUS_CFLAGS = @DBUS_CFLAGS@ DBUS_GLIB_BIN = @DBUS_GLIB_BIN@ DBUS_LIBS = @DBUS_LIBS@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DEPS_CFLAGS = @DEPS_CFLAGS@ DEPS_LIBS = @DEPS_LIBS@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ GLIB_MKENUMS = @GLIB_MKENUMS@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INSTOBJEXT = @INSTOBJEXT@ INTLLIBS = @INTLLIBS@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@ INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@ INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBMPDCLIENT2_CFLAGS = @LIBMPDCLIENT2_CFLAGS@ LIBMPDCLIENT2_LIBS = @LIBMPDCLIENT2_LIBS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MKINSTALLDIRS = @MKINSTALLDIRS@ MSGFMT = @MSGFMT@ MSGFMT_OPTS = @MSGFMT_OPTS@ MSGMERGE = @MSGMERGE@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ PLUGINDIR = @PLUGINDIR@ PLUGIN_DATA_DIR = @PLUGIN_DATA_DIR@ POFILES = @POFILES@ POSUB = @POSUB@ PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ PYGTK_CFLAGS = @PYGTK_CFLAGS@ PYGTK_CODEGEN = @PYGTK_CODEGEN@ PYGTK_DEFSDIR = @PYGTK_DEFSDIR@ PYGTK_H2DEF = @PYGTK_H2DEF@ PYGTK_LIBS = @PYGTK_LIBS@ PYTHON = @PYTHON@ PYTHON_CFLAGS = @PYTHON_CFLAGS@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_EXTRA_LIBS = @PYTHON_EXTRA_LIBS@ PYTHON_LIBS = @PYTHON_LIBS@ PYTHON_LIB_LOC = @PYTHON_LIB_LOC@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ PYTHON_PREFIX = @PYTHON_PREFIX@ PYTHON_VERSION = @PYTHON_VERSION@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ TAGLIB_CFLAGS = @TAGLIB_CFLAGS@ TAGLIB_LIBS = @TAGLIB_LIBS@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ WARNINGS = @WARNINGS@ XGETTEXT = @XGETTEXT@ XMMS2_CFLAGS = @XMMS2_CFLAGS@ XMMS2_LIBS = @XMMS2_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ intltool__v_merge_options_ = @intltool__v_merge_options_@ intltool__v_merge_options_0 = @intltool__v_merge_options_0@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pkgpyexecdir = @pkgpyexecdir@ pkgpythondir = @pkgpythondir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ pyexecdir = @pyexecdir@ pythondir = @pythondir@ runstatedir = @runstatedir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ SUBDIRS = apps all: all-recursive .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign data/icons/hicolor/72x72/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign data/icons/hicolor/72x72/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs # This directory's subdirectories are mostly independent; you can cd # into them and run 'make' without going through this Makefile. # To change the values of 'make' variables: instead of editing Makefiles, # (1) if the variable is set in 'config.status', edit 'config.status' # (which will cause the Makefiles to be regenerated when you run 'make'); # (2) otherwise, pass the desired values on the 'make' command line. $(am__recursive_targets): @fail=; \ if $(am__make_keepgoing); then \ failcom='fail=yes'; \ else \ failcom='exit 1'; \ fi; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" ID: $(am__tagged_files) $(am__define_uniq_tagged_files); mkid -fID $$unique tags: tags-recursive TAGS: tags tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: ctags-recursive CTAGS: ctags ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" cscopelist: cscopelist-recursive cscopelist-am: $(am__tagged_files) list='$(am__tagged_files)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ esac; \ for i in $$list; do \ if test -f "$$i"; then \ echo "$(subdir)/$$i"; \ else \ echo "$$sdir/$$i"; \ fi; \ done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ $(am__make_dryrun) \ || test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done check-am: all-am check: check-recursive all-am: Makefile installdirs: installdirs-recursive installdirs-am: install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-recursive -rm -f Makefile distclean-am: clean-am distclean-generic distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: .MAKE: $(am__recursive_targets) install-am install-strip .PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \ check-am clean clean-generic clean-libtool cscopelist-am ctags \ ctags-am distclean distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ installdirs-am maintainer-clean maintainer-clean-generic \ mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ ps ps-am tags tags-am uninstall uninstall-am .PRECIOUS: Makefile # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: ario-1.6/data/icons/hicolor/72x72/Makefile.am0000644000175000017500000000001713226723431015544 00000000000000SUBDIRS = apps ario-1.6/data/icons/hicolor/24x24/0000755000175000017500000000000013226745610013567 500000000000000ario-1.6/data/icons/hicolor/24x24/apps/0000755000175000017500000000000013226745610014532 500000000000000ario-1.6/data/icons/hicolor/24x24/apps/Makefile.in0000644000175000017500000004001313226745576016530 00000000000000# Makefile.in generated by automake 1.15.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2017 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__is_gnu_make = { \ if test -z '$(MAKELEVEL)'; then \ false; \ elif test -n '$(MAKE_HOST)'; then \ true; \ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ true; \ else \ false; \ fi; \ } am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = data/icons/hicolor/24x24/apps ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__uninstall_files_from_dir = { \ test -z "$$files" \ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } am__installdirs = "$(DESTDIR)$(iconsdir)" DATA = $(icons_DATA) $(noinst_DATA) am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) am__DIST_COMMON = $(srcdir)/Makefile.in DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALL_LINGUAS = @ALL_LINGUAS@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AR_FLAGS = @AR_FLAGS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AVAHI_CFLAGS = @AVAHI_CFLAGS@ AVAHI_LIBS = @AVAHI_LIBS@ AWK = @AWK@ CATALOGS = @CATALOGS@ CATOBJEXT = @CATOBJEXT@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIRNAME = @DATADIRNAME@ DBUS_CFLAGS = @DBUS_CFLAGS@ DBUS_GLIB_BIN = @DBUS_GLIB_BIN@ DBUS_LIBS = @DBUS_LIBS@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DEPS_CFLAGS = @DEPS_CFLAGS@ DEPS_LIBS = @DEPS_LIBS@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ GLIB_MKENUMS = @GLIB_MKENUMS@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INSTOBJEXT = @INSTOBJEXT@ INTLLIBS = @INTLLIBS@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@ INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@ INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBMPDCLIENT2_CFLAGS = @LIBMPDCLIENT2_CFLAGS@ LIBMPDCLIENT2_LIBS = @LIBMPDCLIENT2_LIBS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MKINSTALLDIRS = @MKINSTALLDIRS@ MSGFMT = @MSGFMT@ MSGFMT_OPTS = @MSGFMT_OPTS@ MSGMERGE = @MSGMERGE@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ PLUGINDIR = @PLUGINDIR@ PLUGIN_DATA_DIR = @PLUGIN_DATA_DIR@ POFILES = @POFILES@ POSUB = @POSUB@ PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ PYGTK_CFLAGS = @PYGTK_CFLAGS@ PYGTK_CODEGEN = @PYGTK_CODEGEN@ PYGTK_DEFSDIR = @PYGTK_DEFSDIR@ PYGTK_H2DEF = @PYGTK_H2DEF@ PYGTK_LIBS = @PYGTK_LIBS@ PYTHON = @PYTHON@ PYTHON_CFLAGS = @PYTHON_CFLAGS@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_EXTRA_LIBS = @PYTHON_EXTRA_LIBS@ PYTHON_LIBS = @PYTHON_LIBS@ PYTHON_LIB_LOC = @PYTHON_LIB_LOC@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ PYTHON_PREFIX = @PYTHON_PREFIX@ PYTHON_VERSION = @PYTHON_VERSION@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ TAGLIB_CFLAGS = @TAGLIB_CFLAGS@ TAGLIB_LIBS = @TAGLIB_LIBS@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ WARNINGS = @WARNINGS@ XGETTEXT = @XGETTEXT@ XMMS2_CFLAGS = @XMMS2_CFLAGS@ XMMS2_LIBS = @XMMS2_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ intltool__v_merge_options_ = @intltool__v_merge_options_@ intltool__v_merge_options_0 = @intltool__v_merge_options_0@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pkgpyexecdir = @pkgpyexecdir@ pkgpythondir = @pkgpythondir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ pyexecdir = @pyexecdir@ pythondir = @pythondir@ runstatedir = @runstatedir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ themedir = $(datadir)/icons/hicolor size = 24x24 context = apps iconsdir = $(themedir)/$(size)/$(context) icons_DATA = \ ario.png noinst_DATA = EXTRA_DIST = \ $(icons_DATA) \ $(noinst_DATA) all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign data/icons/hicolor/24x24/apps/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign data/icons/hicolor/24x24/apps/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs install-iconsDATA: $(icons_DATA) @$(NORMAL_INSTALL) @list='$(icons_DATA)'; test -n "$(iconsdir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(iconsdir)'"; \ $(MKDIR_P) "$(DESTDIR)$(iconsdir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(iconsdir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(iconsdir)" || exit $$?; \ done uninstall-iconsDATA: @$(NORMAL_UNINSTALL) @list='$(icons_DATA)'; test -n "$(iconsdir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(iconsdir)'; $(am__uninstall_files_from_dir) tags TAGS: ctags CTAGS: cscope cscopelist: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(DATA) installdirs: for dir in "$(DESTDIR)$(iconsdir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-iconsDATA install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-iconsDATA .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic clean-libtool \ cscopelist-am ctags-am distclean distclean-generic \ distclean-libtool distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-iconsDATA install-info install-info-am \ install-man install-pdf install-pdf-am install-ps \ install-ps-am install-strip installcheck installcheck-am \ installdirs maintainer-clean maintainer-clean-generic \ mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ ps ps-am tags-am uninstall uninstall-am uninstall-iconsDATA .PRECIOUS: Makefile # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: ario-1.6/data/icons/hicolor/24x24/apps/ario.png0000644000175000017500000000327213226723431016113 00000000000000PNG  IHDRw=sBIT|d pHYs0%tEXtSoftwarewww.inkscape.org<7IDATHU]lW=wٝ?7gkBBT ,{x BJ}&BUE)4iMfĉw/㟤T⅑>ͽ;|:DcYYn-W$!* V+ifzpe%rDq }1攼/ yr='Z-E4?tW;1%') ڛHI/y }/ZT*Ų,l6{0aMzTcSn#NoΖzXAgf+;ֹ\Sq EQ~gp3J P5߹y~v<-KF={̲twwm}T_KPl!9"2bf'5t䗓,lllLӴ]OMMq]r>YR_\.SuS===3'yW6T0hءL< cݸ秧&뺩rL BJ(c~V_{% !m`m-_ 4` лpxrzz\.+ @|ކ>zOgS6݈M v t Y/###5Monn2wO 1yv``W(b\`Z^Cl)5|羡X^{<D)LӜ֒]d"L=m@'!UO5fNLL @uUUMđ$ȩ#Nt¨P 9yPxJ{!0BceZ\ERDIJ%P pyS 1 bq˹$!<  Į]swp20إc(abgJ0Y}۶Wt!I$  <@v[ H8n7peMjw0۶]B 8~7d;ֳߨ3 /@b '@Ry\ hc@<JKzXPp֪ZmT?ف p*T] WD;M\koH s?4H udqBGENA:88~~hX䳩͆D@R )kZ nAhdB,3 #4<<|X,>U(zz{{MeYj Pk4/O rLKy^ @<+H pR9(X4h_t)8axIENDB`ario-1.6/data/icons/hicolor/24x24/apps/Makefile.am0000644000175000017500000000030513226723431016501 00000000000000themedir = $(datadir)/icons/hicolor size = 24x24 context = apps iconsdir = $(themedir)/$(size)/$(context) icons_DATA = \ ario.png noinst_DATA = EXTRA_DIST = \ $(icons_DATA) \ $(noinst_DATA) ario-1.6/data/icons/hicolor/24x24/Makefile.in0000644000175000017500000004761413226745576015603 00000000000000# Makefile.in generated by automake 1.15.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2017 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__is_gnu_make = { \ if test -z '$(MAKELEVEL)'; then \ false; \ elif test -n '$(MAKE_HOST)'; then \ true; \ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ true; \ else \ false; \ fi; \ } am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = data/icons/hicolor/24x24 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ ctags-recursive dvi-recursive html-recursive info-recursive \ install-data-recursive install-dvi-recursive \ install-exec-recursive install-html-recursive \ install-info-recursive install-pdf-recursive \ install-ps-recursive install-recursive installcheck-recursive \ installdirs-recursive pdf-recursive ps-recursive \ tags-recursive uninstall-recursive am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive am__recursive_targets = \ $(RECURSIVE_TARGETS) \ $(RECURSIVE_CLEAN_TARGETS) \ $(am__extra_recursive_targets) AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ distdir am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) # Read a list of newline-separated strings from the standard input, # and print each of them once, without duplicates. Input order is # *not* preserved. am__uniquify_input = $(AWK) '\ BEGIN { nonempty = 0; } \ { items[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in items) print i; }; } \ ' # Make sure the list of sources is unique. This is necessary because, # e.g., the same source file might be shared among _SOURCES variables # for different programs/libraries. am__define_uniq_tagged_files = \ list='$(am__tagged_files)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) am__DIST_COMMON = $(srcdir)/Makefile.in DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_rest='s,^[^/]*/*,,'; \ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ sed_butlast='s,/*[^/]*$$,,'; \ while test -n "$$dir1"; do \ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ if test "$$first" != "."; then \ if test "$$first" = ".."; then \ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ else \ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ if test "$$first2" = "$$first"; then \ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ else \ dir2="../$$dir2"; \ fi; \ dir0="$$dir0"/"$$first"; \ fi; \ fi; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" ACLOCAL = @ACLOCAL@ ALL_LINGUAS = @ALL_LINGUAS@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AR_FLAGS = @AR_FLAGS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AVAHI_CFLAGS = @AVAHI_CFLAGS@ AVAHI_LIBS = @AVAHI_LIBS@ AWK = @AWK@ CATALOGS = @CATALOGS@ CATOBJEXT = @CATOBJEXT@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIRNAME = @DATADIRNAME@ DBUS_CFLAGS = @DBUS_CFLAGS@ DBUS_GLIB_BIN = @DBUS_GLIB_BIN@ DBUS_LIBS = @DBUS_LIBS@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DEPS_CFLAGS = @DEPS_CFLAGS@ DEPS_LIBS = @DEPS_LIBS@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ GLIB_MKENUMS = @GLIB_MKENUMS@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INSTOBJEXT = @INSTOBJEXT@ INTLLIBS = @INTLLIBS@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@ INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@ INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBMPDCLIENT2_CFLAGS = @LIBMPDCLIENT2_CFLAGS@ LIBMPDCLIENT2_LIBS = @LIBMPDCLIENT2_LIBS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MKINSTALLDIRS = @MKINSTALLDIRS@ MSGFMT = @MSGFMT@ MSGFMT_OPTS = @MSGFMT_OPTS@ MSGMERGE = @MSGMERGE@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ PLUGINDIR = @PLUGINDIR@ PLUGIN_DATA_DIR = @PLUGIN_DATA_DIR@ POFILES = @POFILES@ POSUB = @POSUB@ PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ PYGTK_CFLAGS = @PYGTK_CFLAGS@ PYGTK_CODEGEN = @PYGTK_CODEGEN@ PYGTK_DEFSDIR = @PYGTK_DEFSDIR@ PYGTK_H2DEF = @PYGTK_H2DEF@ PYGTK_LIBS = @PYGTK_LIBS@ PYTHON = @PYTHON@ PYTHON_CFLAGS = @PYTHON_CFLAGS@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_EXTRA_LIBS = @PYTHON_EXTRA_LIBS@ PYTHON_LIBS = @PYTHON_LIBS@ PYTHON_LIB_LOC = @PYTHON_LIB_LOC@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ PYTHON_PREFIX = @PYTHON_PREFIX@ PYTHON_VERSION = @PYTHON_VERSION@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ TAGLIB_CFLAGS = @TAGLIB_CFLAGS@ TAGLIB_LIBS = @TAGLIB_LIBS@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ WARNINGS = @WARNINGS@ XGETTEXT = @XGETTEXT@ XMMS2_CFLAGS = @XMMS2_CFLAGS@ XMMS2_LIBS = @XMMS2_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ intltool__v_merge_options_ = @intltool__v_merge_options_@ intltool__v_merge_options_0 = @intltool__v_merge_options_0@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pkgpyexecdir = @pkgpyexecdir@ pkgpythondir = @pkgpythondir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ pyexecdir = @pyexecdir@ pythondir = @pythondir@ runstatedir = @runstatedir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ SUBDIRS = apps all: all-recursive .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign data/icons/hicolor/24x24/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign data/icons/hicolor/24x24/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs # This directory's subdirectories are mostly independent; you can cd # into them and run 'make' without going through this Makefile. # To change the values of 'make' variables: instead of editing Makefiles, # (1) if the variable is set in 'config.status', edit 'config.status' # (which will cause the Makefiles to be regenerated when you run 'make'); # (2) otherwise, pass the desired values on the 'make' command line. $(am__recursive_targets): @fail=; \ if $(am__make_keepgoing); then \ failcom='fail=yes'; \ else \ failcom='exit 1'; \ fi; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" ID: $(am__tagged_files) $(am__define_uniq_tagged_files); mkid -fID $$unique tags: tags-recursive TAGS: tags tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: ctags-recursive CTAGS: ctags ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" cscopelist: cscopelist-recursive cscopelist-am: $(am__tagged_files) list='$(am__tagged_files)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ esac; \ for i in $$list; do \ if test -f "$$i"; then \ echo "$(subdir)/$$i"; \ else \ echo "$$sdir/$$i"; \ fi; \ done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ $(am__make_dryrun) \ || test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done check-am: all-am check: check-recursive all-am: Makefile installdirs: installdirs-recursive installdirs-am: install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-recursive -rm -f Makefile distclean-am: clean-am distclean-generic distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: .MAKE: $(am__recursive_targets) install-am install-strip .PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \ check-am clean clean-generic clean-libtool cscopelist-am ctags \ ctags-am distclean distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ installdirs-am maintainer-clean maintainer-clean-generic \ mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ ps ps-am tags tags-am uninstall uninstall-am .PRECIOUS: Makefile # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: ario-1.6/data/icons/hicolor/24x24/Makefile.am0000644000175000017500000000001713226723431015536 00000000000000SUBDIRS = apps ario-1.6/data/icons/hicolor/256x256/0000755000175000017500000000000013226745612013747 500000000000000ario-1.6/data/icons/hicolor/256x256/apps/0000755000175000017500000000000013226745612014712 500000000000000ario-1.6/data/icons/hicolor/256x256/apps/Makefile.in0000644000175000017500000004002313226745576016707 00000000000000# Makefile.in generated by automake 1.15.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2017 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__is_gnu_make = { \ if test -z '$(MAKELEVEL)'; then \ false; \ elif test -n '$(MAKE_HOST)'; then \ true; \ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ true; \ else \ false; \ fi; \ } am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = data/icons/hicolor/256x256/apps ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__uninstall_files_from_dir = { \ test -z "$$files" \ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } am__installdirs = "$(DESTDIR)$(iconsdir)" DATA = $(icons_DATA) $(noinst_DATA) am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) am__DIST_COMMON = $(srcdir)/Makefile.in DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALL_LINGUAS = @ALL_LINGUAS@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AR_FLAGS = @AR_FLAGS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AVAHI_CFLAGS = @AVAHI_CFLAGS@ AVAHI_LIBS = @AVAHI_LIBS@ AWK = @AWK@ CATALOGS = @CATALOGS@ CATOBJEXT = @CATOBJEXT@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIRNAME = @DATADIRNAME@ DBUS_CFLAGS = @DBUS_CFLAGS@ DBUS_GLIB_BIN = @DBUS_GLIB_BIN@ DBUS_LIBS = @DBUS_LIBS@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DEPS_CFLAGS = @DEPS_CFLAGS@ DEPS_LIBS = @DEPS_LIBS@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ GLIB_MKENUMS = @GLIB_MKENUMS@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INSTOBJEXT = @INSTOBJEXT@ INTLLIBS = @INTLLIBS@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@ INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@ INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBMPDCLIENT2_CFLAGS = @LIBMPDCLIENT2_CFLAGS@ LIBMPDCLIENT2_LIBS = @LIBMPDCLIENT2_LIBS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MKINSTALLDIRS = @MKINSTALLDIRS@ MSGFMT = @MSGFMT@ MSGFMT_OPTS = @MSGFMT_OPTS@ MSGMERGE = @MSGMERGE@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ PLUGINDIR = @PLUGINDIR@ PLUGIN_DATA_DIR = @PLUGIN_DATA_DIR@ POFILES = @POFILES@ POSUB = @POSUB@ PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ PYGTK_CFLAGS = @PYGTK_CFLAGS@ PYGTK_CODEGEN = @PYGTK_CODEGEN@ PYGTK_DEFSDIR = @PYGTK_DEFSDIR@ PYGTK_H2DEF = @PYGTK_H2DEF@ PYGTK_LIBS = @PYGTK_LIBS@ PYTHON = @PYTHON@ PYTHON_CFLAGS = @PYTHON_CFLAGS@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_EXTRA_LIBS = @PYTHON_EXTRA_LIBS@ PYTHON_LIBS = @PYTHON_LIBS@ PYTHON_LIB_LOC = @PYTHON_LIB_LOC@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ PYTHON_PREFIX = @PYTHON_PREFIX@ PYTHON_VERSION = @PYTHON_VERSION@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ TAGLIB_CFLAGS = @TAGLIB_CFLAGS@ TAGLIB_LIBS = @TAGLIB_LIBS@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ WARNINGS = @WARNINGS@ XGETTEXT = @XGETTEXT@ XMMS2_CFLAGS = @XMMS2_CFLAGS@ XMMS2_LIBS = @XMMS2_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ intltool__v_merge_options_ = @intltool__v_merge_options_@ intltool__v_merge_options_0 = @intltool__v_merge_options_0@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pkgpyexecdir = @pkgpyexecdir@ pkgpythondir = @pkgpythondir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ pyexecdir = @pyexecdir@ pythondir = @pythondir@ runstatedir = @runstatedir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ themedir = $(datadir)/icons/hicolor size = 256x256 context = apps iconsdir = $(themedir)/$(size)/$(context) icons_DATA = \ ario.png noinst_DATA = EXTRA_DIST = \ $(icons_DATA) \ $(noinst_DATA) all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign data/icons/hicolor/256x256/apps/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign data/icons/hicolor/256x256/apps/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs install-iconsDATA: $(icons_DATA) @$(NORMAL_INSTALL) @list='$(icons_DATA)'; test -n "$(iconsdir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(iconsdir)'"; \ $(MKDIR_P) "$(DESTDIR)$(iconsdir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(iconsdir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(iconsdir)" || exit $$?; \ done uninstall-iconsDATA: @$(NORMAL_UNINSTALL) @list='$(icons_DATA)'; test -n "$(iconsdir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(iconsdir)'; $(am__uninstall_files_from_dir) tags TAGS: ctags CTAGS: cscope cscopelist: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(DATA) installdirs: for dir in "$(DESTDIR)$(iconsdir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-iconsDATA install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-iconsDATA .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic clean-libtool \ cscopelist-am ctags-am distclean distclean-generic \ distclean-libtool distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-iconsDATA install-info install-info-am \ install-man install-pdf install-pdf-am install-ps \ install-ps-am install-strip installcheck installcheck-am \ installdirs maintainer-clean maintainer-clean-generic \ mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ ps ps-am tags-am uninstall uninstall-am uninstall-iconsDATA .PRECIOUS: Makefile # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: ario-1.6/data/icons/hicolor/256x256/apps/ario.png0000644000175000017500000013552113226723431016274 00000000000000PNG  IHDR\rfsBIT|d pHYs6VtEXtSoftwarewww.inkscape.org< IDATxgy&~UN903` 2B̤I k^ʖ{z֏W}앃A,YEI($H3H`PutWOu)qz:VW}X.e\Bu0헇.Xbjv+,uf+j\-\rn%'δECcʲX.˥Ve ˲X.%`׵xدyYe=, Vމ`_6rI)D_Ba)DoG揽7U>3<{Y8!gt|03-zsE7|C'/?, )^׼x6̈|k6X-#uW xy=rʛv]z[hc 17_uĢʲX.oU xY}FzW>E]}WMa,$A]_&~݁^o 32>o=vfhn*n'kr֥YG|%gdb"7 \;"Ѳ \޼r%`W`GPfƚB o$S  Z6R(c[>{h~嗝 \7-#:V7D&r 2n%G(h[÷ wX(`O+XfoBDozگl޼{ ,`?u->%ϋb5-kݭfW`.x%>4 7(E;U=zr9fYt3dDd4_z9s8?'XѲo+nk*(ezMGJ#,W}{{{rEfY3M9R1#ϧ}`okgC?:q۸0/V(6bk)%)uiaDM{͂СCWܷƈتUx\\r9Cι3m6D(|v"2BG]~co#}AvXѲ^(:bk@ 'do@{ f4Ч= imWRJBk֬a֭:::m8c""1f!=c,"2=F3ƢPuk& Nw=4?}*}b&:5Dx?I?qP]foT:vOk=|0S{nD~e6 Bɶ0Mܤ ^lψ3X|KJ)8PX@ߧ n;G=;3Vm; [(vUo 4 .) ;Z&%W+ܪ,FZ>M7{w?dŋSXeمBbu !D| )-1p@DU{[z/qF'&ժ,tpc`eP1{:4\ف[?ˎwW]A<< `Y\mig_kkF -tŚ!8ct]7ofDD9)5S࠰hcӄB=no 9NLɍ Ba 2jsEOiH`RԮq%쀤\:*1q/;鳯`^~jp|#OrgaMvUM+)W Çv'''c@OpExk}&2e l}R+Ec8zi{#x#g#UB'7*UT9l"Wba[km\ZFT6L:T>|WqqΜp|בS?$|<%_B5,?TY~ll,ŋ) :ث*uwwcaajrrjJ|333] YJF F09眻ˉ(r 6~߭yY>;3Vnʝu&f`o6jA,% \'\~qN^:{23B/_؛2Dh9 YW6}RҝxaЉ'P.IPXjJ\.,YEa 1Hݲa6aQ0ض PDbYzV}/,,yA#")oWzrckMXIהTI񻻻1==MH{iXd)x""cLӌ]Asr qȲ,ODAOQ|V#"f:.=&߮% }G<Ъ 54Li}e !FDLJ°S>fBƜDDiZ`J|Tj/ \.nyނ8juqy۶c~Ia{C!R\ǓtȮa pctv |`5玹􅓮-Ybwaq۾MO;e P(`v30 @ڶ 1۔ ԫLo4;+ ЌOU8/iJ%>677oqND̶m^HÄ5aD\!;0MX.+mMqmy0aaii9fG9BH)>}p —RzMh򌺀Na`OS{8&/N_8z^U2$)۰񙣆juHV8,˴ cq/&''C9>>.@:tz]Ap u =5 ,#t7Rνzǀ#<<0 FHHK)YBaR\rrW, BoGGGmۜ1~މNz ل.qz_hdzفk.w 3']ϫWRyR0ΙKjr"MY2 CfQTB7 %A4 l ^2%&@#ʟ?qc}633eq,G`6 Cx^J?@/J` gCCCcV޶rӶmҁmq% HZ!e?4cŅSWyX8;_9|B3ƌ |!`D#~Za )0 # RRP1,8x1t6v ΆD{{Dڼ/ T(txe#y( [4KhqqǑb~~8 I: o @=F+7@=g֟j8>#"|>s `pLp G#B[~======+"2|hk%R puS']̞r1 62 c`uɼMNRŋΕ+߿ty"|"҅/>CJn7c1i7lpʕ+wwwY\{֯ZOՀgOi/ ~cm#5Cdɨ~ @R1::c֭^p珟8q'c>!@#|MJH( G`Y1D=h \'B0|;:FORMMMՄaDZ0 5I!T7<`cccZӳ" :Г5#4O&lb́IZzzz ]]]֯_i˖-?r/^+ N|C?({^aޫ0\ *+0()dPKgg޾vڵkׯ_믿~_~ԩS/i32BOD.L@ẮOD0 ?LE ӧz,6p}"@zld'R~W8,7M+;_gRj3 (ڵVR j˗q$>.\ƥk^j`ڋyT9t t屢RB>:O_i#( !;9wtt844^{}嗟}{ŞbRJ?4b 4 b*B8~؟eY !T?9 u6P$HcחH ]@OR~bJ/..|>τBa3B_ bm۶Zƾa1Ы+88q}?x9t1Ah+F / È\(Am4 LOOr&''LLÕ i!>e#j@M-b-ED4)ohS#j5irEFH# 4 {ۺJS{Rك/ϟ  Ux5w3|f]s~Eu"030p/ cÀ;w3ձm(k>STFЮJ( 7Z\\i}#qq ]B;RJstttƍ:0|R4SKO#Z/2/`- !0gdx5B2.Q,;nO[]R)4~7 !𧧦ه'_~-0 iվ<0vہН:65(\uE]`~=B08F OI0O.^|{3^wԌOh: IDAT4A+VhR/>pرqs(<&l} Hepe M,zDO" x%59r>N#Їj;CaB@JiJ)ͭ[9::+WI!{iq؉9|w/7C0(\v*}_ ޏ <><2"os=0,a>EH(0 C|%,)3ׯ_֭[?ק> ,>/ktZi,]OfRRWM4ޛ_\ *GԹg~b8X&息>?&>w n=Vs j3{wvv=sܹWY (@2YPLueYpibqqQM.@ElۖJEa·18j[ZWU-,,ea۶)0=3 0۶m͛]j; - ~Rklv*ThZH֣/`yLJoN ~G~?}ZܸmCͅ ӨBhgg:O{!y0z4j!H~ׁ©)~&q|9Bd[lIoc0I L[:ݻtqY8‹P}XGW [Dd(wޟݱcOuvv0T=_ŧmߚwcμ:kߛo}Fu?eQ3_`i]iH%.`iw'm~v Ltr>Z?ΝiO,ˊޡzeaŊ{﮻B Rڌ1[JiK)m" <BjQ_NRlan M9gMdaB!@@g*H!T.+HÇRJgUUFD37 BOnN@5@j۶uk!>3Dd>={& i֤|nFU|pwہ_^Mq^~t 0 kzxe!!:l@TD݉Tۭe<_5]c#0`Y "^3mmm}/7 >P(Z2r "\\./..B ||K]L>dO/.:qD,O?_{gi}KJiZjΝ;."Q;)#O~n( Kvȁj'd.m"3@K @6*OKB-is<`?k"~>"~o?~Ja`Fי#gϞz|WQ>P(a@c0E0o 4>>7 : _'f:Ufr:7޹yt_-_Z7d>-vkP? >)0S戓5koROGg':gew?9 Aơ~(lo;#xſiqVcY T }s\' q.>5"18I\. ۶~@<:0>>.@F-9C)Gk\0~0X\K I;w޷cǎ*<̼!)r뉀v͛_pn"Qy"c_ ji=t@1:'] :6Vi{/~"_?uwo&l͛=_:;;W)GrmێeY<^V3}݇71H!1U}^)߲,h8Jo߾x{{{?{ Unڎ m_'HMz}4 z۳ IoE:Y" "W>){Vpx@-7zm"މ(˺uu]?f͚-*"UKJ9 U}S Ç))tߤY;T*zwćƇ9ૼzO-m{x~ӯ{}߷X1sӦM޸q >@g;xWG6`E.Cu &\K=p!dYL8+MDT 7 RC/W~*)5M}rnڴ6hZ_U?„R/e-#iWq@ % (zº|֭[wæM>^hRJ~ u~+H6M36^>ds2d~͘AҜDKۄ ?$bl ^u*٦-7] j\M#k?>]?}޽Yվ˩9}连Wqe8r,B>v@4˫+aɹM;yse%+oߋ񪡻1SIJ2e˖Ouuuu$>} \:j)K' 6Kjv_hKβF&(v}^9Ro͛Om #^c܃OC8sN/0ݻw߽cǎ{Xa.IYJH0Eò,XY[.0 699I \;rK( H 6#KhaaAs 50 <|yտcǎ_ࣃq ~8fVK'SbJPӆu4Ӵ`b @44((idP]UՃo?6 l`O2_o 0u2>X,Z;wGJI/ơRJ5 # LӔI08\ׅJ @IEZ *ZLl4h@ݯXjlNwo !bرgϞ߿Z?JY?kfA=LYAuenmy[Ղ5>Wзkfĝ~5Q @ix>/ӏ!QPˍ}oxxs~ ^ n&Ţk׮wy"GֵddU>,۶btww$޽@md? M 0 $&1X@=)ZnFDs >mlꋲ4Mw_\fhO܅|aȚԧ^됶6{z%dӨj_yIɯKC O/Q%d$ (<29Ѿ] wUx80S?ܶ=t_||LZ]X4wqfP (;]cRMd , 2e$|߇y*QHUJj5J쉦@OF8/c 89DdrΣ:5߾~~hhh{ڜ}PNY_~_n0ʤ5Y>~du;gy^^l1x4@gQ%59HCSuׅdVB n~OΗq/_ą^Jk׮{ Ƙ }߇eI$IDqsy)i*LK Z—U)е?#i>_(gD>*nIN2W}?_-}8ջڔxW_0z-'ct脯% -,(; yxk|Z=~Z=bR6^[ #,u:~<VO~@ )%Ţs{P*RJ|{4CZs)eAJ);::d2[P 4HښY?ky m[}7 5>)47o|{MӤ4͟6}o7yG y4ke)~n&`V (bE2YM҄El4^ t:;T;>1M7f_`B~~|gBFd (M_,;vyÇ A Ћ:WW!R$>cZNÇo?h€'NR}WNpB𬰟,˽k׮\.g$>cdFxf&'-^``-8P?_[ ev^,kzр+Iү%S.;# W'S~sf1JWWWqǎ^pkjhKsq۶ׯ;'tuvvf?6`aj}Y43 ;@4 PףYfͮ$='ϸ8YL'?5o4*4n҆ҚѽsrMh|2A&-u++q5큥k{j3>_X\\PJnD>/+-QH1W5VRS, s3uyZsV*h||MOOS2I(+4XAD іLژ\RD8h=oSSJi u}0Oj9'/^qoޝS  >RNr$_=Q|N<K]`!~O?q:P-Oz47dAuI;/>Wo7K ?ߋ/ d { ScSL@g*lgE?@wwwSh Ç Xb2zK@cSSS#"y^>88;-8oU~KK@]8g֜:c9p="z#,zOkDju:O6gAhƀ]Ұͥ(UXM6ݶmtm;b4;;KL{.YSf~͖@2;w+ +J4M뺆rBV_.H>7֣S.BV-OY|s>0g%۬6GF`dQjΤAr;`ҵ>WfNv,[6OՎ/o<IE @.[lyڵkwvԢL?Y냆LhX2{ot!JM KgJ%b|>s9ܦƎ;~?ORu=Ka‰grw5~BxXܳ95GU ج&]r}A{6Hw-d̨wE릕XW Жsm#CE,kyRYk׮P!kuS@'299ɔ)3?N@RH0=/4bY_M~\t}$i+ vX_špΜ;TP~7/1n%hqŐ )Sŋ͛155U=] (Nt~BcS. "cƍN[%ak\V5~$,8%"A[S -Q4ͩkC'@ĶaZL[Zi 㜢|t]7Pno}/e yq{{{t! m_ϗ$A}5 )VbNwx&@='MjNmʕ+P?wu{ o$:Xx)@S@8FiP@pԭuۖY#QH`i9 jy/=q)9Gwwwm~4ͼ/F҄9\L+( YhN@YZ-K_AHh Ljc1==iE꿏A IDAT]G_g$`lذkҀ P8={Uiz ڋޭuVLhjb> @U:%zkQBRХ^_V^ݫiնL,2z&{?UWGA֘j\cǎ!D<6Р„2t+J')@zBxPСC?G cU*F(& Tk ֽ$) H׫b ĽӖYfvzB f[&Q}d^k x@o$ǥu}8/HRYeYqppph@Ҿlp]WD9`iܹsX{{;uwwS{{JZ@2!EcEG5_9@ fggIs΅ sʕk?c, }xv qy@Z>LvM[Op=x 7QO-iSGYHs[WƔbZzV?>L͛7kv{zL=Mxjj*6Vŋ#֣1@Dv4` Z- @idοgvT~9J4I}Աc8 4p eCG6j3:\jN. N;4 "ed%AH4_:642&2}'_~8jdZV*۷oWOmOEIpjP4M8NtST* 9>OV Pse0+7?5?mۦDĒڟ1cvڛ֧9Ԣwُh[SY}w2]4ݡ3:h*h׏A5W?uUOմG:-G^I!E"+Oi nx)gB0 \biKvSyj?Wr\.G|t\_3`sL )D,@\fggcqX}` a6C~1]\G:p 9;`=mR^iwH;?nC'YS5 ھѻJ;O`gSzpމ;i kaq{Ni\ ,!X(sN@0 ,0`0W/j?}>0zXC'0wmЁ_c'=ikÏwdz =4@@VJFGD,5WR3 YB%w]Х\fjd}Zlz>uv3 &G/=}'k EB@ݡO >PH !0599h~~0 EB1FRiD I˲4͘;c\JQc]saep d`N/Z';mS-;t֒y/3$D=v3:Ϝd{2}%Q}=RovhEYzpkP!oպm|xxvy!-/!W PB@79W&tf ‚ N3SSSğ$ P? q!r}}}R7W=Қ(W6!ىRԊ&{׼: ،zxz^[}-+ڗVОF;z2Uo=S,9p]rOAp*6rj_ǎ ! bD2r#|MV^ Pο@K]]]#I6--S͙TM^܍:{R]sI"!SnoB# J>X.WFf?׉O3L^C׻~~ LmsNF!@$X#IOKNŋ4??OjjjDCgS,@5kQO߷T+7 `dtzkTd bu:{ Jn<[WF&ͧ{o_~eZ_zJ9i T9<6;;B|yZ!h)>%X-[-&@Z?<@h 0gg4w].ۍ~2sZQg kٷBvF¤)L?2ꅠ1c@Scqƒڛt43 N65sX,k׮L@?fȘ#,<H,9OkL_5釲]UR)| 9ELӴ`w'1xGJVi`;RZmlI\\$'brm"҄YcLx=aR2 vPLl<@t3VWt蓋yg-bj"bsN[!Ӳׁ[*؇((aDDLJ̿Hp1OJ4MVN@9Rr!_b6=ᛘš>ޑ%kSKؤ6J$"4dh,-dhOѼY/ۑv|u\Smuvjd=T]֔RUTjcQq_@ tww(8)}!!Xȶ a*0h@;zOcmmmkx;v]yy3:JN]uذi4PΓHKڪjͳi׾zi^Bf*ٯ[@ 0(˹ߩV2|RJ& X *' :JNG- XXJ gAP?l```SGGG"D U["YAD#Ѭ&K#S:k 2:W11qi3paܻiV.2a+Cn\u}nF^>imt"].4sLD~hٻgh};٣8^~hIh1 ٌи$,"3 <@Z7t}}A ÐEQ|gar<jj:7%]'@R8և c-$wQii.t\N)Ba=X@*s]Uo1\$8TNܾ!|<}Y g R8I\SF@@ %ao~n39Ð+@mS~I&-5>>~ M̹zr\2Ka7IGHn>4,u6lNC,П,vr̨X81K `tM*,))7vQxϐ?I933sEiS@$I Dat "wO%*?@(709A<hh).sY5 LжMN\èK|q|.fs@YQ|&lew}p49/RG\28ƾP;#?L_nZcQ"5"S׷r n^}_Q菔R\@AWz{]E. [E-,8(ꐚ:V|9@z&fm4wDt}18zXI8cWmlJ: jxy-q~533s/`Jψcn!`+eت^8f[E_>"=RI!!w6ĀEk! ¢hi.L ٸg,Ի]m]clk[D6gJJ6@@W)וG_cNl$A ( RH2V%qeTI_kQ9 I>22rTu p+V?oG`k^EQ0F: AbF )64- t F /Cԡػu \k/H?&"Z=z]lH>P'!`1 >fTj۬19j18fA0 c8sUFq^ә{LqS+kDPzSM̈́aFjE?O=EjG8 Cz>syLyd3@p}s}ޘ~?~5@g:q#J @*Q8(bj_Tg1:c:"$"pbbJW*r)B [pFcJ0zZ찡*~Pťma:*}qʵypdJZw@u>ˁdQ9NZ!v'~LVk[q P𳳳ouB"i1oAF wr0`yr4 @Ij…<$B~cG[ք: 8 Ε_焑tqZLz&ɄJTUߕkc")'.ַ'  a1T-՛ g{Ӏe }u,1#ºՀz>v$v,I_1NkFpg9p% w "h4ySK:t~0Emamm [|- J.o,A;9 Prpn22$*wJbqIֱW6έZ4Gmc+nf nϝdֽ8KwrH5@ *Cٰ1Sysؙ73&'' )g' .*N^ʽ8vv۸{Xx^ ' ..?A @ IN.]Kpsn=Ęm4έ18RtTZkROq@蟟R-P@?=;4uNcnE(khhPOD}l*o46) \_5 ܅a 8(V"*,<+»2+v8a3p/1H%WA},ͽS{DQf1֨d]KQp[4K$3UTv`I0`G5-..{%] ase`DiGT_4XC\'kT˸΄YTYW(-u[P_WLީ!q=xk{F3 ⻞i3Z>`L$ MnFjxqb|||jrr$.@ &׮\H7i"nj `Y |}A^oI ;Aȝ˷k;Ou|} %HPl8m"m ޙaBO!);nZdX r.7XQIHa9h6\KSmao6TA(9ԇ3:j\_O;1+ 10-WAaXO颬 :Y=Kg(f]۔GT̲3@>GEK ^)_[hgf5 XJe漱g-uT{vYn"wП¤sD"d`HmD'?!wi"ZYQU*%,.$AOzc~ TI.z a)45[s+-낐'pӀ Dh;T֨\h:ՀV5# @ yBD&k1$?asl`BA biNxcL b~p;!@Uqsﱥ*.GSD/=Ci BqK] νXޭ]p+ XW*_Μ߼jNu\_Qv<1AEUMI=I\]sOv@~A!SDRD 2۸Xr&o7}Q8ܵhryEgX/I̊ H"Y"QQ.#FgʈN̫L[͹58}ؔ,둏L҆u EF>|BJ+Fr$4 aQj}޵:LeC?H[P~2RCl#WB+)ߖšT-5#C .װr\_Y NSXaVZ|_m*9À>Ȅ2v{DɢR {]WM^\Zׯ_ 4W?Rg7?Nr;} 힁W 60 \sern2(l]]FГPa:108] ֑Xfx]X>m aEWW, 0hDKl c@* 7Hk[ ͈v:2n|l'ڿGFF!-iHodz0hRؒC*j$-<ϫnT`9c_RʜI$@˳驌]]|Y;g˜Z$DF RI`1e1: TYWsn(pNv IDAT)j✫=ZeTNJH]y$[ۓBe6mWT063b 68omN `v7Gkf38|}RNf UM R}z=eAPTA`9 )u0q2䵗Xv(fȫνdr̂$(e2 zH'vB8`|2|z^(]W2% qi׽,ce }' Ԇ χ(=~̙hPIE* j?Tқn2;^>S .' EyΚ.Y]*r3ŲoJf5:UBʬH+ɨu9l`˄3XclaRcpT|.s˴ٷ@Vk0{Ƙ0(WUn@&%Ai H~jTDDPFۉrc"b -Z*G2 /qߐGpwY`,t !zl%:1{{sCh&Hx8ևfA=41`Mt{]pf>c Z#@BL|r )?%0[[[<TJ " ݀ܕ`g :✃C@8&lG< ]$-h<)k"% R~A8sXetV8nAu\;,3%S2҇XnCpsge`XRÝ!*c)&ƘrfffcD !ZZ-槢 zFؗH'}_ٳgKZ&bb 2S$=[/cWBE=P"8JXkRz6]VLxƁU]1 }7 lf$Ӊaxp. ݶ`(ҫ:)><.Obgw>w@ٗGFF58F! < -HzgA2Re "oîhi?] WR肉RMGgTwY8p93/K[vfFAۻ6V Q+Wfbw$c%ϔ>hުܩ87, '>k}\"x /^_Th!|$,GKٙr#P<$**̙3ԩSDQt2UQQV0LOΐj ?9It:(D0~b`hz4UeFpo Bp-An`1MZe#K5 = /!]8)< h>,8щeGT灄GQD8XD7 !_]'F.X( K!wwd !>R ZdQȂMGVe m_a/buuz#;G;cԯ-!S^<\8^ [xF_jxmFnW{Ob/, Gۈ,C#hU$o M.O|>EAP9'/$!ιPjJ*r194X *"KL=(g1F &L=]?&__(Nc@F>!<#X԰WGS? -Wlȱ*YiY02MF 1~6zܓ#< #]wu O,@6^P @z2tJcPyR2t:BHiBpa[KJ 9d3ĵg7p:֏^!E}-fIFvvvsNZ$ɐ\(4 ݅2~=xlm.Û䕕Yj& 3RͿΞCtb;%pPJcg"laH%Y' g4r)C~oX@")IБ|?C'ހ%nn.cd X?c"!OfcLAyy׃_19sz^ȑvgro@~^!oeGz #<]:3]V^Ua.I^,V@;2}țُt݀a˥L8t<I#tƎjyU/ ^Eglo%ҏyKÔwU23d(I/'l4p΀T:ydK};iRբMj5 (8sHmloo_Jx=7odnU+ZʷcK]u~\m_;[8wvGRN, +I $rGʳgjyBX| }.+8oTs\kۼXֈsay EJp7{Ljcig5܈ &u)˴3ls0<"_n=77G< K_LUEX[[L!Z-QEdzD c,x5c #K/(r @n.s>pvf^yQ1PB_T:(!0I=5ZDۀU0ȝ}\+3_BWgQg;?7y1 d@/e?ׯ:th_ BnI~+03*;@ @D3w‹keAs-*Й, (X3uw?__'-L}wVSVJi.BAu">lG@=#o67Di}1VSOr#'g6cI~6@j~\?ξlIvA?nn+x//ȯ SNɓ' Cjhoo0ed%I_ͽ}nC~0s&~tqm>rc#|}h ],l,7 vȫÀU0wv"7p^ FrD3i'WF^@Ha]>~#G`.~W~wN>]9kV=JH Ðد~+s$I"co666/AxǑ1@[]ew06c'^_WtKD*`{ s߷BX h!58cqFް mhov ্kot&&&HJAN#ht^S$s@r8\ACKFVX,L4X~sqGX]DZpľM`FfqۀUlU;˷!l%X l7Fl6fFc'i20d>R'OŒSۥf)(T@P.RWĀ1X^^~qnnQS7AV}dqܔuZaʞɌ2lZ6XngdTsEE{DL˿O 8 T Ȩ cV# A*ϛFC=:JvPzݱũ<ȳmnarr2KP$gy&>t-,,jU 9O$Hښf^$䓏Es \l?ny${_AZwLv߆mCqo{.*th"z G[$. ,g]{>^.@=\URiaaΟ?rB!DM @&5o@DnX,E),ڟkXmb24yovfpTp]F>(ƛ&=9C!D{K\ɣ IDAT"0r?=ܝlnckk f6@ ,}>H݁$S D$zD!?XNh>\&MTS8+ū;хaE=&Ll܋pjU{ r` ÓPj ?9 wt`+=??n29s~} :Vnë2H;‚hllLL{vq%AU6#ȽMf( JJn;HF: C:@0Fn+rIieDn|݌Xͭ؜b\u,AArFcTgOĿZ>EQDaRѠfI{N`S7`oo/@#*+P!"QRիWL ~2{ F#)!i ~Dr {'>_v"wvȍ턃 8|?_Cw܋E0?ʢN,fWgM<0?^@A 8 k>3nh{/W3ԩSXXXzN1F*&@$I"K/ԩSt:u ښjZ-FFwf.A"cnt:+++g'''P*B83<>hqKem *q&=%;x>X?>waZlfhDe*]v.~iq?" 0AE/qޯ^csxKRu1$ !^(D4::JBj6Eq4Ԉ)|K_/ˎSh Rހ {@9(|M߼T#:˕uЂol,HK$z8Yi"neç#⮉&"@KW1e;8GT̍n:i8TYL@@D@D s30 WVV^|sJ̇3Fx_)Lэ̡<X"?%ȋ\OuSrgh-3r=po{W\ֲ cKGD|t@'d<Z&8&"QƨoJ(7 NCnt}? PD 5`\|˺_>2;9 rʜ)ɆBǒ?ށ;7yQw|C99{9nQ&DC~vG7ΡksNPWoo*) q6l6DV#P /11T8wEQAwH@&V}OLi)t.MT+d6tLSQ#|G 37C%/jbfaܳ go'0}GSvnֻܼ]An9"A5;fnoB`yyBx3D?E'm@î`}ߢ dRN))M) D)) &"1GDŋzllÇ۸~`es|#߼3Lz)Vau7Ñig?ŃOOb]t``$OI8F ZaԼ&fk81u'jo;Q(N\>}q&6/uKXBDYL$0 ibbB(ttt| Btr :toz=n$IcDtNDyQ$A:Ean?7::@' i<8u 6A]z䰑j 7a1G;Lݏw9_5VoṵWwZu/~HOc<][e_?ôG*Խ&Xm1c(J a&AČ1.dT ;ؐ Kxۻ> bdD0 :D3(궁,@&`+H@Z41A^ZXXxUۮ~L)V vrn'79\&|+gaaK.(?末}0~v}OnKNvvTXO-@ @*1nEI$LAP4($IxdI x+1iBcs}7n^Ow} t_Y=(OˡEaT7eN:ajC>[O~w*L]ׯ)_bX:R//:G~/Fo_YYY?w?gRZJ P@)knd_엞C=W^y,TjDJ}$In1ƸT>1-#{!EH33'񝗾cݯθ)[ùK^r6̲:*lXxƉV2:ׯ㸣!ne@!&_[[#mM R<=DӘU9D`6 I}b<3^g hu]i#sGN~}~+,-3oAr^ʫȇW^H_?$~访!%Wp!maz=͒$aDq3WkAG&wމ6ǟ 8>-CV”TbWWsO:cNL;ٳg  ڞe^-hvZvNnZInj-M+c(P{(8ZV R@;DV0 ^{*1M]f^qcf美8t0F] Je+WO>S7 s ð|lX8 R@VU?ܧjA A] ¯^lO=Y4~׿v7H=S. [nnBPi* `ggGAǺ)BqΣ$I"!Dy^Z<7Μ9եՁ0 avg?Q @oM0鰃DsX9aW#myvݻx666.+핁M-Z*,]7~O}ݪ(I„Ϝ9þ/ٳ G_1?I1 !Xs$IRPcԄoyjZmԩSxA},OyaƷ~Sh}-Aȹ+*Wຝ][O}f3gomm?׮]{ȡrEQ{2QHDaǙW@j&F E"p)}OLLNDZW8~~_RFnY/8O4Y6oLy,2>g]^{GKKKg &K y^$|=ϋn9vZ4͌H_,..ɓ'3˿y[8O~lz^ϋcLPD yA$5y1VB>wj5# <{aq ?|pO`|f6gX 4$~+ we8f(ߠчߝOv-k}ouuB~%IDAT|$$qB(G'{{{IVKTlLBu?p@^tdǬFA9677d_a8! BdFAe41Fpٯ%Iҽh4ۍ=^3g0הD@LLLqy0 ZEXΒ$yBdkHO@FΝ;(v6tπ:! Wy>t:xqlj [܅aP<"*eC|~qqq̙3l&Ws\*\r Az^A돎6V'Oҙ3gAäU(xQ+pe\^^i(ZI[Bm1i3DΞ:~ggg"{} q>q88hT3onrgy\Wxbjr2CloϜ97nw9W"ܘf5)˿nBSzEJGJfp`8{P ^ge6Z+n =( ;|G^ˌeD<~ #o V |A++O;>0{[w=oŋ#wV ++i":?e`0Q齽=g +5V?GlB$V"$K`)+ >{ƍtz^J@))%$/~t}LqL&وw΄Le k-O87oիw?l64ሀ+d M#J MaSPA^@ <8FR1RZ[cL =Zk{~~pppիF^2 SDA~c}|q`~ԃ{Ƽ=5awwh|h> йOօ-${3|4OQǓyr"R&qϨoM 6SSMn"o0TB @Ce)88)}g}}'KKKal~Gc ߸iMI_c~*R{({EQeiOuj>};w~ΞKMW\4-}B;wpch`GX]kxZ֟L?2TU&: ޞTJɅIV^ Gtj˗/kѸ177W-:?{>n=A pAJ|_e^oϟl{KKAOQI]ogssOmŽ?Ex~Vqs\ri?89 ЌABș%Da*>_'"M \ D(q@00 ._F!&Eqv`ܱ96vcpM[\ƭ0%:jG!N)Z<`CO%~P# mAOq2<'˄B IRIB~'Rk8V*ThmmFEA?- ! DM|lBCBXh|wnYkb{?Ib(XԢ׮\PUe"?)fw=z4Mm}Y?=Vͽ~EuzP31>~%@=JL'y^30)"0E@]xVWWh4hA?ڟ_~%?|N --cay3kߺ6ZM|Nk?0)qi^Rx?OsY_t^xqssWItl&.?>I^/MSEQy-p xBHD*d@j' NƘ@OWWW2mMOawo{{z@@[67!/|[SK)z{5B`nvK 8<燞(Bgh/^$Inc>RXXXIXs?I n7yǏ??88x&=/V] Xky1'kB333skkk?X\\AEjWnI0 q|@g &؀8fӧ -doS8Q4=޲ @AAnjv:rhϲ~<SSG ((4iHR!U ȫI % 9ع#,@r}%Pϟh4>YXXXIE!?Z/{_ka! %?𩟦iAuYsE|֚Jk{~H`%qxn@)ipd}X , t?\\\033#2"E@? 6ba(#~_7fѓ'O$Ia7pKk'SO{IJn^6uɾzn;N1yq.'@rE@Fk0k`UR !6RZ`n l`00Ýxy^Y^+?ܧ/p >~JON9I,raaA4MUOIB"9lD@7H"UZmiyysssZmLpAU8 ')[Nyttl6o;R#\+R|ίy'iZu{2ollXg H%%p{T$Wd R*M\ PR*tK *|HF9juieez}VwMtTjw:fl6Xk )g5Tf{\h<0qkk%ݶF/\`wvvL?{ݸzp :,OZ-I^$Ir Kc*#.qL'?RZk B8\Z]y@kMK8~Ng`{ooA$}daq(d9C$'}ϕ2PDG} nk}we>8cLg &/_z>TA*4ʦ"*l0+"R ctwE|V[j(T* aAPT*QE3AA|eH~? zqw$q Nn_z#d: zk-m  E~Np>TkR9̽ni(}t=sv'gϞs >j*Og_ p`WJI3DB2R֨oJ(zZ]]p֑CnP럩aXNeދ㸛K^:@`w81B-Z;)[W"uwZƅgHo|Q7X3£o߶;;;"MS@hc~vmRB;33c Rʄa(Z8VJEPZp?L+)t,gyWzcp C8}KodK׬1@+!QJɀ3$ rRJ-0.ٗq7 MYXXȣ>2c45'|b?F}lvfo'U$f!I'kZ#'UVsd\P)5\y|VOk\#G1ޑR8s">z=y^Z/?.{frVۙUD ەU6(Qj*^gB([\v]_kN8VaJ-2@Z犀TH)I Ya Y~`5!i!RJ+̕K0RJg??C=ICd@4`0ԝN?[˒|vFQd4M-I>~_{B6I Õ$,z!Et wPb/4)#+R!|l!RG`0m&te? I@kmyN G~oH 0Z-Y~SV-nm^OPMR@~&؏?$"C!?@DPV `vvִm.EhMf.n;99e@3- VȀ\4|L&IZCaRO8`2G]\W~bTPʇIӔȢC ݮmۦ^[kkkE};۴j(LfffёT*^'0Ke4-\R` RJo!K>TO )$?ExJpvbaX z"y'IR z~ĿpPk?w qjȈ`\~`"vZ+LՒT9T*"ciU9 $=y$IR PJIp*G}~YƌLr}\ÕL Okq]'`j51%1͙~o1Cj">|a766QZ+&+z.` hBQBd d]ak,w | Hџ?%1 4b\/W (e*a ϒYTT* S6vz'">Z׊W'!n$I(2p jDZTJ NJ)* 8e2b4NW4??kX|T*Cd)eM% -lYM?~FQd-?y?2|xIENDB`ario-1.6/data/icons/hicolor/256x256/apps/Makefile.am0000644000175000017500000000030713226723431016661 00000000000000themedir = $(datadir)/icons/hicolor size = 256x256 context = apps iconsdir = $(themedir)/$(size)/$(context) icons_DATA = \ ario.png noinst_DATA = EXTRA_DIST = \ $(icons_DATA) \ $(noinst_DATA) ario-1.6/data/icons/hicolor/256x256/Makefile.in0000644000175000017500000004762213226745576015760 00000000000000# Makefile.in generated by automake 1.15.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2017 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__is_gnu_make = { \ if test -z '$(MAKELEVEL)'; then \ false; \ elif test -n '$(MAKE_HOST)'; then \ true; \ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ true; \ else \ false; \ fi; \ } am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = data/icons/hicolor/256x256 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ ctags-recursive dvi-recursive html-recursive info-recursive \ install-data-recursive install-dvi-recursive \ install-exec-recursive install-html-recursive \ install-info-recursive install-pdf-recursive \ install-ps-recursive install-recursive installcheck-recursive \ installdirs-recursive pdf-recursive ps-recursive \ tags-recursive uninstall-recursive am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive am__recursive_targets = \ $(RECURSIVE_TARGETS) \ $(RECURSIVE_CLEAN_TARGETS) \ $(am__extra_recursive_targets) AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ distdir am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) # Read a list of newline-separated strings from the standard input, # and print each of them once, without duplicates. Input order is # *not* preserved. am__uniquify_input = $(AWK) '\ BEGIN { nonempty = 0; } \ { items[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in items) print i; }; } \ ' # Make sure the list of sources is unique. This is necessary because, # e.g., the same source file might be shared among _SOURCES variables # for different programs/libraries. am__define_uniq_tagged_files = \ list='$(am__tagged_files)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) am__DIST_COMMON = $(srcdir)/Makefile.in DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_rest='s,^[^/]*/*,,'; \ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ sed_butlast='s,/*[^/]*$$,,'; \ while test -n "$$dir1"; do \ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ if test "$$first" != "."; then \ if test "$$first" = ".."; then \ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ else \ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ if test "$$first2" = "$$first"; then \ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ else \ dir2="../$$dir2"; \ fi; \ dir0="$$dir0"/"$$first"; \ fi; \ fi; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" ACLOCAL = @ACLOCAL@ ALL_LINGUAS = @ALL_LINGUAS@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AR_FLAGS = @AR_FLAGS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AVAHI_CFLAGS = @AVAHI_CFLAGS@ AVAHI_LIBS = @AVAHI_LIBS@ AWK = @AWK@ CATALOGS = @CATALOGS@ CATOBJEXT = @CATOBJEXT@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIRNAME = @DATADIRNAME@ DBUS_CFLAGS = @DBUS_CFLAGS@ DBUS_GLIB_BIN = @DBUS_GLIB_BIN@ DBUS_LIBS = @DBUS_LIBS@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DEPS_CFLAGS = @DEPS_CFLAGS@ DEPS_LIBS = @DEPS_LIBS@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ GLIB_MKENUMS = @GLIB_MKENUMS@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INSTOBJEXT = @INSTOBJEXT@ INTLLIBS = @INTLLIBS@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@ INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@ INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBMPDCLIENT2_CFLAGS = @LIBMPDCLIENT2_CFLAGS@ LIBMPDCLIENT2_LIBS = @LIBMPDCLIENT2_LIBS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MKINSTALLDIRS = @MKINSTALLDIRS@ MSGFMT = @MSGFMT@ MSGFMT_OPTS = @MSGFMT_OPTS@ MSGMERGE = @MSGMERGE@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ PLUGINDIR = @PLUGINDIR@ PLUGIN_DATA_DIR = @PLUGIN_DATA_DIR@ POFILES = @POFILES@ POSUB = @POSUB@ PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ PYGTK_CFLAGS = @PYGTK_CFLAGS@ PYGTK_CODEGEN = @PYGTK_CODEGEN@ PYGTK_DEFSDIR = @PYGTK_DEFSDIR@ PYGTK_H2DEF = @PYGTK_H2DEF@ PYGTK_LIBS = @PYGTK_LIBS@ PYTHON = @PYTHON@ PYTHON_CFLAGS = @PYTHON_CFLAGS@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_EXTRA_LIBS = @PYTHON_EXTRA_LIBS@ PYTHON_LIBS = @PYTHON_LIBS@ PYTHON_LIB_LOC = @PYTHON_LIB_LOC@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ PYTHON_PREFIX = @PYTHON_PREFIX@ PYTHON_VERSION = @PYTHON_VERSION@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ TAGLIB_CFLAGS = @TAGLIB_CFLAGS@ TAGLIB_LIBS = @TAGLIB_LIBS@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ WARNINGS = @WARNINGS@ XGETTEXT = @XGETTEXT@ XMMS2_CFLAGS = @XMMS2_CFLAGS@ XMMS2_LIBS = @XMMS2_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ intltool__v_merge_options_ = @intltool__v_merge_options_@ intltool__v_merge_options_0 = @intltool__v_merge_options_0@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pkgpyexecdir = @pkgpyexecdir@ pkgpythondir = @pkgpythondir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ pyexecdir = @pyexecdir@ pythondir = @pythondir@ runstatedir = @runstatedir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ SUBDIRS = apps all: all-recursive .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign data/icons/hicolor/256x256/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign data/icons/hicolor/256x256/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs # This directory's subdirectories are mostly independent; you can cd # into them and run 'make' without going through this Makefile. # To change the values of 'make' variables: instead of editing Makefiles, # (1) if the variable is set in 'config.status', edit 'config.status' # (which will cause the Makefiles to be regenerated when you run 'make'); # (2) otherwise, pass the desired values on the 'make' command line. $(am__recursive_targets): @fail=; \ if $(am__make_keepgoing); then \ failcom='fail=yes'; \ else \ failcom='exit 1'; \ fi; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" ID: $(am__tagged_files) $(am__define_uniq_tagged_files); mkid -fID $$unique tags: tags-recursive TAGS: tags tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: ctags-recursive CTAGS: ctags ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" cscopelist: cscopelist-recursive cscopelist-am: $(am__tagged_files) list='$(am__tagged_files)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ esac; \ for i in $$list; do \ if test -f "$$i"; then \ echo "$(subdir)/$$i"; \ else \ echo "$$sdir/$$i"; \ fi; \ done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ $(am__make_dryrun) \ || test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done check-am: all-am check: check-recursive all-am: Makefile installdirs: installdirs-recursive installdirs-am: install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-recursive -rm -f Makefile distclean-am: clean-am distclean-generic distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: .MAKE: $(am__recursive_targets) install-am install-strip .PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \ check-am clean clean-generic clean-libtool cscopelist-am ctags \ ctags-am distclean distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ installdirs-am maintainer-clean maintainer-clean-generic \ mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ ps ps-am tags tags-am uninstall uninstall-am .PRECIOUS: Makefile # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: ario-1.6/data/icons/hicolor/256x256/Makefile.am0000644000175000017500000000001713226723431015714 00000000000000SUBDIRS = apps ario-1.6/data/icons/hicolor/16x16/0000755000175000017500000000000013226745610013571 500000000000000ario-1.6/data/icons/hicolor/16x16/apps/0000755000175000017500000000000013226745610014534 500000000000000ario-1.6/data/icons/hicolor/16x16/apps/Makefile.in0000644000175000017500000004001313226745576016532 00000000000000# Makefile.in generated by automake 1.15.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2017 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__is_gnu_make = { \ if test -z '$(MAKELEVEL)'; then \ false; \ elif test -n '$(MAKE_HOST)'; then \ true; \ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ true; \ else \ false; \ fi; \ } am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = data/icons/hicolor/16x16/apps ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__uninstall_files_from_dir = { \ test -z "$$files" \ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } am__installdirs = "$(DESTDIR)$(iconsdir)" DATA = $(icons_DATA) $(noinst_DATA) am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) am__DIST_COMMON = $(srcdir)/Makefile.in DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALL_LINGUAS = @ALL_LINGUAS@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AR_FLAGS = @AR_FLAGS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AVAHI_CFLAGS = @AVAHI_CFLAGS@ AVAHI_LIBS = @AVAHI_LIBS@ AWK = @AWK@ CATALOGS = @CATALOGS@ CATOBJEXT = @CATOBJEXT@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIRNAME = @DATADIRNAME@ DBUS_CFLAGS = @DBUS_CFLAGS@ DBUS_GLIB_BIN = @DBUS_GLIB_BIN@ DBUS_LIBS = @DBUS_LIBS@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DEPS_CFLAGS = @DEPS_CFLAGS@ DEPS_LIBS = @DEPS_LIBS@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ GLIB_MKENUMS = @GLIB_MKENUMS@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INSTOBJEXT = @INSTOBJEXT@ INTLLIBS = @INTLLIBS@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@ INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@ INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBMPDCLIENT2_CFLAGS = @LIBMPDCLIENT2_CFLAGS@ LIBMPDCLIENT2_LIBS = @LIBMPDCLIENT2_LIBS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MKINSTALLDIRS = @MKINSTALLDIRS@ MSGFMT = @MSGFMT@ MSGFMT_OPTS = @MSGFMT_OPTS@ MSGMERGE = @MSGMERGE@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ PLUGINDIR = @PLUGINDIR@ PLUGIN_DATA_DIR = @PLUGIN_DATA_DIR@ POFILES = @POFILES@ POSUB = @POSUB@ PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ PYGTK_CFLAGS = @PYGTK_CFLAGS@ PYGTK_CODEGEN = @PYGTK_CODEGEN@ PYGTK_DEFSDIR = @PYGTK_DEFSDIR@ PYGTK_H2DEF = @PYGTK_H2DEF@ PYGTK_LIBS = @PYGTK_LIBS@ PYTHON = @PYTHON@ PYTHON_CFLAGS = @PYTHON_CFLAGS@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_EXTRA_LIBS = @PYTHON_EXTRA_LIBS@ PYTHON_LIBS = @PYTHON_LIBS@ PYTHON_LIB_LOC = @PYTHON_LIB_LOC@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ PYTHON_PREFIX = @PYTHON_PREFIX@ PYTHON_VERSION = @PYTHON_VERSION@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ TAGLIB_CFLAGS = @TAGLIB_CFLAGS@ TAGLIB_LIBS = @TAGLIB_LIBS@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ WARNINGS = @WARNINGS@ XGETTEXT = @XGETTEXT@ XMMS2_CFLAGS = @XMMS2_CFLAGS@ XMMS2_LIBS = @XMMS2_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ intltool__v_merge_options_ = @intltool__v_merge_options_@ intltool__v_merge_options_0 = @intltool__v_merge_options_0@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pkgpyexecdir = @pkgpyexecdir@ pkgpythondir = @pkgpythondir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ pyexecdir = @pyexecdir@ pythondir = @pythondir@ runstatedir = @runstatedir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ themedir = $(datadir)/icons/hicolor size = 16x16 context = apps iconsdir = $(themedir)/$(size)/$(context) icons_DATA = \ ario.png noinst_DATA = EXTRA_DIST = \ $(icons_DATA) \ $(noinst_DATA) all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign data/icons/hicolor/16x16/apps/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign data/icons/hicolor/16x16/apps/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs install-iconsDATA: $(icons_DATA) @$(NORMAL_INSTALL) @list='$(icons_DATA)'; test -n "$(iconsdir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(iconsdir)'"; \ $(MKDIR_P) "$(DESTDIR)$(iconsdir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(iconsdir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(iconsdir)" || exit $$?; \ done uninstall-iconsDATA: @$(NORMAL_UNINSTALL) @list='$(icons_DATA)'; test -n "$(iconsdir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(iconsdir)'; $(am__uninstall_files_from_dir) tags TAGS: ctags CTAGS: cscope cscopelist: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(DATA) installdirs: for dir in "$(DESTDIR)$(iconsdir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-iconsDATA install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-iconsDATA .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic clean-libtool \ cscopelist-am ctags-am distclean distclean-generic \ distclean-libtool distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-iconsDATA install-info install-info-am \ install-man install-pdf install-pdf-am install-ps \ install-ps-am install-strip installcheck installcheck-am \ installdirs maintainer-clean maintainer-clean-generic \ mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ ps ps-am tags-am uninstall uninstall-am uninstall-iconsDATA .PRECIOUS: Makefile # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: ario-1.6/data/icons/hicolor/16x16/apps/ario.png0000644000175000017500000000170013226723431016107 00000000000000PNG  IHDRasBIT|d pHYsXXxKbtEXtSoftwarewww.inkscape.org<=IDAT8OlUƿ{]&^b7PETrr %nbUq)GԊP%&v,}#e4of4s0 @U+H7$B/ j4ߕ&CY)<;Bn2xq)8kXhg+"|>bOZwnxҬ@d !qb@3v_okZԔFt˯L'R 7{?ݸy}kkROfffX&B$Iok6b۽9mnnvBk}. jIENDB`ario-1.6/data/icons/hicolor/16x16/apps/Makefile.am0000644000175000017500000000030513226723431016503 00000000000000themedir = $(datadir)/icons/hicolor size = 16x16 context = apps iconsdir = $(themedir)/$(size)/$(context) icons_DATA = \ ario.png noinst_DATA = EXTRA_DIST = \ $(icons_DATA) \ $(noinst_DATA) ario-1.6/data/icons/hicolor/16x16/Makefile.in0000644000175000017500000004761413226745576015605 00000000000000# Makefile.in generated by automake 1.15.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2017 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__is_gnu_make = { \ if test -z '$(MAKELEVEL)'; then \ false; \ elif test -n '$(MAKE_HOST)'; then \ true; \ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ true; \ else \ false; \ fi; \ } am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = data/icons/hicolor/16x16 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ ctags-recursive dvi-recursive html-recursive info-recursive \ install-data-recursive install-dvi-recursive \ install-exec-recursive install-html-recursive \ install-info-recursive install-pdf-recursive \ install-ps-recursive install-recursive installcheck-recursive \ installdirs-recursive pdf-recursive ps-recursive \ tags-recursive uninstall-recursive am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive am__recursive_targets = \ $(RECURSIVE_TARGETS) \ $(RECURSIVE_CLEAN_TARGETS) \ $(am__extra_recursive_targets) AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ distdir am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) # Read a list of newline-separated strings from the standard input, # and print each of them once, without duplicates. Input order is # *not* preserved. am__uniquify_input = $(AWK) '\ BEGIN { nonempty = 0; } \ { items[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in items) print i; }; } \ ' # Make sure the list of sources is unique. This is necessary because, # e.g., the same source file might be shared among _SOURCES variables # for different programs/libraries. am__define_uniq_tagged_files = \ list='$(am__tagged_files)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) am__DIST_COMMON = $(srcdir)/Makefile.in DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_rest='s,^[^/]*/*,,'; \ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ sed_butlast='s,/*[^/]*$$,,'; \ while test -n "$$dir1"; do \ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ if test "$$first" != "."; then \ if test "$$first" = ".."; then \ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ else \ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ if test "$$first2" = "$$first"; then \ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ else \ dir2="../$$dir2"; \ fi; \ dir0="$$dir0"/"$$first"; \ fi; \ fi; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" ACLOCAL = @ACLOCAL@ ALL_LINGUAS = @ALL_LINGUAS@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AR_FLAGS = @AR_FLAGS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AVAHI_CFLAGS = @AVAHI_CFLAGS@ AVAHI_LIBS = @AVAHI_LIBS@ AWK = @AWK@ CATALOGS = @CATALOGS@ CATOBJEXT = @CATOBJEXT@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIRNAME = @DATADIRNAME@ DBUS_CFLAGS = @DBUS_CFLAGS@ DBUS_GLIB_BIN = @DBUS_GLIB_BIN@ DBUS_LIBS = @DBUS_LIBS@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DEPS_CFLAGS = @DEPS_CFLAGS@ DEPS_LIBS = @DEPS_LIBS@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ GLIB_MKENUMS = @GLIB_MKENUMS@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INSTOBJEXT = @INSTOBJEXT@ INTLLIBS = @INTLLIBS@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@ INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@ INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBMPDCLIENT2_CFLAGS = @LIBMPDCLIENT2_CFLAGS@ LIBMPDCLIENT2_LIBS = @LIBMPDCLIENT2_LIBS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MKINSTALLDIRS = @MKINSTALLDIRS@ MSGFMT = @MSGFMT@ MSGFMT_OPTS = @MSGFMT_OPTS@ MSGMERGE = @MSGMERGE@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ PLUGINDIR = @PLUGINDIR@ PLUGIN_DATA_DIR = @PLUGIN_DATA_DIR@ POFILES = @POFILES@ POSUB = @POSUB@ PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ PYGTK_CFLAGS = @PYGTK_CFLAGS@ PYGTK_CODEGEN = @PYGTK_CODEGEN@ PYGTK_DEFSDIR = @PYGTK_DEFSDIR@ PYGTK_H2DEF = @PYGTK_H2DEF@ PYGTK_LIBS = @PYGTK_LIBS@ PYTHON = @PYTHON@ PYTHON_CFLAGS = @PYTHON_CFLAGS@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_EXTRA_LIBS = @PYTHON_EXTRA_LIBS@ PYTHON_LIBS = @PYTHON_LIBS@ PYTHON_LIB_LOC = @PYTHON_LIB_LOC@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ PYTHON_PREFIX = @PYTHON_PREFIX@ PYTHON_VERSION = @PYTHON_VERSION@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ TAGLIB_CFLAGS = @TAGLIB_CFLAGS@ TAGLIB_LIBS = @TAGLIB_LIBS@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ WARNINGS = @WARNINGS@ XGETTEXT = @XGETTEXT@ XMMS2_CFLAGS = @XMMS2_CFLAGS@ XMMS2_LIBS = @XMMS2_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ intltool__v_merge_options_ = @intltool__v_merge_options_@ intltool__v_merge_options_0 = @intltool__v_merge_options_0@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pkgpyexecdir = @pkgpyexecdir@ pkgpythondir = @pkgpythondir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ pyexecdir = @pyexecdir@ pythondir = @pythondir@ runstatedir = @runstatedir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ SUBDIRS = apps all: all-recursive .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign data/icons/hicolor/16x16/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign data/icons/hicolor/16x16/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs # This directory's subdirectories are mostly independent; you can cd # into them and run 'make' without going through this Makefile. # To change the values of 'make' variables: instead of editing Makefiles, # (1) if the variable is set in 'config.status', edit 'config.status' # (which will cause the Makefiles to be regenerated when you run 'make'); # (2) otherwise, pass the desired values on the 'make' command line. $(am__recursive_targets): @fail=; \ if $(am__make_keepgoing); then \ failcom='fail=yes'; \ else \ failcom='exit 1'; \ fi; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" ID: $(am__tagged_files) $(am__define_uniq_tagged_files); mkid -fID $$unique tags: tags-recursive TAGS: tags tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: ctags-recursive CTAGS: ctags ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" cscopelist: cscopelist-recursive cscopelist-am: $(am__tagged_files) list='$(am__tagged_files)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ esac; \ for i in $$list; do \ if test -f "$$i"; then \ echo "$(subdir)/$$i"; \ else \ echo "$$sdir/$$i"; \ fi; \ done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ $(am__make_dryrun) \ || test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done check-am: all-am check: check-recursive all-am: Makefile installdirs: installdirs-recursive installdirs-am: install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-recursive -rm -f Makefile distclean-am: clean-am distclean-generic distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: .MAKE: $(am__recursive_targets) install-am install-strip .PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \ check-am clean clean-generic clean-libtool cscopelist-am ctags \ ctags-am distclean distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ installdirs-am maintainer-clean maintainer-clean-generic \ mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ ps ps-am tags tags-am uninstall uninstall-am .PRECIOUS: Makefile # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: ario-1.6/data/icons/hicolor/16x16/Makefile.am0000644000175000017500000000001713226723431015540 00000000000000SUBDIRS = apps ario-1.6/data/icons/hicolor/scalable/0000755000175000017500000000000013226745612014554 500000000000000ario-1.6/data/icons/hicolor/scalable/apps/0000755000175000017500000000000013226745612015517 500000000000000ario-1.6/data/icons/hicolor/scalable/apps/Makefile.in0000644000175000017500000004002713226745576017520 00000000000000# Makefile.in generated by automake 1.15.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2017 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__is_gnu_make = { \ if test -z '$(MAKELEVEL)'; then \ false; \ elif test -n '$(MAKE_HOST)'; then \ true; \ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ true; \ else \ false; \ fi; \ } am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = data/icons/hicolor/scalable/apps ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__uninstall_files_from_dir = { \ test -z "$$files" \ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } am__installdirs = "$(DESTDIR)$(iconsdir)" DATA = $(icons_DATA) $(noinst_DATA) am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) am__DIST_COMMON = $(srcdir)/Makefile.in DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALL_LINGUAS = @ALL_LINGUAS@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AR_FLAGS = @AR_FLAGS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AVAHI_CFLAGS = @AVAHI_CFLAGS@ AVAHI_LIBS = @AVAHI_LIBS@ AWK = @AWK@ CATALOGS = @CATALOGS@ CATOBJEXT = @CATOBJEXT@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIRNAME = @DATADIRNAME@ DBUS_CFLAGS = @DBUS_CFLAGS@ DBUS_GLIB_BIN = @DBUS_GLIB_BIN@ DBUS_LIBS = @DBUS_LIBS@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DEPS_CFLAGS = @DEPS_CFLAGS@ DEPS_LIBS = @DEPS_LIBS@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ GLIB_MKENUMS = @GLIB_MKENUMS@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INSTOBJEXT = @INSTOBJEXT@ INTLLIBS = @INTLLIBS@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@ INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@ INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBMPDCLIENT2_CFLAGS = @LIBMPDCLIENT2_CFLAGS@ LIBMPDCLIENT2_LIBS = @LIBMPDCLIENT2_LIBS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MKINSTALLDIRS = @MKINSTALLDIRS@ MSGFMT = @MSGFMT@ MSGFMT_OPTS = @MSGFMT_OPTS@ MSGMERGE = @MSGMERGE@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ PLUGINDIR = @PLUGINDIR@ PLUGIN_DATA_DIR = @PLUGIN_DATA_DIR@ POFILES = @POFILES@ POSUB = @POSUB@ PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ PYGTK_CFLAGS = @PYGTK_CFLAGS@ PYGTK_CODEGEN = @PYGTK_CODEGEN@ PYGTK_DEFSDIR = @PYGTK_DEFSDIR@ PYGTK_H2DEF = @PYGTK_H2DEF@ PYGTK_LIBS = @PYGTK_LIBS@ PYTHON = @PYTHON@ PYTHON_CFLAGS = @PYTHON_CFLAGS@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_EXTRA_LIBS = @PYTHON_EXTRA_LIBS@ PYTHON_LIBS = @PYTHON_LIBS@ PYTHON_LIB_LOC = @PYTHON_LIB_LOC@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ PYTHON_PREFIX = @PYTHON_PREFIX@ PYTHON_VERSION = @PYTHON_VERSION@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ TAGLIB_CFLAGS = @TAGLIB_CFLAGS@ TAGLIB_LIBS = @TAGLIB_LIBS@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ WARNINGS = @WARNINGS@ XGETTEXT = @XGETTEXT@ XMMS2_CFLAGS = @XMMS2_CFLAGS@ XMMS2_LIBS = @XMMS2_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ intltool__v_merge_options_ = @intltool__v_merge_options_@ intltool__v_merge_options_0 = @intltool__v_merge_options_0@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pkgpyexecdir = @pkgpyexecdir@ pkgpythondir = @pkgpythondir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ pyexecdir = @pyexecdir@ pythondir = @pythondir@ runstatedir = @runstatedir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ themedir = $(datadir)/icons/hicolor size = scalable context = apps iconsdir = $(themedir)/$(size)/$(context) icons_DATA = \ ario.svg noinst_DATA = EXTRA_DIST = \ $(icons_DATA) \ $(noinst_DATA) all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign data/icons/hicolor/scalable/apps/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign data/icons/hicolor/scalable/apps/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs install-iconsDATA: $(icons_DATA) @$(NORMAL_INSTALL) @list='$(icons_DATA)'; test -n "$(iconsdir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(iconsdir)'"; \ $(MKDIR_P) "$(DESTDIR)$(iconsdir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(iconsdir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(iconsdir)" || exit $$?; \ done uninstall-iconsDATA: @$(NORMAL_UNINSTALL) @list='$(icons_DATA)'; test -n "$(iconsdir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(iconsdir)'; $(am__uninstall_files_from_dir) tags TAGS: ctags CTAGS: cscope cscopelist: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(DATA) installdirs: for dir in "$(DESTDIR)$(iconsdir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-iconsDATA install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-iconsDATA .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic clean-libtool \ cscopelist-am ctags-am distclean distclean-generic \ distclean-libtool distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-iconsDATA install-info install-info-am \ install-man install-pdf install-pdf-am install-ps \ install-ps-am install-strip installcheck installcheck-am \ installdirs maintainer-clean maintainer-clean-generic \ mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ ps ps-am tags-am uninstall uninstall-am uninstall-iconsDATA .PRECIOUS: Makefile # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: ario-1.6/data/icons/hicolor/scalable/apps/ario.svg0000644000175000017500000003312113226723431017105 00000000000000 image/svg+xml ario-1.6/data/icons/hicolor/scalable/apps/Makefile.am0000644000175000017500000000031013226723431017460 00000000000000themedir = $(datadir)/icons/hicolor size = scalable context = apps iconsdir = $(themedir)/$(size)/$(context) icons_DATA = \ ario.svg noinst_DATA = EXTRA_DIST = \ $(icons_DATA) \ $(noinst_DATA) ario-1.6/data/icons/hicolor/scalable/Makefile.in0000644000175000017500000004762513226745576016570 00000000000000# Makefile.in generated by automake 1.15.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2017 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__is_gnu_make = { \ if test -z '$(MAKELEVEL)'; then \ false; \ elif test -n '$(MAKE_HOST)'; then \ true; \ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ true; \ else \ false; \ fi; \ } am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = data/icons/hicolor/scalable ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ ctags-recursive dvi-recursive html-recursive info-recursive \ install-data-recursive install-dvi-recursive \ install-exec-recursive install-html-recursive \ install-info-recursive install-pdf-recursive \ install-ps-recursive install-recursive installcheck-recursive \ installdirs-recursive pdf-recursive ps-recursive \ tags-recursive uninstall-recursive am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive am__recursive_targets = \ $(RECURSIVE_TARGETS) \ $(RECURSIVE_CLEAN_TARGETS) \ $(am__extra_recursive_targets) AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ distdir am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) # Read a list of newline-separated strings from the standard input, # and print each of them once, without duplicates. Input order is # *not* preserved. am__uniquify_input = $(AWK) '\ BEGIN { nonempty = 0; } \ { items[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in items) print i; }; } \ ' # Make sure the list of sources is unique. This is necessary because, # e.g., the same source file might be shared among _SOURCES variables # for different programs/libraries. am__define_uniq_tagged_files = \ list='$(am__tagged_files)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) am__DIST_COMMON = $(srcdir)/Makefile.in DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_rest='s,^[^/]*/*,,'; \ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ sed_butlast='s,/*[^/]*$$,,'; \ while test -n "$$dir1"; do \ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ if test "$$first" != "."; then \ if test "$$first" = ".."; then \ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ else \ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ if test "$$first2" = "$$first"; then \ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ else \ dir2="../$$dir2"; \ fi; \ dir0="$$dir0"/"$$first"; \ fi; \ fi; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" ACLOCAL = @ACLOCAL@ ALL_LINGUAS = @ALL_LINGUAS@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AR_FLAGS = @AR_FLAGS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AVAHI_CFLAGS = @AVAHI_CFLAGS@ AVAHI_LIBS = @AVAHI_LIBS@ AWK = @AWK@ CATALOGS = @CATALOGS@ CATOBJEXT = @CATOBJEXT@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIRNAME = @DATADIRNAME@ DBUS_CFLAGS = @DBUS_CFLAGS@ DBUS_GLIB_BIN = @DBUS_GLIB_BIN@ DBUS_LIBS = @DBUS_LIBS@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DEPS_CFLAGS = @DEPS_CFLAGS@ DEPS_LIBS = @DEPS_LIBS@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ GLIB_MKENUMS = @GLIB_MKENUMS@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INSTOBJEXT = @INSTOBJEXT@ INTLLIBS = @INTLLIBS@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@ INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@ INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBMPDCLIENT2_CFLAGS = @LIBMPDCLIENT2_CFLAGS@ LIBMPDCLIENT2_LIBS = @LIBMPDCLIENT2_LIBS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MKINSTALLDIRS = @MKINSTALLDIRS@ MSGFMT = @MSGFMT@ MSGFMT_OPTS = @MSGFMT_OPTS@ MSGMERGE = @MSGMERGE@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ PLUGINDIR = @PLUGINDIR@ PLUGIN_DATA_DIR = @PLUGIN_DATA_DIR@ POFILES = @POFILES@ POSUB = @POSUB@ PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ PYGTK_CFLAGS = @PYGTK_CFLAGS@ PYGTK_CODEGEN = @PYGTK_CODEGEN@ PYGTK_DEFSDIR = @PYGTK_DEFSDIR@ PYGTK_H2DEF = @PYGTK_H2DEF@ PYGTK_LIBS = @PYGTK_LIBS@ PYTHON = @PYTHON@ PYTHON_CFLAGS = @PYTHON_CFLAGS@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_EXTRA_LIBS = @PYTHON_EXTRA_LIBS@ PYTHON_LIBS = @PYTHON_LIBS@ PYTHON_LIB_LOC = @PYTHON_LIB_LOC@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ PYTHON_PREFIX = @PYTHON_PREFIX@ PYTHON_VERSION = @PYTHON_VERSION@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ TAGLIB_CFLAGS = @TAGLIB_CFLAGS@ TAGLIB_LIBS = @TAGLIB_LIBS@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ WARNINGS = @WARNINGS@ XGETTEXT = @XGETTEXT@ XMMS2_CFLAGS = @XMMS2_CFLAGS@ XMMS2_LIBS = @XMMS2_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ intltool__v_merge_options_ = @intltool__v_merge_options_@ intltool__v_merge_options_0 = @intltool__v_merge_options_0@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pkgpyexecdir = @pkgpyexecdir@ pkgpythondir = @pkgpythondir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ pyexecdir = @pyexecdir@ pythondir = @pythondir@ runstatedir = @runstatedir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ SUBDIRS = apps all: all-recursive .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign data/icons/hicolor/scalable/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign data/icons/hicolor/scalable/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs # This directory's subdirectories are mostly independent; you can cd # into them and run 'make' without going through this Makefile. # To change the values of 'make' variables: instead of editing Makefiles, # (1) if the variable is set in 'config.status', edit 'config.status' # (which will cause the Makefiles to be regenerated when you run 'make'); # (2) otherwise, pass the desired values on the 'make' command line. $(am__recursive_targets): @fail=; \ if $(am__make_keepgoing); then \ failcom='fail=yes'; \ else \ failcom='exit 1'; \ fi; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" ID: $(am__tagged_files) $(am__define_uniq_tagged_files); mkid -fID $$unique tags: tags-recursive TAGS: tags tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: ctags-recursive CTAGS: ctags ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" cscopelist: cscopelist-recursive cscopelist-am: $(am__tagged_files) list='$(am__tagged_files)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ esac; \ for i in $$list; do \ if test -f "$$i"; then \ echo "$(subdir)/$$i"; \ else \ echo "$$sdir/$$i"; \ fi; \ done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ $(am__make_dryrun) \ || test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done check-am: all-am check: check-recursive all-am: Makefile installdirs: installdirs-recursive installdirs-am: install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-recursive -rm -f Makefile distclean-am: clean-am distclean-generic distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: .MAKE: $(am__recursive_targets) install-am install-strip .PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \ check-am clean clean-generic clean-libtool cscopelist-am ctags \ ctags-am distclean distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ installdirs-am maintainer-clean maintainer-clean-generic \ mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ ps ps-am tags tags-am uninstall uninstall-am .PRECIOUS: Makefile # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: ario-1.6/data/icons/hicolor/scalable/Makefile.am0000644000175000017500000000001713226723431016521 00000000000000SUBDIRS = apps ario-1.6/data/icons/hicolor/48x48/0000755000175000017500000000000013226745611013604 500000000000000ario-1.6/data/icons/hicolor/48x48/apps/0000755000175000017500000000000013226745611014547 500000000000000ario-1.6/data/icons/hicolor/48x48/apps/Makefile.in0000644000175000017500000004001313226745576016544 00000000000000# Makefile.in generated by automake 1.15.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2017 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__is_gnu_make = { \ if test -z '$(MAKELEVEL)'; then \ false; \ elif test -n '$(MAKE_HOST)'; then \ true; \ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ true; \ else \ false; \ fi; \ } am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = data/icons/hicolor/48x48/apps ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__uninstall_files_from_dir = { \ test -z "$$files" \ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } am__installdirs = "$(DESTDIR)$(iconsdir)" DATA = $(icons_DATA) $(noinst_DATA) am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) am__DIST_COMMON = $(srcdir)/Makefile.in DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALL_LINGUAS = @ALL_LINGUAS@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AR_FLAGS = @AR_FLAGS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AVAHI_CFLAGS = @AVAHI_CFLAGS@ AVAHI_LIBS = @AVAHI_LIBS@ AWK = @AWK@ CATALOGS = @CATALOGS@ CATOBJEXT = @CATOBJEXT@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIRNAME = @DATADIRNAME@ DBUS_CFLAGS = @DBUS_CFLAGS@ DBUS_GLIB_BIN = @DBUS_GLIB_BIN@ DBUS_LIBS = @DBUS_LIBS@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DEPS_CFLAGS = @DEPS_CFLAGS@ DEPS_LIBS = @DEPS_LIBS@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ GLIB_MKENUMS = @GLIB_MKENUMS@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INSTOBJEXT = @INSTOBJEXT@ INTLLIBS = @INTLLIBS@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@ INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@ INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBMPDCLIENT2_CFLAGS = @LIBMPDCLIENT2_CFLAGS@ LIBMPDCLIENT2_LIBS = @LIBMPDCLIENT2_LIBS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MKINSTALLDIRS = @MKINSTALLDIRS@ MSGFMT = @MSGFMT@ MSGFMT_OPTS = @MSGFMT_OPTS@ MSGMERGE = @MSGMERGE@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ PLUGINDIR = @PLUGINDIR@ PLUGIN_DATA_DIR = @PLUGIN_DATA_DIR@ POFILES = @POFILES@ POSUB = @POSUB@ PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ PYGTK_CFLAGS = @PYGTK_CFLAGS@ PYGTK_CODEGEN = @PYGTK_CODEGEN@ PYGTK_DEFSDIR = @PYGTK_DEFSDIR@ PYGTK_H2DEF = @PYGTK_H2DEF@ PYGTK_LIBS = @PYGTK_LIBS@ PYTHON = @PYTHON@ PYTHON_CFLAGS = @PYTHON_CFLAGS@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_EXTRA_LIBS = @PYTHON_EXTRA_LIBS@ PYTHON_LIBS = @PYTHON_LIBS@ PYTHON_LIB_LOC = @PYTHON_LIB_LOC@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ PYTHON_PREFIX = @PYTHON_PREFIX@ PYTHON_VERSION = @PYTHON_VERSION@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ TAGLIB_CFLAGS = @TAGLIB_CFLAGS@ TAGLIB_LIBS = @TAGLIB_LIBS@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ WARNINGS = @WARNINGS@ XGETTEXT = @XGETTEXT@ XMMS2_CFLAGS = @XMMS2_CFLAGS@ XMMS2_LIBS = @XMMS2_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ intltool__v_merge_options_ = @intltool__v_merge_options_@ intltool__v_merge_options_0 = @intltool__v_merge_options_0@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pkgpyexecdir = @pkgpyexecdir@ pkgpythondir = @pkgpythondir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ pyexecdir = @pyexecdir@ pythondir = @pythondir@ runstatedir = @runstatedir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ themedir = $(datadir)/icons/hicolor size = 48x48 context = apps iconsdir = $(themedir)/$(size)/$(context) icons_DATA = \ ario.png noinst_DATA = EXTRA_DIST = \ $(icons_DATA) \ $(noinst_DATA) all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign data/icons/hicolor/48x48/apps/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign data/icons/hicolor/48x48/apps/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs install-iconsDATA: $(icons_DATA) @$(NORMAL_INSTALL) @list='$(icons_DATA)'; test -n "$(iconsdir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(iconsdir)'"; \ $(MKDIR_P) "$(DESTDIR)$(iconsdir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(iconsdir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(iconsdir)" || exit $$?; \ done uninstall-iconsDATA: @$(NORMAL_UNINSTALL) @list='$(icons_DATA)'; test -n "$(iconsdir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(iconsdir)'; $(am__uninstall_files_from_dir) tags TAGS: ctags CTAGS: cscope cscopelist: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(DATA) installdirs: for dir in "$(DESTDIR)$(iconsdir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-iconsDATA install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-iconsDATA .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic clean-libtool \ cscopelist-am ctags-am distclean distclean-generic \ distclean-libtool distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-iconsDATA install-info install-info-am \ install-man install-pdf install-pdf-am install-ps \ install-ps-am install-strip installcheck installcheck-am \ installdirs maintainer-clean maintainer-clean-generic \ mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ ps ps-am tags-am uninstall uninstall-am uninstall-iconsDATA .PRECIOUS: Makefile # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: ario-1.6/data/icons/hicolor/48x48/apps/ario.png0000644000175000017500000001071113226723431016123 00000000000000PNG  IHDR00WsBIT|d pHYs  tEXtSoftwarewww.inkscape.org<FIDAThY[l\yfmI$ҊEYb'&rQR#h(4M6imHi"P(6N%6Nb(hɲȤ[W2򶷳߇s\RԥCs33?3 0ia@1 DR`SѼwf^-~#/,nb}W^q{+{@&zR]v*&V`1h8k~!6::*lg9癝`/\r#M.ntJ71o$ccccljjykiia+++ zd2y ! 5R`dOgp0RQj+^GGcp)YXlV0 qcRJ~vu[N-;|;r.3%ghXҲ.W7UUW+7 ߟ5ܿ('yOOQլxwuu1;h[k"y#FGGy>7]׍!J#CCC{-*rEX6vQB2RHUqБ#<'_ .|scc*zN꣣1w!A ĝ 0JRs!_{衇>ٙ|}EY-%:1#Az xqƵF_[.>#-#O_|{ZyXF,sGGG]HО 4dsyqyX,ر"`6YhE6:_jI  7ķH3h]Ƨُ~O7]52ZN B`:UJR{쫃Mo` x0S)?p_ f ~\Ǘ+ėy?_]]m#FBk`t:Q1q/߿[5p#sJf>;gKU|X߲?w勆a뺔u>'H3l"rٴ,+kԁsˏw_(l2"5i{UmmQ-d?Y'O~!0 ],yОR|1V,E<02ݏ }Q &) c 7{E|UwgI n{v|Gطlj'"Tk$'I̙3\)42nx65]׍k[>j:0lx=97{rW'WFFa>kpi >w71!ȹs`k2 ^m"Jtvv~Xxz. @*;YW_pt;}I۳I,W 4-۶[,%} 0 ox_i2֜o nU8:::RBy#5r|DdڶB#lO#{[ .T]k {Nƻڛ㠷wH)w]$P6Ix<ΔRB)eXC ( Zm72 >Lm*dpxiz^+a$qgI7 (4)*|^G`JށV3onڛsX\)5amwsFX9e< p9o$T)&"J[bkRڊQ> D0;Wp)08Kst$`ۉ߉@ .^24Fj_$f _嗊R{{{[U-qwhL\_4l[ɧѷu_S͞DyCؘ9gϞ_J\#:[6tykh~dM`_XʑS.k\{;RكoF xU H՗oʛR ў>vɶ3vo B޵bO=OD~iĄWijچy7 ¥N&G`ײ<%qCF;pzNsw4.~_|E7l;Ќ18c Rr^) gkYЯoR4*G~,đvZѕ%]$wMyRh!+^|m!ĆeYUÍcFDzZwطw_G?љbϯxNfJ DWhnK7)umۥӧOƩ:tH:- ]zō5PMۂw] sCk:r νk)cy˲n |! @TJ"ֺ@88֖D"pe0 (PgRJuTUu͛7OOO7֋,wWu9a9X,N Qec\n8tT*՚JZDZ&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = data/icons/hicolor/48x48 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ ctags-recursive dvi-recursive html-recursive info-recursive \ install-data-recursive install-dvi-recursive \ install-exec-recursive install-html-recursive \ install-info-recursive install-pdf-recursive \ install-ps-recursive install-recursive installcheck-recursive \ installdirs-recursive pdf-recursive ps-recursive \ tags-recursive uninstall-recursive am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive am__recursive_targets = \ $(RECURSIVE_TARGETS) \ $(RECURSIVE_CLEAN_TARGETS) \ $(am__extra_recursive_targets) AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ distdir am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) # Read a list of newline-separated strings from the standard input, # and print each of them once, without duplicates. Input order is # *not* preserved. am__uniquify_input = $(AWK) '\ BEGIN { nonempty = 0; } \ { items[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in items) print i; }; } \ ' # Make sure the list of sources is unique. This is necessary because, # e.g., the same source file might be shared among _SOURCES variables # for different programs/libraries. am__define_uniq_tagged_files = \ list='$(am__tagged_files)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) am__DIST_COMMON = $(srcdir)/Makefile.in DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_rest='s,^[^/]*/*,,'; \ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ sed_butlast='s,/*[^/]*$$,,'; \ while test -n "$$dir1"; do \ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ if test "$$first" != "."; then \ if test "$$first" = ".."; then \ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ else \ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ if test "$$first2" = "$$first"; then \ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ else \ dir2="../$$dir2"; \ fi; \ dir0="$$dir0"/"$$first"; \ fi; \ fi; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" ACLOCAL = @ACLOCAL@ ALL_LINGUAS = @ALL_LINGUAS@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AR_FLAGS = @AR_FLAGS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AVAHI_CFLAGS = @AVAHI_CFLAGS@ AVAHI_LIBS = @AVAHI_LIBS@ AWK = @AWK@ CATALOGS = @CATALOGS@ CATOBJEXT = @CATOBJEXT@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIRNAME = @DATADIRNAME@ DBUS_CFLAGS = @DBUS_CFLAGS@ DBUS_GLIB_BIN = @DBUS_GLIB_BIN@ DBUS_LIBS = @DBUS_LIBS@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DEPS_CFLAGS = @DEPS_CFLAGS@ DEPS_LIBS = @DEPS_LIBS@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ GLIB_MKENUMS = @GLIB_MKENUMS@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INSTOBJEXT = @INSTOBJEXT@ INTLLIBS = @INTLLIBS@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@ INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@ INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBMPDCLIENT2_CFLAGS = @LIBMPDCLIENT2_CFLAGS@ LIBMPDCLIENT2_LIBS = @LIBMPDCLIENT2_LIBS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MKINSTALLDIRS = @MKINSTALLDIRS@ MSGFMT = @MSGFMT@ MSGFMT_OPTS = @MSGFMT_OPTS@ MSGMERGE = @MSGMERGE@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ PLUGINDIR = @PLUGINDIR@ PLUGIN_DATA_DIR = @PLUGIN_DATA_DIR@ POFILES = @POFILES@ POSUB = @POSUB@ PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ PYGTK_CFLAGS = @PYGTK_CFLAGS@ PYGTK_CODEGEN = @PYGTK_CODEGEN@ PYGTK_DEFSDIR = @PYGTK_DEFSDIR@ PYGTK_H2DEF = @PYGTK_H2DEF@ PYGTK_LIBS = @PYGTK_LIBS@ PYTHON = @PYTHON@ PYTHON_CFLAGS = @PYTHON_CFLAGS@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_EXTRA_LIBS = @PYTHON_EXTRA_LIBS@ PYTHON_LIBS = @PYTHON_LIBS@ PYTHON_LIB_LOC = @PYTHON_LIB_LOC@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ PYTHON_PREFIX = @PYTHON_PREFIX@ PYTHON_VERSION = @PYTHON_VERSION@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ TAGLIB_CFLAGS = @TAGLIB_CFLAGS@ TAGLIB_LIBS = @TAGLIB_LIBS@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ WARNINGS = @WARNINGS@ XGETTEXT = @XGETTEXT@ XMMS2_CFLAGS = @XMMS2_CFLAGS@ XMMS2_LIBS = @XMMS2_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ intltool__v_merge_options_ = @intltool__v_merge_options_@ intltool__v_merge_options_0 = @intltool__v_merge_options_0@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pkgpyexecdir = @pkgpyexecdir@ pkgpythondir = @pkgpythondir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ pyexecdir = @pyexecdir@ pythondir = @pythondir@ runstatedir = @runstatedir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ SUBDIRS = apps all: all-recursive .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign data/icons/hicolor/48x48/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign data/icons/hicolor/48x48/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs # This directory's subdirectories are mostly independent; you can cd # into them and run 'make' without going through this Makefile. # To change the values of 'make' variables: instead of editing Makefiles, # (1) if the variable is set in 'config.status', edit 'config.status' # (which will cause the Makefiles to be regenerated when you run 'make'); # (2) otherwise, pass the desired values on the 'make' command line. $(am__recursive_targets): @fail=; \ if $(am__make_keepgoing); then \ failcom='fail=yes'; \ else \ failcom='exit 1'; \ fi; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" ID: $(am__tagged_files) $(am__define_uniq_tagged_files); mkid -fID $$unique tags: tags-recursive TAGS: tags tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: ctags-recursive CTAGS: ctags ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" cscopelist: cscopelist-recursive cscopelist-am: $(am__tagged_files) list='$(am__tagged_files)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ esac; \ for i in $$list; do \ if test -f "$$i"; then \ echo "$(subdir)/$$i"; \ else \ echo "$$sdir/$$i"; \ fi; \ done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ $(am__make_dryrun) \ || test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done check-am: all-am check: check-recursive all-am: Makefile installdirs: installdirs-recursive installdirs-am: install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-recursive -rm -f Makefile distclean-am: clean-am distclean-generic distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: .MAKE: $(am__recursive_targets) install-am install-strip .PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \ check-am clean clean-generic clean-libtool cscopelist-am ctags \ ctags-am distclean distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ installdirs-am maintainer-clean maintainer-clean-generic \ mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ ps ps-am tags tags-am uninstall uninstall-am .PRECIOUS: Makefile # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: ario-1.6/data/icons/hicolor/48x48/Makefile.am0000644000175000017500000000001713226723431015552 00000000000000SUBDIRS = apps ario-1.6/data/icons/hicolor/96x96/0000755000175000017500000000000013226745611013612 500000000000000ario-1.6/data/icons/hicolor/96x96/apps/0000755000175000017500000000000013226745611014555 500000000000000ario-1.6/data/icons/hicolor/96x96/apps/Makefile.in0000644000175000017500000004001313226745576016552 00000000000000# Makefile.in generated by automake 1.15.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2017 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__is_gnu_make = { \ if test -z '$(MAKELEVEL)'; then \ false; \ elif test -n '$(MAKE_HOST)'; then \ true; \ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ true; \ else \ false; \ fi; \ } am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = data/icons/hicolor/96x96/apps ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__uninstall_files_from_dir = { \ test -z "$$files" \ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } am__installdirs = "$(DESTDIR)$(iconsdir)" DATA = $(icons_DATA) $(noinst_DATA) am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) am__DIST_COMMON = $(srcdir)/Makefile.in DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALL_LINGUAS = @ALL_LINGUAS@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AR_FLAGS = @AR_FLAGS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AVAHI_CFLAGS = @AVAHI_CFLAGS@ AVAHI_LIBS = @AVAHI_LIBS@ AWK = @AWK@ CATALOGS = @CATALOGS@ CATOBJEXT = @CATOBJEXT@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIRNAME = @DATADIRNAME@ DBUS_CFLAGS = @DBUS_CFLAGS@ DBUS_GLIB_BIN = @DBUS_GLIB_BIN@ DBUS_LIBS = @DBUS_LIBS@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DEPS_CFLAGS = @DEPS_CFLAGS@ DEPS_LIBS = @DEPS_LIBS@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ GLIB_MKENUMS = @GLIB_MKENUMS@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INSTOBJEXT = @INSTOBJEXT@ INTLLIBS = @INTLLIBS@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@ INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@ INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBMPDCLIENT2_CFLAGS = @LIBMPDCLIENT2_CFLAGS@ LIBMPDCLIENT2_LIBS = @LIBMPDCLIENT2_LIBS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MKINSTALLDIRS = @MKINSTALLDIRS@ MSGFMT = @MSGFMT@ MSGFMT_OPTS = @MSGFMT_OPTS@ MSGMERGE = @MSGMERGE@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ PLUGINDIR = @PLUGINDIR@ PLUGIN_DATA_DIR = @PLUGIN_DATA_DIR@ POFILES = @POFILES@ POSUB = @POSUB@ PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ PYGTK_CFLAGS = @PYGTK_CFLAGS@ PYGTK_CODEGEN = @PYGTK_CODEGEN@ PYGTK_DEFSDIR = @PYGTK_DEFSDIR@ PYGTK_H2DEF = @PYGTK_H2DEF@ PYGTK_LIBS = @PYGTK_LIBS@ PYTHON = @PYTHON@ PYTHON_CFLAGS = @PYTHON_CFLAGS@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_EXTRA_LIBS = @PYTHON_EXTRA_LIBS@ PYTHON_LIBS = @PYTHON_LIBS@ PYTHON_LIB_LOC = @PYTHON_LIB_LOC@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ PYTHON_PREFIX = @PYTHON_PREFIX@ PYTHON_VERSION = @PYTHON_VERSION@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ TAGLIB_CFLAGS = @TAGLIB_CFLAGS@ TAGLIB_LIBS = @TAGLIB_LIBS@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ WARNINGS = @WARNINGS@ XGETTEXT = @XGETTEXT@ XMMS2_CFLAGS = @XMMS2_CFLAGS@ XMMS2_LIBS = @XMMS2_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ intltool__v_merge_options_ = @intltool__v_merge_options_@ intltool__v_merge_options_0 = @intltool__v_merge_options_0@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pkgpyexecdir = @pkgpyexecdir@ pkgpythondir = @pkgpythondir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ pyexecdir = @pyexecdir@ pythondir = @pythondir@ runstatedir = @runstatedir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ themedir = $(datadir)/icons/hicolor size = 96x96 context = apps iconsdir = $(themedir)/$(size)/$(context) icons_DATA = \ ario.png noinst_DATA = EXTRA_DIST = \ $(icons_DATA) \ $(noinst_DATA) all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign data/icons/hicolor/96x96/apps/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign data/icons/hicolor/96x96/apps/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs install-iconsDATA: $(icons_DATA) @$(NORMAL_INSTALL) @list='$(icons_DATA)'; test -n "$(iconsdir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(iconsdir)'"; \ $(MKDIR_P) "$(DESTDIR)$(iconsdir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(iconsdir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(iconsdir)" || exit $$?; \ done uninstall-iconsDATA: @$(NORMAL_UNINSTALL) @list='$(icons_DATA)'; test -n "$(iconsdir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(iconsdir)'; $(am__uninstall_files_from_dir) tags TAGS: ctags CTAGS: cscope cscopelist: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(DATA) installdirs: for dir in "$(DESTDIR)$(iconsdir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-iconsDATA install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-iconsDATA .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic clean-libtool \ cscopelist-am ctags-am distclean distclean-generic \ distclean-libtool distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-iconsDATA install-info install-info-am \ install-man install-pdf install-pdf-am install-ps \ install-ps-am install-strip installcheck installcheck-am \ installdirs maintainer-clean maintainer-clean-generic \ mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ ps ps-am tags-am uninstall uninstall-am uninstall-iconsDATA .PRECIOUS: Makefile # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: ario-1.6/data/icons/hicolor/96x96/apps/ario.png0000644000175000017500000003102513226723431016132 00000000000000PNG  IHDR``w8sBIT|d pHYs-!tEXtSoftwarewww.inkscape.org< IDATxydy'2uWsaf0tq̀C ZYZi%sbmdCX˻zmØw#lV86UĆ7,[!-ct33=GuUW+ェWG/"}g~/狒$2PPMR@V|H5׽-C׿#@u7`W3#u~n1A6fn 77~Y44K~:[F vkZ¡)X4mne֯un^M$Fjn 1дhʋRTwD4ɓ4??O_W ~l`?|z ){~$WWn{m4 çN"8ydb s?s*Iq,qaV,˪c` !x5z-s1 SV^L,婊Ezkq@ecǎaee_җGyR "*J&"bfAD BĸcƦa-iNPC`8^kˑ~!X!w2_?h~V?Ȗ ,'OEzgiaa5 ΝvMSSS|>OV(tZC8xsC^Zk>cihJhz$@̽ߠ8?-CWpBiη6c;3R(_aC%@‘8y$>KhaaAˤ "QJp]~J@,aZDV߉_kaĤhJ!43l p8 q7e6Vƅbi5KKK [k쟾x׽)ĉ@/ R\.' |J) @a(O뗃^˼]8zʯ2Lމ` Wד'OҩS@dR*˲e۶ff; Cl!Vksss[rE˲Hh˲Ȳ !Y9ZH_߼۸O>.(˲(,ҎȑR:c}MMMV{J\\qB@$n=ChFfrf\6W[[MN>GD%_WAZ Z[[ӾSO=eN<~~~"Pđf0H8 >$ ,Ky–R:B\n9)e~aa{=>==hZPJ!MRJ! u4^0#4`Ϭ=7kVmw `gYeY~R < s\4s >y$ч)$q(ZM8#Qm\.gaA !\fQNkT*SG{~ZN:˲`YRryhnwp顣 {  lQT*MLL?~g^;܅ 1tcH)=<)ODV+}?jfqqќ"~qqj<BaƘ2GDyf.LNN}衇ʞ={PTmضʭ`t ilrZa2U8o4"{m- y\.?~O]|ٳg_\\|1mfnQB/"rPJEz]0'O4F%) FyAikvvV={Vm%1WG*8Sԧ>>SNf'"HEC yZZZFCV*l\۶sƘֺHDC}G{]E > Ÿ;xip:F1|<<|y7@UvЂ[~k 0pt8*[ox?C[TϜ9//=[cf[aGQd)dӑRJ9}:qafsD`PXk|8 R*'GQTPrgⳟ>p_**u](K+'oޭh,|˻pIzEqJ Qsa& or ՋO}I'Mha۶:zSsssxWY\\s B R"ĉq.M\.K1&f.(}'܃B\|l6da`at6mO,xbfW@G!:'b9<0WmPJM_ھ}˿ࢌ1R!("n^6DTd2^K@Z&FB"3v?SSS?_]/YƊ3#/<<6Ll(xJQ bDmݱd Y7xs5ǫ |kƘ*3WRv۪V'Nf5X)pSNqz8Nc#t ((8pcnV+ E\\ogn ӧG/ `8oPY"x Ҽs}O47sx? R BSO=m;$EDSNzzΧNI3'.RՓ]8@DT'17 ü*?~&''<xۅq8Mk/|p|!r,?ǎ1cL\b1&纮EU.ƆX\\$f믿 H(2YDQgT ~.?|Ӟ.PPttJ@KDҦzf% ssuW;pNO^jcBZ<T*Q@IQ$88 \ץ0 {*HqFKA}J&L\!D?,Eu.޸߾>0sDTLU.~Z]GQ 3o 3IE&Og,pd,:~PB>?ODJJ&;5j0 `3q9a1RJ!PNǶ,1(o߾Io.82.؃GszÜ;Hc3E1މYw ~l/XU8\.~JZbiUy^hc 1I%ܟd&"߿g&''G w(A]3A~"Nz;[w/#xfjOҺgT"Y](-yEcU)e5R9˲"mV[[[QA3Ft3fgg h4ʶB\mqzO%`@g)u9fۢL ȸ/- r9LMMM=z)!D@S01N2+0ފ"3c~~N>-R*%tȝ{xrreYmMJ1 (Z @8Y1h0SA ڑQڡ9^_Z{?ٿZk+"TlPq)ZZZ"@ !Tt!"w׮]qi?|w -*>J0зd0!Snb &tVRI1,{VBO*`ن8(JG}Ƙ"̹0 ]bNgFh||Hض-1""{ffhlD)^n# } TEGM}#Z:Lިn}@g4x47l F߿9cLrt:Z03,jyy 9#(JZj:]4満^f->e ŃAxu}N%ib6lI]v ~//ض|>o8pkkkW PcDbe)#Tбc D$,˒3[D !R0xkIUด{R;#9UE詤T%C|pSn weGsMzD&/mTEBk-6`VVVDٚܟJ)!&6Uo5RcɨN0 3N* 7ʀ6gd}8@7pe)ض158/1L^ RIDQ$mۖQr;] +ĹN(ftP^D;1`60Q6wz+-aC2LghgwJ)~"p3tUD,b * Oe֚H$ξѓ.eA M.W F򺜙4,i  gLsp*PJabbb3[Z4qSNut@*R鐔қVWklv0ƁHTC dV]dY#.RU!2\ lbdcpƾ$ÌA~؟TRVlPZk"6" R|ߧtcrn?@e PVƻ@邛M=" /鈬Nπޭ/ӎr11Cm]GuݪR(Z8Fu]Z$d"u{$D膊w1 ݠ΂@"ZID .֝ZAI3Iv"Q@Ԋb-BX,NLL1mq|H4hERs|nN.jrKe>Ѕ338`#+]*lC {?؁WRȆmVG,kqM'o'%?կ~5c&IB cVm1v0d)afV c:Nzy@Td-/)AWӕrܰK :՝!Y%Ks*mT/u6ά{e?ia|sJf'R!"y^#_k1; En0$,21+FG ٺGʝ Қ-`6 (2&޺)6& '"Me`(vUTtij6ע(B"5PЀ;6~G߮i|Y#fcq'F"f#6W|k1Xqb Ot @8ԛRv6ZK)<(r0/& ; :[yF%,Kab#6D={;FI?,Ju\j%,D0qoUnP((tNZxVZV;J%wvR͓r3ь^߽^$w;CDu=v5xX>*#U[7qzb$gD=sIW($l^@E otv#] LGѸϜy@ @*"$"@mXEm4=$FKܰ/x|a_g} ضDZ됈|"WWW)VPorWEZ8U=z޺~I9k$d sNKQL-$/=N}h_._{h",,,^^^f< 9`_v5>`EQKwʳ(1nn}#6`L€x0]Hhw@iExN`#rmz@yQ\/?4b/PIF‘"BtVWW_)UCsczwԲŴS: ,+3n"p8{O v;iV89Lvvd.jQ~3F }{Kȗ^z 455Ee 9+Ye7DZ u.APBCђm?yM&AjO{d1o}}yD =3D! t,̀/sM\,]yS+eyƘ3_8/J2?zuuUK)0 }"ͫW~T*}%]ydn YAX6`wa## |a;c_I"LeǦ-\`;6qk.^zYoLʸ iLMMq]s%x`PY)ejZ3RJOkBFdY۶aY>w 鮘vA*4j?y{,<jpl<̷0 l@)&,..3<(hz쏬icLd cL[b37Μ9Fk{{izlww5;9F=4:8ΔG/ty.] ^Os[&—RNGkO6#99} 0t:a~"^D8wl6VVm\Zq/ ^Z}]~8uw@ !|jU*a~iiS?1Rꩧ2JE+(cm)eBחjq]Q@~00Spd߮nq̙W777$f 63Th44s;0%x߸@n[RJWB1(jjj?y/J%EEy2]3Jg?!;ٕe<{:<6{ウ36`2ƴ0|ߏ>E_WM&f rVӅB(Y\$ݥ"T,--23uK]d?߭)}gy^^k3VJmQqBq֖YZZC*ש (˅mNF|[DXZZ3gμh4LDDC{q6a.c~Dއ 9g_tF뮃qͭW_}Qh !UJՏ1&0 qPff"JO3kkkqPk-,"&+q?ð5??1Vk\TU`%ZҲz7Ks*ݳh]xW~l^e-fZ7-"6xZ ϧ;g^%ݜGIcccr}}}BƘ3ew=Z-p:k*06|Wvvׯw[[[4ybED(b,//zTLSNӧOS^ZkRG_zVkuaaIV[#"LUJgśVyG,GyzT6q }fvN׮][v`+!2ƴh[kEQԧz~7~cdauG$O8a^nCJ 5RlbjF+<8pӥRIap 3.^B 噹-w؀p-NVϟVEkƘ&F(j:Ja>3y ΜvVWWU\3礔yNxK1((X5yСoϞ=GŢ%@J`n6frllAhml@ǧ/ ^hKZHHpڵKgΜyeuu=fn\̭T !:NǯT*Xxi{C %3ĉ"{UXZ-t9'sW@N(_*v۷TrJ>E!DD6<߇cۨU7z1H@7׮\r@@qX̭Dմh~<)EQgϞh}}]'ێv?vdIRTٴ]u p-i|QZa׮]ʔOK/NV&dI%@l-//t鵵K%4xV: }ߏ>X,Kah)lc#tRd<(-333VsRjY{ZvJ_(!"X____^[[|%u;f;Q=0 ;QyBT*fd|D1R$TQYRJ۶9fNp 0Юjs{T.+:Srn^)%1At:Nlyl6WWW/6hC"{u((c<)o \ T*z~~^/--BnE›y%=ϳ(3&13&֮!"!DzgU$3g ۮV9~h(BH3FµB1B^BO'Z@)r09lll>y E_%ea||\ml !{$9RJNM^)YBJƈ K&u:|ODBl8N J$SIY0;;K+++hRPeYAYƘa++ =/Pt}+ZP)p9YJ)Cf1QQE&? ؆T-n|>/ͦJvUBHQ{#'oK&)("mm ''u_5hfR }ߏ1&JZGj5Z^^6hSO=exTkIENDB`ario-1.6/data/icons/hicolor/96x96/apps/Makefile.am0000644000175000017500000000030513226723431016523 00000000000000themedir = $(datadir)/icons/hicolor size = 96x96 context = apps iconsdir = $(themedir)/$(size)/$(context) icons_DATA = \ ario.png noinst_DATA = EXTRA_DIST = \ $(icons_DATA) \ $(noinst_DATA) ario-1.6/data/icons/hicolor/96x96/Makefile.in0000644000175000017500000004761413226745576015625 00000000000000# Makefile.in generated by automake 1.15.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2017 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__is_gnu_make = { \ if test -z '$(MAKELEVEL)'; then \ false; \ elif test -n '$(MAKE_HOST)'; then \ true; \ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ true; \ else \ false; \ fi; \ } am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = data/icons/hicolor/96x96 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ ctags-recursive dvi-recursive html-recursive info-recursive \ install-data-recursive install-dvi-recursive \ install-exec-recursive install-html-recursive \ install-info-recursive install-pdf-recursive \ install-ps-recursive install-recursive installcheck-recursive \ installdirs-recursive pdf-recursive ps-recursive \ tags-recursive uninstall-recursive am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive am__recursive_targets = \ $(RECURSIVE_TARGETS) \ $(RECURSIVE_CLEAN_TARGETS) \ $(am__extra_recursive_targets) AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ distdir am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) # Read a list of newline-separated strings from the standard input, # and print each of them once, without duplicates. Input order is # *not* preserved. am__uniquify_input = $(AWK) '\ BEGIN { nonempty = 0; } \ { items[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in items) print i; }; } \ ' # Make sure the list of sources is unique. This is necessary because, # e.g., the same source file might be shared among _SOURCES variables # for different programs/libraries. am__define_uniq_tagged_files = \ list='$(am__tagged_files)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) am__DIST_COMMON = $(srcdir)/Makefile.in DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_rest='s,^[^/]*/*,,'; \ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ sed_butlast='s,/*[^/]*$$,,'; \ while test -n "$$dir1"; do \ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ if test "$$first" != "."; then \ if test "$$first" = ".."; then \ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ else \ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ if test "$$first2" = "$$first"; then \ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ else \ dir2="../$$dir2"; \ fi; \ dir0="$$dir0"/"$$first"; \ fi; \ fi; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" ACLOCAL = @ACLOCAL@ ALL_LINGUAS = @ALL_LINGUAS@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AR_FLAGS = @AR_FLAGS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AVAHI_CFLAGS = @AVAHI_CFLAGS@ AVAHI_LIBS = @AVAHI_LIBS@ AWK = @AWK@ CATALOGS = @CATALOGS@ CATOBJEXT = @CATOBJEXT@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIRNAME = @DATADIRNAME@ DBUS_CFLAGS = @DBUS_CFLAGS@ DBUS_GLIB_BIN = @DBUS_GLIB_BIN@ DBUS_LIBS = @DBUS_LIBS@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DEPS_CFLAGS = @DEPS_CFLAGS@ DEPS_LIBS = @DEPS_LIBS@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ GLIB_MKENUMS = @GLIB_MKENUMS@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INSTOBJEXT = @INSTOBJEXT@ INTLLIBS = @INTLLIBS@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@ INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@ INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBMPDCLIENT2_CFLAGS = @LIBMPDCLIENT2_CFLAGS@ LIBMPDCLIENT2_LIBS = @LIBMPDCLIENT2_LIBS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MKINSTALLDIRS = @MKINSTALLDIRS@ MSGFMT = @MSGFMT@ MSGFMT_OPTS = @MSGFMT_OPTS@ MSGMERGE = @MSGMERGE@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ PLUGINDIR = @PLUGINDIR@ PLUGIN_DATA_DIR = @PLUGIN_DATA_DIR@ POFILES = @POFILES@ POSUB = @POSUB@ PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ PYGTK_CFLAGS = @PYGTK_CFLAGS@ PYGTK_CODEGEN = @PYGTK_CODEGEN@ PYGTK_DEFSDIR = @PYGTK_DEFSDIR@ PYGTK_H2DEF = @PYGTK_H2DEF@ PYGTK_LIBS = @PYGTK_LIBS@ PYTHON = @PYTHON@ PYTHON_CFLAGS = @PYTHON_CFLAGS@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_EXTRA_LIBS = @PYTHON_EXTRA_LIBS@ PYTHON_LIBS = @PYTHON_LIBS@ PYTHON_LIB_LOC = @PYTHON_LIB_LOC@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ PYTHON_PREFIX = @PYTHON_PREFIX@ PYTHON_VERSION = @PYTHON_VERSION@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ TAGLIB_CFLAGS = @TAGLIB_CFLAGS@ TAGLIB_LIBS = @TAGLIB_LIBS@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ WARNINGS = @WARNINGS@ XGETTEXT = @XGETTEXT@ XMMS2_CFLAGS = @XMMS2_CFLAGS@ XMMS2_LIBS = @XMMS2_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ intltool__v_merge_options_ = @intltool__v_merge_options_@ intltool__v_merge_options_0 = @intltool__v_merge_options_0@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pkgpyexecdir = @pkgpyexecdir@ pkgpythondir = @pkgpythondir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ pyexecdir = @pyexecdir@ pythondir = @pythondir@ runstatedir = @runstatedir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ SUBDIRS = apps all: all-recursive .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign data/icons/hicolor/96x96/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign data/icons/hicolor/96x96/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs # This directory's subdirectories are mostly independent; you can cd # into them and run 'make' without going through this Makefile. # To change the values of 'make' variables: instead of editing Makefiles, # (1) if the variable is set in 'config.status', edit 'config.status' # (which will cause the Makefiles to be regenerated when you run 'make'); # (2) otherwise, pass the desired values on the 'make' command line. $(am__recursive_targets): @fail=; \ if $(am__make_keepgoing); then \ failcom='fail=yes'; \ else \ failcom='exit 1'; \ fi; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" ID: $(am__tagged_files) $(am__define_uniq_tagged_files); mkid -fID $$unique tags: tags-recursive TAGS: tags tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: ctags-recursive CTAGS: ctags ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" cscopelist: cscopelist-recursive cscopelist-am: $(am__tagged_files) list='$(am__tagged_files)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ esac; \ for i in $$list; do \ if test -f "$$i"; then \ echo "$(subdir)/$$i"; \ else \ echo "$$sdir/$$i"; \ fi; \ done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ $(am__make_dryrun) \ || test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done check-am: all-am check: check-recursive all-am: Makefile installdirs: installdirs-recursive installdirs-am: install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-recursive -rm -f Makefile distclean-am: clean-am distclean-generic distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: .MAKE: $(am__recursive_targets) install-am install-strip .PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \ check-am clean clean-generic clean-libtool cscopelist-am ctags \ ctags-am distclean distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ installdirs-am maintainer-clean maintainer-clean-generic \ mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ ps ps-am tags tags-am uninstall uninstall-am .PRECIOUS: Makefile # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: ario-1.6/data/icons/hicolor/96x96/Makefile.am0000644000175000017500000000001713226723431015560 00000000000000SUBDIRS = apps ario-1.6/data/icons/hicolor/Makefile.am0000644000175000017500000000073713226723431014764 00000000000000SUBDIRS = 16x16 22x22 24x24 32x32 48x48 64x64 72x72 96x96 128x128 256x256 scalable gtk_update_icon_cache = gtk-update-icon-cache -f -t $(datadir)/icons/hicolor install-data-hook: update-icon-cache uninstall-hook: update-icon-cache update-icon-cache: @-if test -z "$(DESTDIR)"; then \ echo "Updating Gtk icon cache."; \ $(gtk_update_icon_cache); \ else \ echo "*** Icon cache not updated. After (un)install, run this:"; \ echo "*** $(gtk_update_icon_cache)"; \ fi ario-1.6/data/icons/Makefile.am0000644000175000017500000000002313226723431013311 00000000000000SUBDIRS = hicolor ario-1.6/data/ario-play.png0000644000175000017500000001635213226723431012561 00000000000000PNG  IHDR00W OiCCPPhotoshop ICC profilexڝSgTS=BKKoR RB&*! J!QEEȠQ, !{kּ> H3Q5 B.@ $pd!s#~<<+"x M0B\t8K@zB@F&S`cbP-`'{[! eDh;VEX0fK9-0IWfH  0Q){`##xFW<+*x<$9E[-qWW.(I+6aa@.y24x6_-"bbϫp@t~,/;m%h^ uf@Wp~<5j>{-]cK'Xto(hw?G%fIq^D$.Tʳ?D*A, `6B$BB dr`)B(Ͱ*`/@4Qhp.U=pa( Aa!ڈbX#!H$ ɈQ"K5H1RT UH=r9\F;2G1Q= C7F dt1r=6Ыhڏ>C03l0.B8, c˱" VcϱwE 6wB aAHXLXNH $4 7 Q'"K&b21XH,#/{C7$C2'ITFnR#,4H#dk9, +ȅ3![ b@qS(RjJ4e2AURݨT5ZBRQ4u9̓IKhhitݕNWGw Ljg(gwLӋT071oUX**| J&*/Tު UUT^S}FU3S ԖUPSSg;goT?~YYLOCQ_ cx,!k u5&|v*=9C3J3WRf?qtN (~))4L1e\kXHQG6EYAJ'\'GgSSݧ M=:.kDwn^Loy}/TmG X $ <5qo</QC]@Caaᄑ.ȽJtq]zۯ6iܟ4)Y3sCQ? 0k߬~OCOg#/c/Wװwa>>r><72Y_7ȷOo_C#dz%gA[z|!?:eAAA!h쐭!ΑiP~aa~ 'W?pX15wCsDDDޛg1O9-J5*>.j<74?.fYXXIlK9.*6nl {/]py.,:@LN8A*%w% yg"/6шC\*NH*Mz쑼5y$3,幄'L Lݛ:v m2=:1qB!Mggfvˬen/kY- BTZ(*geWf͉9+̳ې7ᒶKW-X潬j9(xoʿܔĹdff-[n ڴ VE/(ۻCɾUUMfeI?m]Nmq#׹=TR+Gw- 6 U#pDy  :v{vg/jBFS[b[O>zG499?rCd&ˮ/~јѡ򗓿m|x31^VwwO| (hSЧc3-bKGD pHYs  tIME IDAThYiU՝[_o@M74 %.,P$ehE1Xc|p% U1qC$N@,M~ṅ{_[Jܪs￟!p @@ @4 HȳYOj|t,`0c!F5$J݇"{wUm.nj#:vԢ_`Kkj~v`rԩ2xHFXd:gW4Obm!XEmڂ9S4C ]OB)wqQ]]rܵsׯ{XH@#W$QtzJ4K JlCuѺ)e3&ZB`9 PJ y緒ohu2Y|o癎lB677+4Da 2O}K)c5ugE̞"4.`TItHΧ2YillUVVʟxrBA(! mcHT7z554(ri`H\2ϟ?_^{m]}-ZZN9tD[> Wpӧӂ B)(`RL&cǏ$ZlJjT̢Se{Jl)%l;a{S*])e^}7V{{ַiP09.W*x4M3e1 B (cR~  [V_kt^5`4;֓'PRĚbEte9 qw]B/S,>زeׂ OP!`s޼yr5J)c<aBi`ahhmqGϰmeEQYȺ<*XXO%.r/x C]uUB8qhQ c~R:{nl{8*dr2M{`ʧ>}czHt2! pz$Z꧔ҘIB(e e (5FMMh`u\ dP| dG?oI>ScX0^edC)`f sFC(+_{ /XOLHLWLe9k͛tB'i@-Q:FÐJKQD& QYY}g 6w).Z}4  k62)]:_KgѢE/^2 Lɓ bОy+bWںz2(gcBA,/h ec?.jpbC SfӀ}=xժUϘY0 ڕaЖ.]u]qJ3݌B@\4, ϿҴso9:r}祔 ᐀#2ZS\Qodme˖m Np+(y2gYOPWUJAˉDLf`_;F^6 Oywڜ P3fj>zT{饏TTT|R l|Pe˖1#VV12/䈪t@2Y֓h>>rv}]$e9wBcOx9Bzݺun |WDna4d!=%PZZt:?,ܒ:T8{1[$ $CQI *⋿9u]@$H{hmmmR 4F#~K E%X? ^ ]|+vw= Ĥd#8-[|`GM hI%M\s)dn D=e#,'>[ބ ۱{S(ոM1n MQeF.YdE2<:oP4h+ Rje5}"zpԕʞLeee^J&", |$tB4 )AiF+C?L]@|\K1pO'`-(WuIC6:x:=y!Xwn(; NKAux|Q!4HxJBg~% /p,'d즢Fw !a><8P*cΖ>~S-zRaᜣD~ TEpЙ`OF6ޏr *)0AFODSke1` @y(1-*ؑʨ})ׁ Qؘ>a˓9b ҂y|T28;'8 B"#/nڻ{1 %mOl/<]]]Ν; "r^:P1œ7ʨoSH;Z.>rZ`j}aTj.ϼ#s}DAΤg{?U۷o3gSL}^>r—j'z.L1z?'񔿮mu&͝kl1* Dx<~ycgz3 B'b(,nkIi7-I0*CTQ9yGR:5` eSw;[8RXS^랛[aDf[.ۈƁr@*>=Dz?RZG7JMlBÜYPX,8d=oZi^qqqݩ\1/@~&PyrLRBx'+RYjeR`pRhI<Vwwwj/۶jKU%v^g~<7 LN+\Y%0##d$LLMuqXϝڝJ{焙͝;= 39r @ZRpN ƍXx  7B`"iR)а)3ёWضM\m?QӌƉj(pA6]pYd29B7.߿k=EZ Y f:5"W*ȑ#'V^l>/{bLxWXd2,wIPB@@FDPJ@Ƶv>-8mSپnqՏ<[r`?ŋ;drqI<"*p{0NA N #>df $ΉdqD0겤c|'=̫31BڴiSŋh4$n8r!|L!|9#2b*Bm c>TmLZUg444d֭[@dGl"(u ,XFWL>#|^R) + l{> :(9#쪨4:m۶ѵk0 7̚5T"Fe!8 G\8$Шrf%,(w˧z B> nzRJl.(jʸ`&Tʕ SB.,tZ(TW^u|fO>p=?Y20nx>>kDZhUUUkfNqq ]KcRJ:NӝΝkٻwᆆ>)0lB!6:ƊIENDB`ario-1.6/data/shuffle.png0000644000175000017500000000100413226723431012304 00000000000000PNG  IHDRw=bKGDIDATx͕AQms1( ;H!Ja]n#Y4XWl< Ybf0ٝ>x 37 `& `ry<&Vi4}%1 Z^$&W~2DȻ$N3|cm0-$oOr6_ߵpev+X,~0L]Nޠ%rd/`]+K+R-Y<_.mo}[ AMسaPxZ:Ϊh cQk p& cz~^'ZRunCIwQXeGjʚ.y|>O <2?,O8n\:>L>:NaJ{'I%}[$WBp\I^$iE&~0$n/IENDB`ario-1.6/data/pl-inside.png0000644000175000017500000000056113226723431012543 00000000000000PNG  IHDR00WsRGBbKGD pHYs  tIME*8!yIDATh1K@#ԵঃkܱoWs(*m%H]rSBqo%$Mq X s(ɳ:imW`+[f^m tMaI#[أ@IT$=Td΁ࣁzdS}m)}f.I͋/ruo>pag}.q@@@@@@ Y_I:j`. I5-Rt4I?j6 װ0%JtIENDB`ario-1.6/data/pl-below.png0000644000175000017500000000062413226723431012400 00000000000000PNG  IHDR00WsRGBbKGD pHYs  tIME)?Y@IDATh=JQQCP B+V܂[p Y;{Lci$  %}foMYt k{3@vX=pkL@ _ 1%]LpƹOgI{S>ր Sx۴E`{7p7]:C@@@NI:?+T `8 ;  `.vbSIjHdIfe?UD9T+IENDB`ario-1.6/data/ario.png0000644000175000017500000001541213226723431011612 00000000000000PNG  IHDR00W OiCCPPhotoshop ICC profilexڝSgTS=BKKoR RB&*! J!QEEȠQ, !{kּ> H3Q5 B.@ $pd!s#~<<+"x M0B\t8K@zB@F&S`cbP-`'{[! eDh;VEX0fK9-0IWfH  0Q){`##xFW<+*x<$9E[-qWW.(I+6aa@.y24x6_-"bbϫp@t~,/;m%h^ uf@Wp~<5j>{-]cK'Xto(hw?G%fIq^D$.Tʳ?D*A, `6B$BB dr`)B(Ͱ*`/@4Qhp.U=pa( Aa!ڈbX#!H$ ɈQ"K5H1RT UH=r9\F;2G1Q= C7F dt1r=6Ыhڏ>C03l0.B8, c˱" VcϱwE 6wB aAHXLXNH $4 7 Q'"K&b21XH,#/{C7$C2'ITFnR#,4H#dk9, +ȅ3![ b@qS(RjJ4e2AURݨT5ZBRQ4u9̓IKhhitݕNWGw Ljg(gwLӋT071oUX**| J&*/Tު UUT^S}FU3S ԖUPSSg;goT?~YYLOCQ_ cx,!k u5&|v*=9C3J3WRf?qtN (~))4L1e\kXHQG6EYAJ'\'GgSSݧ M=:.kDwn^Loy}/TmG X $ <5qo</QC]@Caaᄑ.ȽJtq]zۯ6iܟ4)Y3sCQ? 0k߬~OCOg#/c/Wװwa>>r><72Y_7ȷOo_C#dz%gA[z|!?:eAAA!h쐭!ΑiP~aa~ 'W?pX15wCsDDDޛg1O9-J5*>.j<74?.fYXXIlK9.*6nl {/]py.,:@LN8A*%w% yg"/6шC\*NH*Mz쑼5y$3,幄'L Lݛ:v m2=:1qB!Mggfvˬen/kY- BTZ(*geWf͉9+̳ې7ᒶKW-X潬j9(xoʿܔĹdff-[n ڴ VE/(ۻCɾUUMfeI?m]Nmq#׹=TR+Gw- 6 U#pDy  :v{vg/jBFS[b[O>zG499?rCd&ˮ/~јѡ򗓿m|x31^VwwO| (hSЧc3-bKGD pHYs  tIME;Gw^ vWOs>!_@41Qt {|pONg0b48B>9998߰T\,rs܊*Y8%`<$U5,U<țkdYRJH*Hs"jv\!">!4.MD&FB(!tŎ^@)] 2)Y9M-5喃N]˹ @A)5v}5JRSDf)%Z*Jݷ͑#LO,WK.D:%5NLohw[Z~Sa%`,?߷*JѢ鸅iXy:NgO|}~ĹC'.v;;z 2?BĖ.]mڴeٲe7$FYcR97MӜ|O>:4n0m^iOLGr=1N Nt~NL]n‹ N<ihhگg @̟?_{X| !=f KQ-Jֲ+V;{`d{?o?ܩSbaCͣ 8/j,vֿFas%mkJF# qʒ*aB-9,+as7}on|x{X$0{yRg.1! @gn|GQUz ;kTb@-!!X%X?XMM?ڷo㽽/lܸWくa;& cǎ W~!Tq/ҙFVWF_, fPK  K[=ġY?uvv>[om{/5Aخ/P}KClۧEȣ7 1Sڀ*.%lTO۹^~zw~Xͮ vyha{wO[[. '=RRp33lT@YvsxMEW"q-+loo Ƙ 0ZpyqO=Tjڵ/\rE}5UPh6f@e, `,G6$Ul>$y?>v&I_L9xH iZt˖-ض]cJϏ lLRK^{ dmX̫5L}#Us=_>|ยghfŁ:\XSbZvHgd`\I} ܦ?ٳg>7%Z։C+++'2 8TP`Av=I=3J=,X\ g@;20?ԟs[6p)\ ((?<}opݟ+SEX$Ĵ[ޝ10\ [^;7N3Re˖u]L*vL"W8蒘U%@ Nj>w=FҒn%m@æ?D7ګT iÅ,L*rcCUn.FI(<#^J5\ihh|e˶}822YZBtݺuU.E"KV -rzdpL`@@S`ĩk*T9*o"L0%}`'#<`k֬Y@)Ӧ5!1dآWg$ ix#%ߕ2I p{qi DL6777 !0n 3"" c`s7Qo5jj5#9u]_/.BD"QӮ$dzu3\lA^13gpn;%j,T (SbI"~4|RuiG $1LYFe , M`ґxtttj)*q-A$tF٬,<锖ҴԔ8BV`>\.b'=c'tF[G@Μ9s{ ]e;;%<vD¯hÛ7F<$? L)P7ܵv9]Ĕ22kr,T<ڵ8MU Q b&IFy6*@& UE$06cp&DJGJuγP pǺcC(NOOu}<鱼[uս `|"0\x!A\9}wk] ?4 !YzrA`aX-YdŭuD+ELО7*{c<Ƨ1l:`LaP% > Vsr6.]'ܱgT:tpśTJku0=8sȲ'{ @g>y+u-p,=\X牿i/:HT8q?͝w.&TJ-ǼBRپa8&\I] Bx(oTΝS_RZҚ0?T`cǎ}]wNAKZJ@DO6kpLF& /0,^Z83l+ctc&Oex}}}#GޯL٧ɔV$ wwRrs@Wҗ:q !/`'NOZ J>|˲DsZe(VUeb5\vvvpXPM"$#´O(Rqeia,M6u]Y t70QjiN™]E %xk~U+T e2S0h2)MӢc/u;.\SbYq{Ŋߍz9ND_VDg, +oJ@6"˘Po_=XBW:AR\˫rԩ[n}0trpHxW6nذdR0aAe) DW~ D()i}@8m ๱!y׮][m. |9R~޽{WZe'UUqMnR"1 0 )̨7JD Kt9%g J  qSRX1O>䳮>Z&T$ݻwwZJF+:kS>i G LIL">R0FB&P 'cl]#}':::.9Jqsc+W+b:[rTbD&(p.}eD1a5Fs=\/RSSRPUYC\tM.(\YhZJ"#®V;?FbƑ#G~@ַ{Z_ J6M߿9+X@VYED،@p#QB% `^!)K­wN䚬,9zly饗vv5:Ή >Q]]]muu5(dY!-.qp%J$!%DDvlΫФoF(~y7g;8P[ZZ*|Tޚ***xhYA) cjj cccHG;wK~݇} 9}(";3Դr(U$Bnv& \|/8197}nt_4jKKIENDB`ario-1.6/data/consume.png0000644000175000017500000000073413226723431012332 00000000000000PNG  IHDRw=bKGD pHYs  tIME2$&iIDATH͕JPv BEsA tpP軨O E(ڧ#d2woH?Fܜ wxW#80d0+p8<6bjN&;!>$%3y'v 3g.1$i%WƘb1hԬ. 4M(΁̮8$[tEQRz#FfOTl ztzJ$U}xyc=݇bviZ93971{_CNLWJf2Hrǵ1 I{_JZ0NII{_)Y@~yM,ťSb_ß9zHIENDB`ario-1.6/data/Makefile.am0000644000175000017500000000336613226723431012213 00000000000000SUBDIRS = icons desktopdir = $(datadir)/applications desktop_in_files = ario.desktop.in desktop_DATA = $(desktop_in_files:.desktop.in=.desktop) @INTLTOOL_DESKTOP_RULE@ artdir = $(pkgdatadir)/art art_DATA = ario.png \ ario-play.png \ ario-pause.png \ logo.png \ play.png \ shuffle.png \ repeat.png \ consume.png \ pl-below.png \ pl-right.png \ pl-inside.png uidir = $(pkgdatadir)/ui ui_DATA = ui/ario-shell-menu.ui \ ui/ario-playlist-menu.ui \ ui/ario-browser-menu.ui \ ui/ario-songlist-menu.ui \ ui/browser-prefs.ui \ ui/connection-autodetect.ui \ ui/connection-prefs.ui \ ui/connection-assistant.ui \ ui/connection-widget.ui \ ui/connection-dialog.ui \ ui/cover-prefs.ui \ ui/cover-progress.ui \ ui/cover-select.ui \ ui/lyrics-select.ui \ ui/lyrics-prefs.ui \ ui/others-prefs.ui \ ui/playlist-prefs.ui \ ui/server-prefs.ui \ ui/similar-artists.ui \ ui/song-infos.ui \ ui/stats-prefs.ui alldatadir = $(pkgdatadir)/data alldata_DATA = profiles.xml.default # Rule to update the icon cache after installing the icon gtk_update_icon_cache = gtk-update-icon-cache -f -t $(datadir)/icons/hicolor install-data-hook: update-icon-cache uninstall-hook: update-icon-cache update-icon-cache: @-if test -z "$(DESTDIR)"; then \ echo "Updating Gtk icon cache."; \ $(gtk_update_icon_cache); \ else \ echo "*** Icon cache not updated. After (un)install, run this:"; \ echo "*** $(gtk_update_icon_cache)"; \ fi EXTRA_DIST = \ $(desktop_in_files) \ $(art_DATA) \ $(ui_DATA) \ $(alldata_DATA) \ $(ui_DATA) CLEANFILES = $(desktop_DATA) ario-1.6/data/play.png0000644000175000017500000000116713226723431011627 00000000000000PNG  IHDRVΎWbKGD pHYs  tIME  IDAT8ՔKhQ4uL6Zâm nZ7 TR (pэVAhW.bQ-ꤵd3ɘLfpy {s.ow5؟usIcK@w3Yn# Ǐ|vmq~bp Wu4eY^8vtr|( 'e \;Q(̎^ BgO/\+|0 c-EH4>sv("6o[.%`&e!20FZZ<MӨV*iQ-'D?k!u똥B!\H ^;GR6T*Jc<N L='Ps `|'T+(mc6o߯%`]hJ$_~2?/0 ~N~5O/Vx]?SUݝCpzII$p}RmQǯ#~T{&IENDB`ario-1.6/data/repeat.png0000644000175000017500000000056013226723431012136 00000000000000PNG  IHDRw=bKGD%IDATx퓱JP[oG![Apݭ9>A젎缁ItmA-ĚܛVp{M#`ص!rj'0;{O$f"}QrݬMSIzw +}k*/6M ]cjuCi 6+ໍ`Xl h'm$MSeYvcjX ԹEp\l~fxFpV)@eYJ\ ) OrktӨIzѩN SF`IENDB`ario-1.6/depcomp0000755000175000017500000005601713157351331010623 00000000000000#! /bin/sh # depcomp - compile a program generating dependencies as side-effects scriptversion=2016-01-11.22; # UTC # Copyright (C) 1999-2017 Free Software Foundation, Inc. # 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, 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, see . # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # Originally written by Alexandre Oliva . case $1 in '') echo "$0: No command. Try '$0 --help' for more information." 1>&2 exit 1; ;; -h | --h*) cat <<\EOF Usage: depcomp [--help] [--version] PROGRAM [ARGS] Run PROGRAMS ARGS to compile a file, generating dependencies as side-effects. Environment variables: depmode Dependency tracking mode. source Source file read by 'PROGRAMS ARGS'. object Object file output by 'PROGRAMS ARGS'. DEPDIR directory where to store dependencies. depfile Dependency file to output. tmpdepfile Temporary file to use when outputting dependencies. libtool Whether libtool is used (yes/no). Report bugs to . EOF exit $? ;; -v | --v*) echo "depcomp $scriptversion" exit $? ;; esac # Get the directory component of the given path, and save it in the # global variables '$dir'. Note that this directory component will # be either empty or ending with a '/' character. This is deliberate. set_dir_from () { case $1 in */*) dir=`echo "$1" | sed -e 's|/[^/]*$|/|'`;; *) dir=;; esac } # Get the suffix-stripped basename of the given path, and save it the # global variable '$base'. set_base_from () { base=`echo "$1" | sed -e 's|^.*/||' -e 's/\.[^.]*$//'` } # If no dependency file was actually created by the compiler invocation, # we still have to create a dummy depfile, to avoid errors with the # Makefile "include basename.Plo" scheme. make_dummy_depfile () { echo "#dummy" > "$depfile" } # Factor out some common post-processing of the generated depfile. # Requires the auxiliary global variable '$tmpdepfile' to be set. aix_post_process_depfile () { # If the compiler actually managed to produce a dependency file, # post-process it. if test -f "$tmpdepfile"; then # Each line is of the form 'foo.o: dependency.h'. # Do two passes, one to just change these to # $object: dependency.h # and one to simply output # dependency.h: # which is needed to avoid the deleted-header problem. { sed -e "s,^.*\.[$lower]*:,$object:," < "$tmpdepfile" sed -e "s,^.*\.[$lower]*:[$tab ]*,," -e 's,$,:,' < "$tmpdepfile" } > "$depfile" rm -f "$tmpdepfile" else make_dummy_depfile fi } # A tabulation character. tab=' ' # A newline character. nl=' ' # Character ranges might be problematic outside the C locale. # These definitions help. upper=ABCDEFGHIJKLMNOPQRSTUVWXYZ lower=abcdefghijklmnopqrstuvwxyz digits=0123456789 alpha=${upper}${lower} if test -z "$depmode" || test -z "$source" || test -z "$object"; then echo "depcomp: Variables source, object and depmode must be set" 1>&2 exit 1 fi # Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po. depfile=${depfile-`echo "$object" | sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`} tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`} rm -f "$tmpdepfile" # Avoid interferences from the environment. gccflag= dashmflag= # Some modes work just like other modes, but use different flags. We # parameterize here, but still list the modes in the big case below, # to make depend.m4 easier to write. Note that we *cannot* use a case # here, because this file can only contain one case statement. if test "$depmode" = hp; then # HP compiler uses -M and no extra arg. gccflag=-M depmode=gcc fi if test "$depmode" = dashXmstdout; then # This is just like dashmstdout with a different argument. dashmflag=-xM depmode=dashmstdout fi cygpath_u="cygpath -u -f -" if test "$depmode" = msvcmsys; then # This is just like msvisualcpp but w/o cygpath translation. # Just convert the backslash-escaped backslashes to single forward # slashes to satisfy depend.m4 cygpath_u='sed s,\\\\,/,g' depmode=msvisualcpp fi if test "$depmode" = msvc7msys; then # This is just like msvc7 but w/o cygpath translation. # Just convert the backslash-escaped backslashes to single forward # slashes to satisfy depend.m4 cygpath_u='sed s,\\\\,/,g' depmode=msvc7 fi if test "$depmode" = xlc; then # IBM C/C++ Compilers xlc/xlC can output gcc-like dependency information. gccflag=-qmakedep=gcc,-MF depmode=gcc fi case "$depmode" in gcc3) ## gcc 3 implements dependency tracking that does exactly what ## we want. Yay! Note: for some reason libtool 1.4 doesn't like ## it if -MD -MP comes after the -MF stuff. Hmm. ## Unfortunately, FreeBSD c89 acceptance of flags depends upon ## the command line argument order; so add the flags where they ## appear in depend2.am. Note that the slowdown incurred here ## affects only configure: in makefiles, %FASTDEP% shortcuts this. for arg do case $arg in -c) set fnord "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" "$arg" ;; *) set fnord "$@" "$arg" ;; esac shift # fnord shift # $arg done "$@" stat=$? if test $stat -ne 0; then rm -f "$tmpdepfile" exit $stat fi mv "$tmpdepfile" "$depfile" ;; gcc) ## Note that this doesn't just cater to obsosete pre-3.x GCC compilers. ## but also to in-use compilers like IMB xlc/xlC and the HP C compiler. ## (see the conditional assignment to $gccflag above). ## There are various ways to get dependency output from gcc. Here's ## why we pick this rather obscure method: ## - Don't want to use -MD because we'd like the dependencies to end ## up in a subdir. Having to rename by hand is ugly. ## (We might end up doing this anyway to support other compilers.) ## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like ## -MM, not -M (despite what the docs say). Also, it might not be ## supported by the other compilers which use the 'gcc' depmode. ## - Using -M directly means running the compiler twice (even worse ## than renaming). if test -z "$gccflag"; then gccflag=-MD, fi "$@" -Wp,"$gccflag$tmpdepfile" stat=$? if test $stat -ne 0; then rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" echo "$object : \\" > "$depfile" # The second -e expression handles DOS-style file names with drive # letters. sed -e 's/^[^:]*: / /' \ -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile" ## This next piece of magic avoids the "deleted header file" problem. ## The problem is that when a header file which appears in a .P file ## is deleted, the dependency causes make to die (because there is ## typically no way to rebuild the header). We avoid this by adding ## dummy dependencies for each header file. Too bad gcc doesn't do ## this for us directly. ## Some versions of gcc put a space before the ':'. On the theory ## that the space means something, we add a space to the output as ## well. hp depmode also adds that space, but also prefixes the VPATH ## to the object. Take care to not repeat it in the output. ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. tr ' ' "$nl" < "$tmpdepfile" \ | sed -e 's/^\\$//' -e '/^$/d' -e "s|.*$object$||" -e '/:$/d' \ | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; hp) # This case exists only to let depend.m4 do its work. It works by # looking at the text of this script. This case will never be run, # since it is checked for above. exit 1 ;; sgi) if test "$libtool" = yes; then "$@" "-Wp,-MDupdate,$tmpdepfile" else "$@" -MDupdate "$tmpdepfile" fi stat=$? if test $stat -ne 0; then rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files echo "$object : \\" > "$depfile" # Clip off the initial element (the dependent). Don't try to be # clever and replace this with sed code, as IRIX sed won't handle # lines with more than a fixed number of characters (4096 in # IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines; # the IRIX cc adds comments like '#:fec' to the end of the # dependency line. tr ' ' "$nl" < "$tmpdepfile" \ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' \ | tr "$nl" ' ' >> "$depfile" echo >> "$depfile" # The second pass generates a dummy entry for each header file. tr ' ' "$nl" < "$tmpdepfile" \ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \ >> "$depfile" else make_dummy_depfile fi rm -f "$tmpdepfile" ;; xlc) # This case exists only to let depend.m4 do its work. It works by # looking at the text of this script. This case will never be run, # since it is checked for above. exit 1 ;; aix) # The C for AIX Compiler uses -M and outputs the dependencies # in a .u file. In older versions, this file always lives in the # current directory. Also, the AIX compiler puts '$object:' at the # start of each line; $object doesn't have directory information. # Version 6 uses the directory in both cases. set_dir_from "$object" set_base_from "$object" if test "$libtool" = yes; then tmpdepfile1=$dir$base.u tmpdepfile2=$base.u tmpdepfile3=$dir.libs/$base.u "$@" -Wc,-M else tmpdepfile1=$dir$base.u tmpdepfile2=$dir$base.u tmpdepfile3=$dir$base.u "$@" -M fi stat=$? if test $stat -ne 0; then rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" exit $stat fi for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" do test -f "$tmpdepfile" && break done aix_post_process_depfile ;; tcc) # tcc (Tiny C Compiler) understand '-MD -MF file' since version 0.9.26 # FIXME: That version still under development at the moment of writing. # Make that this statement remains true also for stable, released # versions. # It will wrap lines (doesn't matter whether long or short) with a # trailing '\', as in: # # foo.o : \ # foo.c \ # foo.h \ # # It will put a trailing '\' even on the last line, and will use leading # spaces rather than leading tabs (at least since its commit 0394caf7 # "Emit spaces for -MD"). "$@" -MD -MF "$tmpdepfile" stat=$? if test $stat -ne 0; then rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" # Each non-empty line is of the form 'foo.o : \' or ' dep.h \'. # We have to change lines of the first kind to '$object: \'. sed -e "s|.*:|$object :|" < "$tmpdepfile" > "$depfile" # And for each line of the second kind, we have to emit a 'dep.h:' # dummy dependency, to avoid the deleted-header problem. sed -n -e 's|^ *\(.*\) *\\$|\1:|p' < "$tmpdepfile" >> "$depfile" rm -f "$tmpdepfile" ;; ## The order of this option in the case statement is important, since the ## shell code in configure will try each of these formats in the order ## listed in this file. A plain '-MD' option would be understood by many ## compilers, so we must ensure this comes after the gcc and icc options. pgcc) # Portland's C compiler understands '-MD'. # Will always output deps to 'file.d' where file is the root name of the # source file under compilation, even if file resides in a subdirectory. # The object file name does not affect the name of the '.d' file. # pgcc 10.2 will output # foo.o: sub/foo.c sub/foo.h # and will wrap long lines using '\' : # foo.o: sub/foo.c ... \ # sub/foo.h ... \ # ... set_dir_from "$object" # Use the source, not the object, to determine the base name, since # that's sadly what pgcc will do too. set_base_from "$source" tmpdepfile=$base.d # For projects that build the same source file twice into different object # files, the pgcc approach of using the *source* file root name can cause # problems in parallel builds. Use a locking strategy to avoid stomping on # the same $tmpdepfile. lockdir=$base.d-lock trap " echo '$0: caught signal, cleaning up...' >&2 rmdir '$lockdir' exit 1 " 1 2 13 15 numtries=100 i=$numtries while test $i -gt 0; do # mkdir is a portable test-and-set. if mkdir "$lockdir" 2>/dev/null; then # This process acquired the lock. "$@" -MD stat=$? # Release the lock. rmdir "$lockdir" break else # If the lock is being held by a different process, wait # until the winning process is done or we timeout. while test -d "$lockdir" && test $i -gt 0; do sleep 1 i=`expr $i - 1` done fi i=`expr $i - 1` done trap - 1 2 13 15 if test $i -le 0; then echo "$0: failed to acquire lock after $numtries attempts" >&2 echo "$0: check lockdir '$lockdir'" >&2 exit 1 fi if test $stat -ne 0; then rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" # Each line is of the form `foo.o: dependent.h', # or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'. # Do two passes, one to just change these to # `$object: dependent.h' and one to simply `dependent.h:'. sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile" # Some versions of the HPUX 10.20 sed can't process this invocation # correctly. Breaking it into two sed invocations is a workaround. sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" \ | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; hp2) # The "hp" stanza above does not work with aCC (C++) and HP's ia64 # compilers, which have integrated preprocessors. The correct option # to use with these is +Maked; it writes dependencies to a file named # 'foo.d', which lands next to the object file, wherever that # happens to be. # Much of this is similar to the tru64 case; see comments there. set_dir_from "$object" set_base_from "$object" if test "$libtool" = yes; then tmpdepfile1=$dir$base.d tmpdepfile2=$dir.libs/$base.d "$@" -Wc,+Maked else tmpdepfile1=$dir$base.d tmpdepfile2=$dir$base.d "$@" +Maked fi stat=$? if test $stat -ne 0; then rm -f "$tmpdepfile1" "$tmpdepfile2" exit $stat fi for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" do test -f "$tmpdepfile" && break done if test -f "$tmpdepfile"; then sed -e "s,^.*\.[$lower]*:,$object:," "$tmpdepfile" > "$depfile" # Add 'dependent.h:' lines. sed -ne '2,${ s/^ *// s/ \\*$// s/$/:/ p }' "$tmpdepfile" >> "$depfile" else make_dummy_depfile fi rm -f "$tmpdepfile" "$tmpdepfile2" ;; tru64) # The Tru64 compiler uses -MD to generate dependencies as a side # effect. 'cc -MD -o foo.o ...' puts the dependencies into 'foo.o.d'. # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put # dependencies in 'foo.d' instead, so we check for that too. # Subdirectories are respected. set_dir_from "$object" set_base_from "$object" if test "$libtool" = yes; then # Libtool generates 2 separate objects for the 2 libraries. These # two compilations output dependencies in $dir.libs/$base.o.d and # in $dir$base.o.d. We have to check for both files, because # one of the two compilations can be disabled. We should prefer # $dir$base.o.d over $dir.libs/$base.o.d because the latter is # automatically cleaned when .libs/ is deleted, while ignoring # the former would cause a distcleancheck panic. tmpdepfile1=$dir$base.o.d # libtool 1.5 tmpdepfile2=$dir.libs/$base.o.d # Likewise. tmpdepfile3=$dir.libs/$base.d # Compaq CCC V6.2-504 "$@" -Wc,-MD else tmpdepfile1=$dir$base.d tmpdepfile2=$dir$base.d tmpdepfile3=$dir$base.d "$@" -MD fi stat=$? if test $stat -ne 0; then rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" exit $stat fi for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" do test -f "$tmpdepfile" && break done # Same post-processing that is required for AIX mode. aix_post_process_depfile ;; msvc7) if test "$libtool" = yes; then showIncludes=-Wc,-showIncludes else showIncludes=-showIncludes fi "$@" $showIncludes > "$tmpdepfile" stat=$? grep -v '^Note: including file: ' "$tmpdepfile" if test $stat -ne 0; then rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" echo "$object : \\" > "$depfile" # The first sed program below extracts the file names and escapes # backslashes for cygpath. The second sed program outputs the file # name when reading, but also accumulates all include files in the # hold buffer in order to output them again at the end. This only # works with sed implementations that can handle large buffers. sed < "$tmpdepfile" -n ' /^Note: including file: *\(.*\)/ { s//\1/ s/\\/\\\\/g p }' | $cygpath_u | sort -u | sed -n ' s/ /\\ /g s/\(.*\)/'"$tab"'\1 \\/p s/.\(.*\) \\/\1:/ H $ { s/.*/'"$tab"'/ G p }' >> "$depfile" echo >> "$depfile" # make sure the fragment doesn't end with a backslash rm -f "$tmpdepfile" ;; msvc7msys) # This case exists only to let depend.m4 do its work. It works by # looking at the text of this script. This case will never be run, # since it is checked for above. exit 1 ;; #nosideeffect) # This comment above is used by automake to tell side-effect # dependency tracking mechanisms from slower ones. dashmstdout) # Important note: in order to support this mode, a compiler *must* # always write the preprocessed file to stdout, regardless of -o. "$@" || exit $? # Remove the call to Libtool. if test "$libtool" = yes; then while test "X$1" != 'X--mode=compile'; do shift done shift fi # Remove '-o $object'. IFS=" " for arg do case $arg in -o) shift ;; $object) shift ;; *) set fnord "$@" "$arg" shift # fnord shift # $arg ;; esac done test -z "$dashmflag" && dashmflag=-M # Require at least two characters before searching for ':' # in the target name. This is to cope with DOS-style filenames: # a dependency such as 'c:/foo/bar' could be seen as target 'c' otherwise. "$@" $dashmflag | sed "s|^[$tab ]*[^:$tab ][^:][^:]*:[$tab ]*|$object: |" > "$tmpdepfile" rm -f "$depfile" cat < "$tmpdepfile" > "$depfile" # Some versions of the HPUX 10.20 sed can't process this sed invocation # correctly. Breaking it into two sed invocations is a workaround. tr ' ' "$nl" < "$tmpdepfile" \ | sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' \ | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; dashXmstdout) # This case only exists to satisfy depend.m4. It is never actually # run, as this mode is specially recognized in the preamble. exit 1 ;; makedepend) "$@" || exit $? # Remove any Libtool call if test "$libtool" = yes; then while test "X$1" != 'X--mode=compile'; do shift done shift fi # X makedepend shift cleared=no eat=no for arg do case $cleared in no) set ""; shift cleared=yes ;; esac if test $eat = yes; then eat=no continue fi case "$arg" in -D*|-I*) set fnord "$@" "$arg"; shift ;; # Strip any option that makedepend may not understand. Remove # the object too, otherwise makedepend will parse it as a source file. -arch) eat=yes ;; -*|$object) ;; *) set fnord "$@" "$arg"; shift ;; esac done obj_suffix=`echo "$object" | sed 's/^.*\././'` touch "$tmpdepfile" ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@" rm -f "$depfile" # makedepend may prepend the VPATH from the source file name to the object. # No need to regex-escape $object, excess matching of '.' is harmless. sed "s|^.*\($object *:\)|\1|" "$tmpdepfile" > "$depfile" # Some versions of the HPUX 10.20 sed can't process the last invocation # correctly. Breaking it into two sed invocations is a workaround. sed '1,2d' "$tmpdepfile" \ | tr ' ' "$nl" \ | sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' \ | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" "$tmpdepfile".bak ;; cpp) # Important note: in order to support this mode, a compiler *must* # always write the preprocessed file to stdout. "$@" || exit $? # Remove the call to Libtool. if test "$libtool" = yes; then while test "X$1" != 'X--mode=compile'; do shift done shift fi # Remove '-o $object'. IFS=" " for arg do case $arg in -o) shift ;; $object) shift ;; *) set fnord "$@" "$arg" shift # fnord shift # $arg ;; esac done "$@" -E \ | sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \ -e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \ | sed '$ s: \\$::' > "$tmpdepfile" rm -f "$depfile" echo "$object : \\" > "$depfile" cat < "$tmpdepfile" >> "$depfile" sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; msvisualcpp) # Important note: in order to support this mode, a compiler *must* # always write the preprocessed file to stdout. "$@" || exit $? # Remove the call to Libtool. if test "$libtool" = yes; then while test "X$1" != 'X--mode=compile'; do shift done shift fi IFS=" " for arg do case "$arg" in -o) shift ;; $object) shift ;; "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI") set fnord "$@" shift shift ;; *) set fnord "$@" "$arg" shift shift ;; esac done "$@" -E 2>/dev/null | sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::\1:p' | $cygpath_u | sort -u > "$tmpdepfile" rm -f "$depfile" echo "$object : \\" > "$depfile" sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::'"$tab"'\1 \\:p' >> "$depfile" echo "$tab" >> "$depfile" sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::\1\::p' >> "$depfile" rm -f "$tmpdepfile" ;; msvcmsys) # This case exists only to let depend.m4 do its work. It works by # looking at the text of this script. This case will never be run, # since it is checked for above. exit 1 ;; none) exec "$@" ;; *) echo "Unknown depmode $depmode" 1>&2 exit 1 ;; esac exit 0 # Local Variables: # mode: shell-script # sh-indentation: 2 # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC0" # time-stamp-end: "; # UTC" # End: ario-1.6/bindings/0000755000175000017500000000000013226745613011121 500000000000000ario-1.6/bindings/Makefile.in0000644000175000017500000004761513226745576013133 00000000000000# Makefile.in generated by automake 1.15.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2017 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__is_gnu_make = { \ if test -z '$(MAKELEVEL)'; then \ false; \ elif test -n '$(MAKE_HOST)'; then \ true; \ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ true; \ else \ false; \ fi; \ } am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ @ENABLE_PYTHON_TRUE@am__append_1 = python subdir = bindings ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ ctags-recursive dvi-recursive html-recursive info-recursive \ install-data-recursive install-dvi-recursive \ install-exec-recursive install-html-recursive \ install-info-recursive install-pdf-recursive \ install-ps-recursive install-recursive installcheck-recursive \ installdirs-recursive pdf-recursive ps-recursive \ tags-recursive uninstall-recursive am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive am__recursive_targets = \ $(RECURSIVE_TARGETS) \ $(RECURSIVE_CLEAN_TARGETS) \ $(am__extra_recursive_targets) AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ distdir am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) # Read a list of newline-separated strings from the standard input, # and print each of them once, without duplicates. Input order is # *not* preserved. am__uniquify_input = $(AWK) '\ BEGIN { nonempty = 0; } \ { items[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in items) print i; }; } \ ' # Make sure the list of sources is unique. This is necessary because, # e.g., the same source file might be shared among _SOURCES variables # for different programs/libraries. am__define_uniq_tagged_files = \ list='$(am__tagged_files)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DIST_SUBDIRS = python am__DIST_COMMON = $(srcdir)/Makefile.in DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_rest='s,^[^/]*/*,,'; \ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ sed_butlast='s,/*[^/]*$$,,'; \ while test -n "$$dir1"; do \ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ if test "$$first" != "."; then \ if test "$$first" = ".."; then \ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ else \ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ if test "$$first2" = "$$first"; then \ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ else \ dir2="../$$dir2"; \ fi; \ dir0="$$dir0"/"$$first"; \ fi; \ fi; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" ACLOCAL = @ACLOCAL@ ALL_LINGUAS = @ALL_LINGUAS@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AR_FLAGS = @AR_FLAGS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AVAHI_CFLAGS = @AVAHI_CFLAGS@ AVAHI_LIBS = @AVAHI_LIBS@ AWK = @AWK@ CATALOGS = @CATALOGS@ CATOBJEXT = @CATOBJEXT@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIRNAME = @DATADIRNAME@ DBUS_CFLAGS = @DBUS_CFLAGS@ DBUS_GLIB_BIN = @DBUS_GLIB_BIN@ DBUS_LIBS = @DBUS_LIBS@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DEPS_CFLAGS = @DEPS_CFLAGS@ DEPS_LIBS = @DEPS_LIBS@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ GLIB_MKENUMS = @GLIB_MKENUMS@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INSTOBJEXT = @INSTOBJEXT@ INTLLIBS = @INTLLIBS@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@ INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@ INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBMPDCLIENT2_CFLAGS = @LIBMPDCLIENT2_CFLAGS@ LIBMPDCLIENT2_LIBS = @LIBMPDCLIENT2_LIBS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MKINSTALLDIRS = @MKINSTALLDIRS@ MSGFMT = @MSGFMT@ MSGFMT_OPTS = @MSGFMT_OPTS@ MSGMERGE = @MSGMERGE@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ PLUGINDIR = @PLUGINDIR@ PLUGIN_DATA_DIR = @PLUGIN_DATA_DIR@ POFILES = @POFILES@ POSUB = @POSUB@ PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ PYGTK_CFLAGS = @PYGTK_CFLAGS@ PYGTK_CODEGEN = @PYGTK_CODEGEN@ PYGTK_DEFSDIR = @PYGTK_DEFSDIR@ PYGTK_H2DEF = @PYGTK_H2DEF@ PYGTK_LIBS = @PYGTK_LIBS@ PYTHON = @PYTHON@ PYTHON_CFLAGS = @PYTHON_CFLAGS@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_EXTRA_LIBS = @PYTHON_EXTRA_LIBS@ PYTHON_LIBS = @PYTHON_LIBS@ PYTHON_LIB_LOC = @PYTHON_LIB_LOC@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ PYTHON_PREFIX = @PYTHON_PREFIX@ PYTHON_VERSION = @PYTHON_VERSION@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ TAGLIB_CFLAGS = @TAGLIB_CFLAGS@ TAGLIB_LIBS = @TAGLIB_LIBS@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ WARNINGS = @WARNINGS@ XGETTEXT = @XGETTEXT@ XMMS2_CFLAGS = @XMMS2_CFLAGS@ XMMS2_LIBS = @XMMS2_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ intltool__v_merge_options_ = @intltool__v_merge_options_@ intltool__v_merge_options_0 = @intltool__v_merge_options_0@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pkgpyexecdir = @pkgpyexecdir@ pkgpythondir = @pkgpythondir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ pyexecdir = @pyexecdir@ pythondir = @pythondir@ runstatedir = @runstatedir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ SUBDIRS = $(am__append_1) all: all-recursive .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign bindings/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign bindings/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs # This directory's subdirectories are mostly independent; you can cd # into them and run 'make' without going through this Makefile. # To change the values of 'make' variables: instead of editing Makefiles, # (1) if the variable is set in 'config.status', edit 'config.status' # (which will cause the Makefiles to be regenerated when you run 'make'); # (2) otherwise, pass the desired values on the 'make' command line. $(am__recursive_targets): @fail=; \ if $(am__make_keepgoing); then \ failcom='fail=yes'; \ else \ failcom='exit 1'; \ fi; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" ID: $(am__tagged_files) $(am__define_uniq_tagged_files); mkid -fID $$unique tags: tags-recursive TAGS: tags tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: ctags-recursive CTAGS: ctags ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" cscopelist: cscopelist-recursive cscopelist-am: $(am__tagged_files) list='$(am__tagged_files)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ esac; \ for i in $$list; do \ if test -f "$$i"; then \ echo "$(subdir)/$$i"; \ else \ echo "$$sdir/$$i"; \ fi; \ done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ $(am__make_dryrun) \ || test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done check-am: all-am check: check-recursive all-am: Makefile installdirs: installdirs-recursive installdirs-am: install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-recursive -rm -f Makefile distclean-am: clean-am distclean-generic distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: .MAKE: $(am__recursive_targets) install-am install-strip .PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \ check-am clean clean-generic clean-libtool cscopelist-am ctags \ ctags-am distclean distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ installdirs-am maintainer-clean maintainer-clean-generic \ mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ ps ps-am tags tags-am uninstall uninstall-am .PRECIOUS: Makefile # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: ario-1.6/bindings/python/0000755000175000017500000000000013226745613012442 500000000000000ario-1.6/bindings/python/Makefile.in0000644000175000017500000005704613226745576014453 00000000000000# Makefile.in generated by automake 1.15.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2017 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__is_gnu_make = { \ if test -z '$(MAKELEVEL)'; then \ false; \ elif test -n '$(MAKE_HOST)'; then \ true; \ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ true; \ else \ false; \ fi; \ } am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = bindings/python ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = LTLIBRARIES = $(noinst_LTLIBRARIES) am__DEPENDENCIES_1 = ario_la_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) am_ario_la_OBJECTS = ario_la-override_common.lo nodist_ario_la_OBJECTS = ario_la-ario.lo ario_la_OBJECTS = $(am_ario_la_OBJECTS) $(nodist_ario_la_OBJECTS) AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent am__v_lt_1 = ario_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(ario_la_CFLAGS) \ $(CFLAGS) $(ario_la_LDFLAGS) $(LDFLAGS) -o $@ AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) AM_V_CC = $(am__v_CC_@AM_V@) am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) am__v_CC_0 = @echo " CC " $@; am__v_CC_1 = CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_CCLD = $(am__v_CCLD_@AM_V@) am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) am__v_CCLD_0 = @echo " CCLD " $@; am__v_CCLD_1 = SOURCES = $(ario_la_SOURCES) $(nodist_ario_la_SOURCES) DIST_SOURCES = $(ario_la_SOURCES) am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) # Read a list of newline-separated strings from the standard input, # and print each of them once, without duplicates. Input order is # *not* preserved. am__uniquify_input = $(AWK) '\ BEGIN { nonempty = 0; } \ { items[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in items) print i; }; } \ ' # Make sure the list of sources is unique. This is necessary because, # e.g., the same source file might be shared among _SOURCES variables # for different programs/libraries. am__define_uniq_tagged_files = \ list='$(am__tagged_files)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALL_LINGUAS = @ALL_LINGUAS@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AR_FLAGS = @AR_FLAGS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AVAHI_CFLAGS = @AVAHI_CFLAGS@ AVAHI_LIBS = @AVAHI_LIBS@ AWK = @AWK@ CATALOGS = @CATALOGS@ CATOBJEXT = @CATOBJEXT@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIRNAME = @DATADIRNAME@ DBUS_CFLAGS = @DBUS_CFLAGS@ DBUS_GLIB_BIN = @DBUS_GLIB_BIN@ DBUS_LIBS = @DBUS_LIBS@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DEPS_CFLAGS = @DEPS_CFLAGS@ DEPS_LIBS = @DEPS_LIBS@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ GLIB_MKENUMS = @GLIB_MKENUMS@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INSTOBJEXT = @INSTOBJEXT@ INTLLIBS = @INTLLIBS@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@ INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@ INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBMPDCLIENT2_CFLAGS = @LIBMPDCLIENT2_CFLAGS@ LIBMPDCLIENT2_LIBS = @LIBMPDCLIENT2_LIBS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MKINSTALLDIRS = @MKINSTALLDIRS@ MSGFMT = @MSGFMT@ MSGFMT_OPTS = @MSGFMT_OPTS@ MSGMERGE = @MSGMERGE@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ PLUGINDIR = @PLUGINDIR@ PLUGIN_DATA_DIR = @PLUGIN_DATA_DIR@ POFILES = @POFILES@ POSUB = @POSUB@ PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ PYGTK_CFLAGS = @PYGTK_CFLAGS@ PYGTK_CODEGEN = @PYGTK_CODEGEN@ PYGTK_DEFSDIR = @PYGTK_DEFSDIR@ PYGTK_H2DEF = @PYGTK_H2DEF@ PYGTK_LIBS = @PYGTK_LIBS@ PYTHON = @PYTHON@ PYTHON_CFLAGS = @PYTHON_CFLAGS@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_EXTRA_LIBS = @PYTHON_EXTRA_LIBS@ PYTHON_LIBS = @PYTHON_LIBS@ PYTHON_LIB_LOC = @PYTHON_LIB_LOC@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ PYTHON_PREFIX = @PYTHON_PREFIX@ PYTHON_VERSION = @PYTHON_VERSION@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ TAGLIB_CFLAGS = @TAGLIB_CFLAGS@ TAGLIB_LIBS = @TAGLIB_LIBS@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ WARNINGS = @WARNINGS@ XGETTEXT = @XGETTEXT@ XMMS2_CFLAGS = @XMMS2_CFLAGS@ XMMS2_LIBS = @XMMS2_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ intltool__v_merge_options_ = @intltool__v_merge_options_@ intltool__v_merge_options_0 = @intltool__v_merge_options_0@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pkgpyexecdir = @pkgpyexecdir@ pkgpythondir = @pkgpythondir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ pyexecdir = @pyexecdir@ pythondir = @pythondir@ runstatedir = @runstatedir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ noinst_LTLIBRARIES = \ ario.la nodist_ario_la_SOURCES = \ ario.c ario_la_SOURCES = override_common.c override_common.h ario_la_LDFLAGS = \ -module -avoid-version ario_la_LIBADD = \ $(PYTHON_LIB_LOC) \ $(PYTHON_LIBS) \ $(PYTHON_EXTRA_LIBS) \ $(PYGTK_LIBS) ario_la_CFLAGS = \ -I$(top_srcdir) \ -I$(top_srcdir)/src \ -I$(top_srcdir)/src/lib \ -I$(top_srcdir)/src/plugins \ -I$(top_srcdir)/src/shell \ $(DEPS_CFLAGS) \ $(NO_STRICT_ALIASING_CFLAGS) \ $(PYGTK_CFLAGS) \ $(PYTHON_CFLAGS) \ $(AM_CFLAGS) BINDING_ARIO_HEADERS_SRCDIR_IN = \ src/plugins/ario-plugin.h \ src/sources/ario-source-manager.h \ src/sources/ario-source.h \ src/servers/ario-server.h \ src/shell/ario-shell.h BINDING_HEADERS_BUILDDIR_IN = BINDING_ARIO_HEADERS_SRCDIR := $(addprefix $(top_srcdir)/,$(BINDING_ARIO_HEADERS_SRCDIR_IN)) BINDING_HEADERS_BUILDDIR := $(addprefix $(top_builddir)/,$(BINDING_HEADERS_BUILDDIR_IN)) BUILT_SOURCES = \ ario.c EXTRA_DIST = \ ario.override \ ario.defs CLEANFILES = $(BUILT_SOURCES) all: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) all-am .SUFFIXES: .SUFFIXES: .c .lo .o .obj $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign bindings/python/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign bindings/python/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): clean-noinstLTLIBRARIES: -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) @list='$(noinst_LTLIBRARIES)'; \ locs=`for p in $$list; do echo $$p; done | \ sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ sort -u`; \ test -z "$$locs" || { \ echo rm -f $${locs}; \ rm -f $${locs}; \ } ario.la: $(ario_la_OBJECTS) $(ario_la_DEPENDENCIES) $(EXTRA_ario_la_DEPENDENCIES) $(AM_V_CCLD)$(ario_la_LINK) $(ario_la_OBJECTS) $(ario_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ario_la-ario.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ario_la-override_common.Plo@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\ @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ @am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< .c.obj: @am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\ @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\ @am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\ @am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ @am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< ario_la-override_common.lo: override_common.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ario_la_CFLAGS) $(CFLAGS) -MT ario_la-override_common.lo -MD -MP -MF $(DEPDIR)/ario_la-override_common.Tpo -c -o ario_la-override_common.lo `test -f 'override_common.c' || echo '$(srcdir)/'`override_common.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/ario_la-override_common.Tpo $(DEPDIR)/ario_la-override_common.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='override_common.c' object='ario_la-override_common.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ario_la_CFLAGS) $(CFLAGS) -c -o ario_la-override_common.lo `test -f 'override_common.c' || echo '$(srcdir)/'`override_common.c ario_la-ario.lo: ario.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ario_la_CFLAGS) $(CFLAGS) -MT ario_la-ario.lo -MD -MP -MF $(DEPDIR)/ario_la-ario.Tpo -c -o ario_la-ario.lo `test -f 'ario.c' || echo '$(srcdir)/'`ario.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/ario_la-ario.Tpo $(DEPDIR)/ario_la-ario.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ario.c' object='ario_la-ario.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ario_la_CFLAGS) $(CFLAGS) -c -o ario_la-ario.lo `test -f 'ario.c' || echo '$(srcdir)/'`ario.c mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs ID: $(am__tagged_files) $(am__define_uniq_tagged_files); mkid -fID $$unique tags: tags-am TAGS: tags tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: ctags-am CTAGS: ctags ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" cscopelist: cscopelist-am cscopelist-am: $(am__tagged_files) list='$(am__tagged_files)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ esac; \ for i in $$list; do \ if test -f "$$i"; then \ echo "$(subdir)/$$i"; \ else \ echo "$$sdir/$$i"; \ fi; \ done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$(top_distdir)" distdir="$(distdir)" \ dist-hook check-am: all-am check: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) check-am all-am: Makefile $(LTLIBRARIES) installdirs: install: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES) clean: clean-am clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \ mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: all check install install-am install-strip .PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ clean-libtool clean-noinstLTLIBRARIES cscopelist-am ctags \ ctags-am dist-hook distclean distclean-compile \ distclean-generic distclean-libtool distclean-tags distdir dvi \ dvi-am html html-am info info-am install install-am \ install-data install-data-am install-dvi install-dvi-am \ install-exec install-exec-am install-html install-html-am \ install-info install-info-am install-man install-pdf \ install-pdf-am install-ps install-ps-am install-strip \ installcheck installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags tags-am uninstall uninstall-am .PRECIOUS: Makefile $(top_srcdir)/src/ario-enum-types.h: cd $(top_srcdir)/src && $(MAKE) regenerate-enum-types ario.c: ario.defs ario.override $(top_builddir)/src/ario-enum-types.h ( cd $(srcdir) && $(PYGTK_CODEGEN) \ --register $(PYGTK_DEFSDIR)/gdk-types.defs \ --register $(PYGTK_DEFSDIR)/gtk-types.defs \ --override $*.override \ --prefix py$* $( $@ regenerate-python-binding: $(PYGTK_H2DEF) $(sort $(BINDING_ARIO_HEADERS_SRCDIR) $(BINDING_HEADERS_BUILDDIR)) > ario.defs dist-hook: cd $(distdir); rm -f $(BUILT_SOURCES) # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: ario-1.6/bindings/python/ario.override0000644000175000017500000000263413226723436015061 00000000000000%% headers #define NO_IMPORT_PYGOBJECT #include "pygobject.h" #include #include "override_common.h" #include "ario-plugin.h" #include "servers/ario-server.h" #include "shell/ario-shell.h" #include "ario-enum-types.h" #include "sources/ario-source-manager.h" #include "sources/ario-source.h" void pyario_register_classes (PyObject *d); void pyario_add_constants (PyObject *module, const gchar *strip_prefix); %% modulename ario %% import gtk.Widget as PyGtkWidget_Type import gobject.GObject as PyGObject_Type import gtk.Window as PyGtkWindow_Type import gtk.VBox as PyGtkVBox_Type import gtk.HBox as PyGtkHBox_Type import gtk.ActionGroup as PyGtkActionGroup_Type import gtk.UIManager as PyGtkUIManager_Type import gtk.Notebook as PyGtkNotebook_Type %% new-constructor ARIO_TYPE_SOURCE %% override ario_server_playlist_append_songs kwargs static PyObject * _wrap_ario_server_playlist_append_songs (PyGObject *self, PyObject *args, PyObject *kwargs) { static char *kwlist[] = { "songs", "play", NULL }; PyObject *py_songs = NULL; GSList *songs; gboolean play = FALSE; if (!PyArg_ParseTupleAndKeywords(args, kwargs, "Ob:Server.append_songs", kwlist, &py_songs, &play)) return NULL; songs = _helper_unwrap_string_pyslist (py_songs, FALSE); ario_server_playlist_append_songs (songs, play); g_slist_free (songs); Py_RETURN_NONE; } ario-1.6/bindings/python/override_common.h0000644000175000017500000000517013226723436015724 00000000000000/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- * * Utility functions for Python bindings. * Stolen from Epiphany. * * Copyright (C) 2005 Adam Hooper * Copyright (C) 2005 Christian Persch * Copyright (C) 2005 Crispin Flowerday * * 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, or (at your option) * any later version. * * The Rhythmbox authors hereby grant permission for non-GPL compatible * GStreamer plugins to be used and distributed together with GStreamer * and Rhythmbox. This permission is above and beyond the permissions granted * by the GPL license by which Rhythmbox is covered. If you modify this code * you may extend this exception to your version of the code, but you are not * obligated to do so. If you do not wish to do so, delete this exception * statement from your 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 St, Fifth Floor, Boston, MA 02110-1301 USA. * */ #ifndef __OVERRIDE_COMMON_H #define __OVERRIDE_COMMON_H PyObject * _helper_wrap_gobject_glist (const GList *list); /* references objects */ PyObject * _helper_wrap_string_glist (const GList *list); /* duplicated strings */ PyObject * _helper_wrap_pointer_glist (const GList *list, GType boxed_type); PyObject * _helper_wrap_boxed_glist (const GList *list, GType boxed_type, gboolean copy_boxed, gboolean own_ref); PyObject * _helper_wrap_boxed_gptrarray (GPtrArray *list, GType type, gboolean own_ref, gboolean dealloc); GList * _helper_unwrap_string_pylist (PyObject *py_list, gboolean duplicate); GSList * _helper_unwrap_string_pyslist (PyObject *py_list, gboolean duplicate); GList * _helper_unwrap_pointer_pylist (PyObject *py_list, GType type); GList * _helper_unwrap_boxed_pylist (PyObject *py_list, /* does not copy boxed */ GType type); GList * _helper_unwrap_gobject_pylist (PyObject *py_list); /* does not reference objects */ GPtrArray* _helper_unwrap_boxed_gptrarray (PyObject *list, GType type); /* does not copy boxed */ #endif /* __OVERRIDE_COMMON_H */ ario-1.6/bindings/python/ario.defs0000644000175000017500000004015113226723442014154 00000000000000;; -*- scheme -*- ; object definitions ... (define-object Plugin (in-module "Ario") (parent "GObject") (c-name "ArioPlugin") (gtype-id "ARIO_TYPE_PLUGIN") ) (define-object Server (in-module "Ario") (parent "GObject") (c-name "ArioServer") (gtype-id "ARIO_TYPE_SERVER") ) (define-object Shell (in-module "Ario") (parent "GtkWindow") (c-name "ArioShell") (gtype-id "ARIO_TYPE_SHELL") ) (define-object Source (in-module "Ario") (parent "GtkHBox") (c-name "ArioSource") (gtype-id "ARIO_TYPE_SOURCE") ) (define-object SourceManager (in-module "Ario") (parent "GtkNotebook") (c-name "ArioSourceManager") (gtype-id "ARIO_TYPE_SOURCE_MANAGER") ) ;; Enumerations and flags ... (define-enum ServerType (in-module "Ario") (c-name "ArioServerType") (gtype-id "ARIO_TYPE_SERVER_TYPE") (values '("mpd" "ArioServerMpd") '("xmms" "ArioServerXmms") ) ) (define-enum ServerActionType (in-module "Ario") (c-name "ArioServerActionType") (gtype-id "ARIO_TYPE_SERVER_ACTION_TYPE") (values '("add" "ARIO_SERVER_ACTION_ADD") '("delete-id" "ARIO_SERVER_ACTION_DELETE_ID") '("delete-pos" "ARIO_SERVER_ACTION_DELETE_POS") '("move" "ARIO_SERVER_ACTION_MOVE") '("moveid" "ARIO_SERVER_ACTION_MOVEID") ) ) (define-enum Visibility (in-module "Ario") (c-name "ArioVisibility") (gtype-id "ARIO_TYPE_VISIBILITY") (values '("hidden" "VISIBILITY_HIDDEN") '("visible" "VISIBILITY_VISIBLE") '("toggle" "VISIBILITY_TOGGLE") ) ) (define-enum SourceType (in-module "Ario") (c-name "ArioSourceType") (gtype-id "ARIO_TYPE_SOURCE_TYPE") (values '("browser" "ARIO_SOURCE_BROWSER") '("radio" "ARIO_SOURCE_RADIO") '("search" "ARIO_SOURCE_SEARCH") '("playlists" "ARIO_SOURCE_PLAYLISTS") '("filesystem" "ARIO_SOURCE_FILESYSTEM") ) ) ;; From ario-plugin.h (define-function ario_plugin_get_type (c-name "ario_plugin_get_type") (return-type "GType") ) (define-method activate (of-object "ArioPlugin") (c-name "ario_plugin_activate") (return-type "none") (parameters '("ArioShell*" "shell") ) ) (define-method deactivate (of-object "ArioPlugin") (c-name "ario_plugin_deactivate") (return-type "none") (parameters '("ArioShell*" "shell") ) ) (define-method is_configurable (of-object "ArioPlugin") (c-name "ario_plugin_is_configurable") (return-type "gboolean") ) (define-method create_configure_dialog (of-object "ArioPlugin") (c-name "ario_plugin_create_configure_dialog") (return-type "GtkWidget*") ) (define-function ario_plugin_get_plugin_paths (c-name "ario_plugin_get_plugin_paths") (return-type "GSList*") ) (define-function ario_plugin_get_plugin_data_paths (c-name "ario_plugin_get_plugin_data_paths") (return-type "GSList*") ) (define-function ario_plugin_find_file (c-name "ario_plugin_find_file") (return-type "char*") (parameters '("const-char*" "file") ) ) ;; From ario-server.h (define-function ario_server_get_type (c-name "ario_server_get_type") (return-type "GType") ) (define-function ario_server_get_instance (c-name "ario_server_get_instance") (return-type "ArioServer*") ) (define-function ario_server_connect (c-name "ario_server_connect") (return-type "gboolean") ) (define-function ario_server_disconnect (c-name "ario_server_disconnect") (return-type "none") ) (define-function ario_server_reconnect (c-name "ario_server_reconnect") (return-type "none") ) (define-function ario_server_shutdown (c-name "ario_server_shutdown") (return-type "none") ) (define-function ario_server_is_connected (c-name "ario_server_is_connected") (return-type "gboolean") ) (define-function ario_server_update_status (c-name "ario_server_update_status") (return-type "gboolean") ) (define-function ario_server_update_db (c-name "ario_server_update_db") (return-type "none") (parameters '("const-gchar*" "path") ) ) (define-function ario_server_list_tags (c-name "ario_server_list_tags") (return-type "GSList*") (parameters '("const-ArioServerTag" "tag") '("const-ArioServerCriteria*" "criteria") ) ) (define-function ario_server_get_albums (c-name "ario_server_get_albums") (return-type "GSList*") (parameters '("const-ArioServerCriteria*" "criteria") ) ) (define-function ario_server_get_songs (c-name "ario_server_get_songs") (return-type "GSList*") (parameters '("const-ArioServerCriteria*" "criteria") '("const-gboolean" "exact") ) ) (define-function ario_server_get_songs_from_playlist (c-name "ario_server_get_songs_from_playlist") (return-type "GSList*") (parameters '("char*" "playlist") ) ) (define-function ario_server_get_playlists (c-name "ario_server_get_playlists") (return-type "GSList*") ) (define-function ario_server_get_playlist_changes (c-name "ario_server_get_playlist_changes") (return-type "GSList*") (parameters '("gint64" "playlist_id") ) ) (define-function ario_server_get_current_song_on_server (c-name "ario_server_get_current_song_on_server") (return-type "ArioServerSong*") ) (define-function ario_server_get_current_song (c-name "ario_server_get_current_song") (return-type "ArioServerSong*") ) (define-function ario_server_get_current_artist (c-name "ario_server_get_current_artist") (return-type "char*") ) (define-function ario_server_get_current_album (c-name "ario_server_get_current_album") (return-type "char*") ) (define-function ario_server_get_current_song_path (c-name "ario_server_get_current_song_path") (return-type "char*") ) (define-function ario_server_get_current_song_id (c-name "ario_server_get_current_song_id") (return-type "int") ) (define-function ario_server_get_current_state (c-name "ario_server_get_current_state") (return-type "int") ) (define-function ario_server_get_current_elapsed (c-name "ario_server_get_current_elapsed") (return-type "int") ) (define-function ario_server_get_current_volume (c-name "ario_server_get_current_volume") (return-type "int") ) (define-function ario_server_get_current_total_time (c-name "ario_server_get_current_total_time") (return-type "int") ) (define-function ario_server_get_current_playlist_id (c-name "ario_server_get_current_playlist_id") (return-type "gint64") ) (define-function ario_server_get_current_playlist_length (c-name "ario_server_get_current_playlist_length") (return-type "int") ) (define-function ario_server_get_current_playlist_total_time (c-name "ario_server_get_current_playlist_total_time") (return-type "int") ) (define-function ario_server_get_crossfadetime (c-name "ario_server_get_crossfadetime") (return-type "int") ) (define-function ario_server_get_current_random (c-name "ario_server_get_current_random") (return-type "gboolean") ) (define-function ario_server_get_current_repeat (c-name "ario_server_get_current_repeat") (return-type "gboolean") ) (define-function ario_server_get_updating (c-name "ario_server_get_updating") (return-type "gboolean") ) (define-function ario_server_set_current_elapsed (c-name "ario_server_set_current_elapsed") (return-type "none") (parameters '("const-gint" "elapsed") ) ) (define-function ario_server_set_current_volume (c-name "ario_server_set_current_volume") (return-type "none") (parameters '("const-gint" "volume") ) ) (define-function ario_server_get_outputs (c-name "ario_server_get_outputs") (return-type "GSList*") ) (define-function ario_server_set_current_random (c-name "ario_server_set_current_random") (return-type "none") (parameters '("const-gboolean" "random") ) ) (define-function ario_server_set_current_repeat (c-name "ario_server_set_current_repeat") (return-type "none") (parameters '("const-gboolean" "repeat") ) ) (define-function ario_server_set_crossfadetime (c-name "ario_server_set_crossfadetime") (return-type "none") (parameters '("const-int" "crossfadetime") ) ) (define-function ario_server_is_paused (c-name "ario_server_is_paused") (return-type "gboolean") ) (define-function ario_server_do_next (c-name "ario_server_do_next") (return-type "none") ) (define-function ario_server_do_prev (c-name "ario_server_do_prev") (return-type "none") ) (define-function ario_server_do_play (c-name "ario_server_do_play") (return-type "none") ) (define-function ario_server_do_play_pos (c-name "ario_server_do_play_pos") (return-type "none") (parameters '("gint" "id") ) ) (define-function ario_server_do_pause (c-name "ario_server_do_pause") (return-type "none") ) (define-function ario_server_do_stop (c-name "ario_server_do_stop") (return-type "none") ) (define-function ario_server_free_album (c-name "ario_server_free_album") (return-type "none") (parameters '("ArioServerAlbum*" "server_album") ) ) (define-function ario_server_copy_album (c-name "ario_server_copy_album") (return-type "ArioServerAlbum*") (parameters '("const-ArioServerAlbum*" "server_album") ) ) (define-function ario_server_clear (c-name "ario_server_clear") (return-type "none") ) (define-function ario_server_shuffle (c-name "ario_server_shuffle") (return-type "none") ) (define-function ario_server_queue_add (c-name "ario_server_queue_add") (return-type "none") (parameters '("const-char*" "path") ) ) (define-function ario_server_queue_delete_id (c-name "ario_server_queue_delete_id") (return-type "none") (parameters '("const-int" "id") ) ) (define-function ario_server_queue_delete_pos (c-name "ario_server_queue_delete_pos") (return-type "none") (parameters '("const-int" "pos") ) ) (define-function ario_server_queue_move (c-name "ario_server_queue_move") (return-type "none") (parameters '("const-int" "old_pos") '("const-int" "new_pos") ) ) (define-function ario_server_queue_moveid (c-name "ario_server_queue_moveid") (return-type "none") (parameters '("const-int" "id") '("const-int" "pos") ) ) (define-function ario_server_queue_commit (c-name "ario_server_queue_commit") (return-type "none") ) (define-function ario_server_insert_at (c-name "ario_server_insert_at") (return-type "none") (parameters '("const-GSList*" "songs") '("const-gint" "pos") ) ) (define-function ario_server_delete_playlist (c-name "ario_server_delete_playlist") (return-type "none") (parameters '("const-char*" "name") ) ) (define-function ario_server_get_outputs (c-name "ario_server_get_outputs") (return-type "GSList*") ) (define-function ario_server_enable_output (c-name "ario_server_enable_output") (return-type "none") (parameters '("const-int" "id") '("const-gboolean" "enabled") ) ) (define-function ario_server_get_stats (c-name "ario_server_get_stats") (return-type "ArioServerStats*") ) (define-function ario_server_get_songs_info (c-name "ario_server_get_songs_info") (return-type "GList*") (parameters '("GSList*" "paths") ) ) (define-function ario_server_list_files (c-name "ario_server_list_files") (return-type "ArioServerFileList*") (parameters '("const-char*" "path") '("const-gboolean" "recursive") ) ) (define-function ario_server_free_file_list (c-name "ario_server_free_file_list") (return-type "none") (parameters '("ArioServerFileList*" "files") ) ) (define-method copy (of-object "ArioServerCriteria") (c-name "ario_server_criteria_copy") (return-type "ArioServerCriteria*") ) (define-method free (of-object "ArioServerCriteria") (c-name "ario_server_criteria_free") (return-type "none") ) (define-function ario_server_get_items_names (c-name "ario_server_get_items_names") (return-type "gchar**") ) (define-method get_tag (of-object "ArioServerSong") (c-name "ario_server_song_get_tag") (return-type "const-gchar*") (parameters '("ArioServerTag" "tag") ) ) (define-function ario_server_playlist_add_songs (c-name "ario_server_playlist_add_songs") (return-type "none") (parameters '("const-GSList*" "songs") '("const-gint" "pos") '("const-gboolean" "play") ) ) (define-function ario_server_playlist_add_dir (c-name "ario_server_playlist_add_dir") (return-type "none") (parameters '("const-gchar*" "dir") '("const-gint" "pos") '("const-gboolean" "play") ) ) (define-function ario_server_playlist_add_criterias (c-name "ario_server_playlist_add_criterias") (return-type "none") (parameters '("const-GSList*" "criterias") '("const-gint" "pos") '("const-gboolean" "play") '("const-gint" "nb_entries") ) ) (define-function ario_server_playlist_append_artists (c-name "ario_server_playlist_append_artists") (return-type "none") (parameters '("const-GSList*" "artists") '("const-gboolean" "play") '("const-gint" "nb_entries") ) ) (define-function ario_server_playlist_append_songs (c-name "ario_server_playlist_append_songs") (return-type "none") (parameters '("const-GSList*" "songs") '("const-gboolean" "play") ) ) (define-function ario_server_playlist_append_server_songs (c-name "ario_server_playlist_append_server_songs") (return-type "none") (parameters '("const-GSList*" "songs") '("const-gboolean" "play") ) ) (define-function ario_server_playlist_append_dir (c-name "ario_server_playlist_append_dir") (return-type "none") (parameters '("const-gchar*" "dir") '("const-gboolean" "play") ) ) (define-function ario_server_playlist_append_criterias (c-name "ario_server_playlist_append_criterias") (return-type "none") (parameters '("const-GSList*" "criterias") '("const-gboolean" "play") '("const-gint" "nb_entries") ) ) ;; From ario-shell.h (define-function ario_shell_get_type (c-name "ario_shell_get_type") (return-type "GType") ) (define-function ario_shell_new (c-name "ario_shell_new") (is-constructor-of "ArioShell") (return-type "ArioShell*") ) (define-method construct (of-object "ArioShell") (c-name "ario_shell_construct") (return-type "none") (parameters '("gboolean" "minimized") ) ) (define-method shutdown (of-object "ArioShell") (c-name "ario_shell_shutdown") (return-type "none") ) (define-method present (of-object "ArioShell") (c-name "ario_shell_present") (return-type "none") ) (define-method set_visibility (of-object "ArioShell") (c-name "ario_shell_set_visibility") (return-type "none") (parameters '("ArioVisibility" "state") ) ) ;; From ario-source-manager.h (define-function ario_source_manager_get_type (c-name "ario_source_manager_get_type") (return-type "GType") ) (define-function ario_source_manager_get_instance (c-name "ario_source_manager_get_instance") (return-type "GtkWidget*") (parameters '("GtkUIManager*" "mgr") '("GtkActionGroup*" "group") ) ) (define-method manager_append (of-object "ArioSource") (c-name "ario_source_manager_append") (return-type "none") ) (define-method manager_remove (of-object "ArioSource") (c-name "ario_source_manager_remove") (return-type "none") ) (define-function ario_source_manager_reorder (c-name "ario_source_manager_reorder") (return-type "none") ) (define-function ario_source_manager_shutdown (c-name "ario_source_manager_shutdown") (return-type "none") ) (define-function ario_source_manager_goto_playling_song (c-name "ario_source_manager_goto_playling_song") (return-type "none") ) ;; From ario-source.h (define-function ario_source_get_type (c-name "ario_source_get_type") (return-type "GType") ) (define-method get_id (of-object "ArioSource") (c-name "ario_source_get_id") (return-type "gchar*") ) (define-method get_name (of-object "ArioSource") (c-name "ario_source_get_name") (return-type "gchar*") ) (define-method get_icon (of-object "ArioSource") (c-name "ario_source_get_icon") (return-type "gchar*") ) (define-method shutdown (of-object "ArioSource") (c-name "ario_source_shutdown") (return-type "none") ) (define-method select (of-object "ArioSource") (c-name "ario_source_select") (return-type "none") ) (define-method unselect (of-object "ArioSource") (c-name "ario_source_unselect") (return-type "none") ) (define-method goto_playling_song (of-object "ArioSource") (c-name "ario_source_goto_playling_song") (return-type "none") ) ario-1.6/bindings/python/Makefile.am0000644000175000017500000000327513226723437014425 00000000000000## Process this file with automake to produce Makefile.in noinst_LTLIBRARIES = \ ario.la nodist_ario_la_SOURCES = \ ario.c ario_la_SOURCES = override_common.c override_common.h ario_la_LDFLAGS = \ -module -avoid-version ario_la_LIBADD = \ $(PYTHON_LIB_LOC) \ $(PYTHON_LIBS) \ $(PYTHON_EXTRA_LIBS) \ $(PYGTK_LIBS) ario_la_CFLAGS = \ -I$(top_srcdir) \ -I$(top_srcdir)/src \ -I$(top_srcdir)/src/lib \ -I$(top_srcdir)/src/plugins \ -I$(top_srcdir)/src/shell \ $(DEPS_CFLAGS) \ $(NO_STRICT_ALIASING_CFLAGS) \ $(PYGTK_CFLAGS) \ $(PYTHON_CFLAGS) \ $(AM_CFLAGS) $(top_srcdir)/src/ario-enum-types.h: cd $(top_srcdir)/src && $(MAKE) regenerate-enum-types ario.c: ario.defs ario.override $(top_builddir)/src/ario-enum-types.h ( cd $(srcdir) && $(PYGTK_CODEGEN) \ --register $(PYGTK_DEFSDIR)/gdk-types.defs \ --register $(PYGTK_DEFSDIR)/gtk-types.defs \ --override $*.override \ --prefix py$* $( $@ BINDING_ARIO_HEADERS_SRCDIR_IN = \ src/plugins/ario-plugin.h \ src/sources/ario-source-manager.h \ src/sources/ario-source.h \ src/servers/ario-server.h \ src/shell/ario-shell.h BINDING_HEADERS_BUILDDIR_IN = BINDING_ARIO_HEADERS_SRCDIR := $(addprefix $(top_srcdir)/,$(BINDING_ARIO_HEADERS_SRCDIR_IN)) BINDING_HEADERS_BUILDDIR := $(addprefix $(top_builddir)/,$(BINDING_HEADERS_BUILDDIR_IN)) regenerate-python-binding: $(PYGTK_H2DEF) $(sort $(BINDING_ARIO_HEADERS_SRCDIR) $(BINDING_HEADERS_BUILDDIR)) > ario.defs BUILT_SOURCES = \ ario.c EXTRA_DIST = \ ario.override \ ario.defs CLEANFILES = $(BUILT_SOURCES) dist-hook: cd $(distdir); rm -f $(BUILT_SOURCES) ario-1.6/bindings/python/override_common.c0000644000175000017500000001535313226723436015723 00000000000000/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- * * Utility functions for Python bindings. * Stolen from Epiphany. * * Copyright (C) 2005 Adam Hooper * Copyright (C) 2005 Christian Persch * Copyright (C) 2005 Crispin Flowerday * * 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, or (at your option) * any later version. * * The Rhythmbox authors hereby grant permission for non-GPL compatible * GStreamer plugins to be used and distributed together with GStreamer * and Rhythmbox. This permission is above and beyond the permissions granted * by the GPL license by which Rhythmbox is covered. If you modify this code * you may extend this exception to your version of the code, but you are not * obligated to do so. If you do not wish to do so, delete this exception * statement from your 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 St, Fifth Floor, Boston, MA 02110-1301 USA. * */ #include "config.h" #include #include #include "override_common.h" PyObject * _helper_wrap_gobject_glist (const GList *list) { PyObject *py_list; const GList *tmp; if ((py_list = PyList_New(0)) == NULL) { return NULL; } for (tmp = list; tmp != NULL; tmp = tmp->next) { PyObject *py_obj = pygobject_new(G_OBJECT(tmp->data)); if (py_obj == NULL) { Py_DECREF(py_list); return NULL; } PyList_Append(py_list, py_obj); Py_DECREF(py_obj); } return py_list; } PyObject * _helper_wrap_pointer_glist (const GList *list, GType boxed_type) { PyObject *py_list; const GList *tmp; if ((py_list = PyList_New(0)) == NULL) { return NULL; } for (tmp = list; tmp != NULL; tmp = tmp->next) { PyObject *py_obj = pyg_pointer_new(boxed_type, tmp->data); if (py_obj == NULL) { Py_DECREF(py_list); return NULL; } PyList_Append(py_list, py_obj); Py_DECREF(py_obj); } return py_list; } PyObject * _helper_wrap_boxed_glist (const GList *list, GType boxed_type, gboolean copy_boxed, gboolean own_ref) { PyObject *py_list; const GList *tmp; if ((py_list = PyList_New(0)) == NULL) { return NULL; } for (tmp = list; tmp != NULL; tmp = tmp->next) { PyObject *py_obj = pyg_boxed_new(boxed_type, tmp->data, copy_boxed, own_ref); if (py_obj == NULL) { Py_DECREF(py_list); return NULL; } PyList_Append(py_list, py_obj); Py_DECREF(py_obj); } return py_list; } PyObject * _helper_wrap_string_glist (const GList *list) { const GList *tmp; PyObject *py_list; if ((py_list = PyList_New(0)) == NULL) { return NULL; } for (tmp = list; tmp != NULL; tmp = tmp->next) { PyObject *str_obj = PyString_FromString (tmp->data); if (str_obj == NULL) { Py_DECREF(py_list); return NULL; } PyList_Append(py_list, str_obj); Py_DECREF(str_obj); } return py_list; } PyObject * _helper_wrap_boxed_gptrarray (GPtrArray *list, GType type, gboolean own_ref, gboolean dealloc) { PyObject *py_list; int i; if ((py_list = PyList_New(0)) == NULL) { return NULL; } for( i = 0; i < list->len; i++ ) { PyObject *obj = pyg_boxed_new (type, g_ptr_array_index(list,i), FALSE, own_ref); PyList_Append(py_list, obj); Py_DECREF(obj); } if (dealloc) g_ptr_array_free (list, TRUE); return py_list; } GList * _helper_unwrap_pointer_pylist (PyObject *py_list, GType type) { int size, i; GList *list = NULL; size = PyList_Size (py_list); for (i = 0; i < size; i++) { PyObject *py_ptr; gpointer ptr; py_ptr = PyList_GetItem (py_list, i); if (!pyg_pointer_check (py_ptr, type)) { g_list_free (list); return NULL; } ptr = pyg_pointer_get (py_ptr, void); list = g_list_prepend (list, ptr); } list = g_list_reverse (list); return list; } GList * _helper_unwrap_boxed_pylist (PyObject *py_list, GType type) { int size, i; GList *list = NULL; size = PyList_Size (py_list); for (i = 0; i < size; i++) { PyObject *py_ptr; gpointer ptr; py_ptr = PyList_GetItem (py_list, i); if (!pyg_boxed_check (py_ptr, type)) { g_list_free (list); return NULL; } ptr = pyg_boxed_get (py_ptr, void); list = g_list_prepend (list, ptr); } list = g_list_reverse (list); return list; } GList * _helper_unwrap_gobject_pylist (PyObject *py_list) { int size, i; GList *list = NULL; size = PyList_Size (py_list); for (i = 0; i < size; i++) { PyObject *py_ptr; gpointer ptr; py_ptr = PyList_GetItem (py_list, i); ptr = pygobject_get (py_ptr); list = g_list_prepend (list, ptr); } list = g_list_reverse (list); return list; } GList * _helper_unwrap_string_pylist (PyObject *py_list, gboolean duplicate) { int size, i; GList *list = NULL; size = PyList_Size (py_list); for (i = 0; i < size; i++) { PyObject *py_str; char *str; py_str = PyList_GetItem (py_list, i); str = PyString_AsString (py_str); if (duplicate) list = g_list_prepend (list, g_strdup (str)); else list = g_list_prepend (list, str); } list = g_list_reverse (list); return list; } GSList * _helper_unwrap_string_pyslist (PyObject *py_list, gboolean duplicate) { int size, i; GSList *list = NULL; size = PyList_Size (py_list); for (i = 0; i < size; i++) { PyObject *py_str; char *str; py_str = PyList_GetItem (py_list, i); str = PyString_AsString (py_str); if (duplicate) list = g_slist_append (list, g_strdup (str)); else list = g_slist_append (list, str); } return list; } GPtrArray* _helper_unwrap_boxed_gptrarray (PyObject *list, GType type) { int size, i; GPtrArray *array; array = g_ptr_array_new (); size = PyList_Size (list); for (i = 0; i < size; i++) { PyObject *py_boxed; gpointer boxed; py_boxed = PyList_GetItem (list, i); if (!pyg_boxed_check (py_boxed, type)) { g_ptr_array_free (array, FALSE); return NULL; } boxed = pyg_boxed_get (py_boxed, void); g_ptr_array_add (array, boxed); } return array; } ario-1.6/bindings/Makefile.am0000644000175000017500000000006513226723436013075 00000000000000SUBDIRS = if ENABLE_PYTHON SUBDIRS += python endif ario-1.6/po/0000755000175000017500000000000013226745613007742 500000000000000ario-1.6/po/nl.po0000644000175000017500000010440513226723435010635 00000000000000# Dutch translation for ario # Copyright (c) 2008 Rosetta Contributors and Canonical Ltd 2008 # This file is distributed under the same license as the ario package. # FIRST AUTHOR , 2008. # msgid "" msgstr "" "Project-Id-Version: ario\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2011-06-13 18:15+0200\n" "PO-Revision-Date: 2010-08-24 20:03+0000\n" "Last-Translator: D \n" "Language-Team: Dutch \n" "Language: nl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2011-06-13 16:32+0000\n" "X-Generator: Launchpad (build 13175)\n" #: ../data/ario.desktop.in.in.h:1 msgid "Ario music player" msgstr "Ario muziekspeler" #: ../data/ario.desktop.in.in.h:2 msgid "Client application to mpd" msgstr "Cliëntapplicatie voor mpd" #: ../data/ui/browser-prefs.ui.h:1 msgid "Alphabetically" msgstr "Alfabetisch" #: ../data/ui/browser-prefs.ui.h:2 msgid "By year" msgstr "Op jaar" #: ../data/ui/browser-prefs.ui.h:3 msgid "Library Options" msgstr "Bibliotheek Opties" #: ../data/ui/browser-prefs.ui.h:4 msgid "Library Organisation" msgstr "Bibliotheek Organisatie" #: ../data/ui/browser-prefs.ui.h:5 msgid "Sort albums: " msgstr "Albums sorteren: " #: ../data/ui/connection-autodetect.ui.h:1 msgid "" "If you don't see your MPD server thanks to the automatic detection, you " "should check that zeroconf is activated in your MPD configuration or use the " "manual configuration." msgstr "" "Als u hieronder geen MPD-server ziet, controleer dan of zeroconf geactiveerd " "is in uw MPD-configuratie. U kunt ook de handmatige configuratie gebruiken." #: ../data/ui/connection-autodetect.ui.h:2 msgid "Server autodetection" msgstr "Servers zoeken" #: ../data/ui/connection-widget.ui.h:1 msgid "Auto detect" msgstr "Automatisch detecteren" #: ../data/ui/connection-widget.ui.h:2 msgid "Default" msgstr "Standaard" #: ../data/ui/connection-widget.ui.h:3 ../src/widgets/ario-firstlaunch.c:83 msgid "Host :" msgstr "Host :" #: ../data/ui/connection-widget.ui.h:4 msgid "Music directory :" msgstr "Muziekmap :" #: ../data/ui/connection-widget.ui.h:5 msgid "Music server is on the same computer as Ario" msgstr "De muziekserver draait op dezelfde computer als Ario" #. Create the widgets #: ../data/ui/connection-widget.ui.h:6 ../plugins/radios/ario-radio.c:786 #: ../plugins/radios/ario-radio.c:922 msgid "Name :" msgstr "Naam :" #: ../data/ui/connection-widget.ui.h:7 #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:5 msgid "Password :" msgstr "Wachtwoord :" #: ../data/ui/connection-widget.ui.h:8 ../src/widgets/ario-firstlaunch.c:85 msgid "Port :" msgstr "Poort :" #: ../data/ui/connection-widget.ui.h:9 msgid "Server type :" msgstr "Server type :" #: ../data/ui/connection-widget.ui.h:10 msgid "Timeout :" msgstr "" #: ../data/ui/connection-widget.ui.h:11 msgid "XMMS 2 (Experimental)" msgstr "XMMS 2 (experimenteel)" #: ../data/ui/cover-prefs.ui.h:1 msgid "Automatically download the album cover of the playing song" msgstr "Albumhoes automatisch downloaden als nummer wordt afgespeeld" #: ../data/ui/cover-prefs.ui.h:2 ../src/shell/ario-shell-preferences.c:128 msgid "Covers" msgstr "Albumhoezen" #: ../data/ui/cover-prefs.ui.h:3 msgid "Covers Sources" msgstr "Bronnen voor Albumhoezen" #: ../data/ui/cover-prefs.ui.h:4 msgid "Show the covers in the albums list" msgstr "Toon hoezen in de albumlijst" #: ../data/ui/cover-prefs.ui.h:5 msgid "Use Amazon." msgstr "Gebruik Amazon." #: ../data/ui/connection-prefs.ui.h:1 #: ../src/shell/ario-shell-preferences.c:108 msgid "Connection" msgstr "Verbinding" #: ../data/ui/connection-prefs.ui.h:2 msgid "_Autoconnect on startup" msgstr "_Automatisch verbinding maken bij opstarten" #: ../data/ui/connection-prefs.ui.h:3 ../src/shell/ario-shell.c:167 msgid "_Connect" msgstr "_Verbinden" #: ../data/ui/connection-prefs.ui.h:4 ../src/shell/ario-shell.c:170 msgid "_Disconnect" msgstr "_Verbinding verbreken" #: ../data/ui/connection-assistant.ui.h:1 msgid "" "You need to specify a server to connect to. If you don't see your server " "thanks to the autodetection, you should check that zeroconf/avahi is " "activated in your server or use the manual configuration." msgstr "" "Geef een server op om mee te verbinden. Indien er geen server automatisch " "wordt gedetecteerd, controleer dan of zeroconf/avahi geactiveerd is op de " "server, of pas de configuratie handmatig aan." #: ../data/ui/cover-progress.ui.h:1 ../data/ui/cover-select.ui.h:1 #: ../data/ui/song-infos.ui.h:1 ../plugins/information/information.ui.h:1 msgid "Album :" msgstr "Album :" #: ../data/ui/cover-progress.ui.h:2 ../data/ui/cover-select.ui.h:2 #: ../data/ui/lyrics-select.ui.h:1 ../data/ui/song-infos.ui.h:3 #: ../plugins/information/information.ui.h:3 #: ../plugins/radios/ario-radio.c:166 msgid "Artist :" msgstr "Artiest :" #: ../data/ui/cover-progress.ui.h:3 msgid "Downloading cover" msgstr "Bezig met downloaden van albumhoes" #: ../data/ui/cover-select.ui.h:3 msgid "Local search" msgstr "Lokaal zoeken" #: ../data/ui/cover-select.ui.h:4 ../src/sources/ario-search.c:108 msgid "Search" msgstr "Zoeken" #: ../data/ui/others-prefs.ui.h:1 msgid "Allow only one instance of Ario" msgstr "Enkel een instantie van Ario toestaan" #: ../data/ui/others-prefs.ui.h:2 msgid "Hide window when close button is pressed" msgstr "Verberg venster wanneer de sluitknop wordt ingedrukt" #: ../data/ui/others-prefs.ui.h:3 msgid "Interface" msgstr "Uiterlijk" #: ../data/ui/others-prefs.ui.h:4 msgid "Playlist at the right of tabs" msgstr "Afspeellijst aan de rechterkant van de tabs" #: ../data/ui/others-prefs.ui.h:5 msgid "Playlist below tabs" msgstr "Afspeellijst onder de tabs" #: ../data/ui/others-prefs.ui.h:6 msgid "Playlist within tabs" msgstr "Afspeellijst in de tabs" #: ../data/ui/others-prefs.ui.h:7 msgid "Proxy" msgstr "Proxy" #: ../data/ui/others-prefs.ui.h:8 msgid "Proxy Address :" msgstr "Proxyadres :" #: ../data/ui/others-prefs.ui.h:9 msgid "Proxy Port :" msgstr "Proxypoort :" #: ../data/ui/others-prefs.ui.h:10 msgid "Show tabs" msgstr "Tabbladen tonen" #: ../data/ui/others-prefs.ui.h:11 msgid "Use a proxy" msgstr "Gebruik een proxy" #: ../data/ui/lyrics-prefs.ui.h:1 msgid "Lyrics Sources" msgstr "Bronnen voor songteksten" #: ../data/ui/lyrics-select.ui.h:2 ../data/ui/song-infos.ui.h:13 #: ../plugins/information/information.ui.h:6 msgid "Title :" msgstr "Titel :" #: ../data/ui/playlist-prefs.ui.h:1 msgid "Add after playing song" msgstr "Voeg toe na afspelen" #: ../data/ui/playlist-prefs.ui.h:2 msgid "Add and play" msgstr "Toevoegen en afspelen" #: ../data/ui/playlist-prefs.ui.h:3 ../data/ui/similar-artists.ui.h:2 msgid "Add to playlist" msgstr "Toevoegen aan afspeellijst" #. ARIO_TAG_ARTIST #: ../data/ui/playlist-prefs.ui.h:4 ../src/servers/ario-server.c:46 #: ../src/sources/ario-tree-albums.c:213 ../src/widgets/ario-playlist.c:541 #: ../src/widgets/ario-songlist.c:228 ../src/widgets/ario-tray-icon.c:565 msgid "Album" msgstr "Album" #: ../data/ui/playlist-prefs.ui.h:5 ../src/servers/ario-server.c:45 #: ../src/widgets/ario-playlist.c:541 ../src/widgets/ario-songlist.c:213 #: ../src/widgets/ario-tray-icon.c:563 msgid "Artist" msgstr "Artiest" #. ARIO_TAG_GENRE #: ../data/ui/playlist-prefs.ui.h:6 ../src/servers/ario-server.c:52 #: ../src/widgets/ario-playlist.c:541 msgid "Date" msgstr "Datum" #: ../data/ui/playlist-prefs.ui.h:7 ../src/widgets/ario-playlist.c:541 msgid "Disc" msgstr "Schijf" #: ../data/ui/playlist-prefs.ui.h:8 msgid "Double click" msgstr "Dubbelklik" #: ../data/ui/playlist-prefs.ui.h:9 ../src/widgets/ario-playlist.c:541 msgid "Duration" msgstr "Afspeelduur" #: ../data/ui/playlist-prefs.ui.h:10 ../src/widgets/ario-playlist.c:541 msgid "File" msgstr "Bestand" #. ARIO_TAG_TRACK #. ARIO_TAG_NAME #: ../data/ui/playlist-prefs.ui.h:11 ../src/servers/ario-server.c:51 #: ../src/widgets/ario-playlist.c:541 msgid "Genre" msgstr "Genre" #: ../data/ui/playlist-prefs.ui.h:12 msgid "Go to current song when a new song is played" msgstr "Ga naar huidig liedje wanneer een nieuw liedje wordt gespeeld" #: ../data/ui/playlist-prefs.ui.h:13 msgid "Mode" msgstr "Mode" #: ../data/ui/playlist-prefs.ui.h:14 msgid "On double click:" msgstr "Dubbelklik actie:" #: ../data/ui/playlist-prefs.ui.h:15 ../src/sources/ario-storedplaylists.c:229 #: ../src/shell/ario-shell.c:222 ../src/shell/ario-shell-preferences.c:123 #: ../src/widgets/ario-playlist.c:272 msgid "Playlist" msgstr "Afspeellijst" #: ../data/ui/playlist-prefs.ui.h:16 msgid "Playlist mode:" msgstr "Afspeellijst modus:" #: ../data/ui/playlist-prefs.ui.h:17 msgid "Replace in playlist" msgstr "Vervang in afspeellijst" #: ../data/ui/playlist-prefs.ui.h:18 msgid "Show rows:" msgstr "Rijen tonen:" #. ARIO_TAG_ALBUM_ARTIST #: ../data/ui/playlist-prefs.ui.h:19 ../src/servers/ario-server.c:48 #: ../src/sources/ario-tree-songs.c:145 ../src/widgets/ario-playlist.c:541 #: ../src/widgets/ario-songlist.c:198 ../src/widgets/ario-tray-icon.c:567 msgid "Title" msgstr "Titel" #. ARIO_TAG_TITLE #: ../data/ui/playlist-prefs.ui.h:20 ../src/servers/ario-server.c:49 #: ../src/sources/ario-tree-songs.c:138 ../src/widgets/ario-playlist.c:541 msgid "Track" msgstr "Nummer" #: ../data/ui/server-prefs.ui.h:1 msgid "Audio outputs" msgstr "Audiouitvoer" #: ../data/ui/server-prefs.ui.h:2 msgid "Crossfade" msgstr "Crossfaden" #: ../data/ui/server-prefs.ui.h:3 msgid "Database" msgstr "Database" #: ../data/ui/server-prefs.ui.h:4 msgid "Last updated:" msgstr "Laatste update:" #: ../data/ui/server-prefs.ui.h:5 msgid "Stop music on exit" msgstr "Muziek afzetten bij afsluiten" #: ../data/ui/server-prefs.ui.h:6 msgid "Update on startup" msgstr "Update bij opstarten" #: ../data/ui/server-prefs.ui.h:7 msgid "_Update" msgstr "_Bijwerken" #: ../data/ui/server-prefs.ui.h:8 msgid "enable crossfade" msgstr "crossfaden inschakelen" #: ../data/ui/server-prefs.ui.h:9 msgid "fade time (s):" msgstr "verlooptijd (s):" #: ../data/ui/server-prefs.ui.h:10 ../src/ario-util.c:50 ../src/ario-util.c:71 #: ../src/ario-util.c:93 ../plugins/information/information.ui.h:7 #, c-format msgid "n/a" msgstr "n.v.t." #: ../data/ui/similar-artists.ui.h:1 msgid "Add all to playlist" msgstr "Alles toevoegen aan afspeellijst" #: ../data/ui/similar-artists.ui.h:3 msgid "Find on Last.fm" msgstr "Op Last.fm zoeken" #: ../data/ui/stats-prefs.ui.h:1 msgid "Database play time :" msgstr "Database speeltijd :" #: ../data/ui/stats-prefs.ui.h:2 msgid "Number of albums :" msgstr "Aantal albums :" #: ../data/ui/stats-prefs.ui.h:3 msgid "Number of artists :" msgstr "Aantal artiesten :" #: ../data/ui/stats-prefs.ui.h:4 msgid "Number of songs :" msgstr "Aantal nummers :" #: ../data/ui/stats-prefs.ui.h:5 msgid "Play time :" msgstr "Afspeeltijd :" #: ../data/ui/stats-prefs.ui.h:6 ../src/shell/ario-shell-preferences.c:148 msgid "Statistics" msgstr "Statistieken" #: ../data/ui/stats-prefs.ui.h:7 msgid "Uptime :" msgstr "Uptime :" #: ../data/ui/song-infos.ui.h:2 msgid "Album Artist :" msgstr "Album Artiest:" #: ../data/ui/song-infos.ui.h:4 msgid "Comment :" msgstr "Commentaar :" #: ../data/ui/song-infos.ui.h:5 msgid "Composer :" msgstr "Componist :" #: ../data/ui/song-infos.ui.h:6 msgid "Date :" msgstr "Datum :" #: ../data/ui/song-infos.ui.h:7 msgid "Disc :" msgstr "Schijf :" #: ../data/ui/song-infos.ui.h:8 msgid "Filename :" msgstr "Bestandsnaam :" #: ../data/ui/song-infos.ui.h:9 ../plugins/radios/ario-radio.c:169 msgid "Genre :" msgstr "Genre :" #: ../data/ui/song-infos.ui.h:10 ../plugins/information/information.ui.h:4 msgid "Length :" msgstr "Duur :" #: ../data/ui/song-infos.ui.h:11 msgid "Performer :" msgstr "Uitvoerende :" #: ../data/ui/song-infos.ui.h:12 msgid "Song" msgstr "Liedje" #: ../data/ui/song-infos.ui.h:14 msgid "Track :" msgstr "Nummer :" #: ../data/ui/trayicon-prefs.ui.h:1 msgid "Do nothing" msgstr "Niets doen" #: ../data/ui/trayicon-prefs.ui.h:2 msgid "Mute" msgstr "Dempen" #: ../data/ui/trayicon-prefs.ui.h:3 ../src/shell/ario-shell-preferences.c:138 msgid "Notification" msgstr "Notificatie" #: ../data/ui/trayicon-prefs.ui.h:4 msgid "Notification on song change" msgstr "Notificatie over gewijzigd lied" #: ../data/ui/trayicon-prefs.ui.h:5 msgid "Notification time: " msgstr "Notificatietijd " #: ../data/ui/trayicon-prefs.ui.h:6 msgid "On middle button click on tray icon :" msgstr "" "Bij klikken van de middelste muisknop op het pictogram in het systeemvak:" #: ../data/ui/trayicon-prefs.ui.h:7 ../src/widgets/ario-header.c:241 msgid "Play next song" msgstr "Volgende nummer afspelen" #: ../data/ui/trayicon-prefs.ui.h:8 msgid "Play/Pause" msgstr "Afspelen/Pauzeren" #: ../data/ui/trayicon-prefs.ui.h:9 msgid "Tray icon" msgstr "Pictogram in systeemvak" #: ../src/ario-main.c:67 msgid "Start minimized window" msgstr "Geminimaliseerd venster starten" #: ../src/ario-main.c:68 msgid "Start with specific profile" msgstr "" #. Format result string #: ../src/ario-util.c:110 msgid "seconds" msgstr "seconden" #: ../src/ario-util.c:112 msgid "minutes" msgstr "minuten" #: ../src/ario-util.c:118 msgid "hours" msgstr "uren" #: ../src/ario-util.c:124 msgid "days" msgstr "dagen" #: ../src/covers/ario-cover.c:149 msgid "The cover already exists. Do you want to replace it?" msgstr "De albumhoes is al aanwezig. Wilt u hem vervangen?" #: ../src/covers/ario-cover-local.c:48 msgid "Music Directory" msgstr "Muziekmap" #: ../src/playlist/ario-playlist-dynamic.c:49 msgid "songs of same artist" msgstr "liedjes van dezelfde artiest" #: ../src/playlist/ario-playlist-dynamic.c:50 msgid "songs of same album" msgstr "liedjes van hetzelfde album" #: ../src/playlist/ario-playlist-dynamic.c:51 msgid "songs of similar artists" msgstr "liedjes van gelijkaardige artiesten" #: ../src/playlist/ario-playlist-dynamic.c:52 msgid "albums of same artists" msgstr "albums van dezelfde artiest" #: ../src/playlist/ario-playlist-dynamic.c:53 msgid "albums of similar artists" msgstr "albums van gelijkaardige artiesten" #: ../src/playlist/ario-playlist-dynamic.c:69 msgid "Dynamic Playlist" msgstr "Dynamische afspeellijst" #: ../src/playlist/ario-playlist-queue.c:49 msgid "Queue Mode" msgstr "Wachtrij Modus" #: ../src/playlist/ario-playlist-normal.c:47 msgid "Normal" msgstr "Normaal" #: ../src/plugins/ario-plugin-manager.c:45 msgid "Plugin" msgstr "Plugin" #: ../src/plugins/ario-plugin-manager.c:46 msgid "Enabled" msgstr "Ingeschakeld" #: ../src/plugins/ario-plugin-manager.c:480 ../src/shell/ario-shell.c:206 msgid "_About" msgstr "_Info" #: ../src/plugins/ario-plugin-manager.c:488 msgid "C_onfigure" msgstr "C_onfigureren" #: ../src/plugins/ario-plugin-manager.c:497 msgid "A_ctivate" msgstr "_Inschakelen" #: ../src/plugins/ario-plugin-manager.c:508 msgid "Ac_tivate All" msgstr "_Alles Inschakelen" #: ../src/plugins/ario-plugin-manager.c:513 msgid "_Deactivate All" msgstr "Alles _Uitschakelen" #: ../src/plugins/ario-plugin-manager.c:722 msgid "Active plugins" msgstr "Ingeschakelde plugins" #: ../src/preferences/ario-server-preferences.c:182 #: ../src/preferences/ario-stats-preferences.c:151 #: ../src/preferences/ario-stats-preferences.c:152 #: ../src/preferences/ario-stats-preferences.c:153 #: ../src/preferences/ario-stats-preferences.c:154 #: ../src/preferences/ario-stats-preferences.c:155 #: ../src/preferences/ario-stats-preferences.c:156 msgid "Not connected" msgstr "Niet verbonden" #: ../src/preferences/ario-server-preferences.c:187 #: ../src/preferences/ario-server-preferences.c:278 #: ../src/widgets/ario-status-bar.c:100 msgid "Updating..." msgstr "Bezig met bijwerken..." #: ../src/servers/ario-mpd.c:410 ../src/servers/ario-mpd2.c:522 msgid "Connecting to server..." msgstr "Maakt verbinding met de server..." #: ../src/servers/ario-mpd.c:438 ../src/servers/ario-mpd2.c:550 msgid "Impossible to connect to server. Check the connection options." msgstr "" "Er kan geen verbinding gemaakt worden met de server. Kijk de verbinding " "opties na." #. ARIO_TAG_ALBUM #: ../src/servers/ario-server.c:47 msgid "Album Artist" msgstr "Album artiest" #. ARIO_TAG_DATE #: ../src/servers/ario-server.c:53 msgid "Composer" msgstr "Componist" #. ARIO_TAG_COMPOSER #: ../src/servers/ario-server.c:54 msgid "Performer" msgstr "Uitvoerder" #. ARIO_TAG_PERFORMER #. ARIO_TAG_COMMENT #. ARIO_TAG_DISC #: ../src/servers/ario-server.c:57 msgid "Filename" msgstr "Bestandsnaam" #. ARIO_TAG_FILENAME #: ../src/servers/ario-server.c:58 msgid "Any" msgstr "Alles" #. impossible time or broken locale settings #: ../src/servers/ario-server.h:27 #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1235 msgid "Unknown" msgstr "Onbekend" #: ../src/sources/ario-browser.c:82 ../src/sources/ario-search.c:70 #: ../src/sources/ario-storedplaylists.c:88 #: ../src/sources/ario-storedplaylists.c:106 #: ../plugins/filesystem/ario-filesystem.c:94 #: ../plugins/filesystem/ario-filesystem.c:109 #: ../plugins/radios/ario-radio.c:116 msgid "_Add to playlist" msgstr "_Voeg toe aan afspeellijst" #: ../src/sources/ario-browser.c:85 ../src/sources/ario-search.c:73 #: ../src/sources/ario-storedplaylists.c:91 #: ../src/sources/ario-storedplaylists.c:109 #: ../plugins/filesystem/ario-filesystem.c:97 #: ../plugins/filesystem/ario-filesystem.c:112 #: ../plugins/radios/ario-radio.c:119 msgid "Add and _play" msgstr "Toevoegen en _afspelen" #: ../src/sources/ario-browser.c:88 ../src/sources/ario-search.c:76 #: ../src/sources/ario-storedplaylists.c:94 #: ../src/sources/ario-storedplaylists.c:112 #: ../plugins/filesystem/ario-filesystem.c:100 #: ../plugins/filesystem/ario-filesystem.c:115 #: ../plugins/radios/ario-radio.c:122 msgid "_Replace in playlist" msgstr "_Vervangen in afspeellijst" #: ../src/sources/ario-browser.c:91 msgid "Get the covers" msgstr "Albumhoezen downloaden" #: ../src/sources/ario-browser.c:94 msgid "_Delete the covers" msgstr "Albumhoezen verwijderen" #: ../src/sources/ario-browser.c:97 ../src/sources/ario-browser.c:100 #: ../src/sources/ario-search.c:79 ../src/sources/ario-storedplaylists.c:115 #: ../src/widgets/ario-playlist.c:151 #: ../plugins/filesystem/ario-filesystem.c:118 #: ../plugins/radios/ario-radio.c:131 msgid "_Properties" msgstr "_Eigenschappen" #: ../src/sources/ario-browser.c:125 ../src/shell/ario-shell-preferences.c:118 msgid "Library" msgstr "Bibliotheek" #: ../src/sources/ario-storedplaylists.c:97 msgid "_Delete" msgstr "_Verwijderen" #: ../src/sources/ario-storedplaylists.c:151 msgid "Playlists" msgstr "Afspeellijsten" #: ../src/sources/ario-storedplaylists.c:592 msgid "Are you sure that you want to delete all the selected playlists?" msgstr "Weet u zeker dat u de geselecteerde afspeellijsten wilt verwijderen?" #: ../src/sources/ario-tree.c:856 msgid "Are you sure that you want to remove all the selected covers?" msgstr "Weet je zeker dat je alle geselecteerde covers wilt verwijderen?" #. Translators - This "Cover" refers to an album cover art #: ../src/sources/ario-tree-albums.c:199 msgid "Cover" msgstr "Albumhoes" #: ../src/shell/ario-shell.c:160 msgid "_File" msgstr "_Bestand" #: ../src/shell/ario-shell.c:161 msgid "_Edit" msgstr "Be_werken" #: ../src/shell/ario-shell.c:162 msgid "_View" msgstr "Weerga_ve" #: ../src/shell/ario-shell.c:163 msgid "_Control" msgstr "_Bediening" #: ../src/shell/ario-shell.c:164 msgid "_Tool" msgstr "_Extra" #: ../src/shell/ario-shell.c:165 msgid "_Help" msgstr "_Help" #: ../src/shell/ario-shell.c:173 msgid "_Update database" msgstr "_Update database" #: ../src/shell/ario-shell.c:176 msgid "_Quit" msgstr "_Afsluiten" #: ../src/shell/ario-shell.c:179 msgid "Plu_gins" msgstr "Plu_gins" #: ../src/shell/ario-shell.c:182 msgid "Prefere_nces" msgstr "_Instellingen" #: ../src/shell/ario-shell.c:185 msgid "_Change current album cover" msgstr "_Huidige albumhoes veranderen" #: ../src/shell/ario-shell.c:188 msgid "Download album _covers" msgstr "_Albumhoezen downloaden" #: ../src/shell/ario-shell.c:191 msgid "Find similar artists" msgstr "Vergelijkbare artiesten zoeken" #: ../src/shell/ario-shell.c:194 msgid "Add similar songs to playlist" msgstr "Gelijkaardige liedjes toevoegen aan afspeellijst" #: ../src/shell/ario-shell.c:197 msgid "Go to _previous tab" msgstr "Ga na _vorige tabblad" #: ../src/shell/ario-shell.c:200 msgid "Go to _next tab" msgstr "Ga naar _volgende tabblad" #: ../src/shell/ario-shell.c:203 msgid "Show _lyrics" msgstr "_Songteksten tonen" #: ../src/shell/ario-shell.c:209 msgid "_Translate this application..." msgstr "Dit programma ver_talen..." #: ../src/shell/ario-shell.c:216 msgid "S_tatusbar" msgstr "S_tatusbalk" #: ../src/shell/ario-shell.c:219 msgid "Upper part" msgstr "Bovenste deel" #: ../src/shell/ario-shell.c:825 msgid "GTK client for MPD" msgstr "GTK-cliënt voor MPD" #: ../src/shell/ario-shell.c:826 msgid "translator-credits" msgstr "" "Launchpad Contributions:\n" " Christian Siegert https://launchpad.net/~christian-siegert\n" " Dennis Groenveld https://launchpad.net/~d3nn1s\n" " Hurne https://launchpad.net/~hurne\n" " Marc Pavot https://launchpad.net/~marc-pavot\n" " Marco van Hulten https://launchpad.net/~marco-hulten\n" " R... https://launchpad.net/~relst-nl\n" " Robert Wubs https://launchpad.net/~wubsieonline\n" " Stani https://launchpad.net/~stani\n" " Visitor.Q https://launchpad.net/~ivo-82\n" " Wim Champagne https://launchpad.net/~fng\n" " Yentl https://launchpad.net/~yentlvt\n" " dudeofthedead https://launchpad.net/~ls-la\n" " dvdmeer https://launchpad.net/~dennis-dvdmeer\n" " nitrofurano https://launchpad.net/~nitrofurano-3t" #. Create plugins configuration dialog window #: ../src/shell/ario-shell.c:1278 msgid "Configure Plugins" msgstr "Plugins Instellen" #. Set window properties #: ../src/shell/ario-shell-coverdownloader.c:187 msgid "Music Player Cover Download" msgstr "Albumhoezen Downloaden" #: ../src/shell/ario-shell-coverdownloader.c:332 msgid "Download Finished!" msgstr "Downloaden Voltooid!" #. We show the numbers of covers found and not found #: ../src/shell/ario-shell-coverdownloader.c:335 #, c-format msgid "" "%i covers found\n" "%i covers not found\n" "%i covers already exist" msgstr "" "%i albumhoezen gevonden\n" "%i albumhoezen niet gevonden\n" "%i albumhoezen al beschikbaar" #. Set window properties #: ../src/shell/ario-shell-coverselect.c:242 msgid "Cover Download" msgstr "Albumhoezen Downloaden" #: ../src/shell/ario-shell-coverselect.c:559 msgid "Error reading file" msgstr "Fout bij het lezen van bestand" #: ../src/shell/ario-shell-coverselect.c:584 msgid "Error saving file" msgstr "Fout bij het bewaren van bestand" #: ../src/shell/ario-shell-lyrics.c:43 #: ../src/shell/ario-shell-preferences.c:133 #: ../src/shell/ario-shell-songinfos.c:272 msgid "Lyrics" msgstr "Liedjesteksten" #: ../src/shell/ario-shell-lyricsselect.c:152 msgid "Lyrics Download" msgstr "Liedjesteksten Downloaden" #: ../src/shell/ario-shell-preferences.c:81 msgid "Ario Preferences" msgstr "Ario Instellingen" #: ../src/shell/ario-shell-preferences.c:113 msgid "Server" msgstr "Server" #: ../src/shell/ario-shell-preferences.c:143 msgid "Others" msgstr "Overige" #: ../src/shell/ario-shell-similarartists.c:318 #, c-format msgid "%d songs" msgstr "%d liedjes" #. Set window properties #. Set window title #: ../src/shell/ario-shell-songinfos.c:249 #: ../src/shell/ario-shell-songinfos.c:266 #: ../src/shell/ario-shell-songinfos.c:544 msgid "Song Properties" msgstr "Eigenschappen van het Liedje" #: ../src/shell/ario-shell-songinfos.c:455 msgid "Error saving tags of file:" msgstr "Fout tijdens het opslaan van de tags van dit bestand" #: ../src/widgets/ario-connection-widget.c:652 msgid "You must select a server." msgstr "U moet een server selecteren" #: ../src/widgets/ario-connection-widget.c:702 msgid "New Profile" msgstr "Nieuw Profiel" #: ../src/widgets/ario-firstlaunch.c:82 msgid "The following configuration will be used:" msgstr "De volgende instellingen zullen worden gebruikt:" #: ../src/widgets/ario-firstlaunch.c:106 msgid "" "It is the first time you launch Ario.\n" "This assistant will help you to configure it." msgstr "" "Dit is de eerste keer dat u Ario opstart.\n" "Deze assistent helpt u om Ario in te stellen." #: ../src/widgets/ario-firstlaunch.c:111 msgid "Welcome to Ario" msgstr "Welkom bij Ario" #: ../src/widgets/ario-firstlaunch.c:129 msgid "Configuration" msgstr "Instellingen" #: ../src/widgets/ario-firstlaunch.c:141 msgid "Confirmation" msgstr "Bevestiging" #: ../src/widgets/ario-header.c:66 ../src/widgets/ario-tray-icon.h:42 #, c-format msgid "from %s by %s" msgstr "van %s door %s" #: ../src/widgets/ario-header.c:199 msgid "Play previous song" msgstr "Vorige nummer afspelen" #: ../src/widgets/ario-header.c:217 msgid "Play/Pause the music" msgstr "De muziek afspelen/pauzeren" #: ../src/widgets/ario-header.c:229 msgid "Stop the music" msgstr "De muziek stoppen" #. Translators - This " of " is used to count the elapsed time #. of a song like in "00:59 of 03:24" #: ../src/widgets/ario-header.c:310 ../src/widgets/ario-tooltip.c:321 msgid " of " msgstr " van " #: ../src/widgets/ario-header.c:323 msgid "Toggle random on/off" msgstr "Willekeurige volgorde in-/uitschakelen" #: ../src/widgets/ario-header.c:335 msgid "Toggle repeat on/off" msgstr "Herhalen in-/uitschakelen" #: ../src/widgets/ario-header.c:340 msgid "Change the music volume" msgstr "Volume aanpassen" #: ../src/widgets/ario-lyrics-editor.c:323 msgid "Downloading lyrics..." msgstr "Bezig met downloaden van liedjestekst..." #: ../src/widgets/ario-lyrics-editor.c:351 msgid "Lyrics not found" msgstr "Liedjestekst niet gevonden" #: ../src/widgets/ario-playlist.c:133 msgid "_Clear" msgstr "_Leegmaken" #: ../src/widgets/ario-playlist.c:136 msgid "_Shuffle" msgstr "_Schudden" #: ../src/widgets/ario-playlist.c:139 msgid "Cr_op" msgstr "_Bijsnijden" #: ../src/widgets/ario-playlist.c:142 msgid "_Search in playlist" msgstr "_Zoek in de afspeellijst" #: ../src/widgets/ario-playlist.c:145 msgid "_Remove" msgstr "_Verwijderen" #: ../src/widgets/ario-playlist.c:148 msgid "_Save" msgstr "_Opslaan" #: ../src/widgets/ario-playlist.c:154 msgid "_Go to playing song" msgstr "Naar het afspelende liedje _gaan" #: ../src/widgets/ario-playlist.c:667 msgid "Filter:" msgstr "Filter:" #. Create the widgets #: ../src/widgets/ario-playlist.c:1700 msgid "Save playlist" msgstr "Afspeellijst opslaan" #: ../src/widgets/ario-playlist.c:1710 msgid "Playlist name :" msgstr "Afspeellijstnaam :" #: ../src/widgets/ario-playlist.c:1746 msgid "Playlist already exists. Do you want to overwrite it?" msgstr "Afspeellijst bestaat al. Wilt u hem vervangen?" #. Format status bar message #: ../src/widgets/ario-status-bar.c:96 msgid "Songs" msgstr "Liedjes" #: ../src/widgets/ario-tray-icon.c:102 msgid "_Play" msgstr "_Afspelen" #: ../src/widgets/ario-tray-icon.c:105 msgid "_Pause" msgstr "_Pauzeren" #: ../src/widgets/ario-tray-icon.c:108 msgid "_Stop" msgstr "_Stoppen" #: ../src/widgets/ario-tray-icon.c:111 msgid "_Next" msgstr "_Volgende" #: ../src/widgets/ario-tray-icon.c:114 msgid "P_revious" msgstr "Vo_rige" #: ../src/widgets/ario-tray-icon.h:41 msgid "Not playing" msgstr "Afspelen gestopt" #. Translators: "friendly time" string for the current day, strftime format. like "Today 12:34 am" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1179 msgid "Today %I:%M %p" msgstr "Vandaag %I:%M %p" #. Translators: "friendly time" string for the previous day, #. * strftime format. e.g. "Yesterday 12:34 am" #. #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1192 msgid "Yesterday %I:%M %p" msgstr "Gisteren %I:%M %p" #. Translators: "friendly time" string for a day in the current week, #. * strftime format. e.g. "Wed 12:34 am" #. #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1208 msgid "%a %I:%M %p" msgstr "%a %I:%M %p" #. Translators: "friendly time" string for a day in the current year, #. * strftime format. e.g. "Feb 12 12:34 am" #. #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1220 msgid "%b %d %I:%M %p" msgstr "%b %d %I:%M %p" #. Translators: "friendly time" string for a day in a different year, #. * strftime format. e.g. "Feb 12 1997" #. #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1225 msgid "%b %d %Y" msgstr "%d %b %Y" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1311 #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:4 msgid "Never" msgstr "Nooit" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1335 msgid "OK" msgstr "OK" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1338 msgid "Logging in" msgstr "Bezig met inloggen" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1341 msgid "Request failed" msgstr "Verzoek is mislukt" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1344 msgid "Incorrect username" msgstr "Onjuiste gebruikersnaam" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1347 msgid "Incorrect password" msgstr "Onjuist wachtwoord" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1350 msgid "Handshake failed" msgstr "Handschudding is mislukt" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1353 msgid "Client update required" msgstr "Update van de cliënt vereist" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1356 msgid "Track submission failed" msgstr "Opsturen van nummer is mislukt" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1359 msgid "Queue is too long" msgstr "Wachtrij is te lang" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1362 msgid "Track submission failed too many times" msgstr "Opsturen van nummer is te vaak mislukt" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1417 msgid "Audioscrobbler preferences" msgstr "Last.fm instellingen" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:1 msgid "Disabled" msgstr "Uitgeschakeld" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:2 msgid "Last submission time:" msgstr "Laatste nummer opgestuurt op:" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:3 msgid "Last.fm Profile" msgstr "Last.fm Profiel" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:6 msgid "Queued tracks:" msgstr "Nummers in de wachtrij:" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:7 msgid "Status:" msgstr "Status:" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:8 msgid "Tracks submitted:" msgstr "Aantal nummers opgestuurd:" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:9 #: ../plugins/radios/ario-radio.c:168 msgid "Username :" msgstr "Gebruikersnaam:" #: ../plugins/audioscrobbler/audioscrobbler.ario-plugin.desktop.in.h:1 msgid "Last.fm" msgstr "Last.fm" #: ../plugins/audioscrobbler/audioscrobbler.ario-plugin.desktop.in.h:2 msgid "Submits song information to last.fm" msgstr "Informatie opsturen over nummers naar last.fm" #: ../plugins/filesystem/ario-filesystem.c:158 msgid "File System" msgstr "Bestandssysteem" #: ../plugins/filesystem/ario-filesystem.c:422 msgid "Music" msgstr "Muziek" #: ../plugins/filesystem/filesystem.ario-plugin.desktop.in.h:1 msgid "A File System Browser" msgstr "Een verkenner voor het bestandssysteem" #: ../plugins/filesystem/filesystem.ario-plugin.desktop.in.h:2 msgid "File System Browser" msgstr "Bestandsysteem Verkenner" #: ../plugins/information/ario-information.c:114 msgid "Information" msgstr "Informatie" #: ../plugins/information/information.ario-plugin.desktop.in.h:1 msgid "Display various information about the playing song" msgstr "Diverse informatie weergeven over het afgespeelde lied" #: ../plugins/information/information.ario-plugin.desktop.in.h:2 msgid "Song Information" msgstr "Informatie over lied" #: ../plugins/information/information.ui.h:2 msgid "Albums from this artist:" msgstr "Albums door deze artiest" #: ../plugins/information/information.ui.h:5 msgid "Lyrics:" msgstr "Woorden" #: ../plugins/libnotify/libnotify.ario-plugin.desktop.in.h:1 msgid "Add libnotify support" msgstr "libnotify-ondersteuning Toevoegen" #: ../plugins/libnotify/libnotify.ario-plugin.desktop.in.h:2 msgid "Libnotify" msgstr "Libnotify" #: ../plugins/mmkeys/mmkeys.ario-plugin.desktop.in.h:1 msgid "Add multimedia keys support" msgstr "Ondersteuning toevoegen voor multimediatoetsen" #: ../plugins/mmkeys/mmkeys.ario-plugin.desktop.in.h:2 msgid "Multimedia Keys" msgstr "Multimediatoetsen" #: ../plugins/radios/ario-radio.c:125 msgid "Add a _new radio" msgstr "Radiostation _toevoegen" #: ../plugins/radios/ario-radio.c:128 msgid "_Delete this radios" msgstr "Radiostations _verwijderen" #: ../plugins/radios/ario-radio.c:166 msgid "Last.fm: Radio of similar artists" msgstr "Last.fm: Radio van vergelijkbare artiesten" #: ../plugins/radios/ario-radio.c:167 msgid "Last.fm: Radio of group" msgstr "Last.fm: Groepsradio van" #: ../plugins/radios/ario-radio.c:167 msgid "Group :" msgstr "Groep:" #: ../plugins/radios/ario-radio.c:168 msgid "Last.fm: Personal radio" msgstr "Last.fm: Persoonlijke radio" #: ../plugins/radios/ario-radio.c:169 msgid "Last.fm: Radio of genre" msgstr "Last.fm: Genre radio" #: ../plugins/radios/ario-radio.c:184 #: ../plugins/radios/radios.ario-plugin.desktop.in.h:2 msgid "Web Radios" msgstr "Internetradio" #: ../plugins/radios/ario-radio.c:246 msgid "Internet Radios" msgstr "Internetradio" #. Create dialog window #: ../plugins/radios/ario-radio.c:774 msgid "Edit a WebRadio" msgstr "Een radiostation bewerken" #: ../plugins/radios/ario-radio.c:787 ../plugins/radios/ario-radio.c:923 msgid "URL :" msgstr "URL :" #: ../plugins/radios/ario-radio.c:853 ../plugins/radios/ario-radio.c:997 msgid "Bad parameters. You must specify a name and a URL for the radio." msgstr "" "Onvolledige invoer. Je moet een naam en URL invullen voor het radiostation." #. Create dialog window #: ../plugins/radios/ario-radio.c:883 msgid "Add a WebRadio" msgstr "Radiostation Toevoegen" #: ../plugins/radios/ario-radio.c:1083 msgid "Are you sure you want to delete all the selected radios?" msgstr "Weet u zeker dat u de geselecteerde radiostations wilt verwijderen?" #: ../plugins/radios/radios.ario-plugin.desktop.in.h:1 msgid "Listen to webradios" msgstr "Naar internetradios luisteren" #: ../plugins/wikipedia/ario-wikipedia-plugin.c:49 #: ../plugins/wikipedia/ario-wikipedia-plugin.c:50 msgid "Find artist on Wikipedia" msgstr "Artiest zoeken op Wikipedia" #: ../plugins/wikipedia/ario-wikipedia-plugin.c:172 msgid "Wikipedia Plugin - Configuration" msgstr "Wikipedia Plugin - Instellingen" #: ../plugins/wikipedia/ario-wikipedia-plugin.c:181 msgid "Wikipedia language :" msgstr "Wikipediataal :" #: ../plugins/wikipedia/wikipedia.ario-plugin.desktop.in.h:1 msgid "A plugin to search current artist on wikipedia" msgstr "Een plugin om naar artiesten te zoeken op Wikipedia" #: ../plugins/wikipedia/wikipedia.ario-plugin.desktop.in.h:2 msgid "Wikipedia" msgstr "Wikipedia" #~ msgid "Remove a search criteria" #~ msgstr "Een zoekcriterium verwijderen" #~ msgid "Search songs in the library" #~ msgstr "Liedjes zoeken in de bibliotheek" #~ msgid "Add a search criteria" #~ msgstr "Een zoekcriterium toevoegen" ario-1.6/po/ca.po0000644000175000017500000007315213226723435010613 00000000000000# Catalan translation for ario # Copyright (c) 2008 Rosetta Contributors and Canonical Ltd 2008 # This file is distributed under the same license as the ario package. # FIRST AUTHOR , 2008. # msgid "" msgstr "" "Project-Id-Version: ario\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2011-06-13 18:15+0200\n" "PO-Revision-Date: 2010-07-25 04:05+0000\n" "Last-Translator: Marc Pavot \n" "Language-Team: Catalan \n" "Language: ca\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2011-06-13 16:32+0000\n" "X-Generator: Launchpad (build 13175)\n" #: ../data/ario.desktop.in.in.h:1 msgid "Ario music player" msgstr "RE" #: ../data/ario.desktop.in.in.h:2 msgid "Client application to mpd" msgstr "Aplicació client a mpd" #: ../data/ui/browser-prefs.ui.h:1 msgid "Alphabetically" msgstr "Alfabèticament" #: ../data/ui/browser-prefs.ui.h:2 msgid "By year" msgstr "Per any" #: ../data/ui/browser-prefs.ui.h:3 msgid "Library Options" msgstr "Opcions de la llibreria" #: ../data/ui/browser-prefs.ui.h:4 msgid "Library Organisation" msgstr "Organització de la llibreria" #: ../data/ui/browser-prefs.ui.h:5 msgid "Sort albums: " msgstr "Ordenar àlbums " #: ../data/ui/connection-autodetect.ui.h:1 msgid "" "If you don't see your MPD server thanks to the automatic detection, you " "should check that zeroconf is activated in your MPD configuration or use the " "manual configuration." msgstr "" #: ../data/ui/connection-autodetect.ui.h:2 msgid "Server autodetection" msgstr "Autodetecció de servidor" #: ../data/ui/connection-widget.ui.h:1 msgid "Auto detect" msgstr "Autodetecció" #: ../data/ui/connection-widget.ui.h:2 msgid "Default" msgstr "Per defecte" #: ../data/ui/connection-widget.ui.h:3 ../src/widgets/ario-firstlaunch.c:83 msgid "Host :" msgstr "Hoste :" #: ../data/ui/connection-widget.ui.h:4 msgid "Music directory :" msgstr "Directori de música:" #: ../data/ui/connection-widget.ui.h:5 msgid "Music server is on the same computer as Ario" msgstr "El servidor de música es troba en el mateix ordinador que Ario" #. Create the widgets #: ../data/ui/connection-widget.ui.h:6 ../plugins/radios/ario-radio.c:786 #: ../plugins/radios/ario-radio.c:922 msgid "Name :" msgstr "Nom:" #: ../data/ui/connection-widget.ui.h:7 #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:5 msgid "Password :" msgstr "Contrasenya :" #: ../data/ui/connection-widget.ui.h:8 ../src/widgets/ario-firstlaunch.c:85 msgid "Port :" msgstr "Port :" #: ../data/ui/connection-widget.ui.h:9 msgid "Server type :" msgstr "Tipus de servidor :" #: ../data/ui/connection-widget.ui.h:10 msgid "Timeout :" msgstr "" #: ../data/ui/connection-widget.ui.h:11 msgid "XMMS 2 (Experimental)" msgstr "" #: ../data/ui/cover-prefs.ui.h:1 msgid "Automatically download the album cover of the playing song" msgstr "" #: ../data/ui/cover-prefs.ui.h:2 ../src/shell/ario-shell-preferences.c:128 msgid "Covers" msgstr "Caràtules" #: ../data/ui/cover-prefs.ui.h:3 msgid "Covers Sources" msgstr "" #: ../data/ui/cover-prefs.ui.h:4 msgid "Show the covers in the albums list" msgstr "" #: ../data/ui/cover-prefs.ui.h:5 msgid "Use Amazon." msgstr "" #: ../data/ui/connection-prefs.ui.h:1 #: ../src/shell/ario-shell-preferences.c:108 msgid "Connection" msgstr "Connexió" #: ../data/ui/connection-prefs.ui.h:2 msgid "_Autoconnect on startup" msgstr "" #: ../data/ui/connection-prefs.ui.h:3 ../src/shell/ario-shell.c:167 msgid "_Connect" msgstr "_Connecta" #: ../data/ui/connection-prefs.ui.h:4 ../src/shell/ario-shell.c:170 msgid "_Disconnect" msgstr "_Desconnecta" #: ../data/ui/connection-assistant.ui.h:1 msgid "" "You need to specify a server to connect to. If you don't see your server " "thanks to the autodetection, you should check that zeroconf/avahi is " "activated in your server or use the manual configuration." msgstr "" #: ../data/ui/cover-progress.ui.h:1 ../data/ui/cover-select.ui.h:1 #: ../data/ui/song-infos.ui.h:1 ../plugins/information/information.ui.h:1 msgid "Album :" msgstr "Àlbum :" #: ../data/ui/cover-progress.ui.h:2 ../data/ui/cover-select.ui.h:2 #: ../data/ui/lyrics-select.ui.h:1 ../data/ui/song-infos.ui.h:3 #: ../plugins/information/information.ui.h:3 #: ../plugins/radios/ario-radio.c:166 msgid "Artist :" msgstr "Artista :" #: ../data/ui/cover-progress.ui.h:3 msgid "Downloading cover" msgstr "" #: ../data/ui/cover-select.ui.h:3 msgid "Local search" msgstr "" #: ../data/ui/cover-select.ui.h:4 ../src/sources/ario-search.c:108 msgid "Search" msgstr "Cerca" #: ../data/ui/others-prefs.ui.h:1 msgid "Allow only one instance of Ario" msgstr "" #: ../data/ui/others-prefs.ui.h:2 msgid "Hide window when close button is pressed" msgstr "" #: ../data/ui/others-prefs.ui.h:3 msgid "Interface" msgstr "Interfície" #: ../data/ui/others-prefs.ui.h:4 msgid "Playlist at the right of tabs" msgstr "" #: ../data/ui/others-prefs.ui.h:5 msgid "Playlist below tabs" msgstr "" #: ../data/ui/others-prefs.ui.h:6 msgid "Playlist within tabs" msgstr "" #: ../data/ui/others-prefs.ui.h:7 msgid "Proxy" msgstr "Servidor intermediari" #: ../data/ui/others-prefs.ui.h:8 msgid "Proxy Address :" msgstr "" #: ../data/ui/others-prefs.ui.h:9 msgid "Proxy Port :" msgstr "" #: ../data/ui/others-prefs.ui.h:10 msgid "Show tabs" msgstr "" #: ../data/ui/others-prefs.ui.h:11 msgid "Use a proxy" msgstr "" #: ../data/ui/lyrics-prefs.ui.h:1 msgid "Lyrics Sources" msgstr "" #: ../data/ui/lyrics-select.ui.h:2 ../data/ui/song-infos.ui.h:13 #: ../plugins/information/information.ui.h:6 msgid "Title :" msgstr "Tiítol :" #: ../data/ui/playlist-prefs.ui.h:1 msgid "Add after playing song" msgstr "" #: ../data/ui/playlist-prefs.ui.h:2 msgid "Add and play" msgstr "" #: ../data/ui/playlist-prefs.ui.h:3 ../data/ui/similar-artists.ui.h:2 msgid "Add to playlist" msgstr "" #. ARIO_TAG_ARTIST #: ../data/ui/playlist-prefs.ui.h:4 ../src/servers/ario-server.c:46 #: ../src/sources/ario-tree-albums.c:213 ../src/widgets/ario-playlist.c:541 #: ../src/widgets/ario-songlist.c:228 ../src/widgets/ario-tray-icon.c:565 msgid "Album" msgstr "Àlbum" #: ../data/ui/playlist-prefs.ui.h:5 ../src/servers/ario-server.c:45 #: ../src/widgets/ario-playlist.c:541 ../src/widgets/ario-songlist.c:213 #: ../src/widgets/ario-tray-icon.c:563 msgid "Artist" msgstr "Artista" #. ARIO_TAG_GENRE #: ../data/ui/playlist-prefs.ui.h:6 ../src/servers/ario-server.c:52 #: ../src/widgets/ario-playlist.c:541 msgid "Date" msgstr "" #: ../data/ui/playlist-prefs.ui.h:7 ../src/widgets/ario-playlist.c:541 msgid "Disc" msgstr "" #: ../data/ui/playlist-prefs.ui.h:8 msgid "Double click" msgstr "" #: ../data/ui/playlist-prefs.ui.h:9 ../src/widgets/ario-playlist.c:541 msgid "Duration" msgstr "Duració" #: ../data/ui/playlist-prefs.ui.h:10 ../src/widgets/ario-playlist.c:541 msgid "File" msgstr "" #. ARIO_TAG_TRACK #. ARIO_TAG_NAME #: ../data/ui/playlist-prefs.ui.h:11 ../src/servers/ario-server.c:51 #: ../src/widgets/ario-playlist.c:541 msgid "Genre" msgstr "Gènere" #: ../data/ui/playlist-prefs.ui.h:12 msgid "Go to current song when a new song is played" msgstr "" #: ../data/ui/playlist-prefs.ui.h:13 msgid "Mode" msgstr "" #: ../data/ui/playlist-prefs.ui.h:14 msgid "On double click:" msgstr "" #: ../data/ui/playlist-prefs.ui.h:15 ../src/sources/ario-storedplaylists.c:229 #: ../src/shell/ario-shell.c:222 ../src/shell/ario-shell-preferences.c:123 #: ../src/widgets/ario-playlist.c:272 msgid "Playlist" msgstr "Llista de reproducció" #: ../data/ui/playlist-prefs.ui.h:16 msgid "Playlist mode:" msgstr "" #: ../data/ui/playlist-prefs.ui.h:17 msgid "Replace in playlist" msgstr "" #: ../data/ui/playlist-prefs.ui.h:18 msgid "Show rows:" msgstr "" #. ARIO_TAG_ALBUM_ARTIST #: ../data/ui/playlist-prefs.ui.h:19 ../src/servers/ario-server.c:48 #: ../src/sources/ario-tree-songs.c:145 ../src/widgets/ario-playlist.c:541 #: ../src/widgets/ario-songlist.c:198 ../src/widgets/ario-tray-icon.c:567 msgid "Title" msgstr "Títol" #. ARIO_TAG_TITLE #: ../data/ui/playlist-prefs.ui.h:20 ../src/servers/ario-server.c:49 #: ../src/sources/ario-tree-songs.c:138 ../src/widgets/ario-playlist.c:541 msgid "Track" msgstr "Pista" #: ../data/ui/server-prefs.ui.h:1 msgid "Audio outputs" msgstr "" #: ../data/ui/server-prefs.ui.h:2 msgid "Crossfade" msgstr "" #: ../data/ui/server-prefs.ui.h:3 msgid "Database" msgstr "Base de dades" #: ../data/ui/server-prefs.ui.h:4 msgid "Last updated:" msgstr "Darrera actualització:" #: ../data/ui/server-prefs.ui.h:5 msgid "Stop music on exit" msgstr "" #: ../data/ui/server-prefs.ui.h:6 msgid "Update on startup" msgstr "" #: ../data/ui/server-prefs.ui.h:7 msgid "_Update" msgstr "_Actualitza" #: ../data/ui/server-prefs.ui.h:8 msgid "enable crossfade" msgstr "" #: ../data/ui/server-prefs.ui.h:9 msgid "fade time (s):" msgstr "" #: ../data/ui/server-prefs.ui.h:10 ../src/ario-util.c:50 ../src/ario-util.c:71 #: ../src/ario-util.c:93 ../plugins/information/information.ui.h:7 #, c-format msgid "n/a" msgstr "n/a" #: ../data/ui/similar-artists.ui.h:1 msgid "Add all to playlist" msgstr "" #: ../data/ui/similar-artists.ui.h:3 msgid "Find on Last.fm" msgstr "" #: ../data/ui/stats-prefs.ui.h:1 msgid "Database play time :" msgstr "" #: ../data/ui/stats-prefs.ui.h:2 msgid "Number of albums :" msgstr "" #: ../data/ui/stats-prefs.ui.h:3 msgid "Number of artists :" msgstr "" #: ../data/ui/stats-prefs.ui.h:4 msgid "Number of songs :" msgstr "" #: ../data/ui/stats-prefs.ui.h:5 msgid "Play time :" msgstr "" #: ../data/ui/stats-prefs.ui.h:6 ../src/shell/ario-shell-preferences.c:148 msgid "Statistics" msgstr "Estadístiques" #: ../data/ui/stats-prefs.ui.h:7 msgid "Uptime :" msgstr "" #: ../data/ui/song-infos.ui.h:2 msgid "Album Artist :" msgstr "" #: ../data/ui/song-infos.ui.h:4 msgid "Comment :" msgstr "" #: ../data/ui/song-infos.ui.h:5 msgid "Composer :" msgstr "" #: ../data/ui/song-infos.ui.h:6 msgid "Date :" msgstr "" #: ../data/ui/song-infos.ui.h:7 msgid "Disc :" msgstr "" #: ../data/ui/song-infos.ui.h:8 msgid "Filename :" msgstr "" #: ../data/ui/song-infos.ui.h:9 ../plugins/radios/ario-radio.c:169 msgid "Genre :" msgstr "" #: ../data/ui/song-infos.ui.h:10 ../plugins/information/information.ui.h:4 msgid "Length :" msgstr "" #: ../data/ui/song-infos.ui.h:11 msgid "Performer :" msgstr "" #: ../data/ui/song-infos.ui.h:12 msgid "Song" msgstr "Cançó" #: ../data/ui/song-infos.ui.h:14 msgid "Track :" msgstr "" #: ../data/ui/trayicon-prefs.ui.h:1 msgid "Do nothing" msgstr "No fer res" #: ../data/ui/trayicon-prefs.ui.h:2 msgid "Mute" msgstr "" #: ../data/ui/trayicon-prefs.ui.h:3 ../src/shell/ario-shell-preferences.c:138 msgid "Notification" msgstr "" #: ../data/ui/trayicon-prefs.ui.h:4 msgid "Notification on song change" msgstr "" #: ../data/ui/trayicon-prefs.ui.h:5 msgid "Notification time: " msgstr "" #: ../data/ui/trayicon-prefs.ui.h:6 msgid "On middle button click on tray icon :" msgstr "" #: ../data/ui/trayicon-prefs.ui.h:7 ../src/widgets/ario-header.c:241 msgid "Play next song" msgstr "Reprodueix la següent cançó" #: ../data/ui/trayicon-prefs.ui.h:8 msgid "Play/Pause" msgstr "Reprodueix/Pausa" #: ../data/ui/trayicon-prefs.ui.h:9 msgid "Tray icon" msgstr "" #: ../src/ario-main.c:67 msgid "Start minimized window" msgstr "" #: ../src/ario-main.c:68 msgid "Start with specific profile" msgstr "" #. Format result string #: ../src/ario-util.c:110 msgid "seconds" msgstr "segons" #: ../src/ario-util.c:112 msgid "minutes" msgstr "minuts" #: ../src/ario-util.c:118 msgid "hours" msgstr "hores" #: ../src/ario-util.c:124 msgid "days" msgstr "dies" #: ../src/covers/ario-cover.c:149 msgid "The cover already exists. Do you want to replace it?" msgstr "" #: ../src/covers/ario-cover-local.c:48 msgid "Music Directory" msgstr "" #: ../src/playlist/ario-playlist-dynamic.c:49 msgid "songs of same artist" msgstr "" #: ../src/playlist/ario-playlist-dynamic.c:50 msgid "songs of same album" msgstr "" #: ../src/playlist/ario-playlist-dynamic.c:51 msgid "songs of similar artists" msgstr "" #: ../src/playlist/ario-playlist-dynamic.c:52 msgid "albums of same artists" msgstr "" #: ../src/playlist/ario-playlist-dynamic.c:53 msgid "albums of similar artists" msgstr "" #: ../src/playlist/ario-playlist-dynamic.c:69 msgid "Dynamic Playlist" msgstr "" #: ../src/playlist/ario-playlist-queue.c:49 msgid "Queue Mode" msgstr "" #: ../src/playlist/ario-playlist-normal.c:47 msgid "Normal" msgstr "" #: ../src/plugins/ario-plugin-manager.c:45 msgid "Plugin" msgstr "Connector" #: ../src/plugins/ario-plugin-manager.c:46 msgid "Enabled" msgstr "Activat" #: ../src/plugins/ario-plugin-manager.c:480 ../src/shell/ario-shell.c:206 msgid "_About" msgstr "_Quant a" #: ../src/plugins/ario-plugin-manager.c:488 msgid "C_onfigure" msgstr "C_onfigura" #: ../src/plugins/ario-plugin-manager.c:497 msgid "A_ctivate" msgstr "A_ctiva" #: ../src/plugins/ario-plugin-manager.c:508 msgid "Ac_tivate All" msgstr "Ac_tiva-ho tot" #: ../src/plugins/ario-plugin-manager.c:513 msgid "_Deactivate All" msgstr "_Desactiva-ho tot" #: ../src/plugins/ario-plugin-manager.c:722 msgid "Active plugins" msgstr "Connectors actius" #: ../src/preferences/ario-server-preferences.c:182 #: ../src/preferences/ario-stats-preferences.c:151 #: ../src/preferences/ario-stats-preferences.c:152 #: ../src/preferences/ario-stats-preferences.c:153 #: ../src/preferences/ario-stats-preferences.c:154 #: ../src/preferences/ario-stats-preferences.c:155 #: ../src/preferences/ario-stats-preferences.c:156 msgid "Not connected" msgstr "Desconnectat" #: ../src/preferences/ario-server-preferences.c:187 #: ../src/preferences/ario-server-preferences.c:278 #: ../src/widgets/ario-status-bar.c:100 msgid "Updating..." msgstr "S'està actualitzant..." #: ../src/servers/ario-mpd.c:410 ../src/servers/ario-mpd2.c:522 msgid "Connecting to server..." msgstr "" #: ../src/servers/ario-mpd.c:438 ../src/servers/ario-mpd2.c:550 msgid "Impossible to connect to server. Check the connection options." msgstr "" #. ARIO_TAG_ALBUM #: ../src/servers/ario-server.c:47 msgid "Album Artist" msgstr "" #. ARIO_TAG_DATE #: ../src/servers/ario-server.c:53 msgid "Composer" msgstr "" #. ARIO_TAG_COMPOSER #: ../src/servers/ario-server.c:54 msgid "Performer" msgstr "" #. ARIO_TAG_PERFORMER #. ARIO_TAG_COMMENT #. ARIO_TAG_DISC #: ../src/servers/ario-server.c:57 msgid "Filename" msgstr "Nom de l'arxiu" #. ARIO_TAG_FILENAME #: ../src/servers/ario-server.c:58 msgid "Any" msgstr "Qualsevol" #. impossible time or broken locale settings #: ../src/servers/ario-server.h:27 #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1235 msgid "Unknown" msgstr "Desconegut/da" #: ../src/sources/ario-browser.c:82 ../src/sources/ario-search.c:70 #: ../src/sources/ario-storedplaylists.c:88 #: ../src/sources/ario-storedplaylists.c:106 #: ../plugins/filesystem/ario-filesystem.c:94 #: ../plugins/filesystem/ario-filesystem.c:109 #: ../plugins/radios/ario-radio.c:116 msgid "_Add to playlist" msgstr "" #: ../src/sources/ario-browser.c:85 ../src/sources/ario-search.c:73 #: ../src/sources/ario-storedplaylists.c:91 #: ../src/sources/ario-storedplaylists.c:109 #: ../plugins/filesystem/ario-filesystem.c:97 #: ../plugins/filesystem/ario-filesystem.c:112 #: ../plugins/radios/ario-radio.c:119 msgid "Add and _play" msgstr "" #: ../src/sources/ario-browser.c:88 ../src/sources/ario-search.c:76 #: ../src/sources/ario-storedplaylists.c:94 #: ../src/sources/ario-storedplaylists.c:112 #: ../plugins/filesystem/ario-filesystem.c:100 #: ../plugins/filesystem/ario-filesystem.c:115 #: ../plugins/radios/ario-radio.c:122 msgid "_Replace in playlist" msgstr "" #: ../src/sources/ario-browser.c:91 msgid "Get the covers" msgstr "" #: ../src/sources/ario-browser.c:94 msgid "_Delete the covers" msgstr "" #: ../src/sources/ario-browser.c:97 ../src/sources/ario-browser.c:100 #: ../src/sources/ario-search.c:79 ../src/sources/ario-storedplaylists.c:115 #: ../src/widgets/ario-playlist.c:151 #: ../plugins/filesystem/ario-filesystem.c:118 #: ../plugins/radios/ario-radio.c:131 msgid "_Properties" msgstr "_Propietats" #: ../src/sources/ario-browser.c:125 ../src/shell/ario-shell-preferences.c:118 msgid "Library" msgstr "Biblioteca" #: ../src/sources/ario-storedplaylists.c:97 msgid "_Delete" msgstr "_Suprimeix" #: ../src/sources/ario-storedplaylists.c:151 msgid "Playlists" msgstr "Llistes de reproducció" #: ../src/sources/ario-storedplaylists.c:592 msgid "Are you sure that you want to delete all the selected playlists?" msgstr "" #: ../src/sources/ario-tree.c:856 msgid "Are you sure that you want to remove all the selected covers?" msgstr "" #. Translators - This "Cover" refers to an album cover art #: ../src/sources/ario-tree-albums.c:199 msgid "Cover" msgstr "Portada" #: ../src/shell/ario-shell.c:160 msgid "_File" msgstr "_Arxiu" #: ../src/shell/ario-shell.c:161 msgid "_Edit" msgstr "_Edita" #: ../src/shell/ario-shell.c:162 msgid "_View" msgstr "_Visualització" #: ../src/shell/ario-shell.c:163 msgid "_Control" msgstr "" #: ../src/shell/ario-shell.c:164 msgid "_Tool" msgstr "_Eina" #: ../src/shell/ario-shell.c:165 msgid "_Help" msgstr "_Ajuda" #: ../src/shell/ario-shell.c:173 msgid "_Update database" msgstr "" #: ../src/shell/ario-shell.c:176 msgid "_Quit" msgstr "_Surt" #: ../src/shell/ario-shell.c:179 msgid "Plu_gins" msgstr "_Connectors" #: ../src/shell/ario-shell.c:182 msgid "Prefere_nces" msgstr "_Preferències" #: ../src/shell/ario-shell.c:185 msgid "_Change current album cover" msgstr "" #: ../src/shell/ario-shell.c:188 msgid "Download album _covers" msgstr "" #: ../src/shell/ario-shell.c:191 msgid "Find similar artists" msgstr "" #: ../src/shell/ario-shell.c:194 msgid "Add similar songs to playlist" msgstr "" #: ../src/shell/ario-shell.c:197 msgid "Go to _previous tab" msgstr "" #: ../src/shell/ario-shell.c:200 msgid "Go to _next tab" msgstr "" #: ../src/shell/ario-shell.c:203 msgid "Show _lyrics" msgstr "" #: ../src/shell/ario-shell.c:209 msgid "_Translate this application..." msgstr "" #: ../src/shell/ario-shell.c:216 msgid "S_tatusbar" msgstr "Barra d'_estat" #: ../src/shell/ario-shell.c:219 msgid "Upper part" msgstr "" #: ../src/shell/ario-shell.c:825 msgid "GTK client for MPD" msgstr "" #: ../src/shell/ario-shell.c:826 msgid "translator-credits" msgstr "" "Launchpad Contributions:\n" " Alexis Martínez https://launchpad.net/~alexismartinezfer\n" " Marc Pavot https://launchpad.net/~marc-pavot\n" " MrcredsAlex https://launchpad.net/~mrcredsalex\n" " borgg https://launchpad.net/~guillem-gilabert\n" " el_libre - http://www.catmidia.cat XDDDDDDDDDDDDDDDDDDDDDDDDDDD https://" "launchpad.net/~el-libre" #. Create plugins configuration dialog window #: ../src/shell/ario-shell.c:1278 msgid "Configure Plugins" msgstr "Configura els connectors" #. Set window properties #: ../src/shell/ario-shell-coverdownloader.c:187 msgid "Music Player Cover Download" msgstr "" #: ../src/shell/ario-shell-coverdownloader.c:332 msgid "Download Finished!" msgstr "" #. We show the numbers of covers found and not found #: ../src/shell/ario-shell-coverdownloader.c:335 #, c-format msgid "" "%i covers found\n" "%i covers not found\n" "%i covers already exist" msgstr "" #. Set window properties #: ../src/shell/ario-shell-coverselect.c:242 msgid "Cover Download" msgstr "" #: ../src/shell/ario-shell-coverselect.c:559 msgid "Error reading file" msgstr "Error en llegir el fitxer" #: ../src/shell/ario-shell-coverselect.c:584 msgid "Error saving file" msgstr "Error en desar el fitxer" #: ../src/shell/ario-shell-lyrics.c:43 #: ../src/shell/ario-shell-preferences.c:133 #: ../src/shell/ario-shell-songinfos.c:272 msgid "Lyrics" msgstr "Lletra" #: ../src/shell/ario-shell-lyricsselect.c:152 msgid "Lyrics Download" msgstr "" #: ../src/shell/ario-shell-preferences.c:81 msgid "Ario Preferences" msgstr "" #: ../src/shell/ario-shell-preferences.c:113 msgid "Server" msgstr "Servidor" #: ../src/shell/ario-shell-preferences.c:143 msgid "Others" msgstr "" #: ../src/shell/ario-shell-similarartists.c:318 #, c-format msgid "%d songs" msgstr "" #. Set window properties #. Set window title #: ../src/shell/ario-shell-songinfos.c:249 #: ../src/shell/ario-shell-songinfos.c:266 #: ../src/shell/ario-shell-songinfos.c:544 msgid "Song Properties" msgstr "Propietats de la cançó" #: ../src/shell/ario-shell-songinfos.c:455 msgid "Error saving tags of file:" msgstr "" #: ../src/widgets/ario-connection-widget.c:652 msgid "You must select a server." msgstr "" #: ../src/widgets/ario-connection-widget.c:702 msgid "New Profile" msgstr "Nou perfil" #: ../src/widgets/ario-firstlaunch.c:82 msgid "The following configuration will be used:" msgstr "" #: ../src/widgets/ario-firstlaunch.c:106 msgid "" "It is the first time you launch Ario.\n" "This assistant will help you to configure it." msgstr "" #: ../src/widgets/ario-firstlaunch.c:111 msgid "Welcome to Ario" msgstr "" #: ../src/widgets/ario-firstlaunch.c:129 msgid "Configuration" msgstr "Configuració" #: ../src/widgets/ario-firstlaunch.c:141 msgid "Confirmation" msgstr "Confirmació" #: ../src/widgets/ario-header.c:66 ../src/widgets/ario-tray-icon.h:42 #, c-format msgid "from %s by %s" msgstr "" #: ../src/widgets/ario-header.c:199 msgid "Play previous song" msgstr "Reprodueix l'anterior cançó" #: ../src/widgets/ario-header.c:217 msgid "Play/Pause the music" msgstr "" #: ../src/widgets/ario-header.c:229 msgid "Stop the music" msgstr "" #. Translators - This " of " is used to count the elapsed time #. of a song like in "00:59 of 03:24" #: ../src/widgets/ario-header.c:310 ../src/widgets/ario-tooltip.c:321 msgid " of " msgstr " de " #: ../src/widgets/ario-header.c:323 msgid "Toggle random on/off" msgstr "" #: ../src/widgets/ario-header.c:335 msgid "Toggle repeat on/off" msgstr "" #: ../src/widgets/ario-header.c:340 msgid "Change the music volume" msgstr "Canvia el volum de la música" #: ../src/widgets/ario-lyrics-editor.c:323 msgid "Downloading lyrics..." msgstr "" #: ../src/widgets/ario-lyrics-editor.c:351 msgid "Lyrics not found" msgstr "" #: ../src/widgets/ario-playlist.c:133 msgid "_Clear" msgstr "Nete_ja" #: ../src/widgets/ario-playlist.c:136 msgid "_Shuffle" msgstr "" #: ../src/widgets/ario-playlist.c:139 msgid "Cr_op" msgstr "" #: ../src/widgets/ario-playlist.c:142 msgid "_Search in playlist" msgstr "" #: ../src/widgets/ario-playlist.c:145 msgid "_Remove" msgstr "Sup_rimeix" #: ../src/widgets/ario-playlist.c:148 msgid "_Save" msgstr "_Desa" #: ../src/widgets/ario-playlist.c:154 msgid "_Go to playing song" msgstr "" #: ../src/widgets/ario-playlist.c:667 msgid "Filter:" msgstr "" #. Create the widgets #: ../src/widgets/ario-playlist.c:1700 msgid "Save playlist" msgstr "Desa la llista de reproducció" #: ../src/widgets/ario-playlist.c:1710 msgid "Playlist name :" msgstr "" #: ../src/widgets/ario-playlist.c:1746 msgid "Playlist already exists. Do you want to overwrite it?" msgstr "" #. Format status bar message #: ../src/widgets/ario-status-bar.c:96 msgid "Songs" msgstr "Cançons" #: ../src/widgets/ario-tray-icon.c:102 msgid "_Play" msgstr "_Reprodueix" #: ../src/widgets/ario-tray-icon.c:105 msgid "_Pause" msgstr "_Pausa" #: ../src/widgets/ario-tray-icon.c:108 msgid "_Stop" msgstr "_Atura" #: ../src/widgets/ario-tray-icon.c:111 msgid "_Next" msgstr "_Següent" #: ../src/widgets/ario-tray-icon.c:114 msgid "P_revious" msgstr "Ante_rior" #: ../src/widgets/ario-tray-icon.h:41 msgid "Not playing" msgstr "No s'està reproduint" #. Translators: "friendly time" string for the current day, strftime format. like "Today 12:34 am" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1179 msgid "Today %I:%M %p" msgstr "Avui %I:%M %p" #. Translators: "friendly time" string for the previous day, #. * strftime format. e.g. "Yesterday 12:34 am" #. #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1192 msgid "Yesterday %I:%M %p" msgstr "Ahir %I:%M %p" #. Translators: "friendly time" string for a day in the current week, #. * strftime format. e.g. "Wed 12:34 am" #. #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1208 msgid "%a %I:%M %p" msgstr "%a %I:%M %p" #. Translators: "friendly time" string for a day in the current year, #. * strftime format. e.g. "Feb 12 12:34 am" #. #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1220 msgid "%b %d %I:%M %p" msgstr "%d de %b %I:%M %p" #. Translators: "friendly time" string for a day in a different year, #. * strftime format. e.g. "Feb 12 1997" #. #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1225 msgid "%b %d %Y" msgstr "%d %b %Y" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1311 #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:4 msgid "Never" msgstr "" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1335 msgid "OK" msgstr "Accepta" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1338 msgid "Logging in" msgstr "Entrant" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1341 msgid "Request failed" msgstr "La petició ha fallat" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1344 msgid "Incorrect username" msgstr "El nom d'usuari/a és incorrecte" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1347 msgid "Incorrect password" msgstr "La contrasenya no és correcta" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1350 msgid "Handshake failed" msgstr "Ha fallat la negociació" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1353 msgid "Client update required" msgstr "Es requereix una actualització del client" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1356 msgid "Track submission failed" msgstr "L'enviament de la peça ha fallat" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1359 msgid "Queue is too long" msgstr "La cua és massa gran" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1362 msgid "Track submission failed too many times" msgstr "L'enviament de la peça ha fallat massa vegades" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1417 msgid "Audioscrobbler preferences" msgstr "Preferències de l'Audioscrobbler" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:1 msgid "Disabled" msgstr "" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:2 msgid "Last submission time:" msgstr "Data de l'últim enviament:" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:3 msgid "Last.fm Profile" msgstr "" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:6 msgid "Queued tracks:" msgstr "Cançons a la cua:" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:7 msgid "Status:" msgstr "" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:8 msgid "Tracks submitted:" msgstr "Peces enviades:" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:9 #: ../plugins/radios/ario-radio.c:168 msgid "Username :" msgstr "" #: ../plugins/audioscrobbler/audioscrobbler.ario-plugin.desktop.in.h:1 msgid "Last.fm" msgstr "Last.fm" #: ../plugins/audioscrobbler/audioscrobbler.ario-plugin.desktop.in.h:2 msgid "Submits song information to last.fm" msgstr "" #: ../plugins/filesystem/ario-filesystem.c:158 msgid "File System" msgstr "Sistema de fitxers" #: ../plugins/filesystem/ario-filesystem.c:422 msgid "Music" msgstr "Música" #: ../plugins/filesystem/filesystem.ario-plugin.desktop.in.h:1 msgid "A File System Browser" msgstr "" #: ../plugins/filesystem/filesystem.ario-plugin.desktop.in.h:2 msgid "File System Browser" msgstr "" #: ../plugins/information/ario-information.c:114 msgid "Information" msgstr "" #: ../plugins/information/information.ario-plugin.desktop.in.h:1 msgid "Display various information about the playing song" msgstr "" #: ../plugins/information/information.ario-plugin.desktop.in.h:2 msgid "Song Information" msgstr "" #: ../plugins/information/information.ui.h:2 msgid "Albums from this artist:" msgstr "" #: ../plugins/information/information.ui.h:5 msgid "Lyrics:" msgstr "" #: ../plugins/libnotify/libnotify.ario-plugin.desktop.in.h:1 msgid "Add libnotify support" msgstr "" #: ../plugins/libnotify/libnotify.ario-plugin.desktop.in.h:2 msgid "Libnotify" msgstr "" #: ../plugins/mmkeys/mmkeys.ario-plugin.desktop.in.h:1 msgid "Add multimedia keys support" msgstr "" #: ../plugins/mmkeys/mmkeys.ario-plugin.desktop.in.h:2 msgid "Multimedia Keys" msgstr "" #: ../plugins/radios/ario-radio.c:125 msgid "Add a _new radio" msgstr "" #: ../plugins/radios/ario-radio.c:128 msgid "_Delete this radios" msgstr "" #: ../plugins/radios/ario-radio.c:166 msgid "Last.fm: Radio of similar artists" msgstr "" #: ../plugins/radios/ario-radio.c:167 msgid "Last.fm: Radio of group" msgstr "" #: ../plugins/radios/ario-radio.c:167 msgid "Group :" msgstr "" #: ../plugins/radios/ario-radio.c:168 msgid "Last.fm: Personal radio" msgstr "" #: ../plugins/radios/ario-radio.c:169 msgid "Last.fm: Radio of genre" msgstr "" #: ../plugins/radios/ario-radio.c:184 #: ../plugins/radios/radios.ario-plugin.desktop.in.h:2 msgid "Web Radios" msgstr "" #: ../plugins/radios/ario-radio.c:246 msgid "Internet Radios" msgstr "" #. Create dialog window #: ../plugins/radios/ario-radio.c:774 msgid "Edit a WebRadio" msgstr "" #: ../plugins/radios/ario-radio.c:787 ../plugins/radios/ario-radio.c:923 msgid "URL :" msgstr "Adreça URL :" #: ../plugins/radios/ario-radio.c:853 ../plugins/radios/ario-radio.c:997 msgid "Bad parameters. You must specify a name and a URL for the radio." msgstr "" #. Create dialog window #: ../plugins/radios/ario-radio.c:883 msgid "Add a WebRadio" msgstr "" #: ../plugins/radios/ario-radio.c:1083 msgid "Are you sure you want to delete all the selected radios?" msgstr "" #: ../plugins/radios/radios.ario-plugin.desktop.in.h:1 msgid "Listen to webradios" msgstr "" #: ../plugins/wikipedia/ario-wikipedia-plugin.c:49 #: ../plugins/wikipedia/ario-wikipedia-plugin.c:50 msgid "Find artist on Wikipedia" msgstr "" #: ../plugins/wikipedia/ario-wikipedia-plugin.c:172 msgid "Wikipedia Plugin - Configuration" msgstr "" #: ../plugins/wikipedia/ario-wikipedia-plugin.c:181 msgid "Wikipedia language :" msgstr "" #: ../plugins/wikipedia/wikipedia.ario-plugin.desktop.in.h:1 msgid "A plugin to search current artist on wikipedia" msgstr "" #: ../plugins/wikipedia/wikipedia.ario-plugin.desktop.in.h:2 msgid "Wikipedia" msgstr "Viquipèdia" ario-1.6/po/th.po0000644000175000017500000010225713226723435010642 00000000000000# Thai translation for ario # Copyright (c) 2008 Rosetta Contributors and Canonical Ltd 2008 # This file is distributed under the same license as the ario package. # FIRST AUTHOR , 2008. # msgid "" msgstr "" "Project-Id-Version: ario\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2011-06-13 18:15+0200\n" "PO-Revision-Date: 2009-11-29 00:00+0000\n" "Last-Translator: Marc Pavot \n" "Language-Team: Thai \n" "Language: th\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2011-06-13 16:32+0000\n" "X-Generator: Launchpad (build 13175)\n" #: ../data/ario.desktop.in.in.h:1 msgid "Ario music player" msgstr "โปรแกรมเล่นเพลง Ario" #: ../data/ario.desktop.in.in.h:2 msgid "Client application to mpd" msgstr "" #: ../data/ui/browser-prefs.ui.h:1 msgid "Alphabetically" msgstr "ตามลำดับอักษร" #: ../data/ui/browser-prefs.ui.h:2 msgid "By year" msgstr "ตามปี" #: ../data/ui/browser-prefs.ui.h:3 msgid "Library Options" msgstr "" #: ../data/ui/browser-prefs.ui.h:4 msgid "Library Organisation" msgstr "" #: ../data/ui/browser-prefs.ui.h:5 msgid "Sort albums: " msgstr "เรียงอัลบัม: " #: ../data/ui/connection-autodetect.ui.h:1 msgid "" "If you don't see your MPD server thanks to the automatic detection, you " "should check that zeroconf is activated in your MPD configuration or use the " "manual configuration." msgstr "" #: ../data/ui/connection-autodetect.ui.h:2 msgid "Server autodetection" msgstr "" #: ../data/ui/connection-widget.ui.h:1 msgid "Auto detect" msgstr "" #: ../data/ui/connection-widget.ui.h:2 msgid "Default" msgstr "ค่าปริยาย" #: ../data/ui/connection-widget.ui.h:3 ../src/widgets/ario-firstlaunch.c:83 msgid "Host :" msgstr "โฮสต์ :" #: ../data/ui/connection-widget.ui.h:4 msgid "Music directory :" msgstr "ไดเรกทอรี่เพลง :" #: ../data/ui/connection-widget.ui.h:5 msgid "Music server is on the same computer as Ario" msgstr "" #. Create the widgets #: ../data/ui/connection-widget.ui.h:6 ../plugins/radios/ario-radio.c:786 #: ../plugins/radios/ario-radio.c:922 msgid "Name :" msgstr "ชื่อ :" #: ../data/ui/connection-widget.ui.h:7 #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:5 msgid "Password :" msgstr "รหัสผ่าน :" #: ../data/ui/connection-widget.ui.h:8 ../src/widgets/ario-firstlaunch.c:85 msgid "Port :" msgstr "พอร์ต :" #: ../data/ui/connection-widget.ui.h:9 #, fuzzy msgid "Server type :" msgstr "เซิร์ฟเวอร์" #: ../data/ui/connection-widget.ui.h:10 msgid "Timeout :" msgstr "" #: ../data/ui/connection-widget.ui.h:11 msgid "XMMS 2 (Experimental)" msgstr "" #: ../data/ui/cover-prefs.ui.h:1 msgid "Automatically download the album cover of the playing song" msgstr "" #: ../data/ui/cover-prefs.ui.h:2 ../src/shell/ario-shell-preferences.c:128 msgid "Covers" msgstr "ปกซีดี" #: ../data/ui/cover-prefs.ui.h:3 msgid "Covers Sources" msgstr "แหล่งของปกซีดี" #: ../data/ui/cover-prefs.ui.h:4 msgid "Show the covers in the albums list" msgstr "แสดงปกซีดีในรายการของอัลบัม" #: ../data/ui/cover-prefs.ui.h:5 msgid "Use Amazon." msgstr "ใช้ Amazon" #: ../data/ui/connection-prefs.ui.h:1 #: ../src/shell/ario-shell-preferences.c:108 msgid "Connection" msgstr "การเชื่อมต่อ" #: ../data/ui/connection-prefs.ui.h:2 msgid "_Autoconnect on startup" msgstr "เชื่อมต่ออัตโนมัติเมื่อเริ่ม" #: ../data/ui/connection-prefs.ui.h:3 ../src/shell/ario-shell.c:167 msgid "_Connect" msgstr "เชื่อมต่อ" #: ../data/ui/connection-prefs.ui.h:4 ../src/shell/ario-shell.c:170 msgid "_Disconnect" msgstr "ยกเลิกการเชื่อมต่อ" #: ../data/ui/connection-assistant.ui.h:1 msgid "" "You need to specify a server to connect to. If you don't see your server " "thanks to the autodetection, you should check that zeroconf/avahi is " "activated in your server or use the manual configuration." msgstr "" #: ../data/ui/cover-progress.ui.h:1 ../data/ui/cover-select.ui.h:1 #: ../data/ui/song-infos.ui.h:1 ../plugins/information/information.ui.h:1 msgid "Album :" msgstr "อัลบัม :" #: ../data/ui/cover-progress.ui.h:2 ../data/ui/cover-select.ui.h:2 #: ../data/ui/lyrics-select.ui.h:1 ../data/ui/song-infos.ui.h:3 #: ../plugins/information/information.ui.h:3 #: ../plugins/radios/ario-radio.c:166 msgid "Artist :" msgstr "ศิลปิน :" #: ../data/ui/cover-progress.ui.h:3 msgid "Downloading cover" msgstr "ดาวน์โหลดปกซีดี" #: ../data/ui/cover-select.ui.h:3 msgid "Local search" msgstr "" #: ../data/ui/cover-select.ui.h:4 ../src/sources/ario-search.c:108 msgid "Search" msgstr "ค้นหา" #: ../data/ui/others-prefs.ui.h:1 msgid "Allow only one instance of Ario" msgstr "" #: ../data/ui/others-prefs.ui.h:2 msgid "Hide window when close button is pressed" msgstr "" #: ../data/ui/others-prefs.ui.h:3 msgid "Interface" msgstr "ส่วนติดต่อผู้ใช้" #: ../data/ui/others-prefs.ui.h:4 msgid "Playlist at the right of tabs" msgstr "" #: ../data/ui/others-prefs.ui.h:5 msgid "Playlist below tabs" msgstr "" #: ../data/ui/others-prefs.ui.h:6 msgid "Playlist within tabs" msgstr "" #: ../data/ui/others-prefs.ui.h:7 msgid "Proxy" msgstr "พร็อกซี่" #: ../data/ui/others-prefs.ui.h:8 msgid "Proxy Address :" msgstr "ที่อยู่พร็อกซี่ :" #: ../data/ui/others-prefs.ui.h:9 msgid "Proxy Port :" msgstr "พอร์ตพร็อกซี่ :" #: ../data/ui/others-prefs.ui.h:10 msgid "Show tabs" msgstr "แสดงแท็ป:" #: ../data/ui/others-prefs.ui.h:11 msgid "Use a proxy" msgstr "ใช้พร็อกซี่" #: ../data/ui/lyrics-prefs.ui.h:1 msgid "Lyrics Sources" msgstr "แหล่งเนื้อเพลง" #: ../data/ui/lyrics-select.ui.h:2 ../data/ui/song-infos.ui.h:13 #: ../plugins/information/information.ui.h:6 msgid "Title :" msgstr "ชื่อเพลง :" #: ../data/ui/playlist-prefs.ui.h:1 msgid "Add after playing song" msgstr "" #: ../data/ui/playlist-prefs.ui.h:2 msgid "Add and play" msgstr "" #: ../data/ui/playlist-prefs.ui.h:3 ../data/ui/similar-artists.ui.h:2 msgid "Add to playlist" msgstr "เพิ่มในรายการเล่น" #. ARIO_TAG_ARTIST #: ../data/ui/playlist-prefs.ui.h:4 ../src/servers/ario-server.c:46 #: ../src/sources/ario-tree-albums.c:213 ../src/widgets/ario-playlist.c:541 #: ../src/widgets/ario-songlist.c:228 ../src/widgets/ario-tray-icon.c:565 msgid "Album" msgstr "อัลบัม" #: ../data/ui/playlist-prefs.ui.h:5 ../src/servers/ario-server.c:45 #: ../src/widgets/ario-playlist.c:541 ../src/widgets/ario-songlist.c:213 #: ../src/widgets/ario-tray-icon.c:563 msgid "Artist" msgstr "ศิลปิน" #. ARIO_TAG_GENRE #: ../data/ui/playlist-prefs.ui.h:6 ../src/servers/ario-server.c:52 #: ../src/widgets/ario-playlist.c:541 msgid "Date" msgstr "วันที่" #: ../data/ui/playlist-prefs.ui.h:7 ../src/widgets/ario-playlist.c:541 msgid "Disc" msgstr "" #: ../data/ui/playlist-prefs.ui.h:8 msgid "Double click" msgstr "" #: ../data/ui/playlist-prefs.ui.h:9 ../src/widgets/ario-playlist.c:541 msgid "Duration" msgstr "ความยาว" #: ../data/ui/playlist-prefs.ui.h:10 ../src/widgets/ario-playlist.c:541 msgid "File" msgstr "แฟ้ม" #. ARIO_TAG_TRACK #. ARIO_TAG_NAME #: ../data/ui/playlist-prefs.ui.h:11 ../src/servers/ario-server.c:51 #: ../src/widgets/ario-playlist.c:541 msgid "Genre" msgstr "ประเภท" #: ../data/ui/playlist-prefs.ui.h:12 msgid "Go to current song when a new song is played" msgstr "" #: ../data/ui/playlist-prefs.ui.h:13 msgid "Mode" msgstr "" #: ../data/ui/playlist-prefs.ui.h:14 msgid "On double click:" msgstr "" #: ../data/ui/playlist-prefs.ui.h:15 ../src/sources/ario-storedplaylists.c:229 #: ../src/shell/ario-shell.c:222 ../src/shell/ario-shell-preferences.c:123 #: ../src/widgets/ario-playlist.c:272 msgid "Playlist" msgstr "รายการเล่น" #: ../data/ui/playlist-prefs.ui.h:16 msgid "Playlist mode:" msgstr "" #: ../data/ui/playlist-prefs.ui.h:17 msgid "Replace in playlist" msgstr "" #: ../data/ui/playlist-prefs.ui.h:18 msgid "Show rows:" msgstr "แสดงแถว:" #. ARIO_TAG_ALBUM_ARTIST #: ../data/ui/playlist-prefs.ui.h:19 ../src/servers/ario-server.c:48 #: ../src/sources/ario-tree-songs.c:145 ../src/widgets/ario-playlist.c:541 #: ../src/widgets/ario-songlist.c:198 ../src/widgets/ario-tray-icon.c:567 msgid "Title" msgstr "ชื่อเพลง" #. ARIO_TAG_TITLE #: ../data/ui/playlist-prefs.ui.h:20 ../src/servers/ario-server.c:49 #: ../src/sources/ario-tree-songs.c:138 ../src/widgets/ario-playlist.c:541 msgid "Track" msgstr "แทร็ก" #: ../data/ui/server-prefs.ui.h:1 msgid "Audio outputs" msgstr "" #: ../data/ui/server-prefs.ui.h:2 msgid "Crossfade" msgstr "" #: ../data/ui/server-prefs.ui.h:3 msgid "Database" msgstr "ฐานข้อมูล" #: ../data/ui/server-prefs.ui.h:4 msgid "Last updated:" msgstr "อัพเดทล่าสุด:" #: ../data/ui/server-prefs.ui.h:5 msgid "Stop music on exit" msgstr "" #: ../data/ui/server-prefs.ui.h:6 msgid "Update on startup" msgstr "" #: ../data/ui/server-prefs.ui.h:7 msgid "_Update" msgstr "อัพเดท" #: ../data/ui/server-prefs.ui.h:8 msgid "enable crossfade" msgstr "" #: ../data/ui/server-prefs.ui.h:9 msgid "fade time (s):" msgstr "" #: ../data/ui/server-prefs.ui.h:10 ../src/ario-util.c:50 ../src/ario-util.c:71 #: ../src/ario-util.c:93 ../plugins/information/information.ui.h:7 #, c-format msgid "n/a" msgstr "n/a" #: ../data/ui/similar-artists.ui.h:1 msgid "Add all to playlist" msgstr "เพิ่มทั้งหมดในรายการเล่น" #: ../data/ui/similar-artists.ui.h:3 msgid "Find on Last.fm" msgstr "ค้นหาบน Last.fm" #: ../data/ui/stats-prefs.ui.h:1 msgid "Database play time :" msgstr "" #: ../data/ui/stats-prefs.ui.h:2 msgid "Number of albums :" msgstr "จำนวนของอัลบัม :" #: ../data/ui/stats-prefs.ui.h:3 msgid "Number of artists :" msgstr "จำนวนของศิลปิน :" #: ../data/ui/stats-prefs.ui.h:4 msgid "Number of songs :" msgstr "จำนวนของเพลง :" #: ../data/ui/stats-prefs.ui.h:5 msgid "Play time :" msgstr "" #: ../data/ui/stats-prefs.ui.h:6 ../src/shell/ario-shell-preferences.c:148 msgid "Statistics" msgstr "สถิติ" #: ../data/ui/stats-prefs.ui.h:7 msgid "Uptime :" msgstr "" #: ../data/ui/song-infos.ui.h:2 msgid "Album Artist :" msgstr "" #: ../data/ui/song-infos.ui.h:4 msgid "Comment :" msgstr "" #: ../data/ui/song-infos.ui.h:5 msgid "Composer :" msgstr "" #: ../data/ui/song-infos.ui.h:6 msgid "Date :" msgstr "วันที่ :" #: ../data/ui/song-infos.ui.h:7 msgid "Disc :" msgstr "แผ่น :" #: ../data/ui/song-infos.ui.h:8 msgid "Filename :" msgstr "ชื่อแฟ้ม :" #: ../data/ui/song-infos.ui.h:9 ../plugins/radios/ario-radio.c:169 msgid "Genre :" msgstr "ประเภท :" #: ../data/ui/song-infos.ui.h:10 ../plugins/information/information.ui.h:4 msgid "Length :" msgstr "ความยาว :" #: ../data/ui/song-infos.ui.h:11 msgid "Performer :" msgstr "" #: ../data/ui/song-infos.ui.h:12 msgid "Song" msgstr "เพลง" #: ../data/ui/song-infos.ui.h:14 msgid "Track :" msgstr "แทร็ก :" #: ../data/ui/trayicon-prefs.ui.h:1 msgid "Do nothing" msgstr "ไม่ทำอะไร" #: ../data/ui/trayicon-prefs.ui.h:2 msgid "Mute" msgstr "" #: ../data/ui/trayicon-prefs.ui.h:3 ../src/shell/ario-shell-preferences.c:138 msgid "Notification" msgstr "" #: ../data/ui/trayicon-prefs.ui.h:4 msgid "Notification on song change" msgstr "" #: ../data/ui/trayicon-prefs.ui.h:5 msgid "Notification time: " msgstr "" #: ../data/ui/trayicon-prefs.ui.h:6 msgid "On middle button click on tray icon :" msgstr "" #: ../data/ui/trayicon-prefs.ui.h:7 ../src/widgets/ario-header.c:241 msgid "Play next song" msgstr "เล่นเพลงถัดไป" #: ../data/ui/trayicon-prefs.ui.h:8 msgid "Play/Pause" msgstr "เล่น/หยุดชั่วคราว" #: ../data/ui/trayicon-prefs.ui.h:9 msgid "Tray icon" msgstr "" #: ../src/ario-main.c:67 msgid "Start minimized window" msgstr "" #: ../src/ario-main.c:68 msgid "Start with specific profile" msgstr "" #. Format result string #: ../src/ario-util.c:110 msgid "seconds" msgstr "วินาที" #: ../src/ario-util.c:112 msgid "minutes" msgstr "นาที" #: ../src/ario-util.c:118 msgid "hours" msgstr "ชั่วโมง" #: ../src/ario-util.c:124 msgid "days" msgstr "วัน" #: ../src/covers/ario-cover.c:149 msgid "The cover already exists. Do you want to replace it?" msgstr "ปกซีดีมีอยู่แล้ว ต้องการจะแทนที่หรือไม่?" #: ../src/covers/ario-cover-local.c:48 msgid "Music Directory" msgstr "ไดเรกทอรี่เพลง" #: ../src/playlist/ario-playlist-dynamic.c:49 msgid "songs of same artist" msgstr "" #: ../src/playlist/ario-playlist-dynamic.c:50 msgid "songs of same album" msgstr "" #: ../src/playlist/ario-playlist-dynamic.c:51 msgid "songs of similar artists" msgstr "" #: ../src/playlist/ario-playlist-dynamic.c:52 msgid "albums of same artists" msgstr "" #: ../src/playlist/ario-playlist-dynamic.c:53 msgid "albums of similar artists" msgstr "" #: ../src/playlist/ario-playlist-dynamic.c:69 msgid "Dynamic Playlist" msgstr "" #: ../src/playlist/ario-playlist-queue.c:49 msgid "Queue Mode" msgstr "" #: ../src/playlist/ario-playlist-normal.c:47 msgid "Normal" msgstr "" #: ../src/plugins/ario-plugin-manager.c:45 msgid "Plugin" msgstr "ปลั๊กอิน" #: ../src/plugins/ario-plugin-manager.c:46 msgid "Enabled" msgstr "เปิดใช้" #: ../src/plugins/ario-plugin-manager.c:480 ../src/shell/ario-shell.c:206 msgid "_About" msgstr "เกี่ยวกับ" #: ../src/plugins/ario-plugin-manager.c:488 msgid "C_onfigure" msgstr "ตั้งค่า" #: ../src/plugins/ario-plugin-manager.c:497 msgid "A_ctivate" msgstr "เปิดใช้" #: ../src/plugins/ario-plugin-manager.c:508 msgid "Ac_tivate All" msgstr "เปิดใช้ทั้งหมด" #: ../src/plugins/ario-plugin-manager.c:513 msgid "_Deactivate All" msgstr "ปิดทั้งหมด" #: ../src/plugins/ario-plugin-manager.c:722 msgid "Active plugins" msgstr "ปลั๊กอินที่เปิดใช้" #: ../src/preferences/ario-server-preferences.c:182 #: ../src/preferences/ario-stats-preferences.c:151 #: ../src/preferences/ario-stats-preferences.c:152 #: ../src/preferences/ario-stats-preferences.c:153 #: ../src/preferences/ario-stats-preferences.c:154 #: ../src/preferences/ario-stats-preferences.c:155 #: ../src/preferences/ario-stats-preferences.c:156 msgid "Not connected" msgstr "ไม่ได้เชื่อมต่อ" #: ../src/preferences/ario-server-preferences.c:187 #: ../src/preferences/ario-server-preferences.c:278 #: ../src/widgets/ario-status-bar.c:100 msgid "Updating..." msgstr "กำลังอัพเดท..." #: ../src/servers/ario-mpd.c:410 ../src/servers/ario-mpd2.c:522 msgid "Connecting to server..." msgstr "" #: ../src/servers/ario-mpd.c:438 ../src/servers/ario-mpd2.c:550 msgid "Impossible to connect to server. Check the connection options." msgstr "" #. ARIO_TAG_ALBUM #: ../src/servers/ario-server.c:47 msgid "Album Artist" msgstr "" #. ARIO_TAG_DATE #: ../src/servers/ario-server.c:53 msgid "Composer" msgstr "" #. ARIO_TAG_COMPOSER #: ../src/servers/ario-server.c:54 msgid "Performer" msgstr "" #. ARIO_TAG_PERFORMER #. ARIO_TAG_COMMENT #. ARIO_TAG_DISC #: ../src/servers/ario-server.c:57 msgid "Filename" msgstr "ชื่อแฟ้ม" #. ARIO_TAG_FILENAME #: ../src/servers/ario-server.c:58 msgid "Any" msgstr "" #. impossible time or broken locale settings #: ../src/servers/ario-server.h:27 #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1235 msgid "Unknown" msgstr "ไม่รู้จัก" #: ../src/sources/ario-browser.c:82 ../src/sources/ario-search.c:70 #: ../src/sources/ario-storedplaylists.c:88 #: ../src/sources/ario-storedplaylists.c:106 #: ../plugins/filesystem/ario-filesystem.c:94 #: ../plugins/filesystem/ario-filesystem.c:109 #: ../plugins/radios/ario-radio.c:116 msgid "_Add to playlist" msgstr "เพิ่มในรายการเล่น" #: ../src/sources/ario-browser.c:85 ../src/sources/ario-search.c:73 #: ../src/sources/ario-storedplaylists.c:91 #: ../src/sources/ario-storedplaylists.c:109 #: ../plugins/filesystem/ario-filesystem.c:97 #: ../plugins/filesystem/ario-filesystem.c:112 #: ../plugins/radios/ario-radio.c:119 msgid "Add and _play" msgstr "เพิ่มและเล่น" #: ../src/sources/ario-browser.c:88 ../src/sources/ario-search.c:76 #: ../src/sources/ario-storedplaylists.c:94 #: ../src/sources/ario-storedplaylists.c:112 #: ../plugins/filesystem/ario-filesystem.c:100 #: ../plugins/filesystem/ario-filesystem.c:115 #: ../plugins/radios/ario-radio.c:122 msgid "_Replace in playlist" msgstr "" #: ../src/sources/ario-browser.c:91 msgid "Get the covers" msgstr "" #: ../src/sources/ario-browser.c:94 msgid "_Delete the covers" msgstr "ลบปกซีดี" #: ../src/sources/ario-browser.c:97 ../src/sources/ario-browser.c:100 #: ../src/sources/ario-search.c:79 ../src/sources/ario-storedplaylists.c:115 #: ../src/widgets/ario-playlist.c:151 #: ../plugins/filesystem/ario-filesystem.c:118 #: ../plugins/radios/ario-radio.c:131 msgid "_Properties" msgstr "คุณสมบัติ" #: ../src/sources/ario-browser.c:125 ../src/shell/ario-shell-preferences.c:118 msgid "Library" msgstr "ไลบรารี" #: ../src/sources/ario-storedplaylists.c:97 msgid "_Delete" msgstr "ลบ" #: ../src/sources/ario-storedplaylists.c:151 msgid "Playlists" msgstr "รายการเล่น" #: ../src/sources/ario-storedplaylists.c:592 msgid "Are you sure that you want to delete all the selected playlists?" msgstr "" #: ../src/sources/ario-tree.c:856 msgid "Are you sure that you want to remove all the selected covers?" msgstr "" #. Translators - This "Cover" refers to an album cover art #: ../src/sources/ario-tree-albums.c:199 msgid "Cover" msgstr "ปกซีดี" #: ../src/shell/ario-shell.c:160 msgid "_File" msgstr "แฟ้ม" #: ../src/shell/ario-shell.c:161 msgid "_Edit" msgstr "แก้ไข" #: ../src/shell/ario-shell.c:162 msgid "_View" msgstr "มุมมอง" #: ../src/shell/ario-shell.c:163 msgid "_Control" msgstr "" #: ../src/shell/ario-shell.c:164 msgid "_Tool" msgstr "เครื่องมือ" #: ../src/shell/ario-shell.c:165 msgid "_Help" msgstr "วิธีใช้" #: ../src/shell/ario-shell.c:173 msgid "_Update database" msgstr "" #: ../src/shell/ario-shell.c:176 msgid "_Quit" msgstr "ออก" #: ../src/shell/ario-shell.c:179 msgid "Plu_gins" msgstr "ปลั๊กอิน" #: ../src/shell/ario-shell.c:182 msgid "Prefere_nces" msgstr "ปรับแต่ง" #: ../src/shell/ario-shell.c:185 msgid "_Change current album cover" msgstr "เปลี่ยนปกซีดีปัจจุบัน" #: ../src/shell/ario-shell.c:188 msgid "Download album _covers" msgstr "ดาวน์โหลดปกซีดี" #: ../src/shell/ario-shell.c:191 msgid "Find similar artists" msgstr "ค้นหาศิลปินใกล้เคียง" #: ../src/shell/ario-shell.c:194 msgid "Add similar songs to playlist" msgstr "เพิ่มเพลงใกล้เคียงในรายการเล่น" #: ../src/shell/ario-shell.c:197 msgid "Go to _previous tab" msgstr "" #: ../src/shell/ario-shell.c:200 msgid "Go to _next tab" msgstr "" #: ../src/shell/ario-shell.c:203 msgid "Show _lyrics" msgstr "แสดงเนื้อเพลง" #: ../src/shell/ario-shell.c:209 msgid "_Translate this application..." msgstr "แปลโปรแกรมนี้..." #: ../src/shell/ario-shell.c:216 msgid "S_tatusbar" msgstr "แถบสถานะ" #: ../src/shell/ario-shell.c:219 msgid "Upper part" msgstr "ส่วนบน" #: ../src/shell/ario-shell.c:825 msgid "GTK client for MPD" msgstr "" #: ../src/shell/ario-shell.c:826 msgid "translator-credits" msgstr "" "Launchpad Contributions:\n" " Marc Pavot https://launchpad.net/~marc-pavot\n" " Tharawut Paripaiboon https://launchpad.net/~xcession" #. Create plugins configuration dialog window #: ../src/shell/ario-shell.c:1278 msgid "Configure Plugins" msgstr "ตั้งค่าปลั๊กอิน" #. Set window properties #: ../src/shell/ario-shell-coverdownloader.c:187 msgid "Music Player Cover Download" msgstr "" #: ../src/shell/ario-shell-coverdownloader.c:332 msgid "Download Finished!" msgstr "ดาวน์โหลดเสร็จแล้ว!" #. We show the numbers of covers found and not found #: ../src/shell/ario-shell-coverdownloader.c:335 #, c-format msgid "" "%i covers found\n" "%i covers not found\n" "%i covers already exist" msgstr "" #. Set window properties #: ../src/shell/ario-shell-coverselect.c:242 msgid "Cover Download" msgstr "ดาวน์โหลดปกซีดี" #: ../src/shell/ario-shell-coverselect.c:559 msgid "Error reading file" msgstr "" #: ../src/shell/ario-shell-coverselect.c:584 msgid "Error saving file" msgstr "" #: ../src/shell/ario-shell-lyrics.c:43 #: ../src/shell/ario-shell-preferences.c:133 #: ../src/shell/ario-shell-songinfos.c:272 msgid "Lyrics" msgstr "เนื้อเพลง" #: ../src/shell/ario-shell-lyricsselect.c:152 msgid "Lyrics Download" msgstr "ดาวน์โหลดเนื้อเพลง" #: ../src/shell/ario-shell-preferences.c:81 msgid "Ario Preferences" msgstr "ปรับแต่ง Ario" #: ../src/shell/ario-shell-preferences.c:113 msgid "Server" msgstr "เซิร์ฟเวอร์" #: ../src/shell/ario-shell-preferences.c:143 msgid "Others" msgstr "" #: ../src/shell/ario-shell-similarartists.c:318 #, c-format msgid "%d songs" msgstr "%d เพลง" #. Set window properties #. Set window title #: ../src/shell/ario-shell-songinfos.c:249 #: ../src/shell/ario-shell-songinfos.c:266 #: ../src/shell/ario-shell-songinfos.c:544 msgid "Song Properties" msgstr "คุณสมบัติเพลง" #: ../src/shell/ario-shell-songinfos.c:455 msgid "Error saving tags of file:" msgstr "" #: ../src/widgets/ario-connection-widget.c:652 msgid "You must select a server." msgstr "คุณต้องเลือกเซิร์ฟเวอร์" #: ../src/widgets/ario-connection-widget.c:702 msgid "New Profile" msgstr "โปรไฟล์ใหม่" #: ../src/widgets/ario-firstlaunch.c:82 msgid "The following configuration will be used:" msgstr "การตั้งค่าต่อไปนี้จะถูกนำไปใช้:" #: ../src/widgets/ario-firstlaunch.c:106 msgid "" "It is the first time you launch Ario.\n" "This assistant will help you to configure it." msgstr "" #: ../src/widgets/ario-firstlaunch.c:111 msgid "Welcome to Ario" msgstr "ยินดีต้อนรับสู่ Ario" #: ../src/widgets/ario-firstlaunch.c:129 msgid "Configuration" msgstr "การตั้งค่า" #: ../src/widgets/ario-firstlaunch.c:141 msgid "Confirmation" msgstr "การยืนยัน" #: ../src/widgets/ario-header.c:66 ../src/widgets/ario-tray-icon.h:42 #, c-format msgid "from %s by %s" msgstr "จาก %s โดย %s" #: ../src/widgets/ario-header.c:199 msgid "Play previous song" msgstr "เล่นเพลงก่อนหน้า" #: ../src/widgets/ario-header.c:217 msgid "Play/Pause the music" msgstr "เล่น/พัก เพลง" #: ../src/widgets/ario-header.c:229 msgid "Stop the music" msgstr "หยุดเพลง" #. Translators - This " of " is used to count the elapsed time #. of a song like in "00:59 of 03:24" #: ../src/widgets/ario-header.c:310 ../src/widgets/ario-tooltip.c:321 msgid " of " msgstr "" #: ../src/widgets/ario-header.c:323 msgid "Toggle random on/off" msgstr "สลับการสุ่ม เปิด/ปิด" #: ../src/widgets/ario-header.c:335 msgid "Toggle repeat on/off" msgstr "สลับการเล่นซ้ำ เปิด/ปิด" #: ../src/widgets/ario-header.c:340 msgid "Change the music volume" msgstr "ปรับความดัง" #: ../src/widgets/ario-lyrics-editor.c:323 msgid "Downloading lyrics..." msgstr "กำลังดาวน์โหลดเนื้อเพลง..." #: ../src/widgets/ario-lyrics-editor.c:351 msgid "Lyrics not found" msgstr "ไม่พบเนื้อเพลง" #: ../src/widgets/ario-playlist.c:133 msgid "_Clear" msgstr "ล้าง" #: ../src/widgets/ario-playlist.c:136 msgid "_Shuffle" msgstr "" #: ../src/widgets/ario-playlist.c:139 msgid "Cr_op" msgstr "" #: ../src/widgets/ario-playlist.c:142 msgid "_Search in playlist" msgstr "" #: ../src/widgets/ario-playlist.c:145 msgid "_Remove" msgstr "ลบ" #: ../src/widgets/ario-playlist.c:148 msgid "_Save" msgstr "บันทึก" #: ../src/widgets/ario-playlist.c:154 msgid "_Go to playing song" msgstr "" #: ../src/widgets/ario-playlist.c:667 msgid "Filter:" msgstr "" #. Create the widgets #: ../src/widgets/ario-playlist.c:1700 msgid "Save playlist" msgstr "บันทึกรายการเล่น" #: ../src/widgets/ario-playlist.c:1710 msgid "Playlist name :" msgstr "ชื่อรายการเล่น :" #: ../src/widgets/ario-playlist.c:1746 msgid "Playlist already exists. Do you want to overwrite it?" msgstr "ปกซีดีมีอยู่แล้ว ต้องการจะแทนที่หรือไม่?" #. Format status bar message #: ../src/widgets/ario-status-bar.c:96 msgid "Songs" msgstr "เพลง" #: ../src/widgets/ario-tray-icon.c:102 msgid "_Play" msgstr "เล่น" #: ../src/widgets/ario-tray-icon.c:105 msgid "_Pause" msgstr "หยุดพัก" #: ../src/widgets/ario-tray-icon.c:108 msgid "_Stop" msgstr "หยุด" #: ../src/widgets/ario-tray-icon.c:111 msgid "_Next" msgstr "ถัดไป" #: ../src/widgets/ario-tray-icon.c:114 msgid "P_revious" msgstr "ก่อนหน้า" #: ../src/widgets/ario-tray-icon.h:41 msgid "Not playing" msgstr "ไม่ได้เล่น" #. Translators: "friendly time" string for the current day, strftime format. like "Today 12:34 am" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1179 msgid "Today %I:%M %p" msgstr "วันนี้ %I:%M %p" #. Translators: "friendly time" string for the previous day, #. * strftime format. e.g. "Yesterday 12:34 am" #. #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1192 msgid "Yesterday %I:%M %p" msgstr "เมื่อวาน %I:%M %p" #. Translators: "friendly time" string for a day in the current week, #. * strftime format. e.g. "Wed 12:34 am" #. #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1208 msgid "%a %I:%M %p" msgstr "%a %I:%M %p" #. Translators: "friendly time" string for a day in the current year, #. * strftime format. e.g. "Feb 12 12:34 am" #. #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1220 msgid "%b %d %I:%M %p" msgstr "%b %d %I:%M %p" #. Translators: "friendly time" string for a day in a different year, #. * strftime format. e.g. "Feb 12 1997" #. #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1225 msgid "%b %d %Y" msgstr "%b %d %Y" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1311 #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:4 msgid "Never" msgstr "ไม่เคย" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1335 msgid "OK" msgstr "ตกลง" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1338 msgid "Logging in" msgstr "กำลังเข้าสู่ระบบ" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1341 msgid "Request failed" msgstr "การร้องขอล้มเหลว" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1344 msgid "Incorrect username" msgstr "ชื่อผู้ใช้ไม่ถูกต้อง" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1347 msgid "Incorrect password" msgstr "รหัสผ่านไม่ถูกต้อง" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1350 msgid "Handshake failed" msgstr "" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1353 msgid "Client update required" msgstr "" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1356 msgid "Track submission failed" msgstr "" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1359 msgid "Queue is too long" msgstr "คิวยาวเกินไป" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1362 msgid "Track submission failed too many times" msgstr "" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1417 msgid "Audioscrobbler preferences" msgstr "" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:1 msgid "Disabled" msgstr "ไม่ใช้" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:2 msgid "Last submission time:" msgstr "" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:3 msgid "Last.fm Profile" msgstr "โปรไฟล์ Last.fm" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:6 msgid "Queued tracks:" msgstr "เพลงในคิว:" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:7 msgid "Status:" msgstr "สถานะ:" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:8 msgid "Tracks submitted:" msgstr "" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:9 #: ../plugins/radios/ario-radio.c:168 msgid "Username :" msgstr "ชื่อผู้ใช้ :" #: ../plugins/audioscrobbler/audioscrobbler.ario-plugin.desktop.in.h:1 msgid "Last.fm" msgstr "Last.fm" #: ../plugins/audioscrobbler/audioscrobbler.ario-plugin.desktop.in.h:2 msgid "Submits song information to last.fm" msgstr "ส่งข้อมูลเพลงไปยัง Last.fm" #: ../plugins/filesystem/ario-filesystem.c:158 msgid "File System" msgstr "แฟ้มระบบ" #: ../plugins/filesystem/ario-filesystem.c:422 msgid "Music" msgstr "เพลง" #: ../plugins/filesystem/filesystem.ario-plugin.desktop.in.h:1 msgid "A File System Browser" msgstr "" #: ../plugins/filesystem/filesystem.ario-plugin.desktop.in.h:2 msgid "File System Browser" msgstr "" #: ../plugins/information/ario-information.c:114 msgid "Information" msgstr "" #: ../plugins/information/information.ario-plugin.desktop.in.h:1 msgid "Display various information about the playing song" msgstr "" #: ../plugins/information/information.ario-plugin.desktop.in.h:2 msgid "Song Information" msgstr "" #: ../plugins/information/information.ui.h:2 msgid "Albums from this artist:" msgstr "" #: ../plugins/information/information.ui.h:5 msgid "Lyrics:" msgstr "" #: ../plugins/libnotify/libnotify.ario-plugin.desktop.in.h:1 msgid "Add libnotify support" msgstr "" #: ../plugins/libnotify/libnotify.ario-plugin.desktop.in.h:2 msgid "Libnotify" msgstr "" #: ../plugins/mmkeys/mmkeys.ario-plugin.desktop.in.h:1 msgid "Add multimedia keys support" msgstr "" #: ../plugins/mmkeys/mmkeys.ario-plugin.desktop.in.h:2 msgid "Multimedia Keys" msgstr "" #: ../plugins/radios/ario-radio.c:125 msgid "Add a _new radio" msgstr "" #: ../plugins/radios/ario-radio.c:128 msgid "_Delete this radios" msgstr "" #: ../plugins/radios/ario-radio.c:166 msgid "Last.fm: Radio of similar artists" msgstr "" #: ../plugins/radios/ario-radio.c:167 msgid "Last.fm: Radio of group" msgstr "" #: ../plugins/radios/ario-radio.c:167 msgid "Group :" msgstr "" #: ../plugins/radios/ario-radio.c:168 msgid "Last.fm: Personal radio" msgstr "" #: ../plugins/radios/ario-radio.c:169 msgid "Last.fm: Radio of genre" msgstr "" #: ../plugins/radios/ario-radio.c:184 #: ../plugins/radios/radios.ario-plugin.desktop.in.h:2 msgid "Web Radios" msgstr "วิทยุบนเว็บ" #: ../plugins/radios/ario-radio.c:246 msgid "Internet Radios" msgstr "วิทยุบนอินเตอร์เนท" #. Create dialog window #: ../plugins/radios/ario-radio.c:774 msgid "Edit a WebRadio" msgstr "" #: ../plugins/radios/ario-radio.c:787 ../plugins/radios/ario-radio.c:923 msgid "URL :" msgstr "URL :" #: ../plugins/radios/ario-radio.c:853 ../plugins/radios/ario-radio.c:997 msgid "Bad parameters. You must specify a name and a URL for the radio." msgstr "" #. Create dialog window #: ../plugins/radios/ario-radio.c:883 msgid "Add a WebRadio" msgstr "" #: ../plugins/radios/ario-radio.c:1083 msgid "Are you sure you want to delete all the selected radios?" msgstr "" #: ../plugins/radios/radios.ario-plugin.desktop.in.h:1 msgid "Listen to webradios" msgstr "" #: ../plugins/wikipedia/ario-wikipedia-plugin.c:49 #: ../plugins/wikipedia/ario-wikipedia-plugin.c:50 msgid "Find artist on Wikipedia" msgstr "ค้นหาศิลปินใน Wikipedia" #: ../plugins/wikipedia/ario-wikipedia-plugin.c:172 msgid "Wikipedia Plugin - Configuration" msgstr "ปลั๊กอิน Wikipedia - การตั้งค่า" #: ../plugins/wikipedia/ario-wikipedia-plugin.c:181 msgid "Wikipedia language :" msgstr "ภาษาของ Wikipedia :" #: ../plugins/wikipedia/wikipedia.ario-plugin.desktop.in.h:1 msgid "A plugin to search current artist on wikipedia" msgstr "ปลั๊กอินสำหรับค้นหาศิลปินใน Wikipedia" #: ../plugins/wikipedia/wikipedia.ario-plugin.desktop.in.h:2 msgid "Wikipedia" msgstr "Wikipedia" ario-1.6/po/da.po0000644000175000017500000010306313226723435010607 00000000000000# Danish translation for ario # Copyright (c) 2008 Rosetta Contributors and Canonical Ltd 2008 # This file is distributed under the same license as the ario package. # FIRST AUTHOR , 2008. # msgid "" msgstr "" "Project-Id-Version: ario\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2011-06-13 18:15+0200\n" "PO-Revision-Date: 2010-02-09 23:28+0000\n" "Last-Translator: FlowerChild \n" "Language-Team: Danish \n" "Language: da\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2011-06-13 16:32+0000\n" "X-Generator: Launchpad (build 13175)\n" #: ../data/ario.desktop.in.in.h:1 msgid "Ario music player" msgstr "Ario musikafspiller" #: ../data/ario.desktop.in.in.h:2 msgid "Client application to mpd" msgstr "En MPD klient" #: ../data/ui/browser-prefs.ui.h:1 msgid "Alphabetically" msgstr "Alfabetisk" #: ../data/ui/browser-prefs.ui.h:2 msgid "By year" msgstr "Efter år" #: ../data/ui/browser-prefs.ui.h:3 msgid "Library Options" msgstr "Biblioteksindstillinger" #: ../data/ui/browser-prefs.ui.h:4 msgid "Library Organisation" msgstr "Biblioteksorganisering" #: ../data/ui/browser-prefs.ui.h:5 msgid "Sort albums: " msgstr "Sorter albums: " #: ../data/ui/connection-autodetect.ui.h:1 msgid "" "If you don't see your MPD server thanks to the automatic detection, you " "should check that zeroconf is activated in your MPD configuration or use the " "manual configuration." msgstr "" "Hvis din mpd server ikke er at finde i listen, bør du tjekke at 'zeroconf' " "er aktiveret i mpd konfigurationen eller bruge manuel konfiguration." #: ../data/ui/connection-autodetect.ui.h:2 msgid "Server autodetection" msgstr "Automatisk serveridentifikation" #: ../data/ui/connection-widget.ui.h:1 msgid "Auto detect" msgstr "Automatisk identifkation" #: ../data/ui/connection-widget.ui.h:2 msgid "Default" msgstr "Standard" #: ../data/ui/connection-widget.ui.h:3 ../src/widgets/ario-firstlaunch.c:83 msgid "Host :" msgstr "Vært :" #: ../data/ui/connection-widget.ui.h:4 msgid "Music directory :" msgstr "Musikkatalog" #: ../data/ui/connection-widget.ui.h:5 msgid "Music server is on the same computer as Ario" msgstr "Musikserver er på den samme computer som Ario" #. Create the widgets #: ../data/ui/connection-widget.ui.h:6 ../plugins/radios/ario-radio.c:786 #: ../plugins/radios/ario-radio.c:922 msgid "Name :" msgstr "Navn :" #: ../data/ui/connection-widget.ui.h:7 #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:5 msgid "Password :" msgstr "Adgangskode :" #: ../data/ui/connection-widget.ui.h:8 ../src/widgets/ario-firstlaunch.c:85 msgid "Port :" msgstr "Port :" #: ../data/ui/connection-widget.ui.h:9 msgid "Server type :" msgstr "Servertype :" #: ../data/ui/connection-widget.ui.h:10 msgid "Timeout :" msgstr "" #: ../data/ui/connection-widget.ui.h:11 msgid "XMMS 2 (Experimental)" msgstr "XMMS 2 (eksperimentel)" #: ../data/ui/cover-prefs.ui.h:1 msgid "Automatically download the album cover of the playing song" msgstr "Hent automatisk albumomslaget til den afspillede sang" #: ../data/ui/cover-prefs.ui.h:2 ../src/shell/ario-shell-preferences.c:128 msgid "Covers" msgstr "Omslag" #: ../data/ui/cover-prefs.ui.h:3 msgid "Covers Sources" msgstr "Omslagskilder" #: ../data/ui/cover-prefs.ui.h:4 msgid "Show the covers in the albums list" msgstr "Vis omslagene i albumlisten" #: ../data/ui/cover-prefs.ui.h:5 msgid "Use Amazon." msgstr "Brug Amazon." #: ../data/ui/connection-prefs.ui.h:1 #: ../src/shell/ario-shell-preferences.c:108 msgid "Connection" msgstr "Forbindelse" #: ../data/ui/connection-prefs.ui.h:2 msgid "_Autoconnect on startup" msgstr "_Tilslut automatisk ved opstart" #: ../data/ui/connection-prefs.ui.h:3 ../src/shell/ario-shell.c:167 msgid "_Connect" msgstr "_Tilslut" #: ../data/ui/connection-prefs.ui.h:4 ../src/shell/ario-shell.c:170 msgid "_Disconnect" msgstr "_Afbryd" #: ../data/ui/connection-assistant.ui.h:1 msgid "" "You need to specify a server to connect to. If you don't see your server " "thanks to the autodetection, you should check that zeroconf/avahi is " "activated in your server or use the manual configuration." msgstr "" "Angiv en server at forbinde til. Hvis du ikke kan se din server takket være " "automatisk opdagelse, bør du kontrollere, at zeroconf/avahi er aktiveret på " "din server, eller anvende manuel konfiguration." #: ../data/ui/cover-progress.ui.h:1 ../data/ui/cover-select.ui.h:1 #: ../data/ui/song-infos.ui.h:1 ../plugins/information/information.ui.h:1 msgid "Album :" msgstr "Album :" #: ../data/ui/cover-progress.ui.h:2 ../data/ui/cover-select.ui.h:2 #: ../data/ui/lyrics-select.ui.h:1 ../data/ui/song-infos.ui.h:3 #: ../plugins/information/information.ui.h:3 #: ../plugins/radios/ario-radio.c:166 msgid "Artist :" msgstr "Kunstner :" #: ../data/ui/cover-progress.ui.h:3 msgid "Downloading cover" msgstr "Henter omslag" #: ../data/ui/cover-select.ui.h:3 msgid "Local search" msgstr "Lokal søgning" #: ../data/ui/cover-select.ui.h:4 ../src/sources/ario-search.c:108 msgid "Search" msgstr "Søg" #: ../data/ui/others-prefs.ui.h:1 msgid "Allow only one instance of Ario" msgstr "Tillad kun en kørende udgave af Ario" #: ../data/ui/others-prefs.ui.h:2 msgid "Hide window when close button is pressed" msgstr "Skjul vinduet når der trykkes på lukknappen" #: ../data/ui/others-prefs.ui.h:3 msgid "Interface" msgstr "Grænseflade" #: ../data/ui/others-prefs.ui.h:4 msgid "Playlist at the right of tabs" msgstr "" #: ../data/ui/others-prefs.ui.h:5 msgid "Playlist below tabs" msgstr "" #: ../data/ui/others-prefs.ui.h:6 msgid "Playlist within tabs" msgstr "" #: ../data/ui/others-prefs.ui.h:7 msgid "Proxy" msgstr "Proxy" #: ../data/ui/others-prefs.ui.h:8 msgid "Proxy Address :" msgstr "Proxy-adresse" #: ../data/ui/others-prefs.ui.h:9 msgid "Proxy Port :" msgstr "Proxy-port" #: ../data/ui/others-prefs.ui.h:10 msgid "Show tabs" msgstr "Vis faneblade" #: ../data/ui/others-prefs.ui.h:11 msgid "Use a proxy" msgstr "Anvend en proxy" #: ../data/ui/lyrics-prefs.ui.h:1 msgid "Lyrics Sources" msgstr "Sangtekst-kilder" #: ../data/ui/lyrics-select.ui.h:2 ../data/ui/song-infos.ui.h:13 #: ../plugins/information/information.ui.h:6 msgid "Title :" msgstr "Titel :" #: ../data/ui/playlist-prefs.ui.h:1 msgid "Add after playing song" msgstr "" #: ../data/ui/playlist-prefs.ui.h:2 msgid "Add and play" msgstr "Tilføj og afspil" #: ../data/ui/playlist-prefs.ui.h:3 ../data/ui/similar-artists.ui.h:2 msgid "Add to playlist" msgstr "Føj til afspilningsliste" #. ARIO_TAG_ARTIST #: ../data/ui/playlist-prefs.ui.h:4 ../src/servers/ario-server.c:46 #: ../src/sources/ario-tree-albums.c:213 ../src/widgets/ario-playlist.c:541 #: ../src/widgets/ario-songlist.c:228 ../src/widgets/ario-tray-icon.c:565 msgid "Album" msgstr "Album" #: ../data/ui/playlist-prefs.ui.h:5 ../src/servers/ario-server.c:45 #: ../src/widgets/ario-playlist.c:541 ../src/widgets/ario-songlist.c:213 #: ../src/widgets/ario-tray-icon.c:563 msgid "Artist" msgstr "Kunstner" #. ARIO_TAG_GENRE #: ../data/ui/playlist-prefs.ui.h:6 ../src/servers/ario-server.c:52 #: ../src/widgets/ario-playlist.c:541 msgid "Date" msgstr "Dato" #: ../data/ui/playlist-prefs.ui.h:7 ../src/widgets/ario-playlist.c:541 msgid "Disc" msgstr "Disk" #: ../data/ui/playlist-prefs.ui.h:8 msgid "Double click" msgstr "Dobbeltklik" #: ../data/ui/playlist-prefs.ui.h:9 ../src/widgets/ario-playlist.c:541 msgid "Duration" msgstr "Varighed" #: ../data/ui/playlist-prefs.ui.h:10 ../src/widgets/ario-playlist.c:541 msgid "File" msgstr "Fil" #. ARIO_TAG_TRACK #. ARIO_TAG_NAME #: ../data/ui/playlist-prefs.ui.h:11 ../src/servers/ario-server.c:51 #: ../src/widgets/ario-playlist.c:541 msgid "Genre" msgstr "Genre" #: ../data/ui/playlist-prefs.ui.h:12 msgid "Go to current song when a new song is played" msgstr "Fokusér den nuværende sang i afspilningslisten" #: ../data/ui/playlist-prefs.ui.h:13 msgid "Mode" msgstr "Tilstand" #: ../data/ui/playlist-prefs.ui.h:14 msgid "On double click:" msgstr "Ved dobbeltklik:" #: ../data/ui/playlist-prefs.ui.h:15 ../src/sources/ario-storedplaylists.c:229 #: ../src/shell/ario-shell.c:222 ../src/shell/ario-shell-preferences.c:123 #: ../src/widgets/ario-playlist.c:272 msgid "Playlist" msgstr "Afspilningsliste" #: ../data/ui/playlist-prefs.ui.h:16 msgid "Playlist mode:" msgstr "Afspilningsliste tilstand:" #: ../data/ui/playlist-prefs.ui.h:17 msgid "Replace in playlist" msgstr "Erstat i afspilningsliste" #: ../data/ui/playlist-prefs.ui.h:18 msgid "Show rows:" msgstr "Vis rækker:" #. ARIO_TAG_ALBUM_ARTIST #: ../data/ui/playlist-prefs.ui.h:19 ../src/servers/ario-server.c:48 #: ../src/sources/ario-tree-songs.c:145 ../src/widgets/ario-playlist.c:541 #: ../src/widgets/ario-songlist.c:198 ../src/widgets/ario-tray-icon.c:567 msgid "Title" msgstr "Titel" #. ARIO_TAG_TITLE #: ../data/ui/playlist-prefs.ui.h:20 ../src/servers/ario-server.c:49 #: ../src/sources/ario-tree-songs.c:138 ../src/widgets/ario-playlist.c:541 msgid "Track" msgstr "Nummer" #: ../data/ui/server-prefs.ui.h:1 msgid "Audio outputs" msgstr "Lydudgange" #: ../data/ui/server-prefs.ui.h:2 msgid "Crossfade" msgstr "Overlappende ind-/fortoning" #: ../data/ui/server-prefs.ui.h:3 msgid "Database" msgstr "Database" #: ../data/ui/server-prefs.ui.h:4 msgid "Last updated:" msgstr "Sidst opdateret:" #: ../data/ui/server-prefs.ui.h:5 msgid "Stop music on exit" msgstr "Stop musikken når programmet lukkes" #: ../data/ui/server-prefs.ui.h:6 msgid "Update on startup" msgstr "Opdatér ved opstart" #: ../data/ui/server-prefs.ui.h:7 msgid "_Update" msgstr "_Opdatér" #: ../data/ui/server-prefs.ui.h:8 msgid "enable crossfade" msgstr "Slå overlappende ind-/fortoning til" #: ../data/ui/server-prefs.ui.h:9 msgid "fade time (s):" msgstr "Ind-/fortoningstid (s):" #: ../data/ui/server-prefs.ui.h:10 ../src/ario-util.c:50 ../src/ario-util.c:71 #: ../src/ario-util.c:93 ../plugins/information/information.ui.h:7 #, c-format msgid "n/a" msgstr "-" #: ../data/ui/similar-artists.ui.h:1 msgid "Add all to playlist" msgstr "Tilføj alle til afspilningsliste" #: ../data/ui/similar-artists.ui.h:3 msgid "Find on Last.fm" msgstr "Find på Last.fm" #: ../data/ui/stats-prefs.ui.h:1 msgid "Database play time :" msgstr "Total spilletid:" #: ../data/ui/stats-prefs.ui.h:2 msgid "Number of albums :" msgstr "Antal albummer :" #: ../data/ui/stats-prefs.ui.h:3 msgid "Number of artists :" msgstr "Antal kunstnere :" #: ../data/ui/stats-prefs.ui.h:4 msgid "Number of songs :" msgstr "Antal sange :" #: ../data/ui/stats-prefs.ui.h:5 msgid "Play time :" msgstr "Afspilningstid" #: ../data/ui/stats-prefs.ui.h:6 ../src/shell/ario-shell-preferences.c:148 msgid "Statistics" msgstr "Statistik" #: ../data/ui/stats-prefs.ui.h:7 msgid "Uptime :" msgstr "Spilletid for nuværende session :" #: ../data/ui/song-infos.ui.h:2 msgid "Album Artist :" msgstr "Albumkunstner :" #: ../data/ui/song-infos.ui.h:4 msgid "Comment :" msgstr "Kommentar :" #: ../data/ui/song-infos.ui.h:5 msgid "Composer :" msgstr "Komponist :" #: ../data/ui/song-infos.ui.h:6 msgid "Date :" msgstr "Dato :" #: ../data/ui/song-infos.ui.h:7 msgid "Disc :" msgstr "Skive :" #: ../data/ui/song-infos.ui.h:8 msgid "Filename :" msgstr "Filnavn :" #: ../data/ui/song-infos.ui.h:9 ../plugins/radios/ario-radio.c:169 msgid "Genre :" msgstr "Genre :" #: ../data/ui/song-infos.ui.h:10 ../plugins/information/information.ui.h:4 msgid "Length :" msgstr "Varighed :" #: ../data/ui/song-infos.ui.h:11 msgid "Performer :" msgstr "Kunstner :" #: ../data/ui/song-infos.ui.h:12 msgid "Song" msgstr "Sang" #: ../data/ui/song-infos.ui.h:14 msgid "Track :" msgstr "Spor :" #: ../data/ui/trayicon-prefs.ui.h:1 msgid "Do nothing" msgstr "Gør intet" #: ../data/ui/trayicon-prefs.ui.h:2 msgid "Mute" msgstr "Lydløs" #: ../data/ui/trayicon-prefs.ui.h:3 ../src/shell/ario-shell-preferences.c:138 msgid "Notification" msgstr "Besked" #: ../data/ui/trayicon-prefs.ui.h:4 msgid "Notification on song change" msgstr "Meddelelse ved sangskift" #: ../data/ui/trayicon-prefs.ui.h:5 msgid "Notification time: " msgstr "Meddelelsestid: " #: ../data/ui/trayicon-prefs.ui.h:6 msgid "On middle button click on tray icon :" msgstr "Ved klik på statusikon med midterste museknap :" #: ../data/ui/trayicon-prefs.ui.h:7 ../src/widgets/ario-header.c:241 msgid "Play next song" msgstr "Afspil næste sang" #: ../data/ui/trayicon-prefs.ui.h:8 msgid "Play/Pause" msgstr "Afspil/pause" #: ../data/ui/trayicon-prefs.ui.h:9 msgid "Tray icon" msgstr "Statusikon" #: ../src/ario-main.c:67 msgid "Start minimized window" msgstr "Start minimeret vindue" #: ../src/ario-main.c:68 msgid "Start with specific profile" msgstr "" #. Format result string #: ../src/ario-util.c:110 msgid "seconds" msgstr "sekunder" #: ../src/ario-util.c:112 msgid "minutes" msgstr "minutter" #: ../src/ario-util.c:118 msgid "hours" msgstr "timer" #: ../src/ario-util.c:124 msgid "days" msgstr "dage" #: ../src/covers/ario-cover.c:149 msgid "The cover already exists. Do you want to replace it?" msgstr "Omslaget findes allerede. Vil du erstatte det?" #: ../src/covers/ario-cover-local.c:48 msgid "Music Directory" msgstr "Musikkatalog" #: ../src/playlist/ario-playlist-dynamic.c:49 msgid "songs of same artist" msgstr "sange fra samme kunstner" #: ../src/playlist/ario-playlist-dynamic.c:50 msgid "songs of same album" msgstr "sange fra samme album" #: ../src/playlist/ario-playlist-dynamic.c:51 msgid "songs of similar artists" msgstr "sange fra lignende kunstnere" #: ../src/playlist/ario-playlist-dynamic.c:52 msgid "albums of same artists" msgstr "albums fra samme kunstnere" #: ../src/playlist/ario-playlist-dynamic.c:53 msgid "albums of similar artists" msgstr "albums fra lignende kunstnere" #: ../src/playlist/ario-playlist-dynamic.c:69 msgid "Dynamic Playlist" msgstr "Dynamisk Afspilningsliste" #: ../src/playlist/ario-playlist-queue.c:49 msgid "Queue Mode" msgstr "Kø tilstand" #: ../src/playlist/ario-playlist-normal.c:47 msgid "Normal" msgstr "Normal" #: ../src/plugins/ario-plugin-manager.c:45 msgid "Plugin" msgstr "Tilføjelse" #: ../src/plugins/ario-plugin-manager.c:46 msgid "Enabled" msgstr "Aktiveret" #: ../src/plugins/ario-plugin-manager.c:480 ../src/shell/ario-shell.c:206 msgid "_About" msgstr "_Om" #: ../src/plugins/ario-plugin-manager.c:488 msgid "C_onfigure" msgstr "K_onfigurér" #: ../src/plugins/ario-plugin-manager.c:497 msgid "A_ctivate" msgstr "A_ktivér" #: ../src/plugins/ario-plugin-manager.c:508 msgid "Ac_tivate All" msgstr "Ak_tivér alle" #: ../src/plugins/ario-plugin-manager.c:513 msgid "_Deactivate All" msgstr "_Deaktivér alle" #: ../src/plugins/ario-plugin-manager.c:722 msgid "Active plugins" msgstr "Aktive tilføjelser" #: ../src/preferences/ario-server-preferences.c:182 #: ../src/preferences/ario-stats-preferences.c:151 #: ../src/preferences/ario-stats-preferences.c:152 #: ../src/preferences/ario-stats-preferences.c:153 #: ../src/preferences/ario-stats-preferences.c:154 #: ../src/preferences/ario-stats-preferences.c:155 #: ../src/preferences/ario-stats-preferences.c:156 msgid "Not connected" msgstr "Ikke tilsluttet" #: ../src/preferences/ario-server-preferences.c:187 #: ../src/preferences/ario-server-preferences.c:278 #: ../src/widgets/ario-status-bar.c:100 msgid "Updating..." msgstr "Opdaterer..." #: ../src/servers/ario-mpd.c:410 ../src/servers/ario-mpd2.c:522 msgid "Connecting to server..." msgstr "Forbinder til server..." #: ../src/servers/ario-mpd.c:438 ../src/servers/ario-mpd2.c:550 msgid "Impossible to connect to server. Check the connection options." msgstr "" "Det lykkedes ikke at forbinde til serveren. Kontrollér " "forbindelsesindstillingerne." #. ARIO_TAG_ALBUM #: ../src/servers/ario-server.c:47 msgid "Album Artist" msgstr "Albumkunstner" #. ARIO_TAG_DATE #: ../src/servers/ario-server.c:53 msgid "Composer" msgstr "Komponist" #. ARIO_TAG_COMPOSER #: ../src/servers/ario-server.c:54 msgid "Performer" msgstr "Medvirkende" #. ARIO_TAG_PERFORMER #. ARIO_TAG_COMMENT #. ARIO_TAG_DISC #: ../src/servers/ario-server.c:57 msgid "Filename" msgstr "Filnavn" #. ARIO_TAG_FILENAME #: ../src/servers/ario-server.c:58 msgid "Any" msgstr "Alle" #. impossible time or broken locale settings #: ../src/servers/ario-server.h:27 #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1235 msgid "Unknown" msgstr "Ukendt" #: ../src/sources/ario-browser.c:82 ../src/sources/ario-search.c:70 #: ../src/sources/ario-storedplaylists.c:88 #: ../src/sources/ario-storedplaylists.c:106 #: ../plugins/filesystem/ario-filesystem.c:94 #: ../plugins/filesystem/ario-filesystem.c:109 #: ../plugins/radios/ario-radio.c:116 msgid "_Add to playlist" msgstr "_Føj til afspilningsliste" #: ../src/sources/ario-browser.c:85 ../src/sources/ario-search.c:73 #: ../src/sources/ario-storedplaylists.c:91 #: ../src/sources/ario-storedplaylists.c:109 #: ../plugins/filesystem/ario-filesystem.c:97 #: ../plugins/filesystem/ario-filesystem.c:112 #: ../plugins/radios/ario-radio.c:119 msgid "Add and _play" msgstr "Tilføj og _afspil" #: ../src/sources/ario-browser.c:88 ../src/sources/ario-search.c:76 #: ../src/sources/ario-storedplaylists.c:94 #: ../src/sources/ario-storedplaylists.c:112 #: ../plugins/filesystem/ario-filesystem.c:100 #: ../plugins/filesystem/ario-filesystem.c:115 #: ../plugins/radios/ario-radio.c:122 msgid "_Replace in playlist" msgstr "_Erstat i afspilningsliste" #: ../src/sources/ario-browser.c:91 msgid "Get the covers" msgstr "Hent omslagene" #: ../src/sources/ario-browser.c:94 msgid "_Delete the covers" msgstr "_Slet omslagene" #: ../src/sources/ario-browser.c:97 ../src/sources/ario-browser.c:100 #: ../src/sources/ario-search.c:79 ../src/sources/ario-storedplaylists.c:115 #: ../src/widgets/ario-playlist.c:151 #: ../plugins/filesystem/ario-filesystem.c:118 #: ../plugins/radios/ario-radio.c:131 msgid "_Properties" msgstr "_Egenskaber" #: ../src/sources/ario-browser.c:125 ../src/shell/ario-shell-preferences.c:118 msgid "Library" msgstr "Bibliotek" #: ../src/sources/ario-storedplaylists.c:97 msgid "_Delete" msgstr "_Slet" #: ../src/sources/ario-storedplaylists.c:151 msgid "Playlists" msgstr "Afspilningslister" #: ../src/sources/ario-storedplaylists.c:592 msgid "Are you sure that you want to delete all the selected playlists?" msgstr "Er du sikker på du vil slette alle de markerede afspilningslister?" #: ../src/sources/ario-tree.c:856 msgid "Are you sure that you want to remove all the selected covers?" msgstr "Er du sikker på du vil slette alle de markerede omslag?" #. Translators - This "Cover" refers to an album cover art #: ../src/sources/ario-tree-albums.c:199 msgid "Cover" msgstr "Omslag" #: ../src/shell/ario-shell.c:160 msgid "_File" msgstr "_Filer" #: ../src/shell/ario-shell.c:161 msgid "_Edit" msgstr "_Redigér" #: ../src/shell/ario-shell.c:162 msgid "_View" msgstr "_Vis" #: ../src/shell/ario-shell.c:163 msgid "_Control" msgstr "" #: ../src/shell/ario-shell.c:164 msgid "_Tool" msgstr "_Værktøj" #: ../src/shell/ario-shell.c:165 msgid "_Help" msgstr "_Hjælp" #: ../src/shell/ario-shell.c:173 msgid "_Update database" msgstr "_Opdater database" #: ../src/shell/ario-shell.c:176 msgid "_Quit" msgstr "_Afslut" #: ../src/shell/ario-shell.c:179 msgid "Plu_gins" msgstr "_Udvidelser" #: ../src/shell/ario-shell.c:182 msgid "Prefere_nces" msgstr "_Indstillinger" #: ../src/shell/ario-shell.c:185 msgid "_Change current album cover" msgstr "_Skift nuværende albumomslag" #: ../src/shell/ario-shell.c:188 msgid "Download album _covers" msgstr "_Hent albumomslag" #: ../src/shell/ario-shell.c:191 msgid "Find similar artists" msgstr "Find lignende _kunstere" #: ../src/shell/ario-shell.c:194 msgid "Add similar songs to playlist" msgstr "Tilføj _lignende numre til afspilningsliste" #: ../src/shell/ario-shell.c:197 msgid "Go to _previous tab" msgstr "" #: ../src/shell/ario-shell.c:200 msgid "Go to _next tab" msgstr "" #: ../src/shell/ario-shell.c:203 msgid "Show _lyrics" msgstr "Vis sang_tekster" #: ../src/shell/ario-shell.c:209 msgid "_Translate this application..." msgstr "Oversæt dette program" #: ../src/shell/ario-shell.c:216 msgid "S_tatusbar" msgstr "_Statuslinje" #: ../src/shell/ario-shell.c:219 msgid "Upper part" msgstr "Øvre del" #: ../src/shell/ario-shell.c:825 msgid "GTK client for MPD" msgstr "En GTK+ baseret MPD-klient" #: ../src/shell/ario-shell.c:826 msgid "translator-credits" msgstr "" "Launchpad Contributions:\n" " Christian Funder Sommerlund https://launchpad.net/~zero3\n" " David Laursen https://launchpad.net/~davidlaursen\n" " FlowerChild https://launchpad.net/~hejlasse\n" " Joe Hansen https://launchpad.net/~joedalton2\n" " Lukas Jahns https://launchpad.net/~lukas-jahns\n" " Mads Konradsen https://launchpad.net/~mads-hk\n" " Marc Pavot https://launchpad.net/~marc-pavot\n" " Sune Keller https://launchpad.net/~sune-keller\n" " chochem https://launchpad.net/~chochem\n" " nanker https://launchpad.net/~nanker" #. Create plugins configuration dialog window #: ../src/shell/ario-shell.c:1278 msgid "Configure Plugins" msgstr "Konfigurér udvidelsesmoduler" #. Set window properties #: ../src/shell/ario-shell-coverdownloader.c:187 msgid "Music Player Cover Download" msgstr "Albumomslagshenter" #: ../src/shell/ario-shell-coverdownloader.c:332 msgid "Download Finished!" msgstr "Filoverførsel gennemført" #. We show the numbers of covers found and not found #: ../src/shell/ario-shell-coverdownloader.c:335 #, c-format msgid "" "%i covers found\n" "%i covers not found\n" "%i covers already exist" msgstr "" "%i albumomslag fundet\n" "%i albumomslag ikke fundet\n" "%i albumomslag fundet i musiksamlingen" #. Set window properties #: ../src/shell/ario-shell-coverselect.c:242 msgid "Cover Download" msgstr "Overførsel af albumsomslag" #: ../src/shell/ario-shell-coverselect.c:559 msgid "Error reading file" msgstr "Fejl ved læsning af fil" #: ../src/shell/ario-shell-coverselect.c:584 msgid "Error saving file" msgstr "Fejl ved gemning af fil" #: ../src/shell/ario-shell-lyrics.c:43 #: ../src/shell/ario-shell-preferences.c:133 #: ../src/shell/ario-shell-songinfos.c:272 msgid "Lyrics" msgstr "Sangtekster" #: ../src/shell/ario-shell-lyricsselect.c:152 msgid "Lyrics Download" msgstr "Sangteksthentning" #: ../src/shell/ario-shell-preferences.c:81 msgid "Ario Preferences" msgstr "Ario-indstillinger" #: ../src/shell/ario-shell-preferences.c:113 msgid "Server" msgstr "Server" #: ../src/shell/ario-shell-preferences.c:143 msgid "Others" msgstr "Andre" #: ../src/shell/ario-shell-similarartists.c:318 #, c-format msgid "%d songs" msgstr "%d numre" #. Set window properties #. Set window title #: ../src/shell/ario-shell-songinfos.c:249 #: ../src/shell/ario-shell-songinfos.c:266 #: ../src/shell/ario-shell-songinfos.c:544 msgid "Song Properties" msgstr "Egenskaber for nummer" #: ../src/shell/ario-shell-songinfos.c:455 msgid "Error saving tags of file:" msgstr "Fejl under gem af tags til fil:" #: ../src/widgets/ario-connection-widget.c:652 msgid "You must select a server." msgstr "Du skal vælge en server." #: ../src/widgets/ario-connection-widget.c:702 msgid "New Profile" msgstr "Ny profil" #: ../src/widgets/ario-firstlaunch.c:82 msgid "The following configuration will be used:" msgstr "Følgende indstillinger vil blive anvendt:" #: ../src/widgets/ario-firstlaunch.c:106 msgid "" "It is the first time you launch Ario.\n" "This assistant will help you to configure it." msgstr "" "Dette er første gang, du starter Ario.\n" "Denne guide vil hjælpe dig med at sætte dine indstillinger." #: ../src/widgets/ario-firstlaunch.c:111 msgid "Welcome to Ario" msgstr "Velkommen til Ario" #: ../src/widgets/ario-firstlaunch.c:129 msgid "Configuration" msgstr "Indstillinger" #: ../src/widgets/ario-firstlaunch.c:141 msgid "Confirmation" msgstr "Bekræftelse" #: ../src/widgets/ario-header.c:66 ../src/widgets/ario-tray-icon.h:42 #, c-format msgid "from %s by %s" msgstr "fra %s af %s" #: ../src/widgets/ario-header.c:199 msgid "Play previous song" msgstr "Afspil forrige sang" #: ../src/widgets/ario-header.c:217 msgid "Play/Pause the music" msgstr "Afspil/pause" #: ../src/widgets/ario-header.c:229 msgid "Stop the music" msgstr "Stop" #. Translators - This " of " is used to count the elapsed time #. of a song like in "00:59 of 03:24" #: ../src/widgets/ario-header.c:310 ../src/widgets/ario-tooltip.c:321 msgid " of " msgstr " ud af " #: ../src/widgets/ario-header.c:323 msgid "Toggle random on/off" msgstr "Slå tilfældig afspilningsliste fra/til" #: ../src/widgets/ario-header.c:335 msgid "Toggle repeat on/off" msgstr "Slå gentagen afspilningsliste fra/til" #: ../src/widgets/ario-header.c:340 msgid "Change the music volume" msgstr "Ændr lydstyrken" #: ../src/widgets/ario-lyrics-editor.c:323 msgid "Downloading lyrics..." msgstr "Henter sangtekster..." #: ../src/widgets/ario-lyrics-editor.c:351 msgid "Lyrics not found" msgstr "Kunne ikke finde sangtekster" #: ../src/widgets/ario-playlist.c:133 msgid "_Clear" msgstr "_Ryd" #: ../src/widgets/ario-playlist.c:136 msgid "_Shuffle" msgstr "_Tilfældig" #: ../src/widgets/ario-playlist.c:139 msgid "Cr_op" msgstr "_Beskær" #: ../src/widgets/ario-playlist.c:142 msgid "_Search in playlist" msgstr "_Søg i spilleliste" #: ../src/widgets/ario-playlist.c:145 msgid "_Remove" msgstr "_Fjern" #: ../src/widgets/ario-playlist.c:148 msgid "_Save" msgstr "_Gem" #: ../src/widgets/ario-playlist.c:154 msgid "_Go to playing song" msgstr "_Gå til det nuværende nummer" #: ../src/widgets/ario-playlist.c:667 msgid "Filter:" msgstr "Filter:" #. Create the widgets #: ../src/widgets/ario-playlist.c:1700 msgid "Save playlist" msgstr "Gem afspilningsliste" #: ../src/widgets/ario-playlist.c:1710 msgid "Playlist name :" msgstr "Afspilningslistens navn :" #: ../src/widgets/ario-playlist.c:1746 msgid "Playlist already exists. Do you want to overwrite it?" msgstr "Afspilningsliste findes allerede. Skal denne liste erstatte den?" #. Format status bar message #: ../src/widgets/ario-status-bar.c:96 msgid "Songs" msgstr "Numre" #: ../src/widgets/ario-tray-icon.c:102 msgid "_Play" msgstr "_Afspil" #: ../src/widgets/ario-tray-icon.c:105 msgid "_Pause" msgstr "_Pause" #: ../src/widgets/ario-tray-icon.c:108 msgid "_Stop" msgstr "_Stop" #: ../src/widgets/ario-tray-icon.c:111 msgid "_Next" msgstr "_Næste" #: ../src/widgets/ario-tray-icon.c:114 msgid "P_revious" msgstr "Fo_regående" #: ../src/widgets/ario-tray-icon.h:41 msgid "Not playing" msgstr "Afspiller ikke" #. Translators: "friendly time" string for the current day, strftime format. like "Today 12:34 am" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1179 msgid "Today %I:%M %p" msgstr "I dag %H:%M" #. Translators: "friendly time" string for the previous day, #. * strftime format. e.g. "Yesterday 12:34 am" #. #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1192 msgid "Yesterday %I:%M %p" msgstr "I går %H:%M" #. Translators: "friendly time" string for a day in the current week, #. * strftime format. e.g. "Wed 12:34 am" #. #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1208 msgid "%a %I:%M %p" msgstr "%a %H:%M" #. Translators: "friendly time" string for a day in the current year, #. * strftime format. e.g. "Feb 12 12:34 am" #. #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1220 msgid "%b %d %I:%M %p" msgstr "%d. %b. %H:%M" #. Translators: "friendly time" string for a day in a different year, #. * strftime format. e.g. "Feb 12 1997" #. #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1225 msgid "%b %d %Y" msgstr "%d. %b. %Y" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1311 #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:4 msgid "Never" msgstr "Aldrig" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1335 msgid "OK" msgstr "OK" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1338 msgid "Logging in" msgstr "Logger ind" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1341 msgid "Request failed" msgstr "Forespørgsel mislykkedes" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1344 msgid "Incorrect username" msgstr "Forkert brugernavn" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1347 msgid "Incorrect password" msgstr "Forkert adgangskode" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1350 msgid "Handshake failed" msgstr "Udveksling mislykkedes" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1353 msgid "Client update required" msgstr "Klientopdatering krævet" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1356 msgid "Track submission failed" msgstr "Indsendelse af nummer mislykkedes" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1359 msgid "Queue is too long" msgstr "Køen er for lang" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1362 msgid "Track submission failed too many times" msgstr "Indsendelse af nummer mislykkedes for mange gange" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1417 msgid "Audioscrobbler preferences" msgstr "Audioscrobbler-indstillinger" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:1 msgid "Disabled" msgstr "Slået fra" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:2 msgid "Last submission time:" msgstr "Sidste indsendelse:" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:3 msgid "Last.fm Profile" msgstr "Last.fm-profil" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:6 msgid "Queued tracks:" msgstr "Musiknumre i kø:" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:7 msgid "Status:" msgstr "Status:" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:8 msgid "Tracks submitted:" msgstr "Numre indsendt:" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:9 #: ../plugins/radios/ario-radio.c:168 msgid "Username :" msgstr "Brugernavn:" #: ../plugins/audioscrobbler/audioscrobbler.ario-plugin.desktop.in.h:1 msgid "Last.fm" msgstr "Last.fm" #: ../plugins/audioscrobbler/audioscrobbler.ario-plugin.desktop.in.h:2 msgid "Submits song information to last.fm" msgstr "Indsender information om nummer til last.fm" #: ../plugins/filesystem/ario-filesystem.c:158 msgid "File System" msgstr "Filsystem" #: ../plugins/filesystem/ario-filesystem.c:422 msgid "Music" msgstr "Musik" #: ../plugins/filesystem/filesystem.ario-plugin.desktop.in.h:1 msgid "A File System Browser" msgstr "En filsystemsbrowser" #: ../plugins/filesystem/filesystem.ario-plugin.desktop.in.h:2 msgid "File System Browser" msgstr "Filsystemsbrowser" #: ../plugins/information/ario-information.c:114 msgid "Information" msgstr "Information" #: ../plugins/information/information.ario-plugin.desktop.in.h:1 msgid "Display various information about the playing song" msgstr "Viser diverse information om det nuværende nummer" #: ../plugins/information/information.ario-plugin.desktop.in.h:2 msgid "Song Information" msgstr "Musiknummerinformation" #: ../plugins/information/information.ui.h:2 msgid "Albums from this artist:" msgstr "Albums af denne kunstner:" #: ../plugins/information/information.ui.h:5 msgid "Lyrics:" msgstr "Sangtekster:" #: ../plugins/libnotify/libnotify.ario-plugin.desktop.in.h:1 msgid "Add libnotify support" msgstr "Tilføj libnotify-understøttelse" #: ../plugins/libnotify/libnotify.ario-plugin.desktop.in.h:2 msgid "Libnotify" msgstr "Libnotify" #: ../plugins/mmkeys/mmkeys.ario-plugin.desktop.in.h:1 msgid "Add multimedia keys support" msgstr "Tilføj understøttelse for multimedia-tastatur" #: ../plugins/mmkeys/mmkeys.ario-plugin.desktop.in.h:2 msgid "Multimedia Keys" msgstr "Multimedia-taster" #: ../plugins/radios/ario-radio.c:125 msgid "Add a _new radio" msgstr "Tilføj en _ny radio" #: ../plugins/radios/ario-radio.c:128 msgid "_Delete this radios" msgstr "Slet denne radiostation" #: ../plugins/radios/ario-radio.c:166 msgid "Last.fm: Radio of similar artists" msgstr "Last.fm: Radio med ligende kunstere" #: ../plugins/radios/ario-radio.c:167 msgid "Last.fm: Radio of group" msgstr "Last.fm: Gruppens radio" #: ../plugins/radios/ario-radio.c:167 msgid "Group :" msgstr "Gruppe :" #: ../plugins/radios/ario-radio.c:168 msgid "Last.fm: Personal radio" msgstr "Last.fm: Personlig radio" #: ../plugins/radios/ario-radio.c:169 msgid "Last.fm: Radio of genre" msgstr "Last.fm: Genres radio" #: ../plugins/radios/ario-radio.c:184 #: ../plugins/radios/radios.ario-plugin.desktop.in.h:2 msgid "Web Radios" msgstr "Netradio" #: ../plugins/radios/ario-radio.c:246 msgid "Internet Radios" msgstr "Netradio" #. Create dialog window #: ../plugins/radios/ario-radio.c:774 msgid "Edit a WebRadio" msgstr "Redigér stationens indstilllinger" #: ../plugins/radios/ario-radio.c:787 ../plugins/radios/ario-radio.c:923 msgid "URL :" msgstr "URL :" #: ../plugins/radios/ario-radio.c:853 ../plugins/radios/ario-radio.c:997 msgid "Bad parameters. You must specify a name and a URL for the radio." msgstr "" "Ugyldige parametre. Specificer venligst et navn og en adresse (URL) for " "netradiostationen." #. Create dialog window #: ../plugins/radios/ario-radio.c:883 msgid "Add a WebRadio" msgstr "Tilføj en station" #: ../plugins/radios/ario-radio.c:1083 msgid "Are you sure you want to delete all the selected radios?" msgstr "Dette vil slette de valgte stationer. Vil du fortsætte?" #: ../plugins/radios/radios.ario-plugin.desktop.in.h:1 msgid "Listen to webradios" msgstr "Lyt til netradio" #: ../plugins/wikipedia/ario-wikipedia-plugin.c:49 #: ../plugins/wikipedia/ario-wikipedia-plugin.c:50 msgid "Find artist on Wikipedia" msgstr "Find kunstner på Wikipedia" #: ../plugins/wikipedia/ario-wikipedia-plugin.c:172 msgid "Wikipedia Plugin - Configuration" msgstr "Wikipedia-plugin - indstillinger" #: ../plugins/wikipedia/ario-wikipedia-plugin.c:181 msgid "Wikipedia language :" msgstr "Wikipedia-sprog :" #: ../plugins/wikipedia/wikipedia.ario-plugin.desktop.in.h:1 msgid "A plugin to search current artist on wikipedia" msgstr "En tilføjelse til at søge efter nuværende kunstner på Wikipedia" #: ../plugins/wikipedia/wikipedia.ario-plugin.desktop.in.h:2 msgid "Wikipedia" msgstr "Wikipedia" #~ msgid "Add a search criteria" #~ msgstr "Tilføj et søgekriterium" #~ msgid "Remove a search criteria" #~ msgstr "Fjern et søgekriterium" #~ msgid "Search songs in the library" #~ msgstr "Søg efter numre i biblioteket" ario-1.6/po/et.po0000644000175000017500000010121413226723435010627 00000000000000# Estonian translation for ario # Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009 # This file is distributed under the same license as the ario package. # FIRST AUTHOR , 2009. # msgid "" msgstr "" "Project-Id-Version: ario\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2011-06-13 18:15+0200\n" "PO-Revision-Date: 2010-07-25 04:05+0000\n" "Last-Translator: lyyser \n" "Language-Team: Estonian \n" "Language: et\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2011-06-13 16:32+0000\n" "X-Generator: Launchpad (build 13175)\n" #: ../data/ario.desktop.in.in.h:1 msgid "Ario music player" msgstr "Ario music player" #: ../data/ario.desktop.in.in.h:2 msgid "Client application to mpd" msgstr "Mpd kliendi rakendus" #: ../data/ui/browser-prefs.ui.h:1 msgid "Alphabetically" msgstr "Tähestikuliselt" #: ../data/ui/browser-prefs.ui.h:2 msgid "By year" msgstr "Ajaliselt" #: ../data/ui/browser-prefs.ui.h:3 msgid "Library Options" msgstr "Loendi seaded" #: ../data/ui/browser-prefs.ui.h:4 msgid "Library Organisation" msgstr "Loendi organiseerimine" #: ../data/ui/browser-prefs.ui.h:5 msgid "Sort albums: " msgstr "Sordi albumid: " #: ../data/ui/connection-autodetect.ui.h:1 msgid "" "If you don't see your MPD server thanks to the automatic detection, you " "should check that zeroconf is activated in your MPD configuration or use the " "manual configuration." msgstr "" "Kui sa ei näe oma MPD serverit tänu automaatsele tuvastamisele, peaksite " "kontrollima, et Zeroconf on aktiveerimata MPD konfiguratsioon või kasutage " "käsitsi määramist." #: ../data/ui/connection-autodetect.ui.h:2 msgid "Server autodetection" msgstr "Serveri automaattuvastus" #: ../data/ui/connection-widget.ui.h:1 msgid "Auto detect" msgstr "Automaatne tuvastamine" #: ../data/ui/connection-widget.ui.h:2 msgid "Default" msgstr "Vaikimisi" #: ../data/ui/connection-widget.ui.h:3 ../src/widgets/ario-firstlaunch.c:83 msgid "Host :" msgstr "Host :" #: ../data/ui/connection-widget.ui.h:4 msgid "Music directory :" msgstr "Muusika kataloog :" #: ../data/ui/connection-widget.ui.h:5 msgid "Music server is on the same computer as Ario" msgstr "Muusika server on samas arvutis kus ka Ario" #. Create the widgets #: ../data/ui/connection-widget.ui.h:6 ../plugins/radios/ario-radio.c:786 #: ../plugins/radios/ario-radio.c:922 msgid "Name :" msgstr "Nimi :" #: ../data/ui/connection-widget.ui.h:7 #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:5 msgid "Password :" msgstr "Salasõna :" #: ../data/ui/connection-widget.ui.h:8 ../src/widgets/ario-firstlaunch.c:85 msgid "Port :" msgstr "Port :" #: ../data/ui/connection-widget.ui.h:9 msgid "Server type :" msgstr "Serveri tüüp :" #: ../data/ui/connection-widget.ui.h:10 msgid "Timeout :" msgstr "" #: ../data/ui/connection-widget.ui.h:11 msgid "XMMS 2 (Experimental)" msgstr "XMMS 2 (Eksperimentaalne)" #: ../data/ui/cover-prefs.ui.h:1 msgid "Automatically download the album cover of the playing song" msgstr "Lae automaatselt esitava loo albumi ümbris" #: ../data/ui/cover-prefs.ui.h:2 ../src/shell/ario-shell-preferences.c:128 msgid "Covers" msgstr "Ümbrised" #: ../data/ui/cover-prefs.ui.h:3 msgid "Covers Sources" msgstr "Ümbrise allikad" #: ../data/ui/cover-prefs.ui.h:4 msgid "Show the covers in the albums list" msgstr "Näita ümbrist albumi lehel" #: ../data/ui/cover-prefs.ui.h:5 msgid "Use Amazon." msgstr "Kasuta Amazon." #: ../data/ui/connection-prefs.ui.h:1 #: ../src/shell/ario-shell-preferences.c:108 msgid "Connection" msgstr "Ühendus" #: ../data/ui/connection-prefs.ui.h:2 msgid "_Autoconnect on startup" msgstr "_Automaatkäivitus ühendumisel" #: ../data/ui/connection-prefs.ui.h:3 ../src/shell/ario-shell.c:167 msgid "_Connect" msgstr "_Ühenda" #: ../data/ui/connection-prefs.ui.h:4 ../src/shell/ario-shell.c:170 msgid "_Disconnect" msgstr "_Katkesta ühendus" #: ../data/ui/connection-assistant.ui.h:1 msgid "" "You need to specify a server to connect to. If you don't see your server " "thanks to the autodetection, you should check that zeroconf/avahi is " "activated in your server or use the manual configuration." msgstr "" "Sa pead täpsustama serveriga ühendust. Kui sa ei näe serverit tänu " "automaattuvastusele, peate kontrollima, et Zeroconf / Avahi aktiveeritakse " "teie serveriga või kasutad käsitsi määramist." #: ../data/ui/cover-progress.ui.h:1 ../data/ui/cover-select.ui.h:1 #: ../data/ui/song-infos.ui.h:1 ../plugins/information/information.ui.h:1 msgid "Album :" msgstr "Album :" #: ../data/ui/cover-progress.ui.h:2 ../data/ui/cover-select.ui.h:2 #: ../data/ui/lyrics-select.ui.h:1 ../data/ui/song-infos.ui.h:3 #: ../plugins/information/information.ui.h:3 #: ../plugins/radios/ario-radio.c:166 msgid "Artist :" msgstr "Artist :" #: ../data/ui/cover-progress.ui.h:3 msgid "Downloading cover" msgstr "Laen ümbrist" #: ../data/ui/cover-select.ui.h:3 msgid "Local search" msgstr "Lokaalne otsing" #: ../data/ui/cover-select.ui.h:4 ../src/sources/ario-search.c:108 msgid "Search" msgstr "Otsing" #: ../data/ui/others-prefs.ui.h:1 msgid "Allow only one instance of Ario" msgstr "Luba ainult üheosana Ario" #: ../data/ui/others-prefs.ui.h:2 msgid "Hide window when close button is pressed" msgstr "Peida aken sulgemisel" #: ../data/ui/others-prefs.ui.h:3 msgid "Interface" msgstr "Liides" #: ../data/ui/others-prefs.ui.h:4 msgid "Playlist at the right of tabs" msgstr "" #: ../data/ui/others-prefs.ui.h:5 msgid "Playlist below tabs" msgstr "" #: ../data/ui/others-prefs.ui.h:6 msgid "Playlist within tabs" msgstr "" #: ../data/ui/others-prefs.ui.h:7 msgid "Proxy" msgstr "Proksi" #: ../data/ui/others-prefs.ui.h:8 msgid "Proxy Address :" msgstr "Proksi aadress :" #: ../data/ui/others-prefs.ui.h:9 msgid "Proxy Port :" msgstr "Proksi port :" #: ../data/ui/others-prefs.ui.h:10 msgid "Show tabs" msgstr "Näita ridu" #: ../data/ui/others-prefs.ui.h:11 msgid "Use a proxy" msgstr "Kauta proksit" #: ../data/ui/lyrics-prefs.ui.h:1 msgid "Lyrics Sources" msgstr "Sõnade allikad" #: ../data/ui/lyrics-select.ui.h:2 ../data/ui/song-infos.ui.h:13 #: ../plugins/information/information.ui.h:6 msgid "Title :" msgstr "Tiitel :" #: ../data/ui/playlist-prefs.ui.h:1 msgid "Add after playing song" msgstr "Add after playing song" #: ../data/ui/playlist-prefs.ui.h:2 msgid "Add and play" msgstr "Lisa ja esita" #: ../data/ui/playlist-prefs.ui.h:3 ../data/ui/similar-artists.ui.h:2 msgid "Add to playlist" msgstr "Lisa lugude loendisse" #. ARIO_TAG_ARTIST #: ../data/ui/playlist-prefs.ui.h:4 ../src/servers/ario-server.c:46 #: ../src/sources/ario-tree-albums.c:213 ../src/widgets/ario-playlist.c:541 #: ../src/widgets/ario-songlist.c:228 ../src/widgets/ario-tray-icon.c:565 msgid "Album" msgstr "Album" #: ../data/ui/playlist-prefs.ui.h:5 ../src/servers/ario-server.c:45 #: ../src/widgets/ario-playlist.c:541 ../src/widgets/ario-songlist.c:213 #: ../src/widgets/ario-tray-icon.c:563 msgid "Artist" msgstr "Esitaja" #. ARIO_TAG_GENRE #: ../data/ui/playlist-prefs.ui.h:6 ../src/servers/ario-server.c:52 #: ../src/widgets/ario-playlist.c:541 msgid "Date" msgstr "Kuupäev" #: ../data/ui/playlist-prefs.ui.h:7 ../src/widgets/ario-playlist.c:541 msgid "Disc" msgstr "Ketas" #: ../data/ui/playlist-prefs.ui.h:8 msgid "Double click" msgstr "Topeltklõps" #: ../data/ui/playlist-prefs.ui.h:9 ../src/widgets/ario-playlist.c:541 msgid "Duration" msgstr "Kestvus" #: ../data/ui/playlist-prefs.ui.h:10 ../src/widgets/ario-playlist.c:541 msgid "File" msgstr "Fail" #. ARIO_TAG_TRACK #. ARIO_TAG_NAME #: ../data/ui/playlist-prefs.ui.h:11 ../src/servers/ario-server.c:51 #: ../src/widgets/ario-playlist.c:541 msgid "Genre" msgstr "Zanr" #: ../data/ui/playlist-prefs.ui.h:12 msgid "Go to current song when a new song is played" msgstr "Mine töösolevale laulule kui uut laulu mängitakse" #: ../data/ui/playlist-prefs.ui.h:13 msgid "Mode" msgstr "Olek" #: ../data/ui/playlist-prefs.ui.h:14 msgid "On double click:" msgstr "Topeltklõpsu:" #: ../data/ui/playlist-prefs.ui.h:15 ../src/sources/ario-storedplaylists.c:229 #: ../src/shell/ario-shell.c:222 ../src/shell/ario-shell-preferences.c:123 #: ../src/widgets/ario-playlist.c:272 msgid "Playlist" msgstr "Lugude nimekiri" #: ../data/ui/playlist-prefs.ui.h:16 msgid "Playlist mode:" msgstr "Lugude laad:" #: ../data/ui/playlist-prefs.ui.h:17 msgid "Replace in playlist" msgstr "Asenda esitusloendis" #: ../data/ui/playlist-prefs.ui.h:18 msgid "Show rows:" msgstr "Näita ridu" #. ARIO_TAG_ALBUM_ARTIST #: ../data/ui/playlist-prefs.ui.h:19 ../src/servers/ario-server.c:48 #: ../src/sources/ario-tree-songs.c:145 ../src/widgets/ario-playlist.c:541 #: ../src/widgets/ario-songlist.c:198 ../src/widgets/ario-tray-icon.c:567 msgid "Title" msgstr "Tiitel" #. ARIO_TAG_TITLE #: ../data/ui/playlist-prefs.ui.h:20 ../src/servers/ario-server.c:49 #: ../src/sources/ario-tree-songs.c:138 ../src/widgets/ario-playlist.c:541 msgid "Track" msgstr "Lugu" #: ../data/ui/server-prefs.ui.h:1 msgid "Audio outputs" msgstr "Heli väljund" #: ../data/ui/server-prefs.ui.h:2 msgid "Crossfade" msgstr "Siire" #: ../data/ui/server-prefs.ui.h:3 msgid "Database" msgstr "Andmebaas" #: ../data/ui/server-prefs.ui.h:4 msgid "Last updated:" msgstr "Viimati uuendatud:" #: ../data/ui/server-prefs.ui.h:5 msgid "Stop music on exit" msgstr "Peata muusika ja välju" #: ../data/ui/server-prefs.ui.h:6 msgid "Update on startup" msgstr "Uuenda käivitumisel" #: ../data/ui/server-prefs.ui.h:7 msgid "_Update" msgstr "_Uuenda" #: ../data/ui/server-prefs.ui.h:8 msgid "enable crossfade" msgstr "Luba siire" #: ../data/ui/server-prefs.ui.h:9 msgid "fade time (s):" msgstr "Vaibumise aeg (ajad):" #: ../data/ui/server-prefs.ui.h:10 ../src/ario-util.c:50 ../src/ario-util.c:71 #: ../src/ario-util.c:93 ../plugins/information/information.ui.h:7 #, c-format msgid "n/a" msgstr "n/a" #: ../data/ui/similar-artists.ui.h:1 msgid "Add all to playlist" msgstr "Lisa kõik lugude loendisse" #: ../data/ui/similar-artists.ui.h:3 msgid "Find on Last.fm" msgstr "Leia Last.fm-ist" #: ../data/ui/stats-prefs.ui.h:1 msgid "Database play time :" msgstr "Esitamise kestvuse andmebaas:" #: ../data/ui/stats-prefs.ui.h:2 msgid "Number of albums :" msgstr "Albumite arv :" #: ../data/ui/stats-prefs.ui.h:3 msgid "Number of artists :" msgstr "Esitajate arv:" #: ../data/ui/stats-prefs.ui.h:4 msgid "Number of songs :" msgstr "Laulude arv:" #: ../data/ui/stats-prefs.ui.h:5 msgid "Play time :" msgstr "Esitus aeg:" #: ../data/ui/stats-prefs.ui.h:6 ../src/shell/ario-shell-preferences.c:148 msgid "Statistics" msgstr "Statistika" #: ../data/ui/stats-prefs.ui.h:7 msgid "Uptime :" msgstr "Laadimisaeg:" #: ../data/ui/song-infos.ui.h:2 msgid "Album Artist :" msgstr "Albumi esitaja:" #: ../data/ui/song-infos.ui.h:4 msgid "Comment :" msgstr "Kommentaar:" #: ../data/ui/song-infos.ui.h:5 msgid "Composer :" msgstr "Helilooja :" #: ../data/ui/song-infos.ui.h:6 msgid "Date :" msgstr "Kuupäev :" #: ../data/ui/song-infos.ui.h:7 msgid "Disc :" msgstr "Pllat :" #: ../data/ui/song-infos.ui.h:8 msgid "Filename :" msgstr "Failinimi :" #: ../data/ui/song-infos.ui.h:9 ../plugins/radios/ario-radio.c:169 msgid "Genre :" msgstr "Zanr :" #: ../data/ui/song-infos.ui.h:10 ../plugins/information/information.ui.h:4 msgid "Length :" msgstr "Piikus :_" #: ../data/ui/song-infos.ui.h:11 msgid "Performer :" msgstr "Esitaja :" #: ../data/ui/song-infos.ui.h:12 msgid "Song" msgstr "Laul" #: ../data/ui/song-infos.ui.h:14 msgid "Track :" msgstr "Lugu :" #: ../data/ui/trayicon-prefs.ui.h:1 msgid "Do nothing" msgstr "Ära tee midagi" #: ../data/ui/trayicon-prefs.ui.h:2 msgid "Mute" msgstr "Vaigista" #: ../data/ui/trayicon-prefs.ui.h:3 ../src/shell/ario-shell-preferences.c:138 msgid "Notification" msgstr "Teavitus" #: ../data/ui/trayicon-prefs.ui.h:4 msgid "Notification on song change" msgstr "Teavita loo muutumisest" #: ../data/ui/trayicon-prefs.ui.h:5 msgid "Notification time: " msgstr "Muutmise aeg " #: ../data/ui/trayicon-prefs.ui.h:6 msgid "On middle button click on tray icon :" msgstr "Keskmise nupul klõpsates süsteemi salve :" #: ../data/ui/trayicon-prefs.ui.h:7 ../src/widgets/ario-header.c:241 msgid "Play next song" msgstr "Esita järgmist lugu" #: ../data/ui/trayicon-prefs.ui.h:8 msgid "Play/Pause" msgstr "Esita /pausi" #: ../data/ui/trayicon-prefs.ui.h:9 msgid "Tray icon" msgstr "Paneeli ikoon" #: ../src/ario-main.c:67 msgid "Start minimized window" msgstr "Alusta minimeeritud akanas" #: ../src/ario-main.c:68 msgid "Start with specific profile" msgstr "" #. Format result string #: ../src/ario-util.c:110 msgid "seconds" msgstr "sekundit" #: ../src/ario-util.c:112 msgid "minutes" msgstr "minutid" #: ../src/ario-util.c:118 msgid "hours" msgstr "tunnid" #: ../src/ario-util.c:124 msgid "days" msgstr "päevad" #: ../src/covers/ario-cover.c:149 msgid "The cover already exists. Do you want to replace it?" msgstr "See ümbris on juba olemas.Kas soovid seda asentada?" #: ../src/covers/ario-cover-local.c:48 msgid "Music Directory" msgstr "Muusika kataloog" #: ../src/playlist/ario-playlist-dynamic.c:49 msgid "songs of same artist" msgstr "laul samalt esitajalt" #: ../src/playlist/ario-playlist-dynamic.c:50 msgid "songs of same album" msgstr "laul samalt albumilt" #: ../src/playlist/ario-playlist-dynamic.c:51 msgid "songs of similar artists" msgstr "Laul sarnaselt esitajalt" #: ../src/playlist/ario-playlist-dynamic.c:52 msgid "albums of same artists" msgstr "album samalt esitajalt" #: ../src/playlist/ario-playlist-dynamic.c:53 msgid "albums of similar artists" msgstr "albumeid sarnaste artistidega" #: ../src/playlist/ario-playlist-dynamic.c:69 msgid "Dynamic Playlist" msgstr "Dünaamiline esitusloend" #: ../src/playlist/ario-playlist-queue.c:49 msgid "Queue Mode" msgstr "Järjekorras olek" #: ../src/playlist/ario-playlist-normal.c:47 msgid "Normal" msgstr "Normaalne" #: ../src/plugins/ario-plugin-manager.c:45 msgid "Plugin" msgstr "Plugin" #: ../src/plugins/ario-plugin-manager.c:46 msgid "Enabled" msgstr "Lubatud" #: ../src/plugins/ario-plugin-manager.c:480 ../src/shell/ario-shell.c:206 msgid "_About" msgstr "_Programmist" #: ../src/plugins/ario-plugin-manager.c:488 msgid "C_onfigure" msgstr "_Seadista" #: ../src/plugins/ario-plugin-manager.c:497 msgid "A_ctivate" msgstr "_Aktiveeri" #: ../src/plugins/ario-plugin-manager.c:508 msgid "Ac_tivate All" msgstr "A_ktiveeri kõik" #: ../src/plugins/ario-plugin-manager.c:513 msgid "_Deactivate All" msgstr "_Deaktiveeri kõik" #: ../src/plugins/ario-plugin-manager.c:722 msgid "Active plugins" msgstr "Aktiivsed pluginad" #: ../src/preferences/ario-server-preferences.c:182 #: ../src/preferences/ario-stats-preferences.c:151 #: ../src/preferences/ario-stats-preferences.c:152 #: ../src/preferences/ario-stats-preferences.c:153 #: ../src/preferences/ario-stats-preferences.c:154 #: ../src/preferences/ario-stats-preferences.c:155 #: ../src/preferences/ario-stats-preferences.c:156 msgid "Not connected" msgstr "Pole ühendatud" #: ../src/preferences/ario-server-preferences.c:187 #: ../src/preferences/ario-server-preferences.c:278 #: ../src/widgets/ario-status-bar.c:100 msgid "Updating..." msgstr "Uuendamine..." #: ../src/servers/ario-mpd.c:410 ../src/servers/ario-mpd2.c:522 msgid "Connecting to server..." msgstr "Ühendan serveriga..." #: ../src/servers/ario-mpd.c:438 ../src/servers/ario-mpd2.c:550 msgid "Impossible to connect to server. Check the connection options." msgstr "Võimatu ühenduda serveriga. Kontrolli ühenduse seadeid." #. ARIO_TAG_ALBUM #: ../src/servers/ario-server.c:47 msgid "Album Artist" msgstr "Albumi esitaja" #. ARIO_TAG_DATE #: ../src/servers/ario-server.c:53 msgid "Composer" msgstr "Helilooja" #. ARIO_TAG_COMPOSER #: ../src/servers/ario-server.c:54 msgid "Performer" msgstr "Esitaja" #. ARIO_TAG_PERFORMER #. ARIO_TAG_COMMENT #. ARIO_TAG_DISC #: ../src/servers/ario-server.c:57 msgid "Filename" msgstr "Failinimi" #. ARIO_TAG_FILENAME #: ../src/servers/ario-server.c:58 msgid "Any" msgstr "Kõik" #. impossible time or broken locale settings #: ../src/servers/ario-server.h:27 #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1235 msgid "Unknown" msgstr "Tundmatu" #: ../src/sources/ario-browser.c:82 ../src/sources/ario-search.c:70 #: ../src/sources/ario-storedplaylists.c:88 #: ../src/sources/ario-storedplaylists.c:106 #: ../plugins/filesystem/ario-filesystem.c:94 #: ../plugins/filesystem/ario-filesystem.c:109 #: ../plugins/radios/ario-radio.c:116 msgid "_Add to playlist" msgstr "_Lisa esitusloendisse" #: ../src/sources/ario-browser.c:85 ../src/sources/ario-search.c:73 #: ../src/sources/ario-storedplaylists.c:91 #: ../src/sources/ario-storedplaylists.c:109 #: ../plugins/filesystem/ario-filesystem.c:97 #: ../plugins/filesystem/ario-filesystem.c:112 #: ../plugins/radios/ario-radio.c:119 msgid "Add and _play" msgstr "Lisa ja _esita" #: ../src/sources/ario-browser.c:88 ../src/sources/ario-search.c:76 #: ../src/sources/ario-storedplaylists.c:94 #: ../src/sources/ario-storedplaylists.c:112 #: ../plugins/filesystem/ario-filesystem.c:100 #: ../plugins/filesystem/ario-filesystem.c:115 #: ../plugins/radios/ario-radio.c:122 msgid "_Replace in playlist" msgstr "_Asenda esitusnimekirjas" #: ../src/sources/ario-browser.c:91 msgid "Get the covers" msgstr "Omasta need ümbrised" #: ../src/sources/ario-browser.c:94 msgid "_Delete the covers" msgstr "_Kustuta ümbris" #: ../src/sources/ario-browser.c:97 ../src/sources/ario-browser.c:100 #: ../src/sources/ario-search.c:79 ../src/sources/ario-storedplaylists.c:115 #: ../src/widgets/ario-playlist.c:151 #: ../plugins/filesystem/ario-filesystem.c:118 #: ../plugins/radios/ario-radio.c:131 msgid "_Properties" msgstr "_Omadused" #: ../src/sources/ario-browser.c:125 ../src/shell/ario-shell-preferences.c:118 msgid "Library" msgstr "Helikogu" #: ../src/sources/ario-storedplaylists.c:97 msgid "_Delete" msgstr "_Kustuta" #: ../src/sources/ario-storedplaylists.c:151 msgid "Playlists" msgstr "Lugude nimekirjad" #: ../src/sources/ario-storedplaylists.c:592 msgid "Are you sure that you want to delete all the selected playlists?" msgstr "Kas oled kinnel et soovid kustutada kogu valitu esitusloendist?" #: ../src/sources/ario-tree.c:856 msgid "Are you sure that you want to remove all the selected covers?" msgstr "Oled kinnel et soovid eemaltada kõik valitud ümbrised" #. Translators - This "Cover" refers to an album cover art #: ../src/sources/ario-tree-albums.c:199 msgid "Cover" msgstr "Plaadiümbris" #: ../src/shell/ario-shell.c:160 msgid "_File" msgstr "_Fail" #: ../src/shell/ario-shell.c:161 msgid "_Edit" msgstr "_Redigeeri" #: ../src/shell/ario-shell.c:162 msgid "_View" msgstr "_Vaata" #: ../src/shell/ario-shell.c:163 msgid "_Control" msgstr "_Juhtimine" #: ../src/shell/ario-shell.c:164 msgid "_Tool" msgstr "_Tööriistad" #: ../src/shell/ario-shell.c:165 msgid "_Help" msgstr "_Abi" #: ../src/shell/ario-shell.c:173 msgid "_Update database" msgstr "_ Uuenda andmebaasi" #: ../src/shell/ario-shell.c:176 msgid "_Quit" msgstr "_Välju" #: ../src/shell/ario-shell.c:179 msgid "Plu_gins" msgstr "Plu_ginad" #: ../src/shell/ario-shell.c:182 msgid "Prefere_nces" msgstr "_Häälestus" #: ../src/shell/ario-shell.c:185 msgid "_Change current album cover" msgstr "_Muuda töösoleva albumi ümbris" #: ../src/shell/ario-shell.c:188 msgid "Download album _covers" msgstr "Lae alla albumi _ümbrised" #: ../src/shell/ario-shell.c:191 msgid "Find similar artists" msgstr "Leia sarnased esitajad" #: ../src/shell/ario-shell.c:194 msgid "Add similar songs to playlist" msgstr "Lisa sarnased laulud esitusloendisse" #: ../src/shell/ario-shell.c:197 msgid "Go to _previous tab" msgstr "" #: ../src/shell/ario-shell.c:200 msgid "Go to _next tab" msgstr "" #: ../src/shell/ario-shell.c:203 msgid "Show _lyrics" msgstr "Näita _sõnu" #: ../src/shell/ario-shell.c:209 msgid "_Translate this application..." msgstr "_Tõlgi see rakkendus..." #: ../src/shell/ario-shell.c:216 msgid "S_tatusbar" msgstr "_Olekuriba" #: ../src/shell/ario-shell.c:219 msgid "Upper part" msgstr "Ülemine osa" #: ../src/shell/ario-shell.c:825 msgid "GTK client for MPD" msgstr "GTK klient MPD-le" #: ../src/shell/ario-shell.c:826 msgid "translator-credits" msgstr "" "Launchpad Contributions:\n" " lyyser https://launchpad.net/~lyyser" #. Create plugins configuration dialog window #: ../src/shell/ario-shell.c:1278 msgid "Configure Plugins" msgstr "Pluginate seadistamine" #. Set window properties #: ../src/shell/ario-shell-coverdownloader.c:187 msgid "Music Player Cover Download" msgstr "Music Player-i ümbrise laadimine" #: ../src/shell/ario-shell-coverdownloader.c:332 msgid "Download Finished!" msgstr "Allaladimine lõpetatud!" #. We show the numbers of covers found and not found #: ../src/shell/ario-shell-coverdownloader.c:335 #, c-format msgid "" "%i covers found\n" "%i covers not found\n" "%i covers already exist" msgstr "" "%i ümbris leitud\n" "%i ümbrist ei leitud\n" "%i ümbris on juba olemas" #. Set window properties #: ../src/shell/ario-shell-coverselect.c:242 msgid "Cover Download" msgstr "Ümbrise laadimine" #: ../src/shell/ario-shell-coverselect.c:559 msgid "Error reading file" msgstr "Viga faili lugemisel" #: ../src/shell/ario-shell-coverselect.c:584 msgid "Error saving file" msgstr "Viga faili salvestamisel" #: ../src/shell/ario-shell-lyrics.c:43 #: ../src/shell/ario-shell-preferences.c:133 #: ../src/shell/ario-shell-songinfos.c:272 msgid "Lyrics" msgstr "Sõnad" #: ../src/shell/ario-shell-lyricsselect.c:152 msgid "Lyrics Download" msgstr "Sõnade laadimine" #: ../src/shell/ario-shell-preferences.c:81 msgid "Ario Preferences" msgstr "Ario seadistused" #: ../src/shell/ario-shell-preferences.c:113 msgid "Server" msgstr "Server" #: ../src/shell/ario-shell-preferences.c:143 msgid "Others" msgstr "Muud" #: ../src/shell/ario-shell-similarartists.c:318 #, c-format msgid "%d songs" msgstr "%d laulud" #. Set window properties #. Set window title #: ../src/shell/ario-shell-songinfos.c:249 #: ../src/shell/ario-shell-songinfos.c:266 #: ../src/shell/ario-shell-songinfos.c:544 msgid "Song Properties" msgstr "Loo omadused" #: ../src/shell/ario-shell-songinfos.c:455 msgid "Error saving tags of file:" msgstr "Viga faili sildi salvestamisel" #: ../src/widgets/ario-connection-widget.c:652 msgid "You must select a server." msgstr "Sa pead valima serveri" #: ../src/widgets/ario-connection-widget.c:702 msgid "New Profile" msgstr "Uus profiil" #: ../src/widgets/ario-firstlaunch.c:82 msgid "The following configuration will be used:" msgstr "Järgnevad seadistused võetakse kasutusele" #: ../src/widgets/ario-firstlaunch.c:106 msgid "" "It is the first time you launch Ario.\n" "This assistant will help you to configure it." msgstr "" "Kui see on esmakordne Ariokasutamine.\n" "See abimees aitab sul seda seadistada." #: ../src/widgets/ario-firstlaunch.c:111 msgid "Welcome to Ario" msgstr "Teretulemast Ario-sse" #: ../src/widgets/ario-firstlaunch.c:129 msgid "Configuration" msgstr "Seadistused" #: ../src/widgets/ario-firstlaunch.c:141 msgid "Confirmation" msgstr "Kinnitus" #: ../src/widgets/ario-header.c:66 ../src/widgets/ario-tray-icon.h:42 #, c-format msgid "from %s by %s" msgstr "from %s by %s" #: ../src/widgets/ario-header.c:199 msgid "Play previous song" msgstr "Esita eelmist lugu" #: ../src/widgets/ario-header.c:217 msgid "Play/Pause the music" msgstr "Esita/pausi muusika" #: ../src/widgets/ario-header.c:229 msgid "Stop the music" msgstr "Peata muusikad" #. Translators - This " of " is used to count the elapsed time #. of a song like in "00:59 of 03:24" #: ../src/widgets/ario-header.c:310 ../src/widgets/ario-tooltip.c:321 msgid " of " msgstr " -> " #: ../src/widgets/ario-header.c:323 msgid "Toggle random on/off" msgstr "Juhuslik lülitus sees/väljas" #: ../src/widgets/ario-header.c:335 msgid "Toggle repeat on/off" msgstr "Juhuslik kordus sees/väljas" #: ../src/widgets/ario-header.c:340 msgid "Change the music volume" msgstr "Muuda muusika helitugevust" #: ../src/widgets/ario-lyrics-editor.c:323 msgid "Downloading lyrics..." msgstr "Laen alla sõnu....." #: ../src/widgets/ario-lyrics-editor.c:351 msgid "Lyrics not found" msgstr "Sõnu ei leitud" #: ../src/widgets/ario-playlist.c:133 msgid "_Clear" msgstr "_Nulli" #: ../src/widgets/ario-playlist.c:136 msgid "_Shuffle" msgstr "_ Lohista" #: ../src/widgets/ario-playlist.c:139 msgid "Cr_op" msgstr "_Kärbi" #: ../src/widgets/ario-playlist.c:142 msgid "_Search in playlist" msgstr "_Otsi esitusloendist" #: ../src/widgets/ario-playlist.c:145 msgid "_Remove" msgstr "_Eemalda" #: ../src/widgets/ario-playlist.c:148 msgid "_Save" msgstr "_Salvesta" #: ../src/widgets/ario-playlist.c:154 msgid "_Go to playing song" msgstr "_Alusta laulu esitasmist" #: ../src/widgets/ario-playlist.c:667 msgid "Filter:" msgstr "Filter:" #. Create the widgets #: ../src/widgets/ario-playlist.c:1700 msgid "Save playlist" msgstr "Lugude nimekirja salvestamine" #: ../src/widgets/ario-playlist.c:1710 msgid "Playlist name :" msgstr "Esitusloendi nimi :" #: ../src/widgets/ario-playlist.c:1746 msgid "Playlist already exists. Do you want to overwrite it?" msgstr "Esitus loen on juba olemas. kas soovid seda ülekirjutada?" #. Format status bar message #: ../src/widgets/ario-status-bar.c:96 msgid "Songs" msgstr "Laulud" #: ../src/widgets/ario-tray-icon.c:102 msgid "_Play" msgstr "_Esita" #: ../src/widgets/ario-tray-icon.c:105 msgid "_Pause" msgstr "_Paus" #: ../src/widgets/ario-tray-icon.c:108 msgid "_Stop" msgstr "_Peata" #: ../src/widgets/ario-tray-icon.c:111 msgid "_Next" msgstr "_Järgmine" #: ../src/widgets/ario-tray-icon.c:114 msgid "P_revious" msgstr "_Eelmine" #: ../src/widgets/ario-tray-icon.h:41 msgid "Not playing" msgstr "Ei mängi" #. Translators: "friendly time" string for the current day, strftime format. like "Today 12:34 am" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1179 msgid "Today %I:%M %p" msgstr "Täna %t:%mi" #. Translators: "friendly time" string for the previous day, #. * strftime format. e.g. "Yesterday 12:34 am" #. #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1192 msgid "Yesterday %I:%M %p" msgstr "Eile %I:%M %p" #. Translators: "friendly time" string for a day in the current week, #. * strftime format. e.g. "Wed 12:34 am" #. #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1208 msgid "%a %I:%M %p" msgstr "%a %I:%M %p" #. Translators: "friendly time" string for a day in the current year, #. * strftime format. e.g. "Feb 12 12:34 am" #. #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1220 msgid "%b %d %I:%M %p" msgstr "%b %d %I:%M %p" #. Translators: "friendly time" string for a day in a different year, #. * strftime format. e.g. "Feb 12 1997" #. #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1225 msgid "%b %d %Y" msgstr "%b %d %Y" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1311 #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:4 msgid "Never" msgstr "Mitte kunagi" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1335 msgid "OK" msgstr "OK" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1338 msgid "Logging in" msgstr "Sisselogimine" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1341 msgid "Request failed" msgstr "Taotlus nurjunud" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1344 msgid "Incorrect username" msgstr "Vigane kasutjanimi" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1347 msgid "Incorrect password" msgstr "Vigane salasõna" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1350 msgid "Handshake failed" msgstr "Pigistamine ebaõnnestus" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1353 msgid "Client update required" msgstr "Nõutav kliendi uuendamine" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1356 msgid "Track submission failed" msgstr "Loo saatmine nurjus" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1359 msgid "Queue is too long" msgstr "Tööjärjekord on liiga pikk" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1362 msgid "Track submission failed too many times" msgstr "Loo saatmine nurjus liiga mitu korda" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1417 msgid "Audioscrobbler preferences" msgstr "Audioscrobbler seadistused" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:1 msgid "Disabled" msgstr "Keelatud" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:2 msgid "Last submission time:" msgstr "Viimase saatmise aeg:" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:3 msgid "Last.fm Profile" msgstr "last.fm-i profiil" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:6 msgid "Queued tracks:" msgstr "Järjekorras lood:" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:7 msgid "Status:" msgstr "Olek:" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:8 msgid "Tracks submitted:" msgstr "Lood saadetud:" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:9 #: ../plugins/radios/ario-radio.c:168 msgid "Username :" msgstr "Kasutajanimi:" #: ../plugins/audioscrobbler/audioscrobbler.ario-plugin.desktop.in.h:1 msgid "Last.fm" msgstr "Last.fm" #: ../plugins/audioscrobbler/audioscrobbler.ario-plugin.desktop.in.h:2 msgid "Submits song information to last.fm" msgstr "Saada laulu info last.fm-ile" #: ../plugins/filesystem/ario-filesystem.c:158 msgid "File System" msgstr "Failisüsteem" #: ../plugins/filesystem/ario-filesystem.c:422 msgid "Music" msgstr "Muusika" #: ../plugins/filesystem/filesystem.ario-plugin.desktop.in.h:1 msgid "A File System Browser" msgstr "Failisüsteemi sirvija" #: ../plugins/filesystem/filesystem.ario-plugin.desktop.in.h:2 msgid "File System Browser" msgstr "Failisüsteemi sirvija" #: ../plugins/information/ario-information.c:114 msgid "Information" msgstr "Info" #: ../plugins/information/information.ario-plugin.desktop.in.h:1 msgid "Display various information about the playing song" msgstr "Kuva esitatava laulu infot" #: ../plugins/information/information.ario-plugin.desktop.in.h:2 msgid "Song Information" msgstr "Laulu andmed" #: ../plugins/information/information.ui.h:2 msgid "Albums from this artist:" msgstr "Albumid sellelt esitajalt" #: ../plugins/information/information.ui.h:5 msgid "Lyrics:" msgstr "Sõnad:" #: ../plugins/libnotify/libnotify.ario-plugin.desktop.in.h:1 msgid "Add libnotify support" msgstr "Lisa libnotify tugi" #: ../plugins/libnotify/libnotify.ario-plugin.desktop.in.h:2 msgid "Libnotify" msgstr "Libnotify" #: ../plugins/mmkeys/mmkeys.ario-plugin.desktop.in.h:1 msgid "Add multimedia keys support" msgstr "Lisa multimeediaklahvide tugi" #: ../plugins/mmkeys/mmkeys.ario-plugin.desktop.in.h:2 msgid "Multimedia Keys" msgstr "Multimeediaklahvid" #: ../plugins/radios/ario-radio.c:125 msgid "Add a _new radio" msgstr "Lisa _uus raadio" #: ../plugins/radios/ario-radio.c:128 msgid "_Delete this radios" msgstr "_Kustuta see raadio" #: ../plugins/radios/ario-radio.c:166 msgid "Last.fm: Radio of similar artists" msgstr "" #: ../plugins/radios/ario-radio.c:167 msgid "Last.fm: Radio of group" msgstr "" #: ../plugins/radios/ario-radio.c:167 msgid "Group :" msgstr "Grupp :" #: ../plugins/radios/ario-radio.c:168 msgid "Last.fm: Personal radio" msgstr "" #: ../plugins/radios/ario-radio.c:169 msgid "Last.fm: Radio of genre" msgstr "" #: ../plugins/radios/ario-radio.c:184 #: ../plugins/radios/radios.ario-plugin.desktop.in.h:2 msgid "Web Radios" msgstr "Veebi raadiod" #: ../plugins/radios/ario-radio.c:246 msgid "Internet Radios" msgstr "Interneti raadiod" #. Create dialog window #: ../plugins/radios/ario-radio.c:774 msgid "Edit a WebRadio" msgstr "Redigeeri veebi raadiot" #: ../plugins/radios/ario-radio.c:787 ../plugins/radios/ario-radio.c:923 msgid "URL :" msgstr "URL:" #: ../plugins/radios/ario-radio.c:853 ../plugins/radios/ario-radio.c:997 msgid "Bad parameters. You must specify a name and a URL for the radio." msgstr "Vigane parameeter. Sa pead täpsemalt määratlema raadio nime ja URL-i" #. Create dialog window #: ../plugins/radios/ario-radio.c:883 msgid "Add a WebRadio" msgstr "Lisa veebi raadio" #: ../plugins/radios/ario-radio.c:1083 msgid "Are you sure you want to delete all the selected radios?" msgstr "Oled sa kinnel et soovid kustuta valitud raadio jaamad?" #: ../plugins/radios/radios.ario-plugin.desktop.in.h:1 msgid "Listen to webradios" msgstr "Kuula veebi raadiot" #: ../plugins/wikipedia/ario-wikipedia-plugin.c:49 #: ../plugins/wikipedia/ario-wikipedia-plugin.c:50 msgid "Find artist on Wikipedia" msgstr "Leia artist Wikipediast" #: ../plugins/wikipedia/ario-wikipedia-plugin.c:172 msgid "Wikipedia Plugin - Configuration" msgstr "Wikipedia plugina - konfiguratsioon" #: ../plugins/wikipedia/ario-wikipedia-plugin.c:181 msgid "Wikipedia language :" msgstr "Wikipedia keel :" #: ../plugins/wikipedia/wikipedia.ario-plugin.desktop.in.h:1 msgid "A plugin to search current artist on wikipedia" msgstr "Wikipediast artisti otsimise plugin" #: ../plugins/wikipedia/wikipedia.ario-plugin.desktop.in.h:2 msgid "Wikipedia" msgstr "Wikipedia" #~ msgid "Search songs in the library" #~ msgstr "Otsi laulu loendist" #~ msgid "Remove a search criteria" #~ msgstr "Eemalda otsingu kriteeriumid" #~ msgid "Add a search criteria" #~ msgstr "Lisa ostingu kriteerumid" ario-1.6/po/en_GB.po0000644000175000017500000010230013226723435011166 00000000000000# English (United Kingdom) translation for ario # Copyright (c) 2008 Rosetta Contributors and Canonical Ltd 2008 # This file is distributed under the same license as the ario package. # FIRST AUTHOR , 2008. # msgid "" msgstr "" "Project-Id-Version: ario\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2011-06-13 18:15+0200\n" "PO-Revision-Date: 2010-08-10 20:14+0000\n" "Last-Translator: Jesse Bye \n" "Language-Team: English (United Kingdom) \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2011-06-13 16:32+0000\n" "X-Generator: Launchpad (build 13175)\n" #: ../data/ario.desktop.in.in.h:1 msgid "Ario music player" msgstr "Ario music player" #: ../data/ario.desktop.in.in.h:2 msgid "Client application to mpd" msgstr "Client application to mpd" #: ../data/ui/browser-prefs.ui.h:1 msgid "Alphabetically" msgstr "Alphabetically" #: ../data/ui/browser-prefs.ui.h:2 msgid "By year" msgstr "By year" #: ../data/ui/browser-prefs.ui.h:3 msgid "Library Options" msgstr "Libary Options" #: ../data/ui/browser-prefs.ui.h:4 msgid "Library Organisation" msgstr "Library Organisation" #: ../data/ui/browser-prefs.ui.h:5 msgid "Sort albums: " msgstr "Sort albums: " #: ../data/ui/connection-autodetect.ui.h:1 msgid "" "If you don't see your MPD server thanks to the automatic detection, you " "should check that zeroconf is activated in your MPD configuration or use the " "manual configuration." msgstr "" "If you don't see your MPD server thanks to the automatic detection, you " "should check that zeroconf is activated in your MPD configuration or use the " "manual configuration." #: ../data/ui/connection-autodetect.ui.h:2 msgid "Server autodetection" msgstr "Server autodetection" #: ../data/ui/connection-widget.ui.h:1 msgid "Auto detect" msgstr "Auto detect" #: ../data/ui/connection-widget.ui.h:2 msgid "Default" msgstr "Default" #: ../data/ui/connection-widget.ui.h:3 ../src/widgets/ario-firstlaunch.c:83 msgid "Host :" msgstr "Host :" #: ../data/ui/connection-widget.ui.h:4 msgid "Music directory :" msgstr "Music directory :" #: ../data/ui/connection-widget.ui.h:5 msgid "Music server is on the same computer as Ario" msgstr "Music server is on the same computer as Ario" #. Create the widgets #: ../data/ui/connection-widget.ui.h:6 ../plugins/radios/ario-radio.c:786 #: ../plugins/radios/ario-radio.c:922 msgid "Name :" msgstr "Name :" #: ../data/ui/connection-widget.ui.h:7 #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:5 msgid "Password :" msgstr "Password :" #: ../data/ui/connection-widget.ui.h:8 ../src/widgets/ario-firstlaunch.c:85 msgid "Port :" msgstr "Port :" #: ../data/ui/connection-widget.ui.h:9 msgid "Server type :" msgstr "Server type :" #: ../data/ui/connection-widget.ui.h:10 msgid "Timeout :" msgstr "" #: ../data/ui/connection-widget.ui.h:11 msgid "XMMS 2 (Experimental)" msgstr "XMMS 2 (Experimental)" #: ../data/ui/cover-prefs.ui.h:1 msgid "Automatically download the album cover of the playing song" msgstr "Automatically download the album cover of the playing song" #: ../data/ui/cover-prefs.ui.h:2 ../src/shell/ario-shell-preferences.c:128 msgid "Covers" msgstr "Covers" #: ../data/ui/cover-prefs.ui.h:3 msgid "Covers Sources" msgstr "Covers Sources" #: ../data/ui/cover-prefs.ui.h:4 msgid "Show the covers in the albums list" msgstr "Show the covers in the albums list" #: ../data/ui/cover-prefs.ui.h:5 msgid "Use Amazon." msgstr "Use Amazon." #: ../data/ui/connection-prefs.ui.h:1 #: ../src/shell/ario-shell-preferences.c:108 msgid "Connection" msgstr "Connection" #: ../data/ui/connection-prefs.ui.h:2 msgid "_Autoconnect on startup" msgstr "_Autoconnect on startup" #: ../data/ui/connection-prefs.ui.h:3 ../src/shell/ario-shell.c:167 msgid "_Connect" msgstr "_Connect" #: ../data/ui/connection-prefs.ui.h:4 ../src/shell/ario-shell.c:170 msgid "_Disconnect" msgstr "_Disconnect" #: ../data/ui/connection-assistant.ui.h:1 msgid "" "You need to specify a server to connect to. If you don't see your server " "thanks to the autodetection, you should check that zeroconf/avahi is " "activated in your server or use the manual configuration." msgstr "" "You need to specify a server to connect to. If you don't see your server " "thanks to the autodetection, you should check that zeroconf/avahi is " "activated in your server or use the manual configuration." #: ../data/ui/cover-progress.ui.h:1 ../data/ui/cover-select.ui.h:1 #: ../data/ui/song-infos.ui.h:1 ../plugins/information/information.ui.h:1 msgid "Album :" msgstr "Album :" #: ../data/ui/cover-progress.ui.h:2 ../data/ui/cover-select.ui.h:2 #: ../data/ui/lyrics-select.ui.h:1 ../data/ui/song-infos.ui.h:3 #: ../plugins/information/information.ui.h:3 #: ../plugins/radios/ario-radio.c:166 msgid "Artist :" msgstr "Artist :" #: ../data/ui/cover-progress.ui.h:3 msgid "Downloading cover" msgstr "Downloading cover" #: ../data/ui/cover-select.ui.h:3 msgid "Local search" msgstr "Local search" #: ../data/ui/cover-select.ui.h:4 ../src/sources/ario-search.c:108 msgid "Search" msgstr "Search" #: ../data/ui/others-prefs.ui.h:1 msgid "Allow only one instance of Ario" msgstr "Allow only one instance of Ario" #: ../data/ui/others-prefs.ui.h:2 msgid "Hide window when close button is pressed" msgstr "Hide window when close button is pressed" #: ../data/ui/others-prefs.ui.h:3 msgid "Interface" msgstr "Interface" #: ../data/ui/others-prefs.ui.h:4 msgid "Playlist at the right of tabs" msgstr "Playlist at the right of tabs" #: ../data/ui/others-prefs.ui.h:5 msgid "Playlist below tabs" msgstr "Playlist below tabs" #: ../data/ui/others-prefs.ui.h:6 msgid "Playlist within tabs" msgstr "Playlist within tabs" #: ../data/ui/others-prefs.ui.h:7 msgid "Proxy" msgstr "Proxy" #: ../data/ui/others-prefs.ui.h:8 msgid "Proxy Address :" msgstr "Proxy Address :" #: ../data/ui/others-prefs.ui.h:9 msgid "Proxy Port :" msgstr "Proxy Port :" #: ../data/ui/others-prefs.ui.h:10 msgid "Show tabs" msgstr "Show tabs" #: ../data/ui/others-prefs.ui.h:11 msgid "Use a proxy" msgstr "Use a proxy" #: ../data/ui/lyrics-prefs.ui.h:1 msgid "Lyrics Sources" msgstr "Lyrics Sources" #: ../data/ui/lyrics-select.ui.h:2 ../data/ui/song-infos.ui.h:13 #: ../plugins/information/information.ui.h:6 msgid "Title :" msgstr "Title :" #: ../data/ui/playlist-prefs.ui.h:1 msgid "Add after playing song" msgstr "Add after playing song" #: ../data/ui/playlist-prefs.ui.h:2 msgid "Add and play" msgstr "Add and play" #: ../data/ui/playlist-prefs.ui.h:3 ../data/ui/similar-artists.ui.h:2 msgid "Add to playlist" msgstr "Add to playlist" #. ARIO_TAG_ARTIST #: ../data/ui/playlist-prefs.ui.h:4 ../src/servers/ario-server.c:46 #: ../src/sources/ario-tree-albums.c:213 ../src/widgets/ario-playlist.c:541 #: ../src/widgets/ario-songlist.c:228 ../src/widgets/ario-tray-icon.c:565 msgid "Album" msgstr "Album" #: ../data/ui/playlist-prefs.ui.h:5 ../src/servers/ario-server.c:45 #: ../src/widgets/ario-playlist.c:541 ../src/widgets/ario-songlist.c:213 #: ../src/widgets/ario-tray-icon.c:563 msgid "Artist" msgstr "Artist" #. ARIO_TAG_GENRE #: ../data/ui/playlist-prefs.ui.h:6 ../src/servers/ario-server.c:52 #: ../src/widgets/ario-playlist.c:541 msgid "Date" msgstr "Date" #: ../data/ui/playlist-prefs.ui.h:7 ../src/widgets/ario-playlist.c:541 msgid "Disc" msgstr "Disc" #: ../data/ui/playlist-prefs.ui.h:8 msgid "Double click" msgstr "Double click" #: ../data/ui/playlist-prefs.ui.h:9 ../src/widgets/ario-playlist.c:541 msgid "Duration" msgstr "Duration" #: ../data/ui/playlist-prefs.ui.h:10 ../src/widgets/ario-playlist.c:541 msgid "File" msgstr "File" #. ARIO_TAG_TRACK #. ARIO_TAG_NAME #: ../data/ui/playlist-prefs.ui.h:11 ../src/servers/ario-server.c:51 #: ../src/widgets/ario-playlist.c:541 msgid "Genre" msgstr "Genre" #: ../data/ui/playlist-prefs.ui.h:12 msgid "Go to current song when a new song is played" msgstr "Go to current song when a new song is played" #: ../data/ui/playlist-prefs.ui.h:13 msgid "Mode" msgstr "Mode" #: ../data/ui/playlist-prefs.ui.h:14 msgid "On double click:" msgstr "On double click:" #: ../data/ui/playlist-prefs.ui.h:15 ../src/sources/ario-storedplaylists.c:229 #: ../src/shell/ario-shell.c:222 ../src/shell/ario-shell-preferences.c:123 #: ../src/widgets/ario-playlist.c:272 msgid "Playlist" msgstr "Playlist" #: ../data/ui/playlist-prefs.ui.h:16 msgid "Playlist mode:" msgstr "Playlist mode:" #: ../data/ui/playlist-prefs.ui.h:17 msgid "Replace in playlist" msgstr "Replace in playlist" #: ../data/ui/playlist-prefs.ui.h:18 msgid "Show rows:" msgstr "Show rows:" #. ARIO_TAG_ALBUM_ARTIST #: ../data/ui/playlist-prefs.ui.h:19 ../src/servers/ario-server.c:48 #: ../src/sources/ario-tree-songs.c:145 ../src/widgets/ario-playlist.c:541 #: ../src/widgets/ario-songlist.c:198 ../src/widgets/ario-tray-icon.c:567 msgid "Title" msgstr "Title" #. ARIO_TAG_TITLE #: ../data/ui/playlist-prefs.ui.h:20 ../src/servers/ario-server.c:49 #: ../src/sources/ario-tree-songs.c:138 ../src/widgets/ario-playlist.c:541 msgid "Track" msgstr "Track" #: ../data/ui/server-prefs.ui.h:1 msgid "Audio outputs" msgstr "Audio outputs" #: ../data/ui/server-prefs.ui.h:2 msgid "Crossfade" msgstr "Crossfade" #: ../data/ui/server-prefs.ui.h:3 msgid "Database" msgstr "Database" #: ../data/ui/server-prefs.ui.h:4 msgid "Last updated:" msgstr "Last updated:" #: ../data/ui/server-prefs.ui.h:5 msgid "Stop music on exit" msgstr "Stop music on exit" #: ../data/ui/server-prefs.ui.h:6 msgid "Update on startup" msgstr "Update on startup" #: ../data/ui/server-prefs.ui.h:7 msgid "_Update" msgstr "_Update" #: ../data/ui/server-prefs.ui.h:8 msgid "enable crossfade" msgstr "enable crossfade" #: ../data/ui/server-prefs.ui.h:9 msgid "fade time (s):" msgstr "fade time (s):" #: ../data/ui/server-prefs.ui.h:10 ../src/ario-util.c:50 ../src/ario-util.c:71 #: ../src/ario-util.c:93 ../plugins/information/information.ui.h:7 #, c-format msgid "n/a" msgstr "n/a" #: ../data/ui/similar-artists.ui.h:1 msgid "Add all to playlist" msgstr "Add all to playlist" #: ../data/ui/similar-artists.ui.h:3 msgid "Find on Last.fm" msgstr "Find on Last.fm" #: ../data/ui/stats-prefs.ui.h:1 msgid "Database play time :" msgstr "Database play time :" #: ../data/ui/stats-prefs.ui.h:2 msgid "Number of albums :" msgstr "Number of albums :" #: ../data/ui/stats-prefs.ui.h:3 msgid "Number of artists :" msgstr "Number of artists :" #: ../data/ui/stats-prefs.ui.h:4 msgid "Number of songs :" msgstr "Number of songs :" #: ../data/ui/stats-prefs.ui.h:5 msgid "Play time :" msgstr "Play time :" #: ../data/ui/stats-prefs.ui.h:6 ../src/shell/ario-shell-preferences.c:148 msgid "Statistics" msgstr "Statistics" #: ../data/ui/stats-prefs.ui.h:7 msgid "Uptime :" msgstr "Uptime :" #: ../data/ui/song-infos.ui.h:2 msgid "Album Artist :" msgstr "Album Artist :" #: ../data/ui/song-infos.ui.h:4 msgid "Comment :" msgstr "Comment :" #: ../data/ui/song-infos.ui.h:5 msgid "Composer :" msgstr "Composer :" #: ../data/ui/song-infos.ui.h:6 msgid "Date :" msgstr "Date :" #: ../data/ui/song-infos.ui.h:7 msgid "Disc :" msgstr "Disc :" #: ../data/ui/song-infos.ui.h:8 msgid "Filename :" msgstr "Filename :" #: ../data/ui/song-infos.ui.h:9 ../plugins/radios/ario-radio.c:169 msgid "Genre :" msgstr "Genre :" #: ../data/ui/song-infos.ui.h:10 ../plugins/information/information.ui.h:4 msgid "Length :" msgstr "Length :" #: ../data/ui/song-infos.ui.h:11 msgid "Performer :" msgstr "Performer :" #: ../data/ui/song-infos.ui.h:12 msgid "Song" msgstr "Song" #: ../data/ui/song-infos.ui.h:14 msgid "Track :" msgstr "Track :" #: ../data/ui/trayicon-prefs.ui.h:1 msgid "Do nothing" msgstr "Do nothing" #: ../data/ui/trayicon-prefs.ui.h:2 msgid "Mute" msgstr "Mute" #: ../data/ui/trayicon-prefs.ui.h:3 ../src/shell/ario-shell-preferences.c:138 msgid "Notification" msgstr "Notification" #: ../data/ui/trayicon-prefs.ui.h:4 msgid "Notification on song change" msgstr "Notification on song change" #: ../data/ui/trayicon-prefs.ui.h:5 msgid "Notification time: " msgstr "Notification time: " #: ../data/ui/trayicon-prefs.ui.h:6 msgid "On middle button click on tray icon :" msgstr "On middle button click on tray icon :" #: ../data/ui/trayicon-prefs.ui.h:7 ../src/widgets/ario-header.c:241 msgid "Play next song" msgstr "Play next song" #: ../data/ui/trayicon-prefs.ui.h:8 msgid "Play/Pause" msgstr "Play/Pause" #: ../data/ui/trayicon-prefs.ui.h:9 msgid "Tray icon" msgstr "Tray icon" #: ../src/ario-main.c:67 msgid "Start minimized window" msgstr "Start minimised window" #: ../src/ario-main.c:68 msgid "Start with specific profile" msgstr "" #. Format result string #: ../src/ario-util.c:110 msgid "seconds" msgstr "seconds" #: ../src/ario-util.c:112 msgid "minutes" msgstr "minutes" #: ../src/ario-util.c:118 msgid "hours" msgstr "hours" #: ../src/ario-util.c:124 msgid "days" msgstr "days" #: ../src/covers/ario-cover.c:149 msgid "The cover already exists. Do you want to replace it?" msgstr "The cover already exists. Do you want to replace it?" #: ../src/covers/ario-cover-local.c:48 msgid "Music Directory" msgstr "Music Directory" #: ../src/playlist/ario-playlist-dynamic.c:49 msgid "songs of same artist" msgstr "songs of same artist" #: ../src/playlist/ario-playlist-dynamic.c:50 msgid "songs of same album" msgstr "songs of same album" #: ../src/playlist/ario-playlist-dynamic.c:51 msgid "songs of similar artists" msgstr "songs of similar artists" #: ../src/playlist/ario-playlist-dynamic.c:52 msgid "albums of same artists" msgstr "albums of same artists" #: ../src/playlist/ario-playlist-dynamic.c:53 msgid "albums of similar artists" msgstr "albums of similar artists" #: ../src/playlist/ario-playlist-dynamic.c:69 msgid "Dynamic Playlist" msgstr "Dynamic Playlist" #: ../src/playlist/ario-playlist-queue.c:49 msgid "Queue Mode" msgstr "Queue Mode" #: ../src/playlist/ario-playlist-normal.c:47 msgid "Normal" msgstr "Normal" #: ../src/plugins/ario-plugin-manager.c:45 msgid "Plugin" msgstr "Plug-in" #: ../src/plugins/ario-plugin-manager.c:46 msgid "Enabled" msgstr "Enabled" #: ../src/plugins/ario-plugin-manager.c:480 ../src/shell/ario-shell.c:206 msgid "_About" msgstr "_About" #: ../src/plugins/ario-plugin-manager.c:488 msgid "C_onfigure" msgstr "C_onfigure" #: ../src/plugins/ario-plugin-manager.c:497 msgid "A_ctivate" msgstr "A_ctivate" #: ../src/plugins/ario-plugin-manager.c:508 msgid "Ac_tivate All" msgstr "Ac_tivate All" #: ../src/plugins/ario-plugin-manager.c:513 msgid "_Deactivate All" msgstr "_Deactivate All" #: ../src/plugins/ario-plugin-manager.c:722 msgid "Active plugins" msgstr "Active plug-ins" #: ../src/preferences/ario-server-preferences.c:182 #: ../src/preferences/ario-stats-preferences.c:151 #: ../src/preferences/ario-stats-preferences.c:152 #: ../src/preferences/ario-stats-preferences.c:153 #: ../src/preferences/ario-stats-preferences.c:154 #: ../src/preferences/ario-stats-preferences.c:155 #: ../src/preferences/ario-stats-preferences.c:156 msgid "Not connected" msgstr "Not connected" #: ../src/preferences/ario-server-preferences.c:187 #: ../src/preferences/ario-server-preferences.c:278 #: ../src/widgets/ario-status-bar.c:100 msgid "Updating..." msgstr "Updating..." #: ../src/servers/ario-mpd.c:410 ../src/servers/ario-mpd2.c:522 msgid "Connecting to server..." msgstr "Connecting to server..." #: ../src/servers/ario-mpd.c:438 ../src/servers/ario-mpd2.c:550 msgid "Impossible to connect to server. Check the connection options." msgstr "Impossible to connect to server. Check the connection options." #. ARIO_TAG_ALBUM #: ../src/servers/ario-server.c:47 msgid "Album Artist" msgstr "Album Artist" #. ARIO_TAG_DATE #: ../src/servers/ario-server.c:53 msgid "Composer" msgstr "Composer" #. ARIO_TAG_COMPOSER #: ../src/servers/ario-server.c:54 msgid "Performer" msgstr "Performer" #. ARIO_TAG_PERFORMER #. ARIO_TAG_COMMENT #. ARIO_TAG_DISC #: ../src/servers/ario-server.c:57 msgid "Filename" msgstr "Filename" #. ARIO_TAG_FILENAME #: ../src/servers/ario-server.c:58 msgid "Any" msgstr "Any" #. impossible time or broken locale settings #: ../src/servers/ario-server.h:27 #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1235 msgid "Unknown" msgstr "Unknown" #: ../src/sources/ario-browser.c:82 ../src/sources/ario-search.c:70 #: ../src/sources/ario-storedplaylists.c:88 #: ../src/sources/ario-storedplaylists.c:106 #: ../plugins/filesystem/ario-filesystem.c:94 #: ../plugins/filesystem/ario-filesystem.c:109 #: ../plugins/radios/ario-radio.c:116 msgid "_Add to playlist" msgstr "_Add to playlist" #: ../src/sources/ario-browser.c:85 ../src/sources/ario-search.c:73 #: ../src/sources/ario-storedplaylists.c:91 #: ../src/sources/ario-storedplaylists.c:109 #: ../plugins/filesystem/ario-filesystem.c:97 #: ../plugins/filesystem/ario-filesystem.c:112 #: ../plugins/radios/ario-radio.c:119 msgid "Add and _play" msgstr "Add and _play" #: ../src/sources/ario-browser.c:88 ../src/sources/ario-search.c:76 #: ../src/sources/ario-storedplaylists.c:94 #: ../src/sources/ario-storedplaylists.c:112 #: ../plugins/filesystem/ario-filesystem.c:100 #: ../plugins/filesystem/ario-filesystem.c:115 #: ../plugins/radios/ario-radio.c:122 msgid "_Replace in playlist" msgstr "_Replace in playlist" #: ../src/sources/ario-browser.c:91 msgid "Get the covers" msgstr "Get the covers" #: ../src/sources/ario-browser.c:94 msgid "_Delete the covers" msgstr "_Delete the covers" #: ../src/sources/ario-browser.c:97 ../src/sources/ario-browser.c:100 #: ../src/sources/ario-search.c:79 ../src/sources/ario-storedplaylists.c:115 #: ../src/widgets/ario-playlist.c:151 #: ../plugins/filesystem/ario-filesystem.c:118 #: ../plugins/radios/ario-radio.c:131 msgid "_Properties" msgstr "_Properties" #: ../src/sources/ario-browser.c:125 ../src/shell/ario-shell-preferences.c:118 msgid "Library" msgstr "Library" #: ../src/sources/ario-storedplaylists.c:97 msgid "_Delete" msgstr "_Delete" #: ../src/sources/ario-storedplaylists.c:151 msgid "Playlists" msgstr "Playlists" #: ../src/sources/ario-storedplaylists.c:592 msgid "Are you sure that you want to delete all the selected playlists?" msgstr "Are you sure that you want to delete all the selected playlists?" #: ../src/sources/ario-tree.c:856 msgid "Are you sure that you want to remove all the selected covers?" msgstr "Are you sure that you want to remove all the selected covers?" #. Translators - This "Cover" refers to an album cover art #: ../src/sources/ario-tree-albums.c:199 msgid "Cover" msgstr "Cover" #: ../src/shell/ario-shell.c:160 msgid "_File" msgstr "_File" #: ../src/shell/ario-shell.c:161 msgid "_Edit" msgstr "_Edit" #: ../src/shell/ario-shell.c:162 msgid "_View" msgstr "_View" #: ../src/shell/ario-shell.c:163 msgid "_Control" msgstr "_Control" #: ../src/shell/ario-shell.c:164 msgid "_Tool" msgstr "_Tool" #: ../src/shell/ario-shell.c:165 msgid "_Help" msgstr "_Help" #: ../src/shell/ario-shell.c:173 msgid "_Update database" msgstr "_Update database" #: ../src/shell/ario-shell.c:176 msgid "_Quit" msgstr "_Quit" #: ../src/shell/ario-shell.c:179 msgid "Plu_gins" msgstr "Plu_gins" #: ../src/shell/ario-shell.c:182 msgid "Prefere_nces" msgstr "Prefere_nces" #: ../src/shell/ario-shell.c:185 msgid "_Change current album cover" msgstr "_Change current album cover" #: ../src/shell/ario-shell.c:188 msgid "Download album _covers" msgstr "Download album _covers" #: ../src/shell/ario-shell.c:191 msgid "Find similar artists" msgstr "Find similar artists" #: ../src/shell/ario-shell.c:194 msgid "Add similar songs to playlist" msgstr "Add similar songs to playlist" #: ../src/shell/ario-shell.c:197 msgid "Go to _previous tab" msgstr "Go to _previous tab" #: ../src/shell/ario-shell.c:200 msgid "Go to _next tab" msgstr "Go to _next tab" #: ../src/shell/ario-shell.c:203 msgid "Show _lyrics" msgstr "Show _lyrics" #: ../src/shell/ario-shell.c:209 msgid "_Translate this application..." msgstr "_Translate this application..." #: ../src/shell/ario-shell.c:216 msgid "S_tatusbar" msgstr "S_tatusbar" #: ../src/shell/ario-shell.c:219 msgid "Upper part" msgstr "Upper part" #: ../src/shell/ario-shell.c:825 msgid "GTK client for MPD" msgstr "GTK client for MPD" #: ../src/shell/ario-shell.c:826 msgid "translator-credits" msgstr "" "Launchpad Contributions:\n" " Alex Procter https://launchpad.net/~alex-procter\n" " Andrew Barber https://launchpad.net/~andrew-alex-barber\n" " Christian Siegert https://launchpad.net/~christian-siegert\n" " Furkan KARA https://launchpad.net/~frkn\n" " Gabriel Ruiz https://launchpad.net/~anakron\n" " James Nealon https://launchpad.net/~kaobear\n" " Jesse Bye https://launchpad.net/~jesse-bye\n" " Ken Sharp https://launchpad.net/~kennybobs\n" " Marc Pavot https://launchpad.net/~marc-pavot\n" " Oliver Laub https://launchpad.net/~oliver-laub\n" " bastianneumann https://launchpad.net/~bastianneu\n" " bmuluu https://launchpad.net/~bmuluu" #. Create plugins configuration dialog window #: ../src/shell/ario-shell.c:1278 msgid "Configure Plugins" msgstr "Configure Plug-ins" #. Set window properties #: ../src/shell/ario-shell-coverdownloader.c:187 msgid "Music Player Cover Download" msgstr "Music Player Cover Download" #: ../src/shell/ario-shell-coverdownloader.c:332 msgid "Download Finished!" msgstr "Download Finished!" #. We show the numbers of covers found and not found #: ../src/shell/ario-shell-coverdownloader.c:335 #, c-format msgid "" "%i covers found\n" "%i covers not found\n" "%i covers already exist" msgstr "" "%i covers found\n" "%i covers not found\n" "%i covers already exist" #. Set window properties #: ../src/shell/ario-shell-coverselect.c:242 msgid "Cover Download" msgstr "Cover Download" #: ../src/shell/ario-shell-coverselect.c:559 msgid "Error reading file" msgstr "Error reading file" #: ../src/shell/ario-shell-coverselect.c:584 msgid "Error saving file" msgstr "Error saving file" #: ../src/shell/ario-shell-lyrics.c:43 #: ../src/shell/ario-shell-preferences.c:133 #: ../src/shell/ario-shell-songinfos.c:272 msgid "Lyrics" msgstr "Lyrics" #: ../src/shell/ario-shell-lyricsselect.c:152 msgid "Lyrics Download" msgstr "Lyrics Download" #: ../src/shell/ario-shell-preferences.c:81 msgid "Ario Preferences" msgstr "Ario Preferences" #: ../src/shell/ario-shell-preferences.c:113 msgid "Server" msgstr "Server" #: ../src/shell/ario-shell-preferences.c:143 msgid "Others" msgstr "Others" #: ../src/shell/ario-shell-similarartists.c:318 #, c-format msgid "%d songs" msgstr "%d songs" #. Set window properties #. Set window title #: ../src/shell/ario-shell-songinfos.c:249 #: ../src/shell/ario-shell-songinfos.c:266 #: ../src/shell/ario-shell-songinfos.c:544 msgid "Song Properties" msgstr "Song Properties" #: ../src/shell/ario-shell-songinfos.c:455 msgid "Error saving tags of file:" msgstr "Error saving tags of file:" #: ../src/widgets/ario-connection-widget.c:652 msgid "You must select a server." msgstr "You must select a server." #: ../src/widgets/ario-connection-widget.c:702 msgid "New Profile" msgstr "New Profile" #: ../src/widgets/ario-firstlaunch.c:82 msgid "The following configuration will be used:" msgstr "The following configuration will be used:" #: ../src/widgets/ario-firstlaunch.c:106 msgid "" "It is the first time you launch Ario.\n" "This assistant will help you to configure it." msgstr "" "It is the first time you launch Ario.\n" "This assistant will help you to configure it." #: ../src/widgets/ario-firstlaunch.c:111 msgid "Welcome to Ario" msgstr "Welcome to Ario" #: ../src/widgets/ario-firstlaunch.c:129 msgid "Configuration" msgstr "Configuration" #: ../src/widgets/ario-firstlaunch.c:141 msgid "Confirmation" msgstr "Confirmation" #: ../src/widgets/ario-header.c:66 ../src/widgets/ario-tray-icon.h:42 #, c-format msgid "from %s by %s" msgstr "from %s by %s" #: ../src/widgets/ario-header.c:199 msgid "Play previous song" msgstr "Play previous song" #: ../src/widgets/ario-header.c:217 msgid "Play/Pause the music" msgstr "Play/Pause the music" #: ../src/widgets/ario-header.c:229 msgid "Stop the music" msgstr "Stop the music" #. Translators - This " of " is used to count the elapsed time #. of a song like in "00:59 of 03:24" #: ../src/widgets/ario-header.c:310 ../src/widgets/ario-tooltip.c:321 msgid " of " msgstr " of " #: ../src/widgets/ario-header.c:323 msgid "Toggle random on/off" msgstr "Toggle random on/off" #: ../src/widgets/ario-header.c:335 msgid "Toggle repeat on/off" msgstr "Toggle repeat on/off" #: ../src/widgets/ario-header.c:340 msgid "Change the music volume" msgstr "Change the music volume" #: ../src/widgets/ario-lyrics-editor.c:323 msgid "Downloading lyrics..." msgstr "Downloading lyrics..." #: ../src/widgets/ario-lyrics-editor.c:351 msgid "Lyrics not found" msgstr "Lyrics not found" #: ../src/widgets/ario-playlist.c:133 msgid "_Clear" msgstr "_Clear" #: ../src/widgets/ario-playlist.c:136 msgid "_Shuffle" msgstr "_Shuffle" #: ../src/widgets/ario-playlist.c:139 msgid "Cr_op" msgstr "Cr_op" #: ../src/widgets/ario-playlist.c:142 msgid "_Search in playlist" msgstr "_Search in playlist" #: ../src/widgets/ario-playlist.c:145 msgid "_Remove" msgstr "_Remove" #: ../src/widgets/ario-playlist.c:148 msgid "_Save" msgstr "_Save" #: ../src/widgets/ario-playlist.c:154 msgid "_Go to playing song" msgstr "_Go to playing song" #: ../src/widgets/ario-playlist.c:667 msgid "Filter:" msgstr "Filter:" #. Create the widgets #: ../src/widgets/ario-playlist.c:1700 msgid "Save playlist" msgstr "Save playlist" #: ../src/widgets/ario-playlist.c:1710 msgid "Playlist name :" msgstr "Playlist name :" #: ../src/widgets/ario-playlist.c:1746 msgid "Playlist already exists. Do you want to overwrite it?" msgstr "Playlist already exists. Do you want to overwrite it?" #. Format status bar message #: ../src/widgets/ario-status-bar.c:96 msgid "Songs" msgstr "Songs" #: ../src/widgets/ario-tray-icon.c:102 msgid "_Play" msgstr "_Play" #: ../src/widgets/ario-tray-icon.c:105 msgid "_Pause" msgstr "_Pause" #: ../src/widgets/ario-tray-icon.c:108 msgid "_Stop" msgstr "_Stop" #: ../src/widgets/ario-tray-icon.c:111 msgid "_Next" msgstr "_Next" #: ../src/widgets/ario-tray-icon.c:114 msgid "P_revious" msgstr "P_revious" #: ../src/widgets/ario-tray-icon.h:41 msgid "Not playing" msgstr "Not playing" #. Translators: "friendly time" string for the current day, strftime format. like "Today 12:34 am" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1179 msgid "Today %I:%M %p" msgstr "Today %I:%M %p" #. Translators: "friendly time" string for the previous day, #. * strftime format. e.g. "Yesterday 12:34 am" #. #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1192 msgid "Yesterday %I:%M %p" msgstr "Yesterday %I:%M %p" #. Translators: "friendly time" string for a day in the current week, #. * strftime format. e.g. "Wed 12:34 am" #. #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1208 msgid "%a %I:%M %p" msgstr "%a %I:%M %p" #. Translators: "friendly time" string for a day in the current year, #. * strftime format. e.g. "Feb 12 12:34 am" #. #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1220 msgid "%b %d %I:%M %p" msgstr "%b %d %I:%M %p" #. Translators: "friendly time" string for a day in a different year, #. * strftime format. e.g. "Feb 12 1997" #. #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1225 msgid "%b %d %Y" msgstr "%b %d %Y" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1311 #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:4 msgid "Never" msgstr "Never" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1335 msgid "OK" msgstr "OK" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1338 msgid "Logging in" msgstr "Logging in" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1341 msgid "Request failed" msgstr "Request failed" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1344 msgid "Incorrect username" msgstr "Incorrect username" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1347 msgid "Incorrect password" msgstr "Incorrect password" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1350 msgid "Handshake failed" msgstr "Handshake failed" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1353 msgid "Client update required" msgstr "Client update required" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1356 msgid "Track submission failed" msgstr "Track submission failed" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1359 msgid "Queue is too long" msgstr "Queue is too long" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1362 msgid "Track submission failed too many times" msgstr "Track submission failed too many times" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1417 msgid "Audioscrobbler preferences" msgstr "Audioscrobbler preferences" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:1 msgid "Disabled" msgstr "Disabled" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:2 msgid "Last submission time:" msgstr "Last submission time:" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:3 msgid "Last.fm Profile" msgstr "Last.fm Profile" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:6 msgid "Queued tracks:" msgstr "Queued tracks:" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:7 msgid "Status:" msgstr "Status:" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:8 msgid "Tracks submitted:" msgstr "Tracks submitted:" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:9 #: ../plugins/radios/ario-radio.c:168 msgid "Username :" msgstr "Username :" #: ../plugins/audioscrobbler/audioscrobbler.ario-plugin.desktop.in.h:1 msgid "Last.fm" msgstr "Last.fm" #: ../plugins/audioscrobbler/audioscrobbler.ario-plugin.desktop.in.h:2 msgid "Submits song information to last.fm" msgstr "Submits song information to last.fm" #: ../plugins/filesystem/ario-filesystem.c:158 msgid "File System" msgstr "File System" #: ../plugins/filesystem/ario-filesystem.c:422 msgid "Music" msgstr "Music" #: ../plugins/filesystem/filesystem.ario-plugin.desktop.in.h:1 msgid "A File System Browser" msgstr "A File System Browser" #: ../plugins/filesystem/filesystem.ario-plugin.desktop.in.h:2 msgid "File System Browser" msgstr "File System Browser" #: ../plugins/information/ario-information.c:114 msgid "Information" msgstr "Information" #: ../plugins/information/information.ario-plugin.desktop.in.h:1 msgid "Display various information about the playing song" msgstr "Display various information about the playing song" #: ../plugins/information/information.ario-plugin.desktop.in.h:2 msgid "Song Information" msgstr "Song Information" #: ../plugins/information/information.ui.h:2 msgid "Albums from this artist:" msgstr "Albums from this artist:" #: ../plugins/information/information.ui.h:5 msgid "Lyrics:" msgstr "Lyrics:" #: ../plugins/libnotify/libnotify.ario-plugin.desktop.in.h:1 msgid "Add libnotify support" msgstr "Add libnotify support" #: ../plugins/libnotify/libnotify.ario-plugin.desktop.in.h:2 msgid "Libnotify" msgstr "Libnotify" #: ../plugins/mmkeys/mmkeys.ario-plugin.desktop.in.h:1 msgid "Add multimedia keys support" msgstr "Add multimedia keys support" #: ../plugins/mmkeys/mmkeys.ario-plugin.desktop.in.h:2 msgid "Multimedia Keys" msgstr "Multimedia Keys" #: ../plugins/radios/ario-radio.c:125 msgid "Add a _new radio" msgstr "Add a _new radio" #: ../plugins/radios/ario-radio.c:128 msgid "_Delete this radios" msgstr "_Delete this radios" #: ../plugins/radios/ario-radio.c:166 msgid "Last.fm: Radio of similar artists" msgstr "Last.fm: Radio of similar artists" #: ../plugins/radios/ario-radio.c:167 msgid "Last.fm: Radio of group" msgstr "Last.fm: Radio of group" #: ../plugins/radios/ario-radio.c:167 msgid "Group :" msgstr "Group :" #: ../plugins/radios/ario-radio.c:168 msgid "Last.fm: Personal radio" msgstr "Last.fm: Personal radio" #: ../plugins/radios/ario-radio.c:169 msgid "Last.fm: Radio of genre" msgstr "Last.fm: Radio of genre" #: ../plugins/radios/ario-radio.c:184 #: ../plugins/radios/radios.ario-plugin.desktop.in.h:2 msgid "Web Radios" msgstr "Web Radios" #: ../plugins/radios/ario-radio.c:246 msgid "Internet Radios" msgstr "Internet Radios" #. Create dialog window #: ../plugins/radios/ario-radio.c:774 msgid "Edit a WebRadio" msgstr "Edit a WebRadio" #: ../plugins/radios/ario-radio.c:787 ../plugins/radios/ario-radio.c:923 msgid "URL :" msgstr "URL :" #: ../plugins/radios/ario-radio.c:853 ../plugins/radios/ario-radio.c:997 msgid "Bad parameters. You must specify a name and a URL for the radio." msgstr "Bad parameters. You must specify a name and a URL for the radio." #. Create dialog window #: ../plugins/radios/ario-radio.c:883 msgid "Add a WebRadio" msgstr "Add a WebRadio" #: ../plugins/radios/ario-radio.c:1083 msgid "Are you sure you want to delete all the selected radios?" msgstr "Are you sure you want to delete all the selected radios?" #: ../plugins/radios/radios.ario-plugin.desktop.in.h:1 msgid "Listen to webradios" msgstr "Listen to webradios" #: ../plugins/wikipedia/ario-wikipedia-plugin.c:49 #: ../plugins/wikipedia/ario-wikipedia-plugin.c:50 msgid "Find artist on Wikipedia" msgstr "Find artist on Wikipedia" #: ../plugins/wikipedia/ario-wikipedia-plugin.c:172 msgid "Wikipedia Plugin - Configuration" msgstr "Wikipedia Plug-in - Configuration" #: ../plugins/wikipedia/ario-wikipedia-plugin.c:181 msgid "Wikipedia language :" msgstr "Wikipedia language :" #: ../plugins/wikipedia/wikipedia.ario-plugin.desktop.in.h:1 msgid "A plugin to search current artist on wikipedia" msgstr "A plug-in to search current artist on Wikipedia" #: ../plugins/wikipedia/wikipedia.ario-plugin.desktop.in.h:2 msgid "Wikipedia" msgstr "Wikipedia" #~ msgid "Add a search criteria" #~ msgstr "Add a search criteria" #~ msgid "Remove a search criteria" #~ msgstr "Remove a search criteria" #~ msgid "Search songs in the library" #~ msgstr "Search songs in the library" ario-1.6/po/hr.po0000644000175000017500000010213313226723442010627 00000000000000# Croatian translation for ario # Copyright (c) 2008 Rosetta Contributors and Canonical Ltd 2008 # This file is distributed under the same license as the ario package. # FIRST AUTHOR , 2008. # msgid "" msgstr "" "Project-Id-Version: ario\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2011-06-13 18:15+0200\n" "PO-Revision-Date: 2010-07-25 04:04+0000\n" "Last-Translator: Miro Glavić \n" "Language-Team: Croatian \n" "Language: hr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2011-06-13 16:32+0000\n" "X-Generator: Launchpad (build 13175)\n" #: ../data/ario.desktop.in.in.h:1 msgid "Ario music player" msgstr "Ario glazbeni svirač" #: ../data/ario.desktop.in.in.h:2 msgid "Client application to mpd" msgstr "Klijent za mpd" #: ../data/ui/browser-prefs.ui.h:1 msgid "Alphabetically" msgstr "Abecedni" #: ../data/ui/browser-prefs.ui.h:2 msgid "By year" msgstr "Godišnje" #: ../data/ui/browser-prefs.ui.h:3 msgid "Library Options" msgstr "Knjižnične Opcije" #: ../data/ui/browser-prefs.ui.h:4 msgid "Library Organisation" msgstr "Organizacija Knjižnice" #: ../data/ui/browser-prefs.ui.h:5 msgid "Sort albums: " msgstr "Sortiraj albume: " #: ../data/ui/connection-autodetect.ui.h:1 msgid "" "If you don't see your MPD server thanks to the automatic detection, you " "should check that zeroconf is activated in your MPD configuration or use the " "manual configuration." msgstr "" "Ako ne vidite svoj MPD server zahvaljujući autodetekciji, trebate provjeriti " "da je zeroconf aktiviran u vašoj MPD konfiguraciji ili upotrijebite ručnu " "konfiguraciju." #: ../data/ui/connection-autodetect.ui.h:2 msgid "Server autodetection" msgstr "Autodetekcija servera" #: ../data/ui/connection-widget.ui.h:1 msgid "Auto detect" msgstr "Automatska detekcija" #: ../data/ui/connection-widget.ui.h:2 msgid "Default" msgstr "Uobičajeno" #: ../data/ui/connection-widget.ui.h:3 ../src/widgets/ario-firstlaunch.c:83 msgid "Host :" msgstr "Domaćin :" #: ../data/ui/connection-widget.ui.h:4 msgid "Music directory :" msgstr "Direktoriji s glazbom :" #: ../data/ui/connection-widget.ui.h:5 msgid "Music server is on the same computer as Ario" msgstr "Glazbeni server je na istom računalu kao i Ario" #. Create the widgets #: ../data/ui/connection-widget.ui.h:6 ../plugins/radios/ario-radio.c:786 #: ../plugins/radios/ario-radio.c:922 msgid "Name :" msgstr "Naziv :" #: ../data/ui/connection-widget.ui.h:7 #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:5 msgid "Password :" msgstr "Lozinka :" #: ../data/ui/connection-widget.ui.h:8 ../src/widgets/ario-firstlaunch.c:85 msgid "Port :" msgstr "Port :" #: ../data/ui/connection-widget.ui.h:9 msgid "Server type :" msgstr "Tip servera :" #: ../data/ui/connection-widget.ui.h:10 msgid "Timeout :" msgstr "" #: ../data/ui/connection-widget.ui.h:11 msgid "XMMS 2 (Experimental)" msgstr "XMMS 2 (Eksperimantalno)" #: ../data/ui/cover-prefs.ui.h:1 msgid "Automatically download the album cover of the playing song" msgstr "Automatski skini naslovnicu albuma pjesme koja svira" #: ../data/ui/cover-prefs.ui.h:2 ../src/shell/ario-shell-preferences.c:128 msgid "Covers" msgstr "Omoti" #: ../data/ui/cover-prefs.ui.h:3 msgid "Covers Sources" msgstr "Izvor omota" #: ../data/ui/cover-prefs.ui.h:4 msgid "Show the covers in the albums list" msgstr "Prikaži omote na listi albuma" #: ../data/ui/cover-prefs.ui.h:5 msgid "Use Amazon." msgstr "Koristi Amazon" #: ../data/ui/connection-prefs.ui.h:1 #: ../src/shell/ario-shell-preferences.c:108 msgid "Connection" msgstr "Veza" #: ../data/ui/connection-prefs.ui.h:2 msgid "_Autoconnect on startup" msgstr "_Uspostavi vezu na početku" #: ../data/ui/connection-prefs.ui.h:3 ../src/shell/ario-shell.c:167 msgid "_Connect" msgstr "_Spoji se" #: ../data/ui/connection-prefs.ui.h:4 ../src/shell/ario-shell.c:170 msgid "_Disconnect" msgstr "_Prekini vezu" #: ../data/ui/connection-assistant.ui.h:1 msgid "" "You need to specify a server to connect to. If you don't see your server " "thanks to the autodetection, you should check that zeroconf/avahi is " "activated in your server or use the manual configuration." msgstr "" "Morate specificirati sa kojim serverom da se uspostavi veza. Ukoliko ne " "vidite server zahvaljujući automatskoj detekciji, trebate provjeriti da je " "zeroconf/avahi aktivan u vašem serveru ili upotrijebite ručnu konfiguraciju." #: ../data/ui/cover-progress.ui.h:1 ../data/ui/cover-select.ui.h:1 #: ../data/ui/song-infos.ui.h:1 ../plugins/information/information.ui.h:1 msgid "Album :" msgstr "Album :" #: ../data/ui/cover-progress.ui.h:2 ../data/ui/cover-select.ui.h:2 #: ../data/ui/lyrics-select.ui.h:1 ../data/ui/song-infos.ui.h:3 #: ../plugins/information/information.ui.h:3 #: ../plugins/radios/ario-radio.c:166 msgid "Artist :" msgstr "Izvodjač :" #: ../data/ui/cover-progress.ui.h:3 msgid "Downloading cover" msgstr "Skidanje naslovnice" #: ../data/ui/cover-select.ui.h:3 msgid "Local search" msgstr "Lokalna pretraga" #: ../data/ui/cover-select.ui.h:4 ../src/sources/ario-search.c:108 msgid "Search" msgstr "Pretraga" #: ../data/ui/others-prefs.ui.h:1 msgid "Allow only one instance of Ario" msgstr "Dozvoli samo jednu instancu Ario" #: ../data/ui/others-prefs.ui.h:2 msgid "Hide window when close button is pressed" msgstr "Zakloni prozor kad je pritisnuto zatvori dugme" #: ../data/ui/others-prefs.ui.h:3 msgid "Interface" msgstr "Sučelje" #: ../data/ui/others-prefs.ui.h:4 msgid "Playlist at the right of tabs" msgstr "" #: ../data/ui/others-prefs.ui.h:5 msgid "Playlist below tabs" msgstr "" #: ../data/ui/others-prefs.ui.h:6 msgid "Playlist within tabs" msgstr "" #: ../data/ui/others-prefs.ui.h:7 msgid "Proxy" msgstr "Proksi" #: ../data/ui/others-prefs.ui.h:8 msgid "Proxy Address :" msgstr "Adresa Proksija :" #: ../data/ui/others-prefs.ui.h:9 msgid "Proxy Port :" msgstr "Ulaz Proksija :" #: ../data/ui/others-prefs.ui.h:10 msgid "Show tabs" msgstr "Prikaži tabulatore" #: ../data/ui/others-prefs.ui.h:11 msgid "Use a proxy" msgstr "Koristi proksi" #: ../data/ui/lyrics-prefs.ui.h:1 msgid "Lyrics Sources" msgstr "Izvori Teksta" #: ../data/ui/lyrics-select.ui.h:2 ../data/ui/song-infos.ui.h:13 #: ../plugins/information/information.ui.h:6 msgid "Title :" msgstr "Naslov :" #: ../data/ui/playlist-prefs.ui.h:1 msgid "Add after playing song" msgstr "" #: ../data/ui/playlist-prefs.ui.h:2 msgid "Add and play" msgstr "" #: ../data/ui/playlist-prefs.ui.h:3 ../data/ui/similar-artists.ui.h:2 msgid "Add to playlist" msgstr "Dodaj na popis pjesama" #. ARIO_TAG_ARTIST #: ../data/ui/playlist-prefs.ui.h:4 ../src/servers/ario-server.c:46 #: ../src/sources/ario-tree-albums.c:213 ../src/widgets/ario-playlist.c:541 #: ../src/widgets/ario-songlist.c:228 ../src/widgets/ario-tray-icon.c:565 msgid "Album" msgstr "Album" #: ../data/ui/playlist-prefs.ui.h:5 ../src/servers/ario-server.c:45 #: ../src/widgets/ario-playlist.c:541 ../src/widgets/ario-songlist.c:213 #: ../src/widgets/ario-tray-icon.c:563 msgid "Artist" msgstr "Izvodjač" #. ARIO_TAG_GENRE #: ../data/ui/playlist-prefs.ui.h:6 ../src/servers/ario-server.c:52 #: ../src/widgets/ario-playlist.c:541 msgid "Date" msgstr "Datum" #: ../data/ui/playlist-prefs.ui.h:7 ../src/widgets/ario-playlist.c:541 msgid "Disc" msgstr "Disk" #: ../data/ui/playlist-prefs.ui.h:8 msgid "Double click" msgstr "Dvostruki klik" #: ../data/ui/playlist-prefs.ui.h:9 ../src/widgets/ario-playlist.c:541 msgid "Duration" msgstr "Trajanje" #: ../data/ui/playlist-prefs.ui.h:10 ../src/widgets/ario-playlist.c:541 msgid "File" msgstr "Datoteka" #. ARIO_TAG_TRACK #. ARIO_TAG_NAME #: ../data/ui/playlist-prefs.ui.h:11 ../src/servers/ario-server.c:51 #: ../src/widgets/ario-playlist.c:541 msgid "Genre" msgstr "Vrsta" #: ../data/ui/playlist-prefs.ui.h:12 msgid "Go to current song when a new song is played" msgstr "Nova pjesma treba da bude trenutna pjesma" #: ../data/ui/playlist-prefs.ui.h:13 msgid "Mode" msgstr "Mod" #: ../data/ui/playlist-prefs.ui.h:14 msgid "On double click:" msgstr "" #: ../data/ui/playlist-prefs.ui.h:15 ../src/sources/ario-storedplaylists.c:229 #: ../src/shell/ario-shell.c:222 ../src/shell/ario-shell-preferences.c:123 #: ../src/widgets/ario-playlist.c:272 msgid "Playlist" msgstr "Popis pjesama" #: ../data/ui/playlist-prefs.ui.h:16 msgid "Playlist mode:" msgstr "Mod Liste Igranja:" #: ../data/ui/playlist-prefs.ui.h:17 msgid "Replace in playlist" msgstr "" #: ../data/ui/playlist-prefs.ui.h:18 msgid "Show rows:" msgstr "Prikaži redove:" #. ARIO_TAG_ALBUM_ARTIST #: ../data/ui/playlist-prefs.ui.h:19 ../src/servers/ario-server.c:48 #: ../src/sources/ario-tree-songs.c:145 ../src/widgets/ario-playlist.c:541 #: ../src/widgets/ario-songlist.c:198 ../src/widgets/ario-tray-icon.c:567 msgid "Title" msgstr "Naslov" #. ARIO_TAG_TITLE #: ../data/ui/playlist-prefs.ui.h:20 ../src/servers/ario-server.c:49 #: ../src/sources/ario-tree-songs.c:138 ../src/widgets/ario-playlist.c:541 msgid "Track" msgstr "Pjesma" #: ../data/ui/server-prefs.ui.h:1 msgid "Audio outputs" msgstr "Zvučni izlazi" #: ../data/ui/server-prefs.ui.h:2 msgid "Crossfade" msgstr "Utišavanje" #: ../data/ui/server-prefs.ui.h:3 msgid "Database" msgstr "Baza podataka" #: ../data/ui/server-prefs.ui.h:4 msgid "Last updated:" msgstr "Zadnji put ažurirano:" #: ../data/ui/server-prefs.ui.h:5 msgid "Stop music on exit" msgstr "Zaustavi glazbu na izlazu" #: ../data/ui/server-prefs.ui.h:6 msgid "Update on startup" msgstr "Ažuriraj na početku" #: ../data/ui/server-prefs.ui.h:7 msgid "_Update" msgstr "_Ažuriraj" #: ../data/ui/server-prefs.ui.h:8 msgid "enable crossfade" msgstr "dozvoli utišavanje" #: ../data/ui/server-prefs.ui.h:9 msgid "fade time (s):" msgstr "trajanje utišavanja (s):" #: ../data/ui/server-prefs.ui.h:10 ../src/ario-util.c:50 ../src/ario-util.c:71 #: ../src/ario-util.c:93 ../plugins/information/information.ui.h:7 #, c-format msgid "n/a" msgstr "nema" #: ../data/ui/similar-artists.ui.h:1 msgid "Add all to playlist" msgstr "Dodaj sve na popis pjesama" #: ../data/ui/similar-artists.ui.h:3 msgid "Find on Last.fm" msgstr "Pronađi na Last.fm" #: ../data/ui/stats-prefs.ui.h:1 msgid "Database play time :" msgstr "Vrijeme sviranja datoteke :" #: ../data/ui/stats-prefs.ui.h:2 msgid "Number of albums :" msgstr "Broj albuma :" #: ../data/ui/stats-prefs.ui.h:3 msgid "Number of artists :" msgstr "Broj izvođača :" #: ../data/ui/stats-prefs.ui.h:4 msgid "Number of songs :" msgstr "Broj pjesama :" #: ../data/ui/stats-prefs.ui.h:5 msgid "Play time :" msgstr "Vrijeme igranja :" #: ../data/ui/stats-prefs.ui.h:6 ../src/shell/ario-shell-preferences.c:148 msgid "Statistics" msgstr "Statistike" #: ../data/ui/stats-prefs.ui.h:7 msgid "Uptime :" msgstr "Radno vrijeme" #: ../data/ui/song-infos.ui.h:2 msgid "Album Artist :" msgstr "Umjetnik Albuma:" #: ../data/ui/song-infos.ui.h:4 msgid "Comment :" msgstr "Prijedlozi :" #: ../data/ui/song-infos.ui.h:5 msgid "Composer :" msgstr "Skladatelj :" #: ../data/ui/song-infos.ui.h:6 msgid "Date :" msgstr "Datum :" #: ../data/ui/song-infos.ui.h:7 msgid "Disc :" msgstr "Disk :" #: ../data/ui/song-infos.ui.h:8 msgid "Filename :" msgstr "Naziv datoteke :" #: ../data/ui/song-infos.ui.h:9 ../plugins/radios/ario-radio.c:169 msgid "Genre :" msgstr "Vrsta :" #: ../data/ui/song-infos.ui.h:10 ../plugins/information/information.ui.h:4 msgid "Length :" msgstr "Duljina :" #: ../data/ui/song-infos.ui.h:11 msgid "Performer :" msgstr "Izvođač :" #: ../data/ui/song-infos.ui.h:12 msgid "Song" msgstr "Skladba" #: ../data/ui/song-infos.ui.h:14 msgid "Track :" msgstr "Pjesma :" #: ../data/ui/trayicon-prefs.ui.h:1 msgid "Do nothing" msgstr "Ne diraj" #: ../data/ui/trayicon-prefs.ui.h:2 msgid "Mute" msgstr "Bezvučan" #: ../data/ui/trayicon-prefs.ui.h:3 ../src/shell/ario-shell-preferences.c:138 msgid "Notification" msgstr "Obavijest" #: ../data/ui/trayicon-prefs.ui.h:4 msgid "Notification on song change" msgstr "Obavijest o promjeni skladbe" #: ../data/ui/trayicon-prefs.ui.h:5 msgid "Notification time: " msgstr "Vrijeme obavijesti: " #: ../data/ui/trayicon-prefs.ui.h:6 msgid "On middle button click on tray icon :" msgstr "Na srednjem dugmetu klikni simbol poslužavnika :" #: ../data/ui/trayicon-prefs.ui.h:7 ../src/widgets/ario-header.c:241 msgid "Play next song" msgstr "Sviraj slijedeću pjesmu" #: ../data/ui/trayicon-prefs.ui.h:8 msgid "Play/Pause" msgstr "Sviraj/Pauziraj" #: ../data/ui/trayicon-prefs.ui.h:9 msgid "Tray icon" msgstr "Simbol poslužavnika" #: ../src/ario-main.c:67 msgid "Start minimized window" msgstr "Pokreni umanjeni prozor" #: ../src/ario-main.c:68 msgid "Start with specific profile" msgstr "" #. Format result string #: ../src/ario-util.c:110 msgid "seconds" msgstr "sekunde" #: ../src/ario-util.c:112 msgid "minutes" msgstr "minute" #: ../src/ario-util.c:118 msgid "hours" msgstr "sati" #: ../src/ario-util.c:124 msgid "days" msgstr "dani" #: ../src/covers/ario-cover.c:149 msgid "The cover already exists. Do you want to replace it?" msgstr "Naslovnica već postoji. Hoćete li je zamijeniti?" #: ../src/covers/ario-cover-local.c:48 msgid "Music Directory" msgstr "Glazbeni Direktorij" #: ../src/playlist/ario-playlist-dynamic.c:49 msgid "songs of same artist" msgstr "Pjesme istog umjetnika" #: ../src/playlist/ario-playlist-dynamic.c:50 msgid "songs of same album" msgstr "Pjesme sa istog albuma" #: ../src/playlist/ario-playlist-dynamic.c:51 msgid "songs of similar artists" msgstr "Pjesme sličnih umjetnika" #: ../src/playlist/ario-playlist-dynamic.c:52 msgid "albums of same artists" msgstr "Albumi istih umjetnika" #: ../src/playlist/ario-playlist-dynamic.c:53 msgid "albums of similar artists" msgstr "Albumi sličnih umjetnika" #: ../src/playlist/ario-playlist-dynamic.c:69 msgid "Dynamic Playlist" msgstr "Dinamična Lista Igranja" #: ../src/playlist/ario-playlist-queue.c:49 msgid "Queue Mode" msgstr "Mod Čekanja" #: ../src/playlist/ario-playlist-normal.c:47 msgid "Normal" msgstr "Normalno" #: ../src/plugins/ario-plugin-manager.c:45 msgid "Plugin" msgstr "Priključak" #: ../src/plugins/ario-plugin-manager.c:46 msgid "Enabled" msgstr "Omogućeno" #: ../src/plugins/ario-plugin-manager.c:480 ../src/shell/ario-shell.c:206 msgid "_About" msgstr "_O" #: ../src/plugins/ario-plugin-manager.c:488 msgid "C_onfigure" msgstr "P_odesi" #: ../src/plugins/ario-plugin-manager.c:497 msgid "A_ctivate" msgstr "A_ktiviraj" #: ../src/plugins/ario-plugin-manager.c:508 msgid "Ac_tivate All" msgstr "Ak_tiviraj Sve" #: ../src/plugins/ario-plugin-manager.c:513 msgid "_Deactivate All" msgstr "_Deaktiviraj Sve" #: ../src/plugins/ario-plugin-manager.c:722 msgid "Active plugins" msgstr "Aktivni priključci" #: ../src/preferences/ario-server-preferences.c:182 #: ../src/preferences/ario-stats-preferences.c:151 #: ../src/preferences/ario-stats-preferences.c:152 #: ../src/preferences/ario-stats-preferences.c:153 #: ../src/preferences/ario-stats-preferences.c:154 #: ../src/preferences/ario-stats-preferences.c:155 #: ../src/preferences/ario-stats-preferences.c:156 msgid "Not connected" msgstr "Nije povezan" #: ../src/preferences/ario-server-preferences.c:187 #: ../src/preferences/ario-server-preferences.c:278 #: ../src/widgets/ario-status-bar.c:100 msgid "Updating..." msgstr "Ažuriranje" #: ../src/servers/ario-mpd.c:410 ../src/servers/ario-mpd2.c:522 msgid "Connecting to server..." msgstr "Priključivanje na server" #: ../src/servers/ario-mpd.c:438 ../src/servers/ario-mpd2.c:550 msgid "Impossible to connect to server. Check the connection options." msgstr "Nemoguće se priključiti na server. Provjerite alternative povezivanja." #. ARIO_TAG_ALBUM #: ../src/servers/ario-server.c:47 msgid "Album Artist" msgstr "Umjetnik Albuma" #. ARIO_TAG_DATE #: ../src/servers/ario-server.c:53 msgid "Composer" msgstr "Skladatelj" #. ARIO_TAG_COMPOSER #: ../src/servers/ario-server.c:54 msgid "Performer" msgstr "Izvođač" #. ARIO_TAG_PERFORMER #. ARIO_TAG_COMMENT #. ARIO_TAG_DISC #: ../src/servers/ario-server.c:57 msgid "Filename" msgstr "Naziv datoteke" #. ARIO_TAG_FILENAME #: ../src/servers/ario-server.c:58 msgid "Any" msgstr "Bilo koji" #. impossible time or broken locale settings #: ../src/servers/ario-server.h:27 #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1235 msgid "Unknown" msgstr "Nepoznat" #: ../src/sources/ario-browser.c:82 ../src/sources/ario-search.c:70 #: ../src/sources/ario-storedplaylists.c:88 #: ../src/sources/ario-storedplaylists.c:106 #: ../plugins/filesystem/ario-filesystem.c:94 #: ../plugins/filesystem/ario-filesystem.c:109 #: ../plugins/radios/ario-radio.c:116 msgid "_Add to playlist" msgstr "_Dodaj na popis pjesama" #: ../src/sources/ario-browser.c:85 ../src/sources/ario-search.c:73 #: ../src/sources/ario-storedplaylists.c:91 #: ../src/sources/ario-storedplaylists.c:109 #: ../plugins/filesystem/ario-filesystem.c:97 #: ../plugins/filesystem/ario-filesystem.c:112 #: ../plugins/radios/ario-radio.c:119 msgid "Add and _play" msgstr "Dodaj i _sviraj" #: ../src/sources/ario-browser.c:88 ../src/sources/ario-search.c:76 #: ../src/sources/ario-storedplaylists.c:94 #: ../src/sources/ario-storedplaylists.c:112 #: ../plugins/filesystem/ario-filesystem.c:100 #: ../plugins/filesystem/ario-filesystem.c:115 #: ../plugins/radios/ario-radio.c:122 msgid "_Replace in playlist" msgstr "_Zamijeni u popisu pjesama" #: ../src/sources/ario-browser.c:91 msgid "Get the covers" msgstr "Uzmi naslovnice" #: ../src/sources/ario-browser.c:94 msgid "_Delete the covers" msgstr "_Izbriši naslovnice" #: ../src/sources/ario-browser.c:97 ../src/sources/ario-browser.c:100 #: ../src/sources/ario-search.c:79 ../src/sources/ario-storedplaylists.c:115 #: ../src/widgets/ario-playlist.c:151 #: ../plugins/filesystem/ario-filesystem.c:118 #: ../plugins/radios/ario-radio.c:131 msgid "_Properties" msgstr "_Svojstva" #: ../src/sources/ario-browser.c:125 ../src/shell/ario-shell-preferences.c:118 msgid "Library" msgstr "Biblioteka" #: ../src/sources/ario-storedplaylists.c:97 msgid "_Delete" msgstr "_Obriši" #: ../src/sources/ario-storedplaylists.c:151 msgid "Playlists" msgstr "Popisi pjesama" #: ../src/sources/ario-storedplaylists.c:592 msgid "Are you sure that you want to delete all the selected playlists?" msgstr "Jeste li sigurni da zelite obrisati sve odabrane popise pjesama?" #: ../src/sources/ario-tree.c:856 msgid "Are you sure that you want to remove all the selected covers?" msgstr "Jeste li sigurni da želite ukloniti sve odabrane naslovnice?" #. Translators - This "Cover" refers to an album cover art #: ../src/sources/ario-tree-albums.c:199 msgid "Cover" msgstr "Naslovnica" #: ../src/shell/ario-shell.c:160 msgid "_File" msgstr "Datoteka" #: ../src/shell/ario-shell.c:161 msgid "_Edit" msgstr "_Uredi" #: ../src/shell/ario-shell.c:162 msgid "_View" msgstr "_Pogled" #: ../src/shell/ario-shell.c:163 msgid "_Control" msgstr "" #: ../src/shell/ario-shell.c:164 msgid "_Tool" msgstr "_Alat" #: ../src/shell/ario-shell.c:165 msgid "_Help" msgstr "_Pomoć" #: ../src/shell/ario-shell.c:173 msgid "_Update database" msgstr "_Obnovi bazu podataka" #: ../src/shell/ario-shell.c:176 msgid "_Quit" msgstr "_Odustani" #: ../src/shell/ario-shell.c:179 msgid "Plu_gins" msgstr "Pri_ključci" #: ../src/shell/ario-shell.c:182 msgid "Prefere_nces" msgstr "Posta_vke" #: ../src/shell/ario-shell.c:185 msgid "_Change current album cover" msgstr "_Promijeni naslovnicu trenutnog albuma" #: ../src/shell/ario-shell.c:188 msgid "Download album _covers" msgstr "Skini naslovnice_albuma" #: ../src/shell/ario-shell.c:191 msgid "Find similar artists" msgstr "Pronađi slične umjetnike" #: ../src/shell/ario-shell.c:194 msgid "Add similar songs to playlist" msgstr "Dodaj slične pjesme na popis pjesama" #: ../src/shell/ario-shell.c:197 msgid "Go to _previous tab" msgstr "" #: ../src/shell/ario-shell.c:200 msgid "Go to _next tab" msgstr "" #: ../src/shell/ario-shell.c:203 msgid "Show _lyrics" msgstr "Prikaži _tekst" #: ../src/shell/ario-shell.c:209 msgid "_Translate this application..." msgstr "_Prevedi ovu aplikaciju..." #: ../src/shell/ario-shell.c:216 msgid "S_tatusbar" msgstr "S_tatusna traka" #: ../src/shell/ario-shell.c:219 msgid "Upper part" msgstr "Gornji dio" #: ../src/shell/ario-shell.c:825 msgid "GTK client for MPD" msgstr "GTK klijent za MPD" #: ../src/shell/ario-shell.c:826 msgid "translator-credits" msgstr "" "Launchpad Contributions:\n" " DaNiJ3L https://launchpad.net/~danij3l\n" " Marc Pavot https://launchpad.net/~marc-pavot\n" " Miro Glavić https://launchpad.net/~klek" #. Create plugins configuration dialog window #: ../src/shell/ario-shell.c:1278 msgid "Configure Plugins" msgstr "Podesi Priključke" #. Set window properties #: ../src/shell/ario-shell-coverdownloader.c:187 msgid "Music Player Cover Download" msgstr "Skidanje Naslovnice za Music Player" #: ../src/shell/ario-shell-coverdownloader.c:332 msgid "Download Finished!" msgstr "Skidanje Završeno!" #. We show the numbers of covers found and not found #: ../src/shell/ario-shell-coverdownloader.c:335 #, c-format msgid "" "%i covers found\n" "%i covers not found\n" "%i covers already exist" msgstr "" "%i naslovnica pronadjeno\n" "%i naslovnica nije pronadjeno\n" "%i naslovnica već postoji" #. Set window properties #: ../src/shell/ario-shell-coverselect.c:242 msgid "Cover Download" msgstr "Skidanje Naslovnica" #: ../src/shell/ario-shell-coverselect.c:559 msgid "Error reading file" msgstr "Greška kod čitanja datoteke" #: ../src/shell/ario-shell-coverselect.c:584 msgid "Error saving file" msgstr "Greška kod spremanja datoteke" #: ../src/shell/ario-shell-lyrics.c:43 #: ../src/shell/ario-shell-preferences.c:133 #: ../src/shell/ario-shell-songinfos.c:272 msgid "Lyrics" msgstr "Tekstovi" #: ../src/shell/ario-shell-lyricsselect.c:152 msgid "Lyrics Download" msgstr "Skidanje Tekstova" #: ../src/shell/ario-shell-preferences.c:81 msgid "Ario Preferences" msgstr "Ario Postavke" #: ../src/shell/ario-shell-preferences.c:113 msgid "Server" msgstr "Server" #: ../src/shell/ario-shell-preferences.c:143 msgid "Others" msgstr "Ostali" #: ../src/shell/ario-shell-similarartists.c:318 #, c-format msgid "%d songs" msgstr "%d pjesama" #. Set window properties #. Set window title #: ../src/shell/ario-shell-songinfos.c:249 #: ../src/shell/ario-shell-songinfos.c:266 #: ../src/shell/ario-shell-songinfos.c:544 msgid "Song Properties" msgstr "Svojstva Pjesme" #: ../src/shell/ario-shell-songinfos.c:455 msgid "Error saving tags of file:" msgstr "Greška spremanja tagova datoteke:" #: ../src/widgets/ario-connection-widget.c:652 msgid "You must select a server." msgstr "Morate odabrati server." #: ../src/widgets/ario-connection-widget.c:702 msgid "New Profile" msgstr "Novi Profil" #: ../src/widgets/ario-firstlaunch.c:82 msgid "The following configuration will be used:" msgstr "Slijedeća konfiguracija će biti korištena:" #: ../src/widgets/ario-firstlaunch.c:106 msgid "" "It is the first time you launch Ario.\n" "This assistant will help you to configure it." msgstr "" "Ovo je prvi put da otvorite Ario.\n" "Ovaj asistent će vam pomoci u podešavanju." #: ../src/widgets/ario-firstlaunch.c:111 msgid "Welcome to Ario" msgstr "Dobro došli u Ario" #: ../src/widgets/ario-firstlaunch.c:129 msgid "Configuration" msgstr "Konfiguracija" #: ../src/widgets/ario-firstlaunch.c:141 msgid "Confirmation" msgstr "Potvrda" #: ../src/widgets/ario-header.c:66 ../src/widgets/ario-tray-icon.h:42 #, c-format msgid "from %s by %s" msgstr "od%sod%s" #: ../src/widgets/ario-header.c:199 msgid "Play previous song" msgstr "Sviraj prethodnu pjesmu" #: ../src/widgets/ario-header.c:217 msgid "Play/Pause the music" msgstr "Sviraj/Pauziraj glazbu" #: ../src/widgets/ario-header.c:229 msgid "Stop the music" msgstr "Zaustavi glazbu" #. Translators - This " of " is used to count the elapsed time #. of a song like in "00:59 of 03:24" #: ../src/widgets/ario-header.c:310 ../src/widgets/ario-tooltip.c:321 msgid " of " msgstr " od " #: ../src/widgets/ario-header.c:323 msgid "Toggle random on/off" msgstr "Nasumce prebacuj uključi/iskljući" #: ../src/widgets/ario-header.c:335 msgid "Toggle repeat on/off" msgstr "Ponavljano prebacuj uključi/iskljući" #: ../src/widgets/ario-header.c:340 msgid "Change the music volume" msgstr "Promijeni jačinu zvuka" #: ../src/widgets/ario-lyrics-editor.c:323 msgid "Downloading lyrics..." msgstr "Skidanje teksta" #: ../src/widgets/ario-lyrics-editor.c:351 msgid "Lyrics not found" msgstr "Tekst nije pronadjen" #: ../src/widgets/ario-playlist.c:133 msgid "_Clear" msgstr "_Očisti" #: ../src/widgets/ario-playlist.c:136 msgid "_Shuffle" msgstr "_Promiješaj" #: ../src/widgets/ario-playlist.c:139 msgid "Cr_op" msgstr "Iz_reži" #: ../src/widgets/ario-playlist.c:142 msgid "_Search in playlist" msgstr "_Potraži u listi izvođenja" #: ../src/widgets/ario-playlist.c:145 msgid "_Remove" msgstr "_Ukloni" #: ../src/widgets/ario-playlist.c:148 msgid "_Save" msgstr "_Pohrani" #: ../src/widgets/ario-playlist.c:154 msgid "_Go to playing song" msgstr "_Idi do aktivne pjesme" #: ../src/widgets/ario-playlist.c:667 msgid "Filter:" msgstr "Filter:" #. Create the widgets #: ../src/widgets/ario-playlist.c:1700 msgid "Save playlist" msgstr "Pohrani listu pjesama" #: ../src/widgets/ario-playlist.c:1710 msgid "Playlist name :" msgstr "Naziv liste pjesama :" #: ../src/widgets/ario-playlist.c:1746 msgid "Playlist already exists. Do you want to overwrite it?" msgstr "Popis pjesama već postoji. Želite li da ga prepišete?" #. Format status bar message #: ../src/widgets/ario-status-bar.c:96 msgid "Songs" msgstr "Pjesme" #: ../src/widgets/ario-tray-icon.c:102 msgid "_Play" msgstr "_Sviraj" #: ../src/widgets/ario-tray-icon.c:105 msgid "_Pause" msgstr "_Pauza" #: ../src/widgets/ario-tray-icon.c:108 msgid "_Stop" msgstr "_Zaustavi" #: ../src/widgets/ario-tray-icon.c:111 msgid "_Next" msgstr "_Slijedeći" #: ../src/widgets/ario-tray-icon.c:114 msgid "P_revious" msgstr "P_rethodni" #: ../src/widgets/ario-tray-icon.h:41 msgid "Not playing" msgstr "Ne svira" #. Translators: "friendly time" string for the current day, strftime format. like "Today 12:34 am" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1179 msgid "Today %I:%M %p" msgstr "Danas %I:%M %p" #. Translators: "friendly time" string for the previous day, #. * strftime format. e.g. "Yesterday 12:34 am" #. #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1192 msgid "Yesterday %I:%M %p" msgstr "Jučer %I:%M %p" #. Translators: "friendly time" string for a day in the current week, #. * strftime format. e.g. "Wed 12:34 am" #. #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1208 msgid "%a %I:%M %p" msgstr "%a %I:%M %p" #. Translators: "friendly time" string for a day in the current year, #. * strftime format. e.g. "Feb 12 12:34 am" #. #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1220 msgid "%b %d %I:%M %p" msgstr "%b %d %I:%M %p" #. Translators: "friendly time" string for a day in a different year, #. * strftime format. e.g. "Feb 12 1997" #. #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1225 msgid "%b %d %Y" msgstr "%b %d %Y" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1311 #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:4 msgid "Never" msgstr "Nikad" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1335 msgid "OK" msgstr "U redu" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1338 msgid "Logging in" msgstr "Prijavljivanje" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1341 msgid "Request failed" msgstr "Zahtjev nije uspio" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1344 msgid "Incorrect username" msgstr "Neispravno korisničko ime" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1347 msgid "Incorrect password" msgstr "Neispravna lozinka" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1350 msgid "Handshake failed" msgstr "Neuspjelo rukovanje" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1353 msgid "Client update required" msgstr "Potrebno ažuriranje klijenta" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1356 msgid "Track submission failed" msgstr "Podnesak nije uspio" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1359 msgid "Queue is too long" msgstr "Red je predug" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1362 msgid "Track submission failed too many times" msgstr "Podnesak nije uspio više puta" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1417 msgid "Audioscrobbler preferences" msgstr "Postavke audioscrobblera" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:1 msgid "Disabled" msgstr "Onemogućen" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:2 msgid "Last submission time:" msgstr "Vrijeme zadnjeg podneska:" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:3 msgid "Last.fm Profile" msgstr "Profil Last.fm" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:6 msgid "Queued tracks:" msgstr "Redoslijed pjesama:" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:7 msgid "Status:" msgstr "Status:" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:8 msgid "Tracks submitted:" msgstr "Predložene pjesme:" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:9 #: ../plugins/radios/ario-radio.c:168 msgid "Username :" msgstr "Korisničko ime :" #: ../plugins/audioscrobbler/audioscrobbler.ario-plugin.desktop.in.h:1 msgid "Last.fm" msgstr "Last.fm" #: ../plugins/audioscrobbler/audioscrobbler.ario-plugin.desktop.in.h:2 msgid "Submits song information to last.fm" msgstr "Podnašanje podataka o pjesmi na last.fm" #: ../plugins/filesystem/ario-filesystem.c:158 msgid "File System" msgstr "Arhivni Sustav" #: ../plugins/filesystem/ario-filesystem.c:422 msgid "Music" msgstr "Glazba" #: ../plugins/filesystem/filesystem.ario-plugin.desktop.in.h:1 msgid "A File System Browser" msgstr "Pretraživač Arhivnog Sustava" #: ../plugins/filesystem/filesystem.ario-plugin.desktop.in.h:2 msgid "File System Browser" msgstr "Pretraživač Arhivnog Sustava" #: ../plugins/information/ario-information.c:114 msgid "Information" msgstr "Informacije" #: ../plugins/information/information.ario-plugin.desktop.in.h:1 msgid "Display various information about the playing song" msgstr "Prikazivanje različitih podataka o aktivnoj pjesmi" #: ../plugins/information/information.ario-plugin.desktop.in.h:2 msgid "Song Information" msgstr "Detalji o pjesmi" #: ../plugins/information/information.ui.h:2 msgid "Albums from this artist:" msgstr "Albumi ovoga umjetnika:" #: ../plugins/information/information.ui.h:5 msgid "Lyrics:" msgstr "Tekst" #: ../plugins/libnotify/libnotify.ario-plugin.desktop.in.h:1 msgid "Add libnotify support" msgstr "Dodaj libnotify podršku" #: ../plugins/libnotify/libnotify.ario-plugin.desktop.in.h:2 msgid "Libnotify" msgstr "Libnotify" #: ../plugins/mmkeys/mmkeys.ario-plugin.desktop.in.h:1 msgid "Add multimedia keys support" msgstr "Dodaj podršku za multimedijske ključeve" #: ../plugins/mmkeys/mmkeys.ario-plugin.desktop.in.h:2 msgid "Multimedia Keys" msgstr "Multimedijski Ključevi" #: ../plugins/radios/ario-radio.c:125 msgid "Add a _new radio" msgstr "Dodaj _novi radio" #: ../plugins/radios/ario-radio.c:128 msgid "_Delete this radios" msgstr "_Izbriši ovaj radio" #: ../plugins/radios/ario-radio.c:166 msgid "Last.fm: Radio of similar artists" msgstr "" #: ../plugins/radios/ario-radio.c:167 msgid "Last.fm: Radio of group" msgstr "" #: ../plugins/radios/ario-radio.c:167 msgid "Group :" msgstr "Groupa :" #: ../plugins/radios/ario-radio.c:168 msgid "Last.fm: Personal radio" msgstr "Last.fm: Personalni radio" #: ../plugins/radios/ario-radio.c:169 msgid "Last.fm: Radio of genre" msgstr "" #: ../plugins/radios/ario-radio.c:184 #: ../plugins/radios/radios.ario-plugin.desktop.in.h:2 msgid "Web Radios" msgstr "Web Radio stanice" #: ../plugins/radios/ario-radio.c:246 msgid "Internet Radios" msgstr "Internet Radio stanice" #. Create dialog window #: ../plugins/radios/ario-radio.c:774 msgid "Edit a WebRadio" msgstr "Uredi WebRadio" #: ../plugins/radios/ario-radio.c:787 ../plugins/radios/ario-radio.c:923 msgid "URL :" msgstr "URL :" #: ../plugins/radios/ario-radio.c:853 ../plugins/radios/ario-radio.c:997 msgid "Bad parameters. You must specify a name and a URL for the radio." msgstr "" "Neodgovarajuci parametri. Morate specificirati ime i URL radio stanice." #. Create dialog window #: ../plugins/radios/ario-radio.c:883 msgid "Add a WebRadio" msgstr "Dodaj WebRadio" #: ../plugins/radios/ario-radio.c:1083 msgid "Are you sure you want to delete all the selected radios?" msgstr "Jeste li sigurni da hoćete izbrisati sve odabrane radio stanice?" #: ../plugins/radios/radios.ario-plugin.desktop.in.h:1 msgid "Listen to webradios" msgstr "Slušaj WebRadio" #: ../plugins/wikipedia/ario-wikipedia-plugin.c:49 #: ../plugins/wikipedia/ario-wikipedia-plugin.c:50 msgid "Find artist on Wikipedia" msgstr "Pronadji umjetnika na Wikipediji" #: ../plugins/wikipedia/ario-wikipedia-plugin.c:172 msgid "Wikipedia Plugin - Configuration" msgstr "Priključak za Wikipediju - Podešavanje" #: ../plugins/wikipedia/ario-wikipedia-plugin.c:181 msgid "Wikipedia language :" msgstr "Jezik Wikipedije :" #: ../plugins/wikipedia/wikipedia.ario-plugin.desktop.in.h:1 msgid "A plugin to search current artist on wikipedia" msgstr "Priključak za pretragu o trenutačnom izvodjacu na wikipediji" #: ../plugins/wikipedia/wikipedia.ario-plugin.desktop.in.h:2 msgid "Wikipedia" msgstr "Wikipedija" #~ msgid "Add a search criteria" #~ msgstr "Dodaj kriterij pretrage" #~ msgid "Remove a search criteria" #~ msgstr "Ukloni kriterij pretrage" #~ msgid "Search songs in the library" #~ msgstr "Pretraži pjesme u biblioteci" ario-1.6/po/zh_CN.po0000644000175000017500000010177113226723442011226 00000000000000# Simplified Chinese translation for ario # Copyright (c) 2008 Rosetta Contributors and Canonical Ltd 2008 # This file is distributed under the same license as the ario package. # Aron Xu , 2008. # # msgid "" msgstr "" "Project-Id-Version: ario\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2011-06-13 18:15+0200\n" "PO-Revision-Date: 2011-03-17 08:27+0000\n" "Last-Translator: Hong Hao \n" "Language-Team: Simplified Chinese \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2011-06-13 16:32+0000\n" "X-Generator: Launchpad (build 13175)\n" #: ../data/ario.desktop.in.in.h:1 msgid "Ario music player" msgstr "Ario 音乐播放器" #: ../data/ario.desktop.in.in.h:2 msgid "Client application to mpd" msgstr "mpd的客户端应用程序" #: ../data/ui/browser-prefs.ui.h:1 msgid "Alphabetically" msgstr "按字母顺序" #: ../data/ui/browser-prefs.ui.h:2 msgid "By year" msgstr "按年度排序" #: ../data/ui/browser-prefs.ui.h:3 msgid "Library Options" msgstr "媒体库选项" #: ../data/ui/browser-prefs.ui.h:4 msgid "Library Organisation" msgstr "媒体库组织" #: ../data/ui/browser-prefs.ui.h:5 msgid "Sort albums: " msgstr "搜索专辑: " #: ../data/ui/connection-autodetect.ui.h:1 msgid "" "If you don't see your MPD server thanks to the automatic detection, you " "should check that zeroconf is activated in your MPD configuration or use the " "manual configuration." msgstr "" "如果你不知道 MPD 服务器的情况,请使用自动配置。你应该查看 zeroconf 是否启动或" "者使用手工配置。" #: ../data/ui/connection-autodetect.ui.h:2 msgid "Server autodetection" msgstr "服务器自动检测" #: ../data/ui/connection-widget.ui.h:1 msgid "Auto detect" msgstr "自动检测" #: ../data/ui/connection-widget.ui.h:2 msgid "Default" msgstr "默认值" #: ../data/ui/connection-widget.ui.h:3 ../src/widgets/ario-firstlaunch.c:83 msgid "Host :" msgstr "主机:" #: ../data/ui/connection-widget.ui.h:4 msgid "Music directory :" msgstr "音乐目录:" #: ../data/ui/connection-widget.ui.h:5 msgid "Music server is on the same computer as Ario" msgstr "Ario和音乐服务器处于同一电脑之上" #. Create the widgets #: ../data/ui/connection-widget.ui.h:6 ../plugins/radios/ario-radio.c:786 #: ../plugins/radios/ario-radio.c:922 msgid "Name :" msgstr "名称:" #: ../data/ui/connection-widget.ui.h:7 #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:5 msgid "Password :" msgstr "密码:" #: ../data/ui/connection-widget.ui.h:8 ../src/widgets/ario-firstlaunch.c:85 msgid "Port :" msgstr "端口:" #: ../data/ui/connection-widget.ui.h:9 #, fuzzy msgid "Server type :" msgstr "服务器类型: " #: ../data/ui/connection-widget.ui.h:10 msgid "Timeout :" msgstr "" #: ../data/ui/connection-widget.ui.h:11 msgid "XMMS 2 (Experimental)" msgstr "XMMS 2(试验性)" #: ../data/ui/cover-prefs.ui.h:1 msgid "Automatically download the album cover of the playing song" msgstr "自动下载正在播放歌曲的专辑封面" #: ../data/ui/cover-prefs.ui.h:2 ../src/shell/ario-shell-preferences.c:128 msgid "Covers" msgstr "封面" #: ../data/ui/cover-prefs.ui.h:3 msgid "Covers Sources" msgstr "封面来源" #: ../data/ui/cover-prefs.ui.h:4 msgid "Show the covers in the albums list" msgstr "显示专辑列表中的封面" #: ../data/ui/cover-prefs.ui.h:5 msgid "Use Amazon." msgstr "使用 Amazon" #: ../data/ui/connection-prefs.ui.h:1 #: ../src/shell/ario-shell-preferences.c:108 msgid "Connection" msgstr "连接" #: ../data/ui/connection-prefs.ui.h:2 msgid "_Autoconnect on startup" msgstr "启动时自动连接(_A)" #: ../data/ui/connection-prefs.ui.h:3 ../src/shell/ario-shell.c:167 msgid "_Connect" msgstr "连接(_C)" #: ../data/ui/connection-prefs.ui.h:4 ../src/shell/ario-shell.c:170 msgid "_Disconnect" msgstr "断开连接(_D)" #: ../data/ui/connection-assistant.ui.h:1 msgid "" "You need to specify a server to connect to. If you don't see your server " "thanks to the autodetection, you should check that zeroconf/avahi is " "activated in your server or use the manual configuration." msgstr "" "请指定需要连接到的服务器。如果程序没有自动检测到服务器,你可以检查服务器端是" "否启动了zeroconf/avahi,也可以手动配置服务器。" #: ../data/ui/cover-progress.ui.h:1 ../data/ui/cover-select.ui.h:1 #: ../data/ui/song-infos.ui.h:1 ../plugins/information/information.ui.h:1 msgid "Album :" msgstr "专辑:" #: ../data/ui/cover-progress.ui.h:2 ../data/ui/cover-select.ui.h:2 #: ../data/ui/lyrics-select.ui.h:1 ../data/ui/song-infos.ui.h:3 #: ../plugins/information/information.ui.h:3 #: ../plugins/radios/ario-radio.c:166 msgid "Artist :" msgstr "艺术家:" #: ../data/ui/cover-progress.ui.h:3 msgid "Downloading cover" msgstr "下载封面" #: ../data/ui/cover-select.ui.h:3 msgid "Local search" msgstr "本地搜索" #: ../data/ui/cover-select.ui.h:4 ../src/sources/ario-search.c:108 msgid "Search" msgstr "搜索" #: ../data/ui/others-prefs.ui.h:1 msgid "Allow only one instance of Ario" msgstr "只允许运行一个 Ario 实例" #: ../data/ui/others-prefs.ui.h:2 msgid "Hide window when close button is pressed" msgstr "当关闭按被钮按下时隐藏窗口" #: ../data/ui/others-prefs.ui.h:3 msgid "Interface" msgstr "界面" #: ../data/ui/others-prefs.ui.h:4 msgid "Playlist at the right of tabs" msgstr "" #: ../data/ui/others-prefs.ui.h:5 msgid "Playlist below tabs" msgstr "" #: ../data/ui/others-prefs.ui.h:6 msgid "Playlist within tabs" msgstr "" #: ../data/ui/others-prefs.ui.h:7 msgid "Proxy" msgstr "代理" #: ../data/ui/others-prefs.ui.h:8 msgid "Proxy Address :" msgstr "代理服务器地址:" #: ../data/ui/others-prefs.ui.h:9 msgid "Proxy Port :" msgstr "代理端口:" #: ../data/ui/others-prefs.ui.h:10 msgid "Show tabs" msgstr "显示记录" #: ../data/ui/others-prefs.ui.h:11 msgid "Use a proxy" msgstr "使用代理" #: ../data/ui/lyrics-prefs.ui.h:1 msgid "Lyrics Sources" msgstr "歌词来源" #: ../data/ui/lyrics-select.ui.h:2 ../data/ui/song-infos.ui.h:13 #: ../plugins/information/information.ui.h:6 msgid "Title :" msgstr "标题:" #: ../data/ui/playlist-prefs.ui.h:1 msgid "Add after playing song" msgstr "播放后添加歌曲" #: ../data/ui/playlist-prefs.ui.h:2 msgid "Add and play" msgstr "添加播放" #: ../data/ui/playlist-prefs.ui.h:3 ../data/ui/similar-artists.ui.h:2 msgid "Add to playlist" msgstr "添加到播放列表" #. ARIO_TAG_ARTIST #: ../data/ui/playlist-prefs.ui.h:4 ../src/servers/ario-server.c:46 #: ../src/sources/ario-tree-albums.c:213 ../src/widgets/ario-playlist.c:541 #: ../src/widgets/ario-songlist.c:228 ../src/widgets/ario-tray-icon.c:565 msgid "Album" msgstr "专辑" #: ../data/ui/playlist-prefs.ui.h:5 ../src/servers/ario-server.c:45 #: ../src/widgets/ario-playlist.c:541 ../src/widgets/ario-songlist.c:213 #: ../src/widgets/ario-tray-icon.c:563 msgid "Artist" msgstr "艺术家" #. ARIO_TAG_GENRE #: ../data/ui/playlist-prefs.ui.h:6 ../src/servers/ario-server.c:52 #: ../src/widgets/ario-playlist.c:541 msgid "Date" msgstr "日期" #: ../data/ui/playlist-prefs.ui.h:7 ../src/widgets/ario-playlist.c:541 msgid "Disc" msgstr "碟片" #: ../data/ui/playlist-prefs.ui.h:8 msgid "Double click" msgstr "双击" #: ../data/ui/playlist-prefs.ui.h:9 ../src/widgets/ario-playlist.c:541 msgid "Duration" msgstr "长度" #: ../data/ui/playlist-prefs.ui.h:10 ../src/widgets/ario-playlist.c:541 msgid "File" msgstr "文件" #. ARIO_TAG_TRACK #. ARIO_TAG_NAME #: ../data/ui/playlist-prefs.ui.h:11 ../src/servers/ario-server.c:51 #: ../src/widgets/ario-playlist.c:541 msgid "Genre" msgstr "流派" #: ../data/ui/playlist-prefs.ui.h:12 msgid "Go to current song when a new song is played" msgstr "当一首新的歌曲被播放时转到当前歌曲" #: ../data/ui/playlist-prefs.ui.h:13 msgid "Mode" msgstr "模式" #: ../data/ui/playlist-prefs.ui.h:14 msgid "On double click:" msgstr "双击后:" #: ../data/ui/playlist-prefs.ui.h:15 ../src/sources/ario-storedplaylists.c:229 #: ../src/shell/ario-shell.c:222 ../src/shell/ario-shell-preferences.c:123 #: ../src/widgets/ario-playlist.c:272 msgid "Playlist" msgstr "播放列表" #: ../data/ui/playlist-prefs.ui.h:16 msgid "Playlist mode:" msgstr "播放列表模式:" #: ../data/ui/playlist-prefs.ui.h:17 msgid "Replace in playlist" msgstr "替换播放列表项目" #: ../data/ui/playlist-prefs.ui.h:18 msgid "Show rows:" msgstr "显示行:" #. ARIO_TAG_ALBUM_ARTIST #: ../data/ui/playlist-prefs.ui.h:19 ../src/servers/ario-server.c:48 #: ../src/sources/ario-tree-songs.c:145 ../src/widgets/ario-playlist.c:541 #: ../src/widgets/ario-songlist.c:198 ../src/widgets/ario-tray-icon.c:567 msgid "Title" msgstr "标题" #. ARIO_TAG_TITLE #: ../data/ui/playlist-prefs.ui.h:20 ../src/servers/ario-server.c:49 #: ../src/sources/ario-tree-songs.c:138 ../src/widgets/ario-playlist.c:541 msgid "Track" msgstr "曲目" #: ../data/ui/server-prefs.ui.h:1 msgid "Audio outputs" msgstr "音频输出" #: ../data/ui/server-prefs.ui.h:2 msgid "Crossfade" msgstr "交叉淡化" #: ../data/ui/server-prefs.ui.h:3 msgid "Database" msgstr "数据库" #: ../data/ui/server-prefs.ui.h:4 msgid "Last updated:" msgstr "上次更新:" #: ../data/ui/server-prefs.ui.h:5 msgid "Stop music on exit" msgstr "退出时停止音乐" #: ../data/ui/server-prefs.ui.h:6 msgid "Update on startup" msgstr "启动时更新" #: ../data/ui/server-prefs.ui.h:7 msgid "_Update" msgstr "更新" #: ../data/ui/server-prefs.ui.h:8 msgid "enable crossfade" msgstr "启用交叉淡化" #: ../data/ui/server-prefs.ui.h:9 msgid "fade time (s):" msgstr "淡化时长(以秒计):" #: ../data/ui/server-prefs.ui.h:10 ../src/ario-util.c:50 ../src/ario-util.c:71 #: ../src/ario-util.c:93 ../plugins/information/information.ui.h:7 #, c-format msgid "n/a" msgstr "不可用" #: ../data/ui/similar-artists.ui.h:1 msgid "Add all to playlist" msgstr "全部添加到播放列表" #: ../data/ui/similar-artists.ui.h:3 msgid "Find on Last.fm" msgstr "在 Last.fm 上查找" #: ../data/ui/stats-prefs.ui.h:1 msgid "Database play time :" msgstr "数据库播放总时长:" #: ../data/ui/stats-prefs.ui.h:2 msgid "Number of albums :" msgstr "专辑数:" #: ../data/ui/stats-prefs.ui.h:3 msgid "Number of artists :" msgstr "艺术家数:" #: ../data/ui/stats-prefs.ui.h:4 msgid "Number of songs :" msgstr "歌曲数:" #: ../data/ui/stats-prefs.ui.h:5 msgid "Play time :" msgstr "播放时间:" #: ../data/ui/stats-prefs.ui.h:6 ../src/shell/ario-shell-preferences.c:148 msgid "Statistics" msgstr "统计信息" #: ../data/ui/stats-prefs.ui.h:7 msgid "Uptime :" msgstr "启动时间:" #: ../data/ui/song-infos.ui.h:2 msgid "Album Artist :" msgstr "专辑艺人" #: ../data/ui/song-infos.ui.h:4 msgid "Comment :" msgstr "评论:" #: ../data/ui/song-infos.ui.h:5 msgid "Composer :" msgstr "作曲家:" #: ../data/ui/song-infos.ui.h:6 msgid "Date :" msgstr "日期:" #: ../data/ui/song-infos.ui.h:7 msgid "Disc :" msgstr "盘片:" #: ../data/ui/song-infos.ui.h:8 msgid "Filename :" msgstr "文件名:" #: ../data/ui/song-infos.ui.h:9 ../plugins/radios/ario-radio.c:169 msgid "Genre :" msgstr "流派" #: ../data/ui/song-infos.ui.h:10 ../plugins/information/information.ui.h:4 msgid "Length :" msgstr "长度:" #: ../data/ui/song-infos.ui.h:11 msgid "Performer :" msgstr "表演者:" #: ../data/ui/song-infos.ui.h:12 msgid "Song" msgstr "歌曲" #: ../data/ui/song-infos.ui.h:14 msgid "Track :" msgstr "音轨:" #: ../data/ui/trayicon-prefs.ui.h:1 msgid "Do nothing" msgstr "什么也不做" #: ../data/ui/trayicon-prefs.ui.h:2 msgid "Mute" msgstr "静音" #: ../data/ui/trayicon-prefs.ui.h:3 ../src/shell/ario-shell-preferences.c:138 msgid "Notification" msgstr "提示" #: ../data/ui/trayicon-prefs.ui.h:4 msgid "Notification on song change" msgstr "切换歌曲时提示" #: ../data/ui/trayicon-prefs.ui.h:5 msgid "Notification time: " msgstr "提示时间: " #: ../data/ui/trayicon-prefs.ui.h:6 msgid "On middle button click on tray icon :" msgstr "中键点击托盘图标时:" #: ../data/ui/trayicon-prefs.ui.h:7 ../src/widgets/ario-header.c:241 msgid "Play next song" msgstr "播放下一首歌" #: ../data/ui/trayicon-prefs.ui.h:8 msgid "Play/Pause" msgstr "播放 / 暂停" #: ../data/ui/trayicon-prefs.ui.h:9 msgid "Tray icon" msgstr "托盘图标" #: ../src/ario-main.c:67 msgid "Start minimized window" msgstr "启动时最小化" #: ../src/ario-main.c:68 msgid "Start with specific profile" msgstr "" #. Format result string #: ../src/ario-util.c:110 msgid "seconds" msgstr "秒" #: ../src/ario-util.c:112 msgid "minutes" msgstr "分钟" #: ../src/ario-util.c:118 msgid "hours" msgstr "小时" #: ../src/ario-util.c:124 msgid "days" msgstr "天" #: ../src/covers/ario-cover.c:149 msgid "The cover already exists. Do you want to replace it?" msgstr "封面已存在,是否覆盖?" #: ../src/covers/ario-cover-local.c:48 msgid "Music Directory" msgstr "音乐目录" #: ../src/playlist/ario-playlist-dynamic.c:49 msgid "songs of same artist" msgstr "相同艺人的歌曲" #: ../src/playlist/ario-playlist-dynamic.c:50 msgid "songs of same album" msgstr "相同专辑的歌曲" #: ../src/playlist/ario-playlist-dynamic.c:51 msgid "songs of similar artists" msgstr "相似艺术家的歌曲" #: ../src/playlist/ario-playlist-dynamic.c:52 msgid "albums of same artists" msgstr "相同艺人的专辑" #: ../src/playlist/ario-playlist-dynamic.c:53 msgid "albums of similar artists" msgstr "相似艺人的专辑" #: ../src/playlist/ario-playlist-dynamic.c:69 msgid "Dynamic Playlist" msgstr "动态播放列表" #: ../src/playlist/ario-playlist-queue.c:49 msgid "Queue Mode" msgstr "队列模式" #: ../src/playlist/ario-playlist-normal.c:47 msgid "Normal" msgstr "常规" #: ../src/plugins/ario-plugin-manager.c:45 msgid "Plugin" msgstr "插件" #: ../src/plugins/ario-plugin-manager.c:46 msgid "Enabled" msgstr "已启用" #: ../src/plugins/ario-plugin-manager.c:480 ../src/shell/ario-shell.c:206 msgid "_About" msgstr "关于(_A)" #: ../src/plugins/ario-plugin-manager.c:488 msgid "C_onfigure" msgstr "配置(_O)" #: ../src/plugins/ario-plugin-manager.c:497 msgid "A_ctivate" msgstr "激活(_C)" #: ../src/plugins/ario-plugin-manager.c:508 msgid "Ac_tivate All" msgstr "全部激活(_T)" #: ../src/plugins/ario-plugin-manager.c:513 msgid "_Deactivate All" msgstr "全部禁用(_D)" #: ../src/plugins/ario-plugin-manager.c:722 msgid "Active plugins" msgstr "活动插件" #: ../src/preferences/ario-server-preferences.c:182 #: ../src/preferences/ario-stats-preferences.c:151 #: ../src/preferences/ario-stats-preferences.c:152 #: ../src/preferences/ario-stats-preferences.c:153 #: ../src/preferences/ario-stats-preferences.c:154 #: ../src/preferences/ario-stats-preferences.c:155 #: ../src/preferences/ario-stats-preferences.c:156 msgid "Not connected" msgstr "未连接" #: ../src/preferences/ario-server-preferences.c:187 #: ../src/preferences/ario-server-preferences.c:278 #: ../src/widgets/ario-status-bar.c:100 msgid "Updating..." msgstr "正在更新..." #: ../src/servers/ario-mpd.c:410 ../src/servers/ario-mpd2.c:522 msgid "Connecting to server..." msgstr "正在连接到服务器..." #: ../src/servers/ario-mpd.c:438 ../src/servers/ario-mpd2.c:550 msgid "Impossible to connect to server. Check the connection options." msgstr "无法连接到服务器。请检查连接选项。" #. ARIO_TAG_ALBUM #: ../src/servers/ario-server.c:47 msgid "Album Artist" msgstr "专辑艺人" #. ARIO_TAG_DATE #: ../src/servers/ario-server.c:53 msgid "Composer" msgstr "作曲家" #. ARIO_TAG_COMPOSER #: ../src/servers/ario-server.c:54 msgid "Performer" msgstr "表演者" #. ARIO_TAG_PERFORMER #. ARIO_TAG_COMMENT #. ARIO_TAG_DISC #: ../src/servers/ario-server.c:57 msgid "Filename" msgstr "文件名" #. ARIO_TAG_FILENAME #: ../src/servers/ario-server.c:58 msgid "Any" msgstr "任意" #. impossible time or broken locale settings #: ../src/servers/ario-server.h:27 #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1235 msgid "Unknown" msgstr "未知" #: ../src/sources/ario-browser.c:82 ../src/sources/ario-search.c:70 #: ../src/sources/ario-storedplaylists.c:88 #: ../src/sources/ario-storedplaylists.c:106 #: ../plugins/filesystem/ario-filesystem.c:94 #: ../plugins/filesystem/ario-filesystem.c:109 #: ../plugins/radios/ario-radio.c:116 msgid "_Add to playlist" msgstr "添加到播放列表(_A)" #: ../src/sources/ario-browser.c:85 ../src/sources/ario-search.c:73 #: ../src/sources/ario-storedplaylists.c:91 #: ../src/sources/ario-storedplaylists.c:109 #: ../plugins/filesystem/ario-filesystem.c:97 #: ../plugins/filesystem/ario-filesystem.c:112 #: ../plugins/radios/ario-radio.c:119 msgid "Add and _play" msgstr "添加并播放(_p)" #: ../src/sources/ario-browser.c:88 ../src/sources/ario-search.c:76 #: ../src/sources/ario-storedplaylists.c:94 #: ../src/sources/ario-storedplaylists.c:112 #: ../plugins/filesystem/ario-filesystem.c:100 #: ../plugins/filesystem/ario-filesystem.c:115 #: ../plugins/radios/ario-radio.c:122 msgid "_Replace in playlist" msgstr "从播放列表中移除(_R)" #: ../src/sources/ario-browser.c:91 msgid "Get the covers" msgstr "获取封面" #: ../src/sources/ario-browser.c:94 msgid "_Delete the covers" msgstr "删除封面(_D)" #: ../src/sources/ario-browser.c:97 ../src/sources/ario-browser.c:100 #: ../src/sources/ario-search.c:79 ../src/sources/ario-storedplaylists.c:115 #: ../src/widgets/ario-playlist.c:151 #: ../plugins/filesystem/ario-filesystem.c:118 #: ../plugins/radios/ario-radio.c:131 msgid "_Properties" msgstr "属性(_P)" #: ../src/sources/ario-browser.c:125 ../src/shell/ario-shell-preferences.c:118 msgid "Library" msgstr "媒体库" #: ../src/sources/ario-storedplaylists.c:97 msgid "_Delete" msgstr "删除(_D)" #: ../src/sources/ario-storedplaylists.c:151 msgid "Playlists" msgstr "播放列表" #: ../src/sources/ario-storedplaylists.c:592 msgid "Are you sure that you want to delete all the selected playlists?" msgstr "是否确认删除所有选中的播放列表?" #: ../src/sources/ario-tree.c:856 msgid "Are you sure that you want to remove all the selected covers?" msgstr "是否确认删除选中艺术家的所有封面?" #. Translators - This "Cover" refers to an album cover art #: ../src/sources/ario-tree-albums.c:199 msgid "Cover" msgstr "封面" #: ../src/shell/ario-shell.c:160 msgid "_File" msgstr "文件(_F)" #: ../src/shell/ario-shell.c:161 msgid "_Edit" msgstr "编辑(_E)" #: ../src/shell/ario-shell.c:162 msgid "_View" msgstr "视图(_V)" #: ../src/shell/ario-shell.c:163 msgid "_Control" msgstr "控制(_C)" #: ../src/shell/ario-shell.c:164 msgid "_Tool" msgstr "工具(_T)" #: ../src/shell/ario-shell.c:165 msgid "_Help" msgstr "帮助(_H)" #: ../src/shell/ario-shell.c:173 msgid "_Update database" msgstr "更新数据库(_U)" #: ../src/shell/ario-shell.c:176 msgid "_Quit" msgstr "退出(_Q)" #: ../src/shell/ario-shell.c:179 msgid "Plu_gins" msgstr "插件(_g)" #: ../src/shell/ario-shell.c:182 msgid "Prefere_nces" msgstr "首选项(_n)" #: ../src/shell/ario-shell.c:185 msgid "_Change current album cover" msgstr "更改当前专辑的封面(_C)" #: ../src/shell/ario-shell.c:188 msgid "Download album _covers" msgstr "下载所有专辑封面(_c)" #: ../src/shell/ario-shell.c:191 msgid "Find similar artists" msgstr "查找相似的艺术家" #: ../src/shell/ario-shell.c:194 msgid "Add similar songs to playlist" msgstr "添加相似的歌曲到播放列表" #: ../src/shell/ario-shell.c:197 msgid "Go to _previous tab" msgstr "转到上一标签页(_p)" #: ../src/shell/ario-shell.c:200 msgid "Go to _next tab" msgstr "转到下一标签页(_n)" #: ../src/shell/ario-shell.c:203 msgid "Show _lyrics" msgstr "显示歌词(_l)" #: ../src/shell/ario-shell.c:209 msgid "_Translate this application..." msgstr "翻译此程序(_T)…" #: ../src/shell/ario-shell.c:216 msgid "S_tatusbar" msgstr "状态栏(_t)" #: ../src/shell/ario-shell.c:219 msgid "Upper part" msgstr "上部分" #: ../src/shell/ario-shell.c:825 msgid "GTK client for MPD" msgstr "MPD 的 GTK 客户端" #: ../src/shell/ario-shell.c:826 msgid "translator-credits" msgstr "" "Launchpad Contributions:\n" " Aron Xu https://launchpad.net/~happyaron\n" " Hong Hao https://launchpad.net/~oahong\n" " Lechuan https://launchpad.net/~lechuan\n" " Marc Pavot https://launchpad.net/~marc-pavot\n" " Tao Wei https://launchpad.net/~weitao1979\n" " Xiaojun Deng https://launchpad.net/~hktang\n" " inkview https://launchpad.net/~inkview\n" " luojie-dune https://launchpad.net/~luojie-dune\n" " sxdhaoren https://launchpad.net/~hupengnihao\n" " 冯超 https://launchpad.net/~rainofchaos" #. Create plugins configuration dialog window #: ../src/shell/ario-shell.c:1278 msgid "Configure Plugins" msgstr "配置插件" #. Set window properties #: ../src/shell/ario-shell-coverdownloader.c:187 msgid "Music Player Cover Download" msgstr "音乐播放器封面下载" #: ../src/shell/ario-shell-coverdownloader.c:332 msgid "Download Finished!" msgstr "下载完毕!" #. We show the numbers of covers found and not found #: ../src/shell/ario-shell-coverdownloader.c:335 #, c-format msgid "" "%i covers found\n" "%i covers not found\n" "%i covers already exist" msgstr "" "%i 个封面已找到\n" "%i 个封面未找到\n" "%i 个封面已存在" #. Set window properties #: ../src/shell/ario-shell-coverselect.c:242 msgid "Cover Download" msgstr "封面下载" #: ../src/shell/ario-shell-coverselect.c:559 msgid "Error reading file" msgstr "读文件出错" #: ../src/shell/ario-shell-coverselect.c:584 msgid "Error saving file" msgstr "保存文件时出错" #: ../src/shell/ario-shell-lyrics.c:43 #: ../src/shell/ario-shell-preferences.c:133 #: ../src/shell/ario-shell-songinfos.c:272 msgid "Lyrics" msgstr "歌词" #: ../src/shell/ario-shell-lyricsselect.c:152 msgid "Lyrics Download" msgstr "歌词下载" #: ../src/shell/ario-shell-preferences.c:81 msgid "Ario Preferences" msgstr "Ario首选项" #: ../src/shell/ario-shell-preferences.c:113 msgid "Server" msgstr "服务器" #: ../src/shell/ario-shell-preferences.c:143 msgid "Others" msgstr "其他" #: ../src/shell/ario-shell-similarartists.c:318 #, c-format msgid "%d songs" msgstr "%d 首歌" #. Set window properties #. Set window title #: ../src/shell/ario-shell-songinfos.c:249 #: ../src/shell/ario-shell-songinfos.c:266 #: ../src/shell/ario-shell-songinfos.c:544 msgid "Song Properties" msgstr "歌曲属性" #: ../src/shell/ario-shell-songinfos.c:455 msgid "Error saving tags of file:" msgstr "" #: ../src/widgets/ario-connection-widget.c:652 msgid "You must select a server." msgstr "必须选择一个服务器" #: ../src/widgets/ario-connection-widget.c:702 msgid "New Profile" msgstr "新建配置" #: ../src/widgets/ario-firstlaunch.c:82 msgid "The following configuration will be used:" msgstr "以下配置将会被使用:" #: ../src/widgets/ario-firstlaunch.c:106 msgid "" "It is the first time you launch Ario.\n" "This assistant will help you to configure it." msgstr "" "这是你第一次启动 Ario。\n" "这个助手将会帮助你配置它。" #: ../src/widgets/ario-firstlaunch.c:111 msgid "Welcome to Ario" msgstr "欢迎使用 Ario" #: ../src/widgets/ario-firstlaunch.c:129 msgid "Configuration" msgstr "配置" #: ../src/widgets/ario-firstlaunch.c:141 msgid "Confirmation" msgstr "确认" #: ../src/widgets/ario-header.c:66 ../src/widgets/ario-tray-icon.h:42 #, c-format msgid "from %s by %s" msgstr " %s %s" #: ../src/widgets/ario-header.c:199 msgid "Play previous song" msgstr "播放上一首歌" #: ../src/widgets/ario-header.c:217 msgid "Play/Pause the music" msgstr "播放/暂停音乐" #: ../src/widgets/ario-header.c:229 msgid "Stop the music" msgstr "停止音乐" #. Translators - This " of " is used to count the elapsed time #. of a song like in "00:59 of 03:24" #: ../src/widgets/ario-header.c:310 ../src/widgets/ario-tooltip.c:321 msgid " of " msgstr " 共 " #: ../src/widgets/ario-header.c:323 msgid "Toggle random on/off" msgstr "开启/关闭随机播放" #: ../src/widgets/ario-header.c:335 msgid "Toggle repeat on/off" msgstr "开启/关闭重复播放" #: ../src/widgets/ario-header.c:340 msgid "Change the music volume" msgstr "更改音量" #: ../src/widgets/ario-lyrics-editor.c:323 msgid "Downloading lyrics..." msgstr "正在下载歌词…" #: ../src/widgets/ario-lyrics-editor.c:351 msgid "Lyrics not found" msgstr "歌词未找到" #: ../src/widgets/ario-playlist.c:133 msgid "_Clear" msgstr "清除(_C)" #: ../src/widgets/ario-playlist.c:136 msgid "_Shuffle" msgstr "随机播放(_S)" #: ../src/widgets/ario-playlist.c:139 msgid "Cr_op" msgstr "" #: ../src/widgets/ario-playlist.c:142 msgid "_Search in playlist" msgstr "在播放列表中搜索(_S)" #: ../src/widgets/ario-playlist.c:145 msgid "_Remove" msgstr "移除(_R)" #: ../src/widgets/ario-playlist.c:148 msgid "_Save" msgstr "保存(_S)" #: ../src/widgets/ario-playlist.c:154 msgid "_Go to playing song" msgstr "转到正在播放(_G)" #: ../src/widgets/ario-playlist.c:667 msgid "Filter:" msgstr "" #. Create the widgets #: ../src/widgets/ario-playlist.c:1700 msgid "Save playlist" msgstr "保存播放列表" #: ../src/widgets/ario-playlist.c:1710 msgid "Playlist name :" msgstr "播放列表名称:" #: ../src/widgets/ario-playlist.c:1746 msgid "Playlist already exists. Do you want to overwrite it?" msgstr "播放列表已存在。是否覆盖?" #. Format status bar message #: ../src/widgets/ario-status-bar.c:96 msgid "Songs" msgstr "歌曲" #: ../src/widgets/ario-tray-icon.c:102 msgid "_Play" msgstr "播放(_P)" #: ../src/widgets/ario-tray-icon.c:105 msgid "_Pause" msgstr "暂停(_P)" #: ../src/widgets/ario-tray-icon.c:108 msgid "_Stop" msgstr "停止(_S)" #: ../src/widgets/ario-tray-icon.c:111 msgid "_Next" msgstr "下一首(_N)" #: ../src/widgets/ario-tray-icon.c:114 msgid "P_revious" msgstr "上一首(_r)" #: ../src/widgets/ario-tray-icon.h:41 msgid "Not playing" msgstr "未播放" #. Translators: "friendly time" string for the current day, strftime format. like "Today 12:34 am" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1179 msgid "Today %I:%M %p" msgstr "今天 %I:%M %p" #. Translators: "friendly time" string for the previous day, #. * strftime format. e.g. "Yesterday 12:34 am" #. #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1192 msgid "Yesterday %I:%M %p" msgstr "昨天 %I:%M %p" #. Translators: "friendly time" string for a day in the current week, #. * strftime format. e.g. "Wed 12:34 am" #. #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1208 msgid "%a %I:%M %p" msgstr "%a %I:%M %p" #. Translators: "friendly time" string for a day in the current year, #. * strftime format. e.g. "Feb 12 12:34 am" #. #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1220 msgid "%b %d %I:%M %p" msgstr "%b %d %I:%M %p" #. Translators: "friendly time" string for a day in a different year, #. * strftime format. e.g. "Feb 12 1997" #. #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1225 msgid "%b %d %Y" msgstr "%b %d %Y" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1311 #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:4 msgid "Never" msgstr "从不" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1335 msgid "OK" msgstr "确定" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1338 msgid "Logging in" msgstr "登录" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1341 msgid "Request failed" msgstr "请求失败" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1344 msgid "Incorrect username" msgstr "用户名不正确" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1347 msgid "Incorrect password" msgstr "密码不正确" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1350 msgid "Handshake failed" msgstr "握手失败" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1353 msgid "Client update required" msgstr "需要更新客户端" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1356 msgid "Track submission failed" msgstr "音轨提交失败" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1359 msgid "Queue is too long" msgstr "队列太长" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1362 msgid "Track submission failed too many times" msgstr "音轨提交失败的次数太多" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1417 msgid "Audioscrobbler preferences" msgstr "同乐会首选项" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:1 msgid "Disabled" msgstr "已禁用" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:2 msgid "Last submission time:" msgstr "上次提交时间:" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:3 msgid "Last.fm Profile" msgstr "Last.fm 配置文件" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:6 msgid "Queued tracks:" msgstr "队列中的音轨:" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:7 msgid "Status:" msgstr "状态:" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:8 msgid "Tracks submitted:" msgstr "提交的音轨数:" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:9 #: ../plugins/radios/ario-radio.c:168 msgid "Username :" msgstr "用户名:" #: ../plugins/audioscrobbler/audioscrobbler.ario-plugin.desktop.in.h:1 msgid "Last.fm" msgstr "Last.fm" #: ../plugins/audioscrobbler/audioscrobbler.ario-plugin.desktop.in.h:2 msgid "Submits song information to last.fm" msgstr "将歌曲信息提交至 last.fm" #: ../plugins/filesystem/ario-filesystem.c:158 msgid "File System" msgstr "文件系统" #: ../plugins/filesystem/ario-filesystem.c:422 msgid "Music" msgstr "音乐" #: ../plugins/filesystem/filesystem.ario-plugin.desktop.in.h:1 msgid "A File System Browser" msgstr "一个文件浏览器" #: ../plugins/filesystem/filesystem.ario-plugin.desktop.in.h:2 msgid "File System Browser" msgstr "文件浏览器" #: ../plugins/information/ario-information.c:114 msgid "Information" msgstr "信息" #: ../plugins/information/information.ario-plugin.desktop.in.h:1 msgid "Display various information about the playing song" msgstr "显示此歌曲的各项信息" #: ../plugins/information/information.ario-plugin.desktop.in.h:2 msgid "Song Information" msgstr "歌曲信息" #: ../plugins/information/information.ui.h:2 msgid "Albums from this artist:" msgstr "此歌手的专辑“" #: ../plugins/information/information.ui.h:5 msgid "Lyrics:" msgstr "歌词:" #: ../plugins/libnotify/libnotify.ario-plugin.desktop.in.h:1 msgid "Add libnotify support" msgstr "添加对libnotify的支持" #: ../plugins/libnotify/libnotify.ario-plugin.desktop.in.h:2 msgid "Libnotify" msgstr "Libnotify" #: ../plugins/mmkeys/mmkeys.ario-plugin.desktop.in.h:1 msgid "Add multimedia keys support" msgstr "添加多媒体键支持" #: ../plugins/mmkeys/mmkeys.ario-plugin.desktop.in.h:2 msgid "Multimedia Keys" msgstr "多媒体键" #: ../plugins/radios/ario-radio.c:125 msgid "Add a _new radio" msgstr "添加新的广播频道" #: ../plugins/radios/ario-radio.c:128 msgid "_Delete this radios" msgstr "删除这个广播频道" #: ../plugins/radios/ario-radio.c:166 msgid "Last.fm: Radio of similar artists" msgstr "Last.fm:相似艺人的电台" #: ../plugins/radios/ario-radio.c:167 msgid "Last.fm: Radio of group" msgstr "" #: ../plugins/radios/ario-radio.c:167 msgid "Group :" msgstr "" #: ../plugins/radios/ario-radio.c:168 msgid "Last.fm: Personal radio" msgstr "Last.fm:个人电台" #: ../plugins/radios/ario-radio.c:169 msgid "Last.fm: Radio of genre" msgstr "" #: ../plugins/radios/ario-radio.c:184 #: ../plugins/radios/radios.ario-plugin.desktop.in.h:2 msgid "Web Radios" msgstr "Web 广播" #: ../plugins/radios/ario-radio.c:246 msgid "Internet Radios" msgstr "Internet 广播" #. Create dialog window #: ../plugins/radios/ario-radio.c:774 msgid "Edit a WebRadio" msgstr "编辑一个 Web 广播" #: ../plugins/radios/ario-radio.c:787 ../plugins/radios/ario-radio.c:923 msgid "URL :" msgstr "URL :" #: ../plugins/radios/ario-radio.c:853 ../plugins/radios/ario-radio.c:997 msgid "Bad parameters. You must specify a name and a URL for the radio." msgstr "参数错误。必须指定电台的名称和 URL。" #. Create dialog window #: ../plugins/radios/ario-radio.c:883 msgid "Add a WebRadio" msgstr "添加一个 Web 广播" #: ../plugins/radios/ario-radio.c:1083 msgid "Are you sure you want to delete all the selected radios?" msgstr "确定删除所有选中的广播频道?" #: ../plugins/radios/radios.ario-plugin.desktop.in.h:1 msgid "Listen to webradios" msgstr "收听 Web 广播" #: ../plugins/wikipedia/ario-wikipedia-plugin.c:49 #: ../plugins/wikipedia/ario-wikipedia-plugin.c:50 msgid "Find artist on Wikipedia" msgstr "在维基百科(Wikipedia)上查找艺术家" #: ../plugins/wikipedia/ario-wikipedia-plugin.c:172 msgid "Wikipedia Plugin - Configuration" msgstr "维基百科(Wikipedia)插件配置" #: ../plugins/wikipedia/ario-wikipedia-plugin.c:181 msgid "Wikipedia language :" msgstr "维基百科(Wikipedia)语言:" #: ../plugins/wikipedia/wikipedia.ario-plugin.desktop.in.h:1 msgid "A plugin to search current artist on wikipedia" msgstr "在维基百科(Wikipedia)上收缩当前艺术家的插件" #: ../plugins/wikipedia/wikipedia.ario-plugin.desktop.in.h:2 msgid "Wikipedia" msgstr "维基百科" #~ msgid "Search songs in the library" #~ msgstr "在媒体库中搜索歌曲" #~ msgid "Add a search criteria" #~ msgstr "添加搜索条件" #~ msgid "Remove a search criteria" #~ msgstr "移除搜索条件" ario-1.6/po/pt.po0000644000175000017500000010430713226723435010650 00000000000000# Portuguese translation for ario # Copyright (c) 2008 Rosetta Contributors and Canonical Ltd 2008 # This file is distributed under the same license as the ario package. # FIRST AUTHOR , 2008. # msgid "" msgstr "" "Project-Id-Version: ario\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2011-06-13 18:15+0200\n" "PO-Revision-Date: 2010-07-25 04:04+0000\n" "Last-Translator: Rhubeni Lopes de Andrade \n" "Language-Team: Portuguese \n" "Language: pt\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2011-06-13 16:32+0000\n" "X-Generator: Launchpad (build 13175)\n" #: ../data/ario.desktop.in.in.h:1 msgid "Ario music player" msgstr "Reprodutor de música Ario" #: ../data/ario.desktop.in.in.h:2 msgid "Client application to mpd" msgstr "Aplicação cliente para mpd" #: ../data/ui/browser-prefs.ui.h:1 msgid "Alphabetically" msgstr "Alfabeticamente" #: ../data/ui/browser-prefs.ui.h:2 msgid "By year" msgstr "Por ano" #: ../data/ui/browser-prefs.ui.h:3 msgid "Library Options" msgstr "Opções de Biblioteca" #: ../data/ui/browser-prefs.ui.h:4 msgid "Library Organisation" msgstr "Organização da Biblioteca" #: ../data/ui/browser-prefs.ui.h:5 msgid "Sort albums: " msgstr "Ordenar álbums: " #: ../data/ui/connection-autodetect.ui.h:1 msgid "" "If you don't see your MPD server thanks to the automatic detection, you " "should check that zeroconf is activated in your MPD configuration or use the " "manual configuration." msgstr "" "Se não vê o seu servidor MPD com a configuração automática deve verificar se " "zeroconf está activado na sua configuração do MPD ou usar a configuração " "manual." #: ../data/ui/connection-autodetect.ui.h:2 msgid "Server autodetection" msgstr "Detectar automaticamente servidor" #: ../data/ui/connection-widget.ui.h:1 msgid "Auto detect" msgstr "Detectar automaticamente" #: ../data/ui/connection-widget.ui.h:2 msgid "Default" msgstr "Predefinido" #: ../data/ui/connection-widget.ui.h:3 ../src/widgets/ario-firstlaunch.c:83 msgid "Host :" msgstr "Máquina:" #: ../data/ui/connection-widget.ui.h:4 msgid "Music directory :" msgstr "Directório de musica:" #: ../data/ui/connection-widget.ui.h:5 msgid "Music server is on the same computer as Ario" msgstr "Servidor de música está no mesmo computador que Ario" #. Create the widgets #: ../data/ui/connection-widget.ui.h:6 ../plugins/radios/ario-radio.c:786 #: ../plugins/radios/ario-radio.c:922 msgid "Name :" msgstr "Nome :" #: ../data/ui/connection-widget.ui.h:7 #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:5 msgid "Password :" msgstr "Senha :" #: ../data/ui/connection-widget.ui.h:8 ../src/widgets/ario-firstlaunch.c:85 msgid "Port :" msgstr "Porto :" #: ../data/ui/connection-widget.ui.h:9 msgid "Server type :" msgstr "Tipo de servidor :" #: ../data/ui/connection-widget.ui.h:10 msgid "Timeout :" msgstr "" #: ../data/ui/connection-widget.ui.h:11 msgid "XMMS 2 (Experimental)" msgstr "XMMS 2 (Experimental)" #: ../data/ui/cover-prefs.ui.h:1 msgid "Automatically download the album cover of the playing song" msgstr "" "Automaticamente fazer o download da capa do álbum da música que está a tocar" #: ../data/ui/cover-prefs.ui.h:2 ../src/shell/ario-shell-preferences.c:128 msgid "Covers" msgstr "Capas" #: ../data/ui/cover-prefs.ui.h:3 msgid "Covers Sources" msgstr "Fontes das Capas" #: ../data/ui/cover-prefs.ui.h:4 msgid "Show the covers in the albums list" msgstr "Mostrar as capas na lista de álbuns" #: ../data/ui/cover-prefs.ui.h:5 msgid "Use Amazon." msgstr "Usar Amazon." #: ../data/ui/connection-prefs.ui.h:1 #: ../src/shell/ario-shell-preferences.c:108 msgid "Connection" msgstr "Ligação" #: ../data/ui/connection-prefs.ui.h:2 msgid "_Autoconnect on startup" msgstr "Ligar _Automaticamente ao iniciar" #: ../data/ui/connection-prefs.ui.h:3 ../src/shell/ario-shell.c:167 msgid "_Connect" msgstr "_Ligar" #: ../data/ui/connection-prefs.ui.h:4 ../src/shell/ario-shell.c:170 msgid "_Disconnect" msgstr "_Desligar" #: ../data/ui/connection-assistant.ui.h:1 msgid "" "You need to specify a server to connect to. If you don't see your server " "thanks to the autodetection, you should check that zeroconf/avahi is " "activated in your server or use the manual configuration." msgstr "" "Terá que especificar um servidor para onde conectar. Se não vir o seu " "servidor pela autodetecção, deverá verificar se zeroconf/avahi está activado " "no seu servidor ou use a configuração manual." #: ../data/ui/cover-progress.ui.h:1 ../data/ui/cover-select.ui.h:1 #: ../data/ui/song-infos.ui.h:1 ../plugins/information/information.ui.h:1 msgid "Album :" msgstr "Álbum :" #: ../data/ui/cover-progress.ui.h:2 ../data/ui/cover-select.ui.h:2 #: ../data/ui/lyrics-select.ui.h:1 ../data/ui/song-infos.ui.h:3 #: ../plugins/information/information.ui.h:3 #: ../plugins/radios/ario-radio.c:166 msgid "Artist :" msgstr "Artista :" #: ../data/ui/cover-progress.ui.h:3 msgid "Downloading cover" msgstr "Transferir capa" #: ../data/ui/cover-select.ui.h:3 msgid "Local search" msgstr "Pesquisa local" #: ../data/ui/cover-select.ui.h:4 ../src/sources/ario-search.c:108 msgid "Search" msgstr "Procurar" #: ../data/ui/others-prefs.ui.h:1 msgid "Allow only one instance of Ario" msgstr "Permitir só uma instância do Ario" #: ../data/ui/others-prefs.ui.h:2 msgid "Hide window when close button is pressed" msgstr "Esconder janela quando o botão de fechar é pressionado" #: ../data/ui/others-prefs.ui.h:3 msgid "Interface" msgstr "Interface" #: ../data/ui/others-prefs.ui.h:4 msgid "Playlist at the right of tabs" msgstr "" #: ../data/ui/others-prefs.ui.h:5 msgid "Playlist below tabs" msgstr "" #: ../data/ui/others-prefs.ui.h:6 msgid "Playlist within tabs" msgstr "" #: ../data/ui/others-prefs.ui.h:7 msgid "Proxy" msgstr "Proxy" #: ../data/ui/others-prefs.ui.h:8 msgid "Proxy Address :" msgstr "Morada da Proxy :" #: ../data/ui/others-prefs.ui.h:9 msgid "Proxy Port :" msgstr "Porto da Proxy :" #: ../data/ui/others-prefs.ui.h:10 msgid "Show tabs" msgstr "Mostrar separadores" #: ../data/ui/others-prefs.ui.h:11 msgid "Use a proxy" msgstr "Usar uma proxy" #: ../data/ui/lyrics-prefs.ui.h:1 msgid "Lyrics Sources" msgstr "Origem das Letras" #: ../data/ui/lyrics-select.ui.h:2 ../data/ui/song-infos.ui.h:13 #: ../plugins/information/information.ui.h:6 msgid "Title :" msgstr "Título :" #: ../data/ui/playlist-prefs.ui.h:1 msgid "Add after playing song" msgstr "Adicionar depois de tocar uma música" #: ../data/ui/playlist-prefs.ui.h:2 msgid "Add and play" msgstr "Adicionar e tocar" #: ../data/ui/playlist-prefs.ui.h:3 ../data/ui/similar-artists.ui.h:2 msgid "Add to playlist" msgstr "Adicionar à lista de reprodução" #. ARIO_TAG_ARTIST #: ../data/ui/playlist-prefs.ui.h:4 ../src/servers/ario-server.c:46 #: ../src/sources/ario-tree-albums.c:213 ../src/widgets/ario-playlist.c:541 #: ../src/widgets/ario-songlist.c:228 ../src/widgets/ario-tray-icon.c:565 msgid "Album" msgstr "Álbum" #: ../data/ui/playlist-prefs.ui.h:5 ../src/servers/ario-server.c:45 #: ../src/widgets/ario-playlist.c:541 ../src/widgets/ario-songlist.c:213 #: ../src/widgets/ario-tray-icon.c:563 msgid "Artist" msgstr "Artista" #. ARIO_TAG_GENRE #: ../data/ui/playlist-prefs.ui.h:6 ../src/servers/ario-server.c:52 #: ../src/widgets/ario-playlist.c:541 msgid "Date" msgstr "Data" #: ../data/ui/playlist-prefs.ui.h:7 ../src/widgets/ario-playlist.c:541 msgid "Disc" msgstr "Disco" #: ../data/ui/playlist-prefs.ui.h:8 msgid "Double click" msgstr "Duplo Clique" #: ../data/ui/playlist-prefs.ui.h:9 ../src/widgets/ario-playlist.c:541 msgid "Duration" msgstr "Duração" #: ../data/ui/playlist-prefs.ui.h:10 ../src/widgets/ario-playlist.c:541 msgid "File" msgstr "Ficheiro" #. ARIO_TAG_TRACK #. ARIO_TAG_NAME #: ../data/ui/playlist-prefs.ui.h:11 ../src/servers/ario-server.c:51 #: ../src/widgets/ario-playlist.c:541 msgid "Genre" msgstr "Género" #: ../data/ui/playlist-prefs.ui.h:12 msgid "Go to current song when a new song is played" msgstr "Ir para a música actual quando uma nova música começa a tocar" #: ../data/ui/playlist-prefs.ui.h:13 msgid "Mode" msgstr "Modo" #: ../data/ui/playlist-prefs.ui.h:14 msgid "On double click:" msgstr "Com duplo clique:" #: ../data/ui/playlist-prefs.ui.h:15 ../src/sources/ario-storedplaylists.c:229 #: ../src/shell/ario-shell.c:222 ../src/shell/ario-shell-preferences.c:123 #: ../src/widgets/ario-playlist.c:272 msgid "Playlist" msgstr "Lista de Reprodução" #: ../data/ui/playlist-prefs.ui.h:16 msgid "Playlist mode:" msgstr "Modo da Lista de Reprodução:" #: ../data/ui/playlist-prefs.ui.h:17 msgid "Replace in playlist" msgstr "Subtituir na lista" #: ../data/ui/playlist-prefs.ui.h:18 msgid "Show rows:" msgstr "Mostrar filas:" #. ARIO_TAG_ALBUM_ARTIST #: ../data/ui/playlist-prefs.ui.h:19 ../src/servers/ario-server.c:48 #: ../src/sources/ario-tree-songs.c:145 ../src/widgets/ario-playlist.c:541 #: ../src/widgets/ario-songlist.c:198 ../src/widgets/ario-tray-icon.c:567 msgid "Title" msgstr "Título" #. ARIO_TAG_TITLE #: ../data/ui/playlist-prefs.ui.h:20 ../src/servers/ario-server.c:49 #: ../src/sources/ario-tree-songs.c:138 ../src/widgets/ario-playlist.c:541 msgid "Track" msgstr "Faixa" #: ../data/ui/server-prefs.ui.h:1 msgid "Audio outputs" msgstr "Saídas audio" #: ../data/ui/server-prefs.ui.h:2 msgid "Crossfade" msgstr "Transição" #: ../data/ui/server-prefs.ui.h:3 msgid "Database" msgstr "Base de Dados" #: ../data/ui/server-prefs.ui.h:4 msgid "Last updated:" msgstr "Última actualização:" #: ../data/ui/server-prefs.ui.h:5 msgid "Stop music on exit" msgstr "Parar música na saída" #: ../data/ui/server-prefs.ui.h:6 msgid "Update on startup" msgstr "Actualizar no arranque" #: ../data/ui/server-prefs.ui.h:7 msgid "_Update" msgstr "_Actualizar" #: ../data/ui/server-prefs.ui.h:8 msgid "enable crossfade" msgstr "activar transição" #: ../data/ui/server-prefs.ui.h:9 msgid "fade time (s):" msgstr "tempo (s) de desvanecimento:" #: ../data/ui/server-prefs.ui.h:10 ../src/ario-util.c:50 ../src/ario-util.c:71 #: ../src/ario-util.c:93 ../plugins/information/information.ui.h:7 #, c-format msgid "n/a" msgstr "n/a" #: ../data/ui/similar-artists.ui.h:1 msgid "Add all to playlist" msgstr "Adicionar todas à lista de reprodução" #: ../data/ui/similar-artists.ui.h:3 msgid "Find on Last.fm" msgstr "Descobrir no Last.fm" #: ../data/ui/stats-prefs.ui.h:1 msgid "Database play time :" msgstr "Duração de reprodução da base de dados :" #: ../data/ui/stats-prefs.ui.h:2 msgid "Number of albums :" msgstr "Número de álbuns :" #: ../data/ui/stats-prefs.ui.h:3 msgid "Number of artists :" msgstr "Número de artistas :" #: ../data/ui/stats-prefs.ui.h:4 msgid "Number of songs :" msgstr "Número de músicas :" #: ../data/ui/stats-prefs.ui.h:5 msgid "Play time :" msgstr "Tempo de reprodução :" #: ../data/ui/stats-prefs.ui.h:6 ../src/shell/ario-shell-preferences.c:148 msgid "Statistics" msgstr "Estatísticas" #: ../data/ui/stats-prefs.ui.h:7 msgid "Uptime :" msgstr "Tempo ligado :" #: ../data/ui/song-infos.ui.h:2 msgid "Album Artist :" msgstr "Artista do Album :" #: ../data/ui/song-infos.ui.h:4 msgid "Comment :" msgstr "Comentário :" #: ../data/ui/song-infos.ui.h:5 msgid "Composer :" msgstr "Compositor :" #: ../data/ui/song-infos.ui.h:6 msgid "Date :" msgstr "Data :" #: ../data/ui/song-infos.ui.h:7 msgid "Disc :" msgstr "Disco :" #: ../data/ui/song-infos.ui.h:8 msgid "Filename :" msgstr "Nome do ficheiro :" #: ../data/ui/song-infos.ui.h:9 ../plugins/radios/ario-radio.c:169 msgid "Genre :" msgstr "Género :" #: ../data/ui/song-infos.ui.h:10 ../plugins/information/information.ui.h:4 msgid "Length :" msgstr "Duração :" #: ../data/ui/song-infos.ui.h:11 msgid "Performer :" msgstr "Artista :" #: ../data/ui/song-infos.ui.h:12 msgid "Song" msgstr "Música" #: ../data/ui/song-infos.ui.h:14 msgid "Track :" msgstr "Faixa :" #: ../data/ui/trayicon-prefs.ui.h:1 msgid "Do nothing" msgstr "Não fazer nada" #: ../data/ui/trayicon-prefs.ui.h:2 msgid "Mute" msgstr "Silêncio" #: ../data/ui/trayicon-prefs.ui.h:3 ../src/shell/ario-shell-preferences.c:138 msgid "Notification" msgstr "Notificação" #: ../data/ui/trayicon-prefs.ui.h:4 msgid "Notification on song change" msgstr "Notificação na mudança de música" #: ../data/ui/trayicon-prefs.ui.h:5 msgid "Notification time: " msgstr "Tempo de notificação: " #: ../data/ui/trayicon-prefs.ui.h:6 msgid "On middle button click on tray icon :" msgstr "Ao clicar com o botão do meio no ícone do tabuleiro:" #: ../data/ui/trayicon-prefs.ui.h:7 ../src/widgets/ario-header.c:241 msgid "Play next song" msgstr "Reproduzir a música seguinte" #: ../data/ui/trayicon-prefs.ui.h:8 msgid "Play/Pause" msgstr "Reproduzir/Pausa" #: ../data/ui/trayicon-prefs.ui.h:9 msgid "Tray icon" msgstr "Ícone de bandeja" #: ../src/ario-main.c:67 msgid "Start minimized window" msgstr "Iniciar janela minimizada" #: ../src/ario-main.c:68 msgid "Start with specific profile" msgstr "" #. Format result string #: ../src/ario-util.c:110 msgid "seconds" msgstr "segundos" #: ../src/ario-util.c:112 msgid "minutes" msgstr "minutos" #: ../src/ario-util.c:118 msgid "hours" msgstr "horas" #: ../src/ario-util.c:124 msgid "days" msgstr "dias" #: ../src/covers/ario-cover.c:149 msgid "The cover already exists. Do you want to replace it?" msgstr "Esta capa já existe. Deseja substitui-la?" #: ../src/covers/ario-cover-local.c:48 msgid "Music Directory" msgstr "Directoria de Música" #: ../src/playlist/ario-playlist-dynamic.c:49 msgid "songs of same artist" msgstr "músicas do mesmo artista" #: ../src/playlist/ario-playlist-dynamic.c:50 msgid "songs of same album" msgstr "músicas do mesmo álbum" #: ../src/playlist/ario-playlist-dynamic.c:51 msgid "songs of similar artists" msgstr "músicas de artistas semelhantes" #: ../src/playlist/ario-playlist-dynamic.c:52 msgid "albums of same artists" msgstr "álbuns dos mesmos artistas" #: ../src/playlist/ario-playlist-dynamic.c:53 msgid "albums of similar artists" msgstr "álbuns de artistas semelhantes" #: ../src/playlist/ario-playlist-dynamic.c:69 msgid "Dynamic Playlist" msgstr "Lista de Reprodução Dinâmica" #: ../src/playlist/ario-playlist-queue.c:49 msgid "Queue Mode" msgstr "Mode de Lista de Reprodução" #: ../src/playlist/ario-playlist-normal.c:47 msgid "Normal" msgstr "Normal" #: ../src/plugins/ario-plugin-manager.c:45 msgid "Plugin" msgstr "Plugin" #: ../src/plugins/ario-plugin-manager.c:46 msgid "Enabled" msgstr "Activado" #: ../src/plugins/ario-plugin-manager.c:480 ../src/shell/ario-shell.c:206 msgid "_About" msgstr "_Sobre" #: ../src/plugins/ario-plugin-manager.c:488 msgid "C_onfigure" msgstr "C_onfigurar" #: ../src/plugins/ario-plugin-manager.c:497 msgid "A_ctivate" msgstr "A_ctivar" #: ../src/plugins/ario-plugin-manager.c:508 msgid "Ac_tivate All" msgstr "Ac_tivar Todos" #: ../src/plugins/ario-plugin-manager.c:513 msgid "_Deactivate All" msgstr "_Desactivar Todos" #: ../src/plugins/ario-plugin-manager.c:722 msgid "Active plugins" msgstr "Plugins activos" #: ../src/preferences/ario-server-preferences.c:182 #: ../src/preferences/ario-stats-preferences.c:151 #: ../src/preferences/ario-stats-preferences.c:152 #: ../src/preferences/ario-stats-preferences.c:153 #: ../src/preferences/ario-stats-preferences.c:154 #: ../src/preferences/ario-stats-preferences.c:155 #: ../src/preferences/ario-stats-preferences.c:156 msgid "Not connected" msgstr "Não ligado" #: ../src/preferences/ario-server-preferences.c:187 #: ../src/preferences/ario-server-preferences.c:278 #: ../src/widgets/ario-status-bar.c:100 msgid "Updating..." msgstr "A actualizar..." #: ../src/servers/ario-mpd.c:410 ../src/servers/ario-mpd2.c:522 msgid "Connecting to server..." msgstr "A ligar ao servidor..." #: ../src/servers/ario-mpd.c:438 ../src/servers/ario-mpd2.c:550 msgid "Impossible to connect to server. Check the connection options." msgstr "Impossível ligar ao servidor. Verifique as opções de ligação." #. ARIO_TAG_ALBUM #: ../src/servers/ario-server.c:47 msgid "Album Artist" msgstr "Artista do Álbum" #. ARIO_TAG_DATE #: ../src/servers/ario-server.c:53 msgid "Composer" msgstr "Compositor" #. ARIO_TAG_COMPOSER #: ../src/servers/ario-server.c:54 msgid "Performer" msgstr "Intérprete" #. ARIO_TAG_PERFORMER #. ARIO_TAG_COMMENT #. ARIO_TAG_DISC #: ../src/servers/ario-server.c:57 msgid "Filename" msgstr "Nome do ficheiro" #. ARIO_TAG_FILENAME #: ../src/servers/ario-server.c:58 msgid "Any" msgstr "Qualquer" #. impossible time or broken locale settings #: ../src/servers/ario-server.h:27 #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1235 msgid "Unknown" msgstr "Desconhecido" #: ../src/sources/ario-browser.c:82 ../src/sources/ario-search.c:70 #: ../src/sources/ario-storedplaylists.c:88 #: ../src/sources/ario-storedplaylists.c:106 #: ../plugins/filesystem/ario-filesystem.c:94 #: ../plugins/filesystem/ario-filesystem.c:109 #: ../plugins/radios/ario-radio.c:116 msgid "_Add to playlist" msgstr "_Adicionar à lista de reprodução" #: ../src/sources/ario-browser.c:85 ../src/sources/ario-search.c:73 #: ../src/sources/ario-storedplaylists.c:91 #: ../src/sources/ario-storedplaylists.c:109 #: ../plugins/filesystem/ario-filesystem.c:97 #: ../plugins/filesystem/ario-filesystem.c:112 #: ../plugins/radios/ario-radio.c:119 msgid "Add and _play" msgstr "Adicionar e _tocar" #: ../src/sources/ario-browser.c:88 ../src/sources/ario-search.c:76 #: ../src/sources/ario-storedplaylists.c:94 #: ../src/sources/ario-storedplaylists.c:112 #: ../plugins/filesystem/ario-filesystem.c:100 #: ../plugins/filesystem/ario-filesystem.c:115 #: ../plugins/radios/ario-radio.c:122 msgid "_Replace in playlist" msgstr "_Substituir na lista" #: ../src/sources/ario-browser.c:91 msgid "Get the covers" msgstr "Obter as capas" #: ../src/sources/ario-browser.c:94 msgid "_Delete the covers" msgstr "_Eliminar as capas" #: ../src/sources/ario-browser.c:97 ../src/sources/ario-browser.c:100 #: ../src/sources/ario-search.c:79 ../src/sources/ario-storedplaylists.c:115 #: ../src/widgets/ario-playlist.c:151 #: ../plugins/filesystem/ario-filesystem.c:118 #: ../plugins/radios/ario-radio.c:131 msgid "_Properties" msgstr "_Propriedades" #: ../src/sources/ario-browser.c:125 ../src/shell/ario-shell-preferences.c:118 msgid "Library" msgstr "Biblioteca" #: ../src/sources/ario-storedplaylists.c:97 msgid "_Delete" msgstr "_Apagar" #: ../src/sources/ario-storedplaylists.c:151 msgid "Playlists" msgstr "Listas de reprodução" #: ../src/sources/ario-storedplaylists.c:592 msgid "Are you sure that you want to delete all the selected playlists?" msgstr "" "Têm a certeza que deseja apagar todas as listas de reprodução seleccionadas?" #: ../src/sources/ario-tree.c:856 msgid "Are you sure that you want to remove all the selected covers?" msgstr "Tem certeza que quer remover todas as capas seleccionadas?" #. Translators - This "Cover" refers to an album cover art #: ../src/sources/ario-tree-albums.c:199 msgid "Cover" msgstr "Capa" #: ../src/shell/ario-shell.c:160 msgid "_File" msgstr "_Ficheiro" #: ../src/shell/ario-shell.c:161 msgid "_Edit" msgstr "_Editar" #: ../src/shell/ario-shell.c:162 msgid "_View" msgstr "_Ver" #: ../src/shell/ario-shell.c:163 msgid "_Control" msgstr "_Controle" #: ../src/shell/ario-shell.c:164 msgid "_Tool" msgstr "_Ferramenta" #: ../src/shell/ario-shell.c:165 msgid "_Help" msgstr "_Ajuda" #: ../src/shell/ario-shell.c:173 msgid "_Update database" msgstr "Act_ualizar base de dados" #: ../src/shell/ario-shell.c:176 msgid "_Quit" msgstr "_Sair" #: ../src/shell/ario-shell.c:179 msgid "Plu_gins" msgstr "Plu_gins" #: ../src/shell/ario-shell.c:182 msgid "Prefere_nces" msgstr "Preferê_ncias" #: ../src/shell/ario-shell.c:185 msgid "_Change current album cover" msgstr "_Modificar a capa do álbum actual" #: ../src/shell/ario-shell.c:188 msgid "Download album _covers" msgstr "Transferir _capas dos álbuns" #: ../src/shell/ario-shell.c:191 msgid "Find similar artists" msgstr "Encontrar artistas semelhantes" #: ../src/shell/ario-shell.c:194 msgid "Add similar songs to playlist" msgstr "Adicionar músicas semelhantes à lista de reprodução" #: ../src/shell/ario-shell.c:197 msgid "Go to _previous tab" msgstr "Vá para a guia _anterior" #: ../src/shell/ario-shell.c:200 msgid "Go to _next tab" msgstr "Vá para a guia _próximo" #: ../src/shell/ario-shell.c:203 msgid "Show _lyrics" msgstr "Mostrar _letras" #: ../src/shell/ario-shell.c:209 msgid "_Translate this application..." msgstr "_Traduzir esta aplicação..." #: ../src/shell/ario-shell.c:216 msgid "S_tatusbar" msgstr "Barra de es_tado" #: ../src/shell/ario-shell.c:219 msgid "Upper part" msgstr "Parte superior" #: ../src/shell/ario-shell.c:825 msgid "GTK client for MPD" msgstr "Cliente GTK para MPD" #: ../src/shell/ario-shell.c:826 msgid "translator-credits" msgstr "" "Launchpad Contributions:\n" " Alexandre Jesus https://launchpad.net/~alexandremrj\n" " Diogo Lavareda https://launchpad.net/~diogolavareda\n" " Marc Pavot https://launchpad.net/~marc-pavot\n" " Rhubeni Lopes de Andrade https://launchpad.net/~rhube-itsasecret\n" " Ricardo Martins https://launchpad.net/~meqif\n" " Tiago Silva https://launchpad.net/~tiagosilva\n" " VCarvalho https://launchpad.net/~v-carvalho\n" " asensio https://launchpad.net/~asensio\n" " nitrofurano https://launchpad.net/~nitrofurano-3t" #. Create plugins configuration dialog window #: ../src/shell/ario-shell.c:1278 msgid "Configure Plugins" msgstr "Configurar Plugins" #. Set window properties #: ../src/shell/ario-shell-coverdownloader.c:187 msgid "Music Player Cover Download" msgstr "Descarregar Capas Music Player" #: ../src/shell/ario-shell-coverdownloader.c:332 msgid "Download Finished!" msgstr "Transferência Terminada!" #. We show the numbers of covers found and not found #: ../src/shell/ario-shell-coverdownloader.c:335 #, c-format msgid "" "%i covers found\n" "%i covers not found\n" "%i covers already exist" msgstr "" "%i capas encontradas\n" "%i capas não encontradas\n" "%i capas já existentes" #. Set window properties #: ../src/shell/ario-shell-coverselect.c:242 msgid "Cover Download" msgstr "Transferência da Capa" #: ../src/shell/ario-shell-coverselect.c:559 msgid "Error reading file" msgstr "Erro ao ler ficheiro" #: ../src/shell/ario-shell-coverselect.c:584 msgid "Error saving file" msgstr "Erro ao gravar ficheiro" #: ../src/shell/ario-shell-lyrics.c:43 #: ../src/shell/ario-shell-preferences.c:133 #: ../src/shell/ario-shell-songinfos.c:272 msgid "Lyrics" msgstr "Letras" #: ../src/shell/ario-shell-lyricsselect.c:152 msgid "Lyrics Download" msgstr "Transferência da Letra" #: ../src/shell/ario-shell-preferences.c:81 msgid "Ario Preferences" msgstr "Preferências Ario" #: ../src/shell/ario-shell-preferences.c:113 msgid "Server" msgstr "Servidor" #: ../src/shell/ario-shell-preferences.c:143 msgid "Others" msgstr "Outros" #: ../src/shell/ario-shell-similarartists.c:318 #, c-format msgid "%d songs" msgstr "%d músicas" #. Set window properties #. Set window title #: ../src/shell/ario-shell-songinfos.c:249 #: ../src/shell/ario-shell-songinfos.c:266 #: ../src/shell/ario-shell-songinfos.c:544 msgid "Song Properties" msgstr "Propriedades da Música" #: ../src/shell/ario-shell-songinfos.c:455 msgid "Error saving tags of file:" msgstr "Erro ao salvar as tags do ficheiro:" #: ../src/widgets/ario-connection-widget.c:652 msgid "You must select a server." msgstr "Tem de seleccionar um servidor." #: ../src/widgets/ario-connection-widget.c:702 msgid "New Profile" msgstr "Novo Perfil" #: ../src/widgets/ario-firstlaunch.c:82 msgid "The following configuration will be used:" msgstr "A seguinte configuração irá ser usada:" #: ../src/widgets/ario-firstlaunch.c:106 msgid "" "It is the first time you launch Ario.\n" "This assistant will help you to configure it." msgstr "" "É a primeira vez que lança o Ario.\n" "Este assistente vai ajudar a configurá-lo." #: ../src/widgets/ario-firstlaunch.c:111 msgid "Welcome to Ario" msgstr "Bem-vindo ao Ario" #: ../src/widgets/ario-firstlaunch.c:129 msgid "Configuration" msgstr "Configuração" #: ../src/widgets/ario-firstlaunch.c:141 msgid "Confirmation" msgstr "Confirmação" #: ../src/widgets/ario-header.c:66 ../src/widgets/ario-tray-icon.h:42 #, c-format msgid "from %s by %s" msgstr "de %s por %s" #: ../src/widgets/ario-header.c:199 msgid "Play previous song" msgstr "Reproduzir a música anterior" #: ../src/widgets/ario-header.c:217 msgid "Play/Pause the music" msgstr "Tocar/Pausar a música" #: ../src/widgets/ario-header.c:229 msgid "Stop the music" msgstr "Parar a música" #. Translators - This " of " is used to count the elapsed time #. of a song like in "00:59 of 03:24" #: ../src/widgets/ario-header.c:310 ../src/widgets/ario-tooltip.c:321 msgid " of " msgstr " de " #: ../src/widgets/ario-header.c:323 msgid "Toggle random on/off" msgstr "Alterar aleatório ligado/desligado" #: ../src/widgets/ario-header.c:335 msgid "Toggle repeat on/off" msgstr "Alterar repetir ligado/desligado" #: ../src/widgets/ario-header.c:340 msgid "Change the music volume" msgstr "Alterar o volume da música" #: ../src/widgets/ario-lyrics-editor.c:323 msgid "Downloading lyrics..." msgstr "Descarregando letras..." #: ../src/widgets/ario-lyrics-editor.c:351 msgid "Lyrics not found" msgstr "Letras não encontradas" #: ../src/widgets/ario-playlist.c:133 msgid "_Clear" msgstr "_Limpar" #: ../src/widgets/ario-playlist.c:136 msgid "_Shuffle" msgstr "_Baralhar" #: ../src/widgets/ario-playlist.c:139 msgid "Cr_op" msgstr "_Cortar" #: ../src/widgets/ario-playlist.c:142 msgid "_Search in playlist" msgstr "_Procurar na lista de reprodução" #: ../src/widgets/ario-playlist.c:145 msgid "_Remove" msgstr "_Remover" #: ../src/widgets/ario-playlist.c:148 msgid "_Save" msgstr "_Salvar" #: ../src/widgets/ario-playlist.c:154 msgid "_Go to playing song" msgstr "_Ir para música a tocar" #: ../src/widgets/ario-playlist.c:667 msgid "Filter:" msgstr "Filtar:" #. Create the widgets #: ../src/widgets/ario-playlist.c:1700 msgid "Save playlist" msgstr "Gravar a lista de reprodução" #: ../src/widgets/ario-playlist.c:1710 msgid "Playlist name :" msgstr "Nome da lista de reprodução :" #: ../src/widgets/ario-playlist.c:1746 msgid "Playlist already exists. Do you want to overwrite it?" msgstr "A lista de reprodução já existe. Deseja gravar por cima?" #. Format status bar message #: ../src/widgets/ario-status-bar.c:96 msgid "Songs" msgstr "Músicas" #: ../src/widgets/ario-tray-icon.c:102 msgid "_Play" msgstr "Re_produzir" #: ../src/widgets/ario-tray-icon.c:105 msgid "_Pause" msgstr "_Pausa" #: ../src/widgets/ario-tray-icon.c:108 msgid "_Stop" msgstr "P_arar" #: ../src/widgets/ario-tray-icon.c:111 msgid "_Next" msgstr "_Seguinte" #: ../src/widgets/ario-tray-icon.c:114 msgid "P_revious" msgstr "Ante_rior" #: ../src/widgets/ario-tray-icon.h:41 msgid "Not playing" msgstr "Parado" #. Translators: "friendly time" string for the current day, strftime format. like "Today 12:34 am" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1179 msgid "Today %I:%M %p" msgstr "Hoje %I:%M %p" #. Translators: "friendly time" string for the previous day, #. * strftime format. e.g. "Yesterday 12:34 am" #. #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1192 msgid "Yesterday %I:%M %p" msgstr "Ontem %I:%M %p" #. Translators: "friendly time" string for a day in the current week, #. * strftime format. e.g. "Wed 12:34 am" #. #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1208 msgid "%a %I:%M %p" msgstr "%a %I:%M %p" #. Translators: "friendly time" string for a day in the current year, #. * strftime format. e.g. "Feb 12 12:34 am" #. #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1220 msgid "%b %d %I:%M %p" msgstr "%b %d %I:%M %p" #. Translators: "friendly time" string for a day in a different year, #. * strftime format. e.g. "Feb 12 1997" #. #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1225 msgid "%b %d %Y" msgstr "%b %d %Y" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1311 #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:4 msgid "Never" msgstr "Nunca" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1335 msgid "OK" msgstr "Aceitar" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1338 msgid "Logging in" msgstr "A iniciar a sessão" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1341 msgid "Request failed" msgstr "O pedido falhou" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1344 msgid "Incorrect username" msgstr "Nome de utilizador incorrecto" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1347 msgid "Incorrect password" msgstr "Senha incorrecta" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1350 msgid "Handshake failed" msgstr "Protocolo mal sucedido" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1353 msgid "Client update required" msgstr "Necessário actualizar cliente" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1356 msgid "Track submission failed" msgstr "A submissão da faixa falhou" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1359 msgid "Queue is too long" msgstr "A fila é demasiado longa" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1362 msgid "Track submission failed too many times" msgstr "A submissão de faixa falhou demasiadas vezes" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1417 msgid "Audioscrobbler preferences" msgstr "Preferências do Audioscrobbler" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:1 msgid "Disabled" msgstr "Desactivado" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:2 msgid "Last submission time:" msgstr "Tempo da última submissão:" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:3 msgid "Last.fm Profile" msgstr "Perfil do Last.fm" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:6 msgid "Queued tracks:" msgstr "Faixas colocadas em fila de espera:" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:7 msgid "Status:" msgstr "Estado:" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:8 msgid "Tracks submitted:" msgstr "Faixas submetidas:" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:9 #: ../plugins/radios/ario-radio.c:168 msgid "Username :" msgstr "Nome de utilizador :" #: ../plugins/audioscrobbler/audioscrobbler.ario-plugin.desktop.in.h:1 msgid "Last.fm" msgstr "Last.fm" #: ../plugins/audioscrobbler/audioscrobbler.ario-plugin.desktop.in.h:2 msgid "Submits song information to last.fm" msgstr "Submeter informação da música para last.fm" #: ../plugins/filesystem/ario-filesystem.c:158 msgid "File System" msgstr "Sistema de Ficheiros" #: ../plugins/filesystem/ario-filesystem.c:422 msgid "Music" msgstr "Música" #: ../plugins/filesystem/filesystem.ario-plugin.desktop.in.h:1 msgid "A File System Browser" msgstr "Um Navegador do Sistema de Ficheiros" #: ../plugins/filesystem/filesystem.ario-plugin.desktop.in.h:2 msgid "File System Browser" msgstr "Navegador do Sistema de Ficheiros" #: ../plugins/information/ario-information.c:114 msgid "Information" msgstr "Informação" #: ../plugins/information/information.ario-plugin.desktop.in.h:1 msgid "Display various information about the playing song" msgstr "Mostrar várias informações sobre a música tocada" #: ../plugins/information/information.ario-plugin.desktop.in.h:2 msgid "Song Information" msgstr "Informação sobre a música" #: ../plugins/information/information.ui.h:2 msgid "Albums from this artist:" msgstr "Álbuns deste artista:" #: ../plugins/information/information.ui.h:5 msgid "Lyrics:" msgstr "Letras:" #: ../plugins/libnotify/libnotify.ario-plugin.desktop.in.h:1 msgid "Add libnotify support" msgstr "Adicionar suporte para libnotify" #: ../plugins/libnotify/libnotify.ario-plugin.desktop.in.h:2 msgid "Libnotify" msgstr "Libnotify" #: ../plugins/mmkeys/mmkeys.ario-plugin.desktop.in.h:1 msgid "Add multimedia keys support" msgstr "Adicionar suporte para teclas multimédia" #: ../plugins/mmkeys/mmkeys.ario-plugin.desktop.in.h:2 msgid "Multimedia Keys" msgstr "Teclas Multimédia" #: ../plugins/radios/ario-radio.c:125 msgid "Add a _new radio" msgstr "Adicionar uma _nova rádio" #: ../plugins/radios/ario-radio.c:128 msgid "_Delete this radios" msgstr "_Eliminar estes rádios" #: ../plugins/radios/ario-radio.c:166 msgid "Last.fm: Radio of similar artists" msgstr "Last.fm: Rádio ou artistas semelhantes" #: ../plugins/radios/ario-radio.c:167 msgid "Last.fm: Radio of group" msgstr "Last.fm: Rádio de grupo" #: ../plugins/radios/ario-radio.c:167 msgid "Group :" msgstr "Grupo:" #: ../plugins/radios/ario-radio.c:168 msgid "Last.fm: Personal radio" msgstr "Last.fm: Rádio pessoal" #: ../plugins/radios/ario-radio.c:169 msgid "Last.fm: Radio of genre" msgstr "Last.fm: Rádio de género" #: ../plugins/radios/ario-radio.c:184 #: ../plugins/radios/radios.ario-plugin.desktop.in.h:2 msgid "Web Radios" msgstr "Rádios Web" #: ../plugins/radios/ario-radio.c:246 msgid "Internet Radios" msgstr "Rádios Internet" #. Create dialog window #: ../plugins/radios/ario-radio.c:774 msgid "Edit a WebRadio" msgstr "Editar uma RádioWeb" #: ../plugins/radios/ario-radio.c:787 ../plugins/radios/ario-radio.c:923 msgid "URL :" msgstr "URL :" #: ../plugins/radios/ario-radio.c:853 ../plugins/radios/ario-radio.c:997 msgid "Bad parameters. You must specify a name and a URL for the radio." msgstr "Parâmetros errados. Tem de especificar um nome e um URL para o rádio." #. Create dialog window #: ../plugins/radios/ario-radio.c:883 msgid "Add a WebRadio" msgstr "Adicionar uma Rádio Internet" #: ../plugins/radios/ario-radio.c:1083 msgid "Are you sure you want to delete all the selected radios?" msgstr "Tem a certeza que deseja eliminar todas as rádios seleccionadas?" #: ../plugins/radios/radios.ario-plugin.desktop.in.h:1 msgid "Listen to webradios" msgstr "Ouvir rádiosweb" #: ../plugins/wikipedia/ario-wikipedia-plugin.c:49 #: ../plugins/wikipedia/ario-wikipedia-plugin.c:50 msgid "Find artist on Wikipedia" msgstr "Procurar artista na Wikipédia" #: ../plugins/wikipedia/ario-wikipedia-plugin.c:172 msgid "Wikipedia Plugin - Configuration" msgstr "Plugin Wikipédia - Configuração" #: ../plugins/wikipedia/ario-wikipedia-plugin.c:181 msgid "Wikipedia language :" msgstr "Idioma Wikipédia:" #: ../plugins/wikipedia/wikipedia.ario-plugin.desktop.in.h:1 msgid "A plugin to search current artist on wikipedia" msgstr "Um plugin para procurar o artista actual na wikipédia" #: ../plugins/wikipedia/wikipedia.ario-plugin.desktop.in.h:2 msgid "Wikipedia" msgstr "Wikipédia" #~ msgid "Add a search criteria" #~ msgstr "Adicionar um critério de pesquisa" #~ msgid "Remove a search criteria" #~ msgstr "Eliminar um critério de pesquisa" #~ msgid "Search songs in the library" #~ msgstr "Procurar músicas na biblioteca" ario-1.6/po/eo.po0000644000175000017500000010224113226723434010622 00000000000000# Esperanto translation for ario # Copyright (c) 2008 Rosetta Contributors and Canonical Ltd 2008 # This file is distributed under the same license as the ario package. # FIRST AUTHOR , 2008. # msgid "" msgstr "" "Project-Id-Version: ario\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2011-06-13 18:15+0200\n" "PO-Revision-Date: 2011-04-21 18:20+0000\n" "Last-Translator: Kristjan SCHMIDT \n" "Language-Team: Esperanto \n" "Language: eo\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2011-06-13 16:32+0000\n" "X-Generator: Launchpad (build 13175)\n" #: ../data/ario.desktop.in.in.h:1 msgid "Ario music player" msgstr "Ario muzika ludilo" #: ../data/ario.desktop.in.in.h:2 msgid "Client application to mpd" msgstr "Klienta programo al MPD" #: ../data/ui/browser-prefs.ui.h:1 msgid "Alphabetically" msgstr "Alfabete" #: ../data/ui/browser-prefs.ui.h:2 msgid "By year" msgstr "Laŭ jaro" #: ../data/ui/browser-prefs.ui.h:3 msgid "Library Options" msgstr "Muzikaro-opcioj" #: ../data/ui/browser-prefs.ui.h:4 msgid "Library Organisation" msgstr "Muzikaro-organizo" #: ../data/ui/browser-prefs.ui.h:5 msgid "Sort albums: " msgstr "Klasi albumojn: " #: ../data/ui/connection-autodetect.ui.h:1 msgid "" "If you don't see your MPD server thanks to the automatic detection, you " "should check that zeroconf is activated in your MPD configuration or use the " "manual configuration." msgstr "" "Se vi ne vidas vian MPD-servilon per la aŭtomata detektado, vi devas " "kontroli ĉu zeroconf estas aktivigita en via MPD-agordo aŭ uzi la permanan " "agordon." #: ../data/ui/connection-autodetect.ui.h:2 msgid "Server autodetection" msgstr "Aŭtomata rekono de servilo" #: ../data/ui/connection-widget.ui.h:1 msgid "Auto detect" msgstr "Rekoni aŭtomate" #: ../data/ui/connection-widget.ui.h:2 msgid "Default" msgstr "Defaŭlte" #: ../data/ui/connection-widget.ui.h:3 ../src/widgets/ario-firstlaunch.c:83 msgid "Host :" msgstr "Gastiga komputilo" #: ../data/ui/connection-widget.ui.h:4 msgid "Music directory :" msgstr "Dosierujo de muziko :" #: ../data/ui/connection-widget.ui.h:5 msgid "Music server is on the same computer as Ario" msgstr "Servilo de muziko estas en sama komputilo je Ario" #. Create the widgets #: ../data/ui/connection-widget.ui.h:6 ../plugins/radios/ario-radio.c:786 #: ../plugins/radios/ario-radio.c:922 msgid "Name :" msgstr "Nomo :" #: ../data/ui/connection-widget.ui.h:7 #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:5 msgid "Password :" msgstr "Pasvorto :" #: ../data/ui/connection-widget.ui.h:8 ../src/widgets/ario-firstlaunch.c:85 msgid "Port :" msgstr "Pordo :" #: ../data/ui/connection-widget.ui.h:9 msgid "Server type :" msgstr "Tipo de servilo :" #: ../data/ui/connection-widget.ui.h:10 msgid "Timeout :" msgstr "" #: ../data/ui/connection-widget.ui.h:11 msgid "XMMS 2 (Experimental)" msgstr "XMMS 2 (Eksperimenta)" #: ../data/ui/cover-prefs.ui.h:1 msgid "Automatically download the album cover of the playing song" msgstr "Aŭtomate elŝuti la kovro de la albumo de la ludanta kanto" #: ../data/ui/cover-prefs.ui.h:2 ../src/shell/ario-shell-preferences.c:128 msgid "Covers" msgstr "Kovroj" #: ../data/ui/cover-prefs.ui.h:3 msgid "Covers Sources" msgstr "Kovroj Fontoj" #: ../data/ui/cover-prefs.ui.h:4 msgid "Show the covers in the albums list" msgstr "Montri la kovrojn en listo de albumoj" #: ../data/ui/cover-prefs.ui.h:5 msgid "Use Amazon." msgstr "Uzi Amazon." #: ../data/ui/connection-prefs.ui.h:1 #: ../src/shell/ario-shell-preferences.c:108 msgid "Connection" msgstr "Konekto" #: ../data/ui/connection-prefs.ui.h:2 msgid "_Autoconnect on startup" msgstr "_Aŭtokonekti je startigo" #: ../data/ui/connection-prefs.ui.h:3 ../src/shell/ario-shell.c:167 msgid "_Connect" msgstr "_Konekti" #: ../data/ui/connection-prefs.ui.h:4 ../src/shell/ario-shell.c:170 msgid "_Disconnect" msgstr "_Malkonekti" #: ../data/ui/connection-assistant.ui.h:1 msgid "" "You need to specify a server to connect to. If you don't see your server " "thanks to the autodetection, you should check that zeroconf/avahi is " "activated in your server or use the manual configuration." msgstr "" "Vi bezonas specifi servilon por konekti. Se vi ne vidus vian servilon per la " "aŭtomata rekono, vi devus kontroli ĉu zeroconf/avahi estas aktivigita en via " "servilo aŭ uzi la manan formon." #: ../data/ui/cover-progress.ui.h:1 ../data/ui/cover-select.ui.h:1 #: ../data/ui/song-infos.ui.h:1 ../plugins/information/information.ui.h:1 msgid "Album :" msgstr "Albumo :" #: ../data/ui/cover-progress.ui.h:2 ../data/ui/cover-select.ui.h:2 #: ../data/ui/lyrics-select.ui.h:1 ../data/ui/song-infos.ui.h:3 #: ../plugins/information/information.ui.h:3 #: ../plugins/radios/ario-radio.c:166 msgid "Artist :" msgstr "Artisto :" #: ../data/ui/cover-progress.ui.h:3 msgid "Downloading cover" msgstr "Elŝuti kovrilon" #: ../data/ui/cover-select.ui.h:3 msgid "Local search" msgstr "Loka serĉo" #: ../data/ui/cover-select.ui.h:4 ../src/sources/ario-search.c:108 msgid "Search" msgstr "Serĉo" #: ../data/ui/others-prefs.ui.h:1 msgid "Allow only one instance of Ario" msgstr "Permesi nur unu instancon de Ario" #: ../data/ui/others-prefs.ui.h:2 msgid "Hide window when close button is pressed" msgstr "Kuvri fenestron kiam fermobutono estas presita" #: ../data/ui/others-prefs.ui.h:3 msgid "Interface" msgstr "Interfaco" #: ../data/ui/others-prefs.ui.h:4 msgid "Playlist at the right of tabs" msgstr "Ludlisto ĉe dekstro de langetoj" #: ../data/ui/others-prefs.ui.h:5 msgid "Playlist below tabs" msgstr "Ludlisto sub langetoj" #: ../data/ui/others-prefs.ui.h:6 msgid "Playlist within tabs" msgstr "Ludlisto en langetaro" #: ../data/ui/others-prefs.ui.h:7 msgid "Proxy" msgstr "Prokurilo" #: ../data/ui/others-prefs.ui.h:8 msgid "Proxy Address :" msgstr "Prokurilo-adreso :" #: ../data/ui/others-prefs.ui.h:9 msgid "Proxy Port :" msgstr "Prokurilo-pordo :" #: ../data/ui/others-prefs.ui.h:10 msgid "Show tabs" msgstr "Montri foliojn" #: ../data/ui/others-prefs.ui.h:11 msgid "Use a proxy" msgstr "Uzi prokurilon" #: ../data/ui/lyrics-prefs.ui.h:1 msgid "Lyrics Sources" msgstr "Fontoj de kanttekstoj" #: ../data/ui/lyrics-select.ui.h:2 ../data/ui/song-infos.ui.h:13 #: ../plugins/information/information.ui.h:6 msgid "Title :" msgstr "Titolo :" #: ../data/ui/playlist-prefs.ui.h:1 msgid "Add after playing song" msgstr "Aldoni post ludi kanton" #: ../data/ui/playlist-prefs.ui.h:2 msgid "Add and play" msgstr "Aldoni kaj ludu" #: ../data/ui/playlist-prefs.ui.h:3 ../data/ui/similar-artists.ui.h:2 msgid "Add to playlist" msgstr "Aldonu kun ludlisto" #. ARIO_TAG_ARTIST #: ../data/ui/playlist-prefs.ui.h:4 ../src/servers/ario-server.c:46 #: ../src/sources/ario-tree-albums.c:213 ../src/widgets/ario-playlist.c:541 #: ../src/widgets/ario-songlist.c:228 ../src/widgets/ario-tray-icon.c:565 msgid "Album" msgstr "Albumo" #: ../data/ui/playlist-prefs.ui.h:5 ../src/servers/ario-server.c:45 #: ../src/widgets/ario-playlist.c:541 ../src/widgets/ario-songlist.c:213 #: ../src/widgets/ario-tray-icon.c:563 msgid "Artist" msgstr "Artisto" #. ARIO_TAG_GENRE #: ../data/ui/playlist-prefs.ui.h:6 ../src/servers/ario-server.c:52 #: ../src/widgets/ario-playlist.c:541 msgid "Date" msgstr "Dato" #: ../data/ui/playlist-prefs.ui.h:7 ../src/widgets/ario-playlist.c:541 msgid "Disc" msgstr "Disko" #: ../data/ui/playlist-prefs.ui.h:8 msgid "Double click" msgstr "Duobla alklako" #: ../data/ui/playlist-prefs.ui.h:9 ../src/widgets/ario-playlist.c:541 msgid "Duration" msgstr "Daŭro" #: ../data/ui/playlist-prefs.ui.h:10 ../src/widgets/ario-playlist.c:541 msgid "File" msgstr "Dosiero" #. ARIO_TAG_TRACK #. ARIO_TAG_NAME #: ../data/ui/playlist-prefs.ui.h:11 ../src/servers/ario-server.c:51 #: ../src/widgets/ario-playlist.c:541 msgid "Genre" msgstr "Ĝenro" #: ../data/ui/playlist-prefs.ui.h:12 msgid "Go to current song when a new song is played" msgstr "Iri al nuna kanto kiam nova kanto estas ludata" #: ../data/ui/playlist-prefs.ui.h:13 msgid "Mode" msgstr "Reĝimo" #: ../data/ui/playlist-prefs.ui.h:14 msgid "On double click:" msgstr "Je duobla klako:" #: ../data/ui/playlist-prefs.ui.h:15 ../src/sources/ario-storedplaylists.c:229 #: ../src/shell/ario-shell.c:222 ../src/shell/ario-shell-preferences.c:123 #: ../src/widgets/ario-playlist.c:272 msgid "Playlist" msgstr "Ludlisto" #: ../data/ui/playlist-prefs.ui.h:16 msgid "Playlist mode:" msgstr "Ludlistreĝimo:" #: ../data/ui/playlist-prefs.ui.h:17 msgid "Replace in playlist" msgstr "Anstataŭi en ludlisto" #: ../data/ui/playlist-prefs.ui.h:18 msgid "Show rows:" msgstr "Montri kolumnojn:" #. ARIO_TAG_ALBUM_ARTIST #: ../data/ui/playlist-prefs.ui.h:19 ../src/servers/ario-server.c:48 #: ../src/sources/ario-tree-songs.c:145 ../src/widgets/ario-playlist.c:541 #: ../src/widgets/ario-songlist.c:198 ../src/widgets/ario-tray-icon.c:567 msgid "Title" msgstr "Titolo" #. ARIO_TAG_TITLE #: ../data/ui/playlist-prefs.ui.h:20 ../src/servers/ario-server.c:49 #: ../src/sources/ario-tree-songs.c:138 ../src/widgets/ario-playlist.c:541 msgid "Track" msgstr "Trako" #: ../data/ui/server-prefs.ui.h:1 msgid "Audio outputs" msgstr "Eligoj de sono" #: ../data/ui/server-prefs.ui.h:2 msgid "Crossfade" msgstr "Tra-flui" #: ../data/ui/server-prefs.ui.h:3 msgid "Database" msgstr "Datumbazo" #: ../data/ui/server-prefs.ui.h:4 msgid "Last updated:" msgstr "Laste ĝisdatiĝita:" #: ../data/ui/server-prefs.ui.h:5 msgid "Stop music on exit" msgstr "Ĉesi muzikon je fino" #: ../data/ui/server-prefs.ui.h:6 msgid "Update on startup" msgstr "Aktualigi je komenco" #: ../data/ui/server-prefs.ui.h:7 msgid "_Update" msgstr "_Ĝisdatigi" #: ../data/ui/server-prefs.ui.h:8 msgid "enable crossfade" msgstr "ebligi tra-fluon" #: ../data/ui/server-prefs.ui.h:9 msgid "fade time (s):" msgstr "Supre-flua tempo (s):" #: ../data/ui/server-prefs.ui.h:10 ../src/ario-util.c:50 ../src/ario-util.c:71 #: ../src/ario-util.c:93 ../plugins/information/information.ui.h:7 #, c-format msgid "n/a" msgstr "ne disponeblas" #: ../data/ui/similar-artists.ui.h:1 msgid "Add all to playlist" msgstr "Aldoni ĉion al ludlisto" #: ../data/ui/similar-artists.ui.h:3 msgid "Find on Last.fm" msgstr "Trovi ĉe Last.fm" #: ../data/ui/stats-prefs.ui.h:1 msgid "Database play time :" msgstr "Ludtempo de datumbazo :" #: ../data/ui/stats-prefs.ui.h:2 msgid "Number of albums :" msgstr "Nombro de albumoj" #: ../data/ui/stats-prefs.ui.h:3 msgid "Number of artists :" msgstr "Nombro de artistoj :" #: ../data/ui/stats-prefs.ui.h:4 msgid "Number of songs :" msgstr "Nombro de ludoj :" #: ../data/ui/stats-prefs.ui.h:5 msgid "Play time :" msgstr "Ludtempo :" #: ../data/ui/stats-prefs.ui.h:6 ../src/shell/ario-shell-preferences.c:148 msgid "Statistics" msgstr "Statistikoj" #: ../data/ui/stats-prefs.ui.h:7 msgid "Uptime :" msgstr "daŭro de funkciado" #: ../data/ui/song-infos.ui.h:2 msgid "Album Artist :" msgstr "Albumartisto :" #: ../data/ui/song-infos.ui.h:4 msgid "Comment :" msgstr "Rimarko :" #: ../data/ui/song-infos.ui.h:5 msgid "Composer :" msgstr "Komponisto :" #: ../data/ui/song-infos.ui.h:6 msgid "Date :" msgstr "Dato :" #: ../data/ui/song-infos.ui.h:7 msgid "Disc :" msgstr "Disko :" #: ../data/ui/song-infos.ui.h:8 msgid "Filename :" msgstr "Dosiernomo :" #: ../data/ui/song-infos.ui.h:9 ../plugins/radios/ario-radio.c:169 msgid "Genre :" msgstr "Ĝenro :" #: ../data/ui/song-infos.ui.h:10 ../plugins/information/information.ui.h:4 msgid "Length :" msgstr "Daŭro :" #: ../data/ui/song-infos.ui.h:11 msgid "Performer :" msgstr "Ludanto :" #: ../data/ui/song-infos.ui.h:12 msgid "Song" msgstr "Kanto" #: ../data/ui/song-infos.ui.h:14 msgid "Track :" msgstr "Kanto-numero :" #: ../data/ui/trayicon-prefs.ui.h:1 msgid "Do nothing" msgstr "Faru nenion" #: ../data/ui/trayicon-prefs.ui.h:2 msgid "Mute" msgstr "Silentigi" #: ../data/ui/trayicon-prefs.ui.h:3 ../src/shell/ario-shell-preferences.c:138 msgid "Notification" msgstr "Atentigo" #: ../data/ui/trayicon-prefs.ui.h:4 msgid "Notification on song change" msgstr "Atentigo pri ŝanĝo de kanto" #: ../data/ui/trayicon-prefs.ui.h:5 msgid "Notification time: " msgstr "Tempo de atantigo: " #: ../data/ui/trayicon-prefs.ui.h:6 msgid "On middle button click on tray icon :" msgstr "Je mezo-klako sur pleta piktogramo:" #: ../data/ui/trayicon-prefs.ui.h:7 ../src/widgets/ario-header.c:241 msgid "Play next song" msgstr "Ludi sekvan kanton" #: ../data/ui/trayicon-prefs.ui.h:8 msgid "Play/Pause" msgstr "Ludi/Paŭzi" #: ../data/ui/trayicon-prefs.ui.h:9 msgid "Tray icon" msgstr "Pleta piktogramo" #: ../src/ario-main.c:67 msgid "Start minimized window" msgstr "Komenci minimumigatan fenestron" #: ../src/ario-main.c:68 msgid "Start with specific profile" msgstr "" #. Format result string #: ../src/ario-util.c:110 msgid "seconds" msgstr "sekundoj" #: ../src/ario-util.c:112 msgid "minutes" msgstr "minutoj" #: ../src/ario-util.c:118 msgid "hours" msgstr "horoj" #: ../src/ario-util.c:124 msgid "days" msgstr "tagoj" #: ../src/covers/ario-cover.c:149 msgid "The cover already exists. Do you want to replace it?" msgstr "La kovrilo jam ekzistas. Ĉu vi volas anstataŭigi ĝin?" #: ../src/covers/ario-cover-local.c:48 msgid "Music Directory" msgstr "Muzika Dosierujo" #: ../src/playlist/ario-playlist-dynamic.c:49 msgid "songs of same artist" msgstr "kantoj de sama artisto" #: ../src/playlist/ario-playlist-dynamic.c:50 msgid "songs of same album" msgstr "kantoj de same albumo" #: ../src/playlist/ario-playlist-dynamic.c:51 msgid "songs of similar artists" msgstr "Kantoj de similaj artistoj" #: ../src/playlist/ario-playlist-dynamic.c:52 msgid "albums of same artists" msgstr "albumoj de samaj artistoj" #: ../src/playlist/ario-playlist-dynamic.c:53 msgid "albums of similar artists" msgstr "albumoj de similaj artistoj" #: ../src/playlist/ario-playlist-dynamic.c:69 msgid "Dynamic Playlist" msgstr "Dinamika ludlisto" #: ../src/playlist/ario-playlist-queue.c:49 msgid "Queue Mode" msgstr "Atendovico-modo" #: ../src/playlist/ario-playlist-normal.c:47 msgid "Normal" msgstr "Normale" #: ../src/plugins/ario-plugin-manager.c:45 msgid "Plugin" msgstr "Kromprogramo" #: ../src/plugins/ario-plugin-manager.c:46 msgid "Enabled" msgstr "Ebligite" #: ../src/plugins/ario-plugin-manager.c:480 ../src/shell/ario-shell.c:206 msgid "_About" msgstr "_Pri" #: ../src/plugins/ario-plugin-manager.c:488 msgid "C_onfigure" msgstr "Ag_ordi" #: ../src/plugins/ario-plugin-manager.c:497 msgid "A_ctivate" msgstr "A_ktivigi" #: ../src/plugins/ario-plugin-manager.c:508 msgid "Ac_tivate All" msgstr "Ak_tivigi ĉiujn" #: ../src/plugins/ario-plugin-manager.c:513 msgid "_Deactivate All" msgstr "_Malaktivigi ĉiujn" #: ../src/plugins/ario-plugin-manager.c:722 msgid "Active plugins" msgstr "Aktivaj kromprogramoj" #: ../src/preferences/ario-server-preferences.c:182 #: ../src/preferences/ario-stats-preferences.c:151 #: ../src/preferences/ario-stats-preferences.c:152 #: ../src/preferences/ario-stats-preferences.c:153 #: ../src/preferences/ario-stats-preferences.c:154 #: ../src/preferences/ario-stats-preferences.c:155 #: ../src/preferences/ario-stats-preferences.c:156 msgid "Not connected" msgstr "Nekonektite" #: ../src/preferences/ario-server-preferences.c:187 #: ../src/preferences/ario-server-preferences.c:278 #: ../src/widgets/ario-status-bar.c:100 msgid "Updating..." msgstr "Ĝisdatigante..." #: ../src/servers/ario-mpd.c:410 ../src/servers/ario-mpd2.c:522 msgid "Connecting to server..." msgstr "Konektante al servilo..." #: ../src/servers/ario-mpd.c:438 ../src/servers/ario-mpd2.c:550 msgid "Impossible to connect to server. Check the connection options." msgstr "Ne eblas konekti kun servilo. Kontrolu la kunligo-agordojn." #. ARIO_TAG_ALBUM #: ../src/servers/ario-server.c:47 msgid "Album Artist" msgstr "Albumartisto" #. ARIO_TAG_DATE #: ../src/servers/ario-server.c:53 msgid "Composer" msgstr "Komponisto" #. ARIO_TAG_COMPOSER #: ../src/servers/ario-server.c:54 msgid "Performer" msgstr "Plenumisto" #. ARIO_TAG_PERFORMER #. ARIO_TAG_COMMENT #. ARIO_TAG_DISC #: ../src/servers/ario-server.c:57 msgid "Filename" msgstr "Dosiernomo" #. ARIO_TAG_FILENAME #: ../src/servers/ario-server.c:58 msgid "Any" msgstr "Io ajn" #. impossible time or broken locale settings #: ../src/servers/ario-server.h:27 #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1235 msgid "Unknown" msgstr "Nekonate" #: ../src/sources/ario-browser.c:82 ../src/sources/ario-search.c:70 #: ../src/sources/ario-storedplaylists.c:88 #: ../src/sources/ario-storedplaylists.c:106 #: ../plugins/filesystem/ario-filesystem.c:94 #: ../plugins/filesystem/ario-filesystem.c:109 #: ../plugins/radios/ario-radio.c:116 msgid "_Add to playlist" msgstr "_Aldoni al ludlisto" #: ../src/sources/ario-browser.c:85 ../src/sources/ario-search.c:73 #: ../src/sources/ario-storedplaylists.c:91 #: ../src/sources/ario-storedplaylists.c:109 #: ../plugins/filesystem/ario-filesystem.c:97 #: ../plugins/filesystem/ario-filesystem.c:112 #: ../plugins/radios/ario-radio.c:119 msgid "Add and _play" msgstr "Aldoni al ludlisto" #: ../src/sources/ario-browser.c:88 ../src/sources/ario-search.c:76 #: ../src/sources/ario-storedplaylists.c:94 #: ../src/sources/ario-storedplaylists.c:112 #: ../plugins/filesystem/ario-filesystem.c:100 #: ../plugins/filesystem/ario-filesystem.c:115 #: ../plugins/radios/ario-radio.c:122 msgid "_Replace in playlist" msgstr "_Substii en ludlisto" #: ../src/sources/ario-browser.c:91 msgid "Get the covers" msgstr "Ricevi la kovrilojn" #: ../src/sources/ario-browser.c:94 msgid "_Delete the covers" msgstr "_Forigi la kovrilojn" #: ../src/sources/ario-browser.c:97 ../src/sources/ario-browser.c:100 #: ../src/sources/ario-search.c:79 ../src/sources/ario-storedplaylists.c:115 #: ../src/widgets/ario-playlist.c:151 #: ../plugins/filesystem/ario-filesystem.c:118 #: ../plugins/radios/ario-radio.c:131 msgid "_Properties" msgstr "_Atributoj" #: ../src/sources/ario-browser.c:125 ../src/shell/ario-shell-preferences.c:118 msgid "Library" msgstr "Biblioteko" #: ../src/sources/ario-storedplaylists.c:97 msgid "_Delete" msgstr "_Forigi" #: ../src/sources/ario-storedplaylists.c:151 msgid "Playlists" msgstr "Ludlistoj" #: ../src/sources/ario-storedplaylists.c:592 msgid "Are you sure that you want to delete all the selected playlists?" msgstr "Ĉu vi certas ke vi volas forigi ĉiujn selektatajn ludlistojn?" #: ../src/sources/ario-tree.c:856 msgid "Are you sure that you want to remove all the selected covers?" msgstr "Ĉu vi certas ke vi volas forigi ĉiujn selektatajn kovrilojn?" #. Translators - This "Cover" refers to an album cover art #: ../src/sources/ario-tree-albums.c:199 msgid "Cover" msgstr "Kovrilo" #: ../src/shell/ario-shell.c:160 msgid "_File" msgstr "_Dosiero" #: ../src/shell/ario-shell.c:161 msgid "_Edit" msgstr "R_edakti" #: ../src/shell/ario-shell.c:162 msgid "_View" msgstr "_Vido" #: ../src/shell/ario-shell.c:163 msgid "_Control" msgstr "_Kontrolo" #: ../src/shell/ario-shell.c:164 msgid "_Tool" msgstr "_Ilo" #: ../src/shell/ario-shell.c:165 msgid "_Help" msgstr "_Helpo" #: ../src/shell/ario-shell.c:173 msgid "_Update database" msgstr "Ĝisdatigi datumbazon" #: ../src/shell/ario-shell.c:176 msgid "_Quit" msgstr "_Eliri" #: ../src/shell/ario-shell.c:179 msgid "Plu_gins" msgstr "Krompro_gramoj" #: ../src/shell/ario-shell.c:182 msgid "Prefere_nces" msgstr "_Agordoj" #: ../src/shell/ario-shell.c:185 msgid "_Change current album cover" msgstr "Ŝ_anĝi nunan kovrilon" #: ../src/shell/ario-shell.c:188 msgid "Download album _covers" msgstr "_Subenŝarĝi kovrilojn" #: ../src/shell/ario-shell.c:191 msgid "Find similar artists" msgstr "Serĉi kompareblajn artistojn" #: ../src/shell/ario-shell.c:194 msgid "Add similar songs to playlist" msgstr "Aldoni kompareblajn kantojn en ludlisto" #: ../src/shell/ario-shell.c:197 msgid "Go to _previous tab" msgstr "Iri al _antaŭa folio" #: ../src/shell/ario-shell.c:200 msgid "Go to _next tab" msgstr "Iri al _sekva folio" #: ../src/shell/ario-shell.c:203 msgid "Show _lyrics" msgstr "Montri _ludtekstojn" #: ../src/shell/ario-shell.c:209 msgid "_Translate this application..." msgstr "_Traduku ĉi tiun programon..." #: ../src/shell/ario-shell.c:216 msgid "S_tatusbar" msgstr "S_tatobreto" #: ../src/shell/ario-shell.c:219 msgid "Upper part" msgstr "Supra parto" #: ../src/shell/ario-shell.c:825 msgid "GTK client for MPD" msgstr "GTK-kliento por MPD" #: ../src/shell/ario-shell.c:826 msgid "translator-credits" msgstr "" "Launchpad Contributions:\n" " Aisano https://launchpad.net/~info-ais-sanmarino\n" " Kristjan SCHMIDT https://launchpad.net/~kristjan-eo\n" " Marc Pavot https://launchpad.net/~marc-pavot\n" " Marco van Hulten https://launchpad.net/~marco-hulten\n" " Patrick (Petriko) Oudejans https://launchpad.net/~patrickoudejans\n" " nakata https://launchpad.net/~nakata" #. Create plugins configuration dialog window #: ../src/shell/ario-shell.c:1278 msgid "Configure Plugins" msgstr "Agordi kromprogramojn" #. Set window properties #: ../src/shell/ario-shell-coverdownloader.c:187 msgid "Music Player Cover Download" msgstr "Subenŝarĝi muzikilan kovrilon" #: ../src/shell/ario-shell-coverdownloader.c:332 msgid "Download Finished!" msgstr "Subenŝarĝo finata!" #. We show the numbers of covers found and not found #: ../src/shell/ario-shell-coverdownloader.c:335 #, c-format msgid "" "%i covers found\n" "%i covers not found\n" "%i covers already exist" msgstr "" "%i trovis kovrilojn\n" "%i ne trovis kovrilojn\n" "%i kovrilojn jam ekzistas" #. Set window properties #: ../src/shell/ario-shell-coverselect.c:242 msgid "Cover Download" msgstr "Subenŝarĝi kovrilojn" #: ../src/shell/ario-shell-coverselect.c:559 msgid "Error reading file" msgstr "Eraro dum legi dosieron" #: ../src/shell/ario-shell-coverselect.c:584 msgid "Error saving file" msgstr "Eraro dum konservi dosieron" #: ../src/shell/ario-shell-lyrics.c:43 #: ../src/shell/ario-shell-preferences.c:133 #: ../src/shell/ario-shell-songinfos.c:272 msgid "Lyrics" msgstr "Kantoteksto" #: ../src/shell/ario-shell-lyricsselect.c:152 msgid "Lyrics Download" msgstr "Elŝutaĵo de kantoteksto" #: ../src/shell/ario-shell-preferences.c:81 msgid "Ario Preferences" msgstr "Agordoj de Ario" #: ../src/shell/ario-shell-preferences.c:113 msgid "Server" msgstr "Servilo" #: ../src/shell/ario-shell-preferences.c:143 msgid "Others" msgstr "Aliaj" #: ../src/shell/ario-shell-similarartists.c:318 #, c-format msgid "%d songs" msgstr "%d kantoj" #. Set window properties #. Set window title #: ../src/shell/ario-shell-songinfos.c:249 #: ../src/shell/ario-shell-songinfos.c:266 #: ../src/shell/ario-shell-songinfos.c:544 msgid "Song Properties" msgstr "Ecoj de kanto" #: ../src/shell/ario-shell-songinfos.c:455 msgid "Error saving tags of file:" msgstr "Eraro dum konservi markojn de dosiero" #: ../src/widgets/ario-connection-widget.c:652 msgid "You must select a server." msgstr "Vi devas selekti servilon" #: ../src/widgets/ario-connection-widget.c:702 msgid "New Profile" msgstr "Nova profilo" #: ../src/widgets/ario-firstlaunch.c:82 msgid "The following configuration will be used:" msgstr "La sekva agordo estos uzata:" #: ../src/widgets/ario-firstlaunch.c:106 msgid "" "It is the first time you launch Ario.\n" "This assistant will help you to configure it." msgstr "" "Estas la unua fojo ke vi lanĉas Arion.\n" "Ĉi tiu asistanto helpas vin por agordi ĝin." #: ../src/widgets/ario-firstlaunch.c:111 msgid "Welcome to Ario" msgstr "Bonvenon ĉe Ario" #: ../src/widgets/ario-firstlaunch.c:129 msgid "Configuration" msgstr "Agordo" #: ../src/widgets/ario-firstlaunch.c:141 msgid "Confirmation" msgstr "Konfirmo" #: ../src/widgets/ario-header.c:66 ../src/widgets/ario-tray-icon.h:42 #, c-format msgid "from %s by %s" msgstr "ekde %s fare de %s" #: ../src/widgets/ario-header.c:199 msgid "Play previous song" msgstr "Ludi antaŭan kanton" #: ../src/widgets/ario-header.c:217 msgid "Play/Pause the music" msgstr "Ludi/Paŭzi la musikon" #: ../src/widgets/ario-header.c:229 msgid "Stop the music" msgstr "Ĉesi la muzikon" #. Translators - This " of " is used to count the elapsed time #. of a song like in "00:59 of 03:24" #: ../src/widgets/ario-header.c:310 ../src/widgets/ario-tooltip.c:321 msgid " of " msgstr " el " #: ../src/widgets/ario-header.c:323 msgid "Toggle random on/off" msgstr "Baskuligi lotecon en/el" #: ../src/widgets/ario-header.c:335 msgid "Toggle repeat on/off" msgstr "Baskuligi ripeton en/el" #: ../src/widgets/ario-header.c:340 msgid "Change the music volume" msgstr "Ŝanĝi la muzikan sonfortecon" #: ../src/widgets/ario-lyrics-editor.c:323 msgid "Downloading lyrics..." msgstr "Okupite subenŝarĝi kanttekstojn..." #: ../src/widgets/ario-lyrics-editor.c:351 msgid "Lyrics not found" msgstr "Ne trovis kanttekstojn" #: ../src/widgets/ario-playlist.c:133 msgid "_Clear" msgstr "_Vakigi" #: ../src/widgets/ario-playlist.c:136 msgid "_Shuffle" msgstr "_Skui" #: ../src/widgets/ario-playlist.c:139 msgid "Cr_op" msgstr "Prit_ondu" #: ../src/widgets/ario-playlist.c:142 msgid "_Search in playlist" msgstr "_Serĉi en ludlisto" #: ../src/widgets/ario-playlist.c:145 msgid "_Remove" msgstr "_Forigi" #: ../src/widgets/ario-playlist.c:148 msgid "_Save" msgstr "Kon_servi" #: ../src/widgets/ario-playlist.c:154 msgid "_Go to playing song" msgstr "_Iri al ludata kanto" #: ../src/widgets/ario-playlist.c:667 msgid "Filter:" msgstr "Filtrilo:" #. Create the widgets #: ../src/widgets/ario-playlist.c:1700 msgid "Save playlist" msgstr "Konservi ludliston" #: ../src/widgets/ario-playlist.c:1710 msgid "Playlist name :" msgstr "Nomo de ludlisto :" #: ../src/widgets/ario-playlist.c:1746 msgid "Playlist already exists. Do you want to overwrite it?" msgstr "Ludlisto jam ekzistas. Ĉu vi volas reskribi ĝin?" #. Format status bar message #: ../src/widgets/ario-status-bar.c:96 msgid "Songs" msgstr "Kantoj" #: ../src/widgets/ario-tray-icon.c:102 msgid "_Play" msgstr "Ludi" #: ../src/widgets/ario-tray-icon.c:105 msgid "_Pause" msgstr "_Paŭzi" #: ../src/widgets/ario-tray-icon.c:108 msgid "_Stop" msgstr "_Halti" #: ../src/widgets/ario-tray-icon.c:111 msgid "_Next" msgstr "Iri sekvan" #: ../src/widgets/ario-tray-icon.c:114 msgid "P_revious" msgstr "I_ri antaŭen" #: ../src/widgets/ario-tray-icon.h:41 msgid "Not playing" msgstr "Neludante" #. Translators: "friendly time" string for the current day, strftime format. like "Today 12:34 am" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1179 msgid "Today %I:%M %p" msgstr "Hodiaŭ %I:%M %p" #. Translators: "friendly time" string for the previous day, #. * strftime format. e.g. "Yesterday 12:34 am" #. #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1192 msgid "Yesterday %I:%M %p" msgstr "Hieraŭ %I:%M %p" #. Translators: "friendly time" string for a day in the current week, #. * strftime format. e.g. "Wed 12:34 am" #. #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1208 msgid "%a %I:%M %p" msgstr "%a %H:%M" #. Translators: "friendly time" string for a day in the current year, #. * strftime format. e.g. "Feb 12 12:34 am" #. #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1220 msgid "%b %d %I:%M %p" msgstr "%d-an de %b %H:%M" #. Translators: "friendly time" string for a day in a different year, #. * strftime format. e.g. "Feb 12 1997" #. #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1225 msgid "%b %d %Y" msgstr "%d-an de %b %Y" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1311 #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:4 msgid "Never" msgstr "Neniam" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1335 msgid "OK" msgstr "Akcepti" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1338 msgid "Logging in" msgstr "Ensalutante" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1341 msgid "Request failed" msgstr "Peto fiaskis" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1344 msgid "Incorrect username" msgstr "Nekorekta uzantnomo" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1347 msgid "Incorrect password" msgstr "Malĝusta pasvorto" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1350 msgid "Handshake failed" msgstr "Manpremo fiaskis" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1353 msgid "Client update required" msgstr "Ĝisdatigo de kliento bezonata" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1356 msgid "Track submission failed" msgstr "Sendi trakon fiaskis" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1359 msgid "Queue is too long" msgstr "Vico estas tro longa" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1362 msgid "Track submission failed too many times" msgstr "Sendado de la trako fiaskis tro ofte" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1417 msgid "Audioscrobbler preferences" msgstr "Agordo de Audioscrobbler" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:1 msgid "Disabled" msgstr "Malaktivigita" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:2 msgid "Last submission time:" msgstr "Tempo de lasta sendo:" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:3 msgid "Last.fm Profile" msgstr "Profilo de Last.fm" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:6 msgid "Queued tracks:" msgstr "Envicigitaj kantoj:" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:7 msgid "Status:" msgstr "Stato:" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:8 msgid "Tracks submitted:" msgstr "Senditaj kantoj:" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:9 #: ../plugins/radios/ario-radio.c:168 msgid "Username :" msgstr "Uzantnomo :" #: ../plugins/audioscrobbler/audioscrobbler.ario-plugin.desktop.in.h:1 msgid "Last.fm" msgstr "Last.fm" #: ../plugins/audioscrobbler/audioscrobbler.ario-plugin.desktop.in.h:2 msgid "Submits song information to last.fm" msgstr "Sendas informon al last.fm" #: ../plugins/filesystem/ario-filesystem.c:158 msgid "File System" msgstr "Dosiersistemo" #: ../plugins/filesystem/ario-filesystem.c:422 msgid "Music" msgstr "Muziko" #: ../plugins/filesystem/filesystem.ario-plugin.desktop.in.h:1 msgid "A File System Browser" msgstr "Dosieresplorilo" #: ../plugins/filesystem/filesystem.ario-plugin.desktop.in.h:2 msgid "File System Browser" msgstr "Dosieresplorilo" #: ../plugins/information/ario-information.c:114 msgid "Information" msgstr "Informo" #: ../plugins/information/information.ario-plugin.desktop.in.h:1 msgid "Display various information about the playing song" msgstr "Montru kelkajn informaĵojn pri ludita kanto" #: ../plugins/information/information.ario-plugin.desktop.in.h:2 msgid "Song Information" msgstr "Kanto-informo" #: ../plugins/information/information.ui.h:2 msgid "Albums from this artist:" msgstr "Albumoj de ĉi tiu artisto" #: ../plugins/information/information.ui.h:5 msgid "Lyrics:" msgstr "Kanttekstoj:" #: ../plugins/libnotify/libnotify.ario-plugin.desktop.in.h:1 msgid "Add libnotify support" msgstr "Aldoni subteno por libnotify (biblioteko por informi)" #: ../plugins/libnotify/libnotify.ario-plugin.desktop.in.h:2 msgid "Libnotify" msgstr "Libnotify (biblioteko por informi)" #: ../plugins/mmkeys/mmkeys.ario-plugin.desktop.in.h:1 msgid "Add multimedia keys support" msgstr "Aldoni plurmedio-klavojn" #: ../plugins/mmkeys/mmkeys.ario-plugin.desktop.in.h:2 msgid "Multimedia Keys" msgstr "Plurmedio-klavoj" #: ../plugins/radios/ario-radio.c:125 msgid "Add a _new radio" msgstr "Aldo_ni novan radiosendilon" #: ../plugins/radios/ario-radio.c:128 msgid "_Delete this radios" msgstr "Forigi ĉi tiujn ra_diojn" #: ../plugins/radios/ario-radio.c:166 msgid "Last.fm: Radio of similar artists" msgstr "Last.fm: Radio de kompareblaj artistoj" #: ../plugins/radios/ario-radio.c:167 msgid "Last.fm: Radio of group" msgstr "Last.fm: Radio de grupo" #: ../plugins/radios/ario-radio.c:167 msgid "Group :" msgstr "Grupo :" #: ../plugins/radios/ario-radio.c:168 msgid "Last.fm: Personal radio" msgstr "Last.fm: Persona radio" #: ../plugins/radios/ario-radio.c:169 msgid "Last.fm: Radio of genre" msgstr "Last.fm: Radio de ĝenro" #: ../plugins/radios/ario-radio.c:184 #: ../plugins/radios/radios.ario-plugin.desktop.in.h:2 msgid "Web Radios" msgstr "Ret-radioj" #: ../plugins/radios/ario-radio.c:246 msgid "Internet Radios" msgstr "Interret-radioj" #. Create dialog window #: ../plugins/radios/ario-radio.c:774 msgid "Edit a WebRadio" msgstr "Redakti ret-radiostacion" #: ../plugins/radios/ario-radio.c:787 ../plugins/radios/ario-radio.c:923 msgid "URL :" msgstr "URL :" #: ../plugins/radios/ario-radio.c:853 ../plugins/radios/ario-radio.c:997 msgid "Bad parameters. You must specify a name and a URL for the radio." msgstr "Malkompleta parametro. Vi devas specifi nomon kaj URL-n por la radio." #. Create dialog window #: ../plugins/radios/ario-radio.c:883 msgid "Add a WebRadio" msgstr "Aldoni radiostacion" #: ../plugins/radios/ario-radio.c:1083 msgid "Are you sure you want to delete all the selected radios?" msgstr "Ĉu vi certas ke vi volas forigu ciom da selektataj radiostacioj?" #: ../plugins/radios/radios.ario-plugin.desktop.in.h:1 msgid "Listen to webradios" msgstr "Aŭdi al retradioj" #: ../plugins/wikipedia/ario-wikipedia-plugin.c:49 #: ../plugins/wikipedia/ario-wikipedia-plugin.c:50 msgid "Find artist on Wikipedia" msgstr "Trovu je Vikipedio" #: ../plugins/wikipedia/ario-wikipedia-plugin.c:172 msgid "Wikipedia Plugin - Configuration" msgstr "Vikipedio-kromprogramo - Agordo" #: ../plugins/wikipedia/ario-wikipedia-plugin.c:181 msgid "Wikipedia language :" msgstr "Lingvo de Vikipedio :" #: ../plugins/wikipedia/wikipedia.ario-plugin.desktop.in.h:1 msgid "A plugin to search current artist on wikipedia" msgstr "Kromprogramo por serĉi hodiaŭan artiston je Vikipedio" #: ../plugins/wikipedia/wikipedia.ario-plugin.desktop.in.h:2 msgid "Wikipedia" msgstr "Vikipedio" ario-1.6/po/LINGUAS0000644000175000017500000000031313226723435010702 00000000000000# ario translations # # please keep this list sorted alphabetically # ar ca cs da de en_AU en_CA en_GB eo es et fi fr ga he hr hu id it ja nb nds nl oc pl pt pt_BR ro ru sv th tr uk vi zh_CN zh_HK zh_TW ario-1.6/po/it.po0000644000175000017500000010503013226723442010631 00000000000000# Italian translation for ario # Copyright (c) 2008 Rosetta Contributors and Canonical Ltd 2008 # This file is distributed under the same license as the ario package. # FIRST AUTHOR , 2008. # msgid "" msgstr "" "Project-Id-Version: ario\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2011-06-13 18:15+0200\n" "PO-Revision-Date: 2010-10-16 19:39+0000\n" "Last-Translator: simone.sandri \n" "Language-Team: Italian \n" "Language: it\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2011-06-13 16:32+0000\n" "X-Generator: Launchpad (build 13175)\n" #: ../data/ario.desktop.in.in.h:1 msgid "Ario music player" msgstr "Ario riproduttore musicale" #: ../data/ario.desktop.in.in.h:2 msgid "Client application to mpd" msgstr "Client mpd" #: ../data/ui/browser-prefs.ui.h:1 msgid "Alphabetically" msgstr "Ordine Alfabetico" #: ../data/ui/browser-prefs.ui.h:2 msgid "By year" msgstr "Per anno" #: ../data/ui/browser-prefs.ui.h:3 msgid "Library Options" msgstr "Opzioni della libreria" #: ../data/ui/browser-prefs.ui.h:4 msgid "Library Organisation" msgstr "Organizzazione della libreria" #: ../data/ui/browser-prefs.ui.h:5 msgid "Sort albums: " msgstr "Ordina album " #: ../data/ui/connection-autodetect.ui.h:1 msgid "" "If you don't see your MPD server thanks to the automatic detection, you " "should check that zeroconf is activated in your MPD configuration or use the " "manual configuration." msgstr "" "Se non vedi il tuo server MPD tramite la rilevazione automatica, dovresti " "controllare che zeroconf sia attivato nella configurazione del tuo MPD " "oppure usare la configurazione manuale." #: ../data/ui/connection-autodetect.ui.h:2 msgid "Server autodetection" msgstr "Rilevazione automatica del server" #: ../data/ui/connection-widget.ui.h:1 msgid "Auto detect" msgstr "Rileva automaticamente" #: ../data/ui/connection-widget.ui.h:2 msgid "Default" msgstr "Predefinito" #: ../data/ui/connection-widget.ui.h:3 ../src/widgets/ario-firstlaunch.c:83 msgid "Host :" msgstr "Host :" #: ../data/ui/connection-widget.ui.h:4 msgid "Music directory :" msgstr "Cartella di Musica :" #: ../data/ui/connection-widget.ui.h:5 msgid "Music server is on the same computer as Ario" msgstr "Il server musicale è sullo stesso computer di Ario" #. Create the widgets #: ../data/ui/connection-widget.ui.h:6 ../plugins/radios/ario-radio.c:786 #: ../plugins/radios/ario-radio.c:922 msgid "Name :" msgstr "Nome:" #: ../data/ui/connection-widget.ui.h:7 #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:5 msgid "Password :" msgstr "Password :" #: ../data/ui/connection-widget.ui.h:8 ../src/widgets/ario-firstlaunch.c:85 msgid "Port :" msgstr "Porta :" #: ../data/ui/connection-widget.ui.h:9 msgid "Server type :" msgstr "Tipo server :" #: ../data/ui/connection-widget.ui.h:10 msgid "Timeout :" msgstr "" #: ../data/ui/connection-widget.ui.h:11 msgid "XMMS 2 (Experimental)" msgstr "XMMS 2 (Sperimentale)" #: ../data/ui/cover-prefs.ui.h:1 msgid "Automatically download the album cover of the playing song" msgstr "" "Scarica automaticamente la copertina dell'album relativo alla canzone in " "esecuzione" #: ../data/ui/cover-prefs.ui.h:2 ../src/shell/ario-shell-preferences.c:128 msgid "Covers" msgstr "Copertine" #: ../data/ui/cover-prefs.ui.h:3 msgid "Covers Sources" msgstr "Sorgenti copertine" #: ../data/ui/cover-prefs.ui.h:4 msgid "Show the covers in the albums list" msgstr "Mostra le copertine nella lista degli album" #: ../data/ui/cover-prefs.ui.h:5 msgid "Use Amazon." msgstr "Usa Amazon." #: ../data/ui/connection-prefs.ui.h:1 #: ../src/shell/ario-shell-preferences.c:108 msgid "Connection" msgstr "Connessione" #: ../data/ui/connection-prefs.ui.h:2 msgid "_Autoconnect on startup" msgstr "_Connetti automaticamente all'avvio" #: ../data/ui/connection-prefs.ui.h:3 ../src/shell/ario-shell.c:167 msgid "_Connect" msgstr "_Connetti" #: ../data/ui/connection-prefs.ui.h:4 ../src/shell/ario-shell.c:170 msgid "_Disconnect" msgstr "_Disconnetti" #: ../data/ui/connection-assistant.ui.h:1 msgid "" "You need to specify a server to connect to. If you don't see your server " "thanks to the autodetection, you should check that zeroconf/avahi is " "activated in your server or use the manual configuration." msgstr "" "Hai bisogno di specificare un server a cui connettersi. Se non riesci a " "vedere il tuo server ringrazia l'autorilevamento, controlla che zeroconf/" "avahi sia attivo sul tuo server o usa la configurazione manuale." #: ../data/ui/cover-progress.ui.h:1 ../data/ui/cover-select.ui.h:1 #: ../data/ui/song-infos.ui.h:1 ../plugins/information/information.ui.h:1 msgid "Album :" msgstr "Album :" #: ../data/ui/cover-progress.ui.h:2 ../data/ui/cover-select.ui.h:2 #: ../data/ui/lyrics-select.ui.h:1 ../data/ui/song-infos.ui.h:3 #: ../plugins/information/information.ui.h:3 #: ../plugins/radios/ario-radio.c:166 msgid "Artist :" msgstr "Artista :" #: ../data/ui/cover-progress.ui.h:3 msgid "Downloading cover" msgstr "Sto scaricando la copertina" #: ../data/ui/cover-select.ui.h:3 msgid "Local search" msgstr "Ricerca locale" #: ../data/ui/cover-select.ui.h:4 ../src/sources/ario-search.c:108 msgid "Search" msgstr "Cerca" #: ../data/ui/others-prefs.ui.h:1 msgid "Allow only one instance of Ario" msgstr "Permetti una sola istanza di Ario" #: ../data/ui/others-prefs.ui.h:2 msgid "Hide window when close button is pressed" msgstr "Nascondi la finestra quando viene premuto il tasto di chiusura" #: ../data/ui/others-prefs.ui.h:3 msgid "Interface" msgstr "Interfaccia" #: ../data/ui/others-prefs.ui.h:4 msgid "Playlist at the right of tabs" msgstr "Playlist alla destra della tabella" #: ../data/ui/others-prefs.ui.h:5 msgid "Playlist below tabs" msgstr "Playlist sotto i tab" #: ../data/ui/others-prefs.ui.h:6 msgid "Playlist within tabs" msgstr "Playlist all'interno della tabella" #: ../data/ui/others-prefs.ui.h:7 msgid "Proxy" msgstr "Proxy" #: ../data/ui/others-prefs.ui.h:8 msgid "Proxy Address :" msgstr "Indirizzo del Proxy" #: ../data/ui/others-prefs.ui.h:9 msgid "Proxy Port :" msgstr "Porta del Proxy:" #: ../data/ui/others-prefs.ui.h:10 msgid "Show tabs" msgstr "Mostra linguette" #: ../data/ui/others-prefs.ui.h:11 msgid "Use a proxy" msgstr "Usa un proxy" #: ../data/ui/lyrics-prefs.ui.h:1 msgid "Lyrics Sources" msgstr "Sorgenti dei testi" #: ../data/ui/lyrics-select.ui.h:2 ../data/ui/song-infos.ui.h:13 #: ../plugins/information/information.ui.h:6 msgid "Title :" msgstr "Titolo:" #: ../data/ui/playlist-prefs.ui.h:1 msgid "Add after playing song" msgstr "Aggiungi dopo la traccia corrente" #: ../data/ui/playlist-prefs.ui.h:2 msgid "Add and play" msgstr "Aggiungi e riproduci" #: ../data/ui/playlist-prefs.ui.h:3 ../data/ui/similar-artists.ui.h:2 msgid "Add to playlist" msgstr "Aggiungi alla playlist" #. ARIO_TAG_ARTIST #: ../data/ui/playlist-prefs.ui.h:4 ../src/servers/ario-server.c:46 #: ../src/sources/ario-tree-albums.c:213 ../src/widgets/ario-playlist.c:541 #: ../src/widgets/ario-songlist.c:228 ../src/widgets/ario-tray-icon.c:565 msgid "Album" msgstr "Album" #: ../data/ui/playlist-prefs.ui.h:5 ../src/servers/ario-server.c:45 #: ../src/widgets/ario-playlist.c:541 ../src/widgets/ario-songlist.c:213 #: ../src/widgets/ario-tray-icon.c:563 msgid "Artist" msgstr "Artista" #. ARIO_TAG_GENRE #: ../data/ui/playlist-prefs.ui.h:6 ../src/servers/ario-server.c:52 #: ../src/widgets/ario-playlist.c:541 msgid "Date" msgstr "Data" #: ../data/ui/playlist-prefs.ui.h:7 ../src/widgets/ario-playlist.c:541 msgid "Disc" msgstr "Disco" #: ../data/ui/playlist-prefs.ui.h:8 msgid "Double click" msgstr "Doppio click" #: ../data/ui/playlist-prefs.ui.h:9 ../src/widgets/ario-playlist.c:541 msgid "Duration" msgstr "Durata" #: ../data/ui/playlist-prefs.ui.h:10 ../src/widgets/ario-playlist.c:541 msgid "File" msgstr "FIle" #. ARIO_TAG_TRACK #. ARIO_TAG_NAME #: ../data/ui/playlist-prefs.ui.h:11 ../src/servers/ario-server.c:51 #: ../src/widgets/ario-playlist.c:541 msgid "Genre" msgstr "Genere" #: ../data/ui/playlist-prefs.ui.h:12 msgid "Go to current song when a new song is played" msgstr "Vai alla canzone in esecuzione quando un nuovo brano viene eseguito" #: ../data/ui/playlist-prefs.ui.h:13 msgid "Mode" msgstr "Modalità" #: ../data/ui/playlist-prefs.ui.h:14 msgid "On double click:" msgstr "Con doppio click" #: ../data/ui/playlist-prefs.ui.h:15 ../src/sources/ario-storedplaylists.c:229 #: ../src/shell/ario-shell.c:222 ../src/shell/ario-shell-preferences.c:123 #: ../src/widgets/ario-playlist.c:272 msgid "Playlist" msgstr "Playlist" #: ../data/ui/playlist-prefs.ui.h:16 msgid "Playlist mode:" msgstr "Modo Playlist" #: ../data/ui/playlist-prefs.ui.h:17 msgid "Replace in playlist" msgstr "Rimpiazza in playlist" #: ../data/ui/playlist-prefs.ui.h:18 msgid "Show rows:" msgstr "Visualizza righe" #. ARIO_TAG_ALBUM_ARTIST #: ../data/ui/playlist-prefs.ui.h:19 ../src/servers/ario-server.c:48 #: ../src/sources/ario-tree-songs.c:145 ../src/widgets/ario-playlist.c:541 #: ../src/widgets/ario-songlist.c:198 ../src/widgets/ario-tray-icon.c:567 msgid "Title" msgstr "Titolo" #. ARIO_TAG_TITLE #: ../data/ui/playlist-prefs.ui.h:20 ../src/servers/ario-server.c:49 #: ../src/sources/ario-tree-songs.c:138 ../src/widgets/ario-playlist.c:541 msgid "Track" msgstr "Traccia" #: ../data/ui/server-prefs.ui.h:1 msgid "Audio outputs" msgstr "Uscite audio" #: ../data/ui/server-prefs.ui.h:2 msgid "Crossfade" msgstr "Sfumatura" #: ../data/ui/server-prefs.ui.h:3 msgid "Database" msgstr "Database" #: ../data/ui/server-prefs.ui.h:4 msgid "Last updated:" msgstr "Ultimo aggiornamento:" #: ../data/ui/server-prefs.ui.h:5 msgid "Stop music on exit" msgstr "Interrompi la musica alla chiusura" #: ../data/ui/server-prefs.ui.h:6 msgid "Update on startup" msgstr "Aggiorna all'avvio" #: ../data/ui/server-prefs.ui.h:7 msgid "_Update" msgstr "_Aggiorna" #: ../data/ui/server-prefs.ui.h:8 msgid "enable crossfade" msgstr "attiva sfumatura" #: ../data/ui/server-prefs.ui.h:9 msgid "fade time (s):" msgstr "lunghezza della sfumatura (s)" #: ../data/ui/server-prefs.ui.h:10 ../src/ario-util.c:50 ../src/ario-util.c:71 #: ../src/ario-util.c:93 ../plugins/information/information.ui.h:7 #, c-format msgid "n/a" msgstr "n/d" #: ../data/ui/similar-artists.ui.h:1 msgid "Add all to playlist" msgstr "Aggiungi tutti alla playlist" #: ../data/ui/similar-artists.ui.h:3 msgid "Find on Last.fm" msgstr "Trova su Last.fm" #: ../data/ui/stats-prefs.ui.h:1 msgid "Database play time :" msgstr "Tempo di esecuzione del database:" #: ../data/ui/stats-prefs.ui.h:2 msgid "Number of albums :" msgstr "Numero di album:" #: ../data/ui/stats-prefs.ui.h:3 msgid "Number of artists :" msgstr "Numero di artisti:" #: ../data/ui/stats-prefs.ui.h:4 msgid "Number of songs :" msgstr "Numero di canzoni:" #: ../data/ui/stats-prefs.ui.h:5 msgid "Play time :" msgstr "Tempo di riproduzione:" #: ../data/ui/stats-prefs.ui.h:6 ../src/shell/ario-shell-preferences.c:148 msgid "Statistics" msgstr "Statistiche" #: ../data/ui/stats-prefs.ui.h:7 msgid "Uptime :" msgstr "Tempo di attivita':" #: ../data/ui/song-infos.ui.h:2 msgid "Album Artist :" msgstr "Artista Album:" #: ../data/ui/song-infos.ui.h:4 msgid "Comment :" msgstr "Commento:" #: ../data/ui/song-infos.ui.h:5 msgid "Composer :" msgstr "Compositore:" #: ../data/ui/song-infos.ui.h:6 msgid "Date :" msgstr "Data:" #: ../data/ui/song-infos.ui.h:7 msgid "Disc :" msgstr "Disco:" #: ../data/ui/song-infos.ui.h:8 msgid "Filename :" msgstr "Nome del file:" #: ../data/ui/song-infos.ui.h:9 ../plugins/radios/ario-radio.c:169 msgid "Genre :" msgstr "Genere:" #: ../data/ui/song-infos.ui.h:10 ../plugins/information/information.ui.h:4 msgid "Length :" msgstr "Lunghezza:" #: ../data/ui/song-infos.ui.h:11 msgid "Performer :" msgstr "Esecutore:" #: ../data/ui/song-infos.ui.h:12 msgid "Song" msgstr "Canzone" #: ../data/ui/song-infos.ui.h:14 msgid "Track :" msgstr "Traccia:" #: ../data/ui/trayicon-prefs.ui.h:1 msgid "Do nothing" msgstr "Non fare nulla" #: ../data/ui/trayicon-prefs.ui.h:2 msgid "Mute" msgstr "Silenzioso" #: ../data/ui/trayicon-prefs.ui.h:3 ../src/shell/ario-shell-preferences.c:138 msgid "Notification" msgstr "Notifica" #: ../data/ui/trayicon-prefs.ui.h:4 msgid "Notification on song change" msgstr "Notifica al cambio di canzone" #: ../data/ui/trayicon-prefs.ui.h:5 msgid "Notification time: " msgstr "Tempo di notifica: " #: ../data/ui/trayicon-prefs.ui.h:6 msgid "On middle button click on tray icon :" msgstr "" "Tramite click con il pulsante centrale del mouse sulla icona nella tray:" #: ../data/ui/trayicon-prefs.ui.h:7 ../src/widgets/ario-header.c:241 msgid "Play next song" msgstr "Riproduci il brano successivo" #: ../data/ui/trayicon-prefs.ui.h:8 msgid "Play/Pause" msgstr "Riproduci/Pausa" #: ../data/ui/trayicon-prefs.ui.h:9 msgid "Tray icon" msgstr "Icona sulla traybar" #: ../src/ario-main.c:67 msgid "Start minimized window" msgstr "Avvia in una finestra minimizzata" #: ../src/ario-main.c:68 msgid "Start with specific profile" msgstr "" #. Format result string #: ../src/ario-util.c:110 msgid "seconds" msgstr "secondi" #: ../src/ario-util.c:112 msgid "minutes" msgstr "minuti" #: ../src/ario-util.c:118 msgid "hours" msgstr "ore" #: ../src/ario-util.c:124 msgid "days" msgstr "giorni" #: ../src/covers/ario-cover.c:149 msgid "The cover already exists. Do you want to replace it?" msgstr "La copertina esiste già. La vuoi sostituire?" #: ../src/covers/ario-cover-local.c:48 msgid "Music Directory" msgstr "Cartella della Musica" #: ../src/playlist/ario-playlist-dynamic.c:49 msgid "songs of same artist" msgstr "canzoni dello stesso artista" #: ../src/playlist/ario-playlist-dynamic.c:50 msgid "songs of same album" msgstr "canzoni dello stesso album" #: ../src/playlist/ario-playlist-dynamic.c:51 msgid "songs of similar artists" msgstr "canzoni di artisti simili" #: ../src/playlist/ario-playlist-dynamic.c:52 msgid "albums of same artists" msgstr "album dello stesso artista" #: ../src/playlist/ario-playlist-dynamic.c:53 msgid "albums of similar artists" msgstr "album di artisti simili" #: ../src/playlist/ario-playlist-dynamic.c:69 msgid "Dynamic Playlist" msgstr "Playlist Dinamica" #: ../src/playlist/ario-playlist-queue.c:49 msgid "Queue Mode" msgstr "Modo Coda" #: ../src/playlist/ario-playlist-normal.c:47 msgid "Normal" msgstr "Normale" #: ../src/plugins/ario-plugin-manager.c:45 msgid "Plugin" msgstr "Plugin" #: ../src/plugins/ario-plugin-manager.c:46 msgid "Enabled" msgstr "Attivato" #: ../src/plugins/ario-plugin-manager.c:480 ../src/shell/ario-shell.c:206 msgid "_About" msgstr "I_nformazioni" #: ../src/plugins/ario-plugin-manager.c:488 msgid "C_onfigure" msgstr "C_onfigura" #: ../src/plugins/ario-plugin-manager.c:497 msgid "A_ctivate" msgstr "A_ttiva" #: ../src/plugins/ario-plugin-manager.c:508 msgid "Ac_tivate All" msgstr "Atti_va tutti" #: ../src/plugins/ario-plugin-manager.c:513 msgid "_Deactivate All" msgstr "_Disattiva tutti" #: ../src/plugins/ario-plugin-manager.c:722 msgid "Active plugins" msgstr "Plugin attivi" #: ../src/preferences/ario-server-preferences.c:182 #: ../src/preferences/ario-stats-preferences.c:151 #: ../src/preferences/ario-stats-preferences.c:152 #: ../src/preferences/ario-stats-preferences.c:153 #: ../src/preferences/ario-stats-preferences.c:154 #: ../src/preferences/ario-stats-preferences.c:155 #: ../src/preferences/ario-stats-preferences.c:156 msgid "Not connected" msgstr "Non connesso" #: ../src/preferences/ario-server-preferences.c:187 #: ../src/preferences/ario-server-preferences.c:278 #: ../src/widgets/ario-status-bar.c:100 msgid "Updating..." msgstr "Aggiornamento..." #: ../src/servers/ario-mpd.c:410 ../src/servers/ario-mpd2.c:522 msgid "Connecting to server..." msgstr "Connessione al server in corso..." #: ../src/servers/ario-mpd.c:438 ../src/servers/ario-mpd2.c:550 msgid "Impossible to connect to server. Check the connection options." msgstr "" "Impossibile collegarsi al server. Controllare le opzioni di collegamento." #. ARIO_TAG_ALBUM #: ../src/servers/ario-server.c:47 msgid "Album Artist" msgstr "Interprete album" #. ARIO_TAG_DATE #: ../src/servers/ario-server.c:53 msgid "Composer" msgstr "Compositore" #. ARIO_TAG_COMPOSER #: ../src/servers/ario-server.c:54 msgid "Performer" msgstr "Esecutore" #. ARIO_TAG_PERFORMER #. ARIO_TAG_COMMENT #. ARIO_TAG_DISC #: ../src/servers/ario-server.c:57 msgid "Filename" msgstr "Nome del file" #. ARIO_TAG_FILENAME #: ../src/servers/ario-server.c:58 msgid "Any" msgstr "Qualsiasi" #. impossible time or broken locale settings #: ../src/servers/ario-server.h:27 #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1235 msgid "Unknown" msgstr "Sconosciuto" #: ../src/sources/ario-browser.c:82 ../src/sources/ario-search.c:70 #: ../src/sources/ario-storedplaylists.c:88 #: ../src/sources/ario-storedplaylists.c:106 #: ../plugins/filesystem/ario-filesystem.c:94 #: ../plugins/filesystem/ario-filesystem.c:109 #: ../plugins/radios/ario-radio.c:116 msgid "_Add to playlist" msgstr "_Aggiungi alla playlist" #: ../src/sources/ario-browser.c:85 ../src/sources/ario-search.c:73 #: ../src/sources/ario-storedplaylists.c:91 #: ../src/sources/ario-storedplaylists.c:109 #: ../plugins/filesystem/ario-filesystem.c:97 #: ../plugins/filesystem/ario-filesystem.c:112 #: ../plugins/radios/ario-radio.c:119 msgid "Add and _play" msgstr "Aggiungi e esegui" #: ../src/sources/ario-browser.c:88 ../src/sources/ario-search.c:76 #: ../src/sources/ario-storedplaylists.c:94 #: ../src/sources/ario-storedplaylists.c:112 #: ../plugins/filesystem/ario-filesystem.c:100 #: ../plugins/filesystem/ario-filesystem.c:115 #: ../plugins/radios/ario-radio.c:122 msgid "_Replace in playlist" msgstr "_Rimpiazza nella playlist" #: ../src/sources/ario-browser.c:91 msgid "Get the covers" msgstr "Ottieni le copertine" #: ../src/sources/ario-browser.c:94 msgid "_Delete the covers" msgstr "Cancella le copertine (_D)" #: ../src/sources/ario-browser.c:97 ../src/sources/ario-browser.c:100 #: ../src/sources/ario-search.c:79 ../src/sources/ario-storedplaylists.c:115 #: ../src/widgets/ario-playlist.c:151 #: ../plugins/filesystem/ario-filesystem.c:118 #: ../plugins/radios/ario-radio.c:131 msgid "_Properties" msgstr "_Proprietà" #: ../src/sources/ario-browser.c:125 ../src/shell/ario-shell-preferences.c:118 msgid "Library" msgstr "Libreria" #: ../src/sources/ario-storedplaylists.c:97 msgid "_Delete" msgstr "Elimina (_D)" #: ../src/sources/ario-storedplaylists.c:151 msgid "Playlists" msgstr "Playlist" #: ../src/sources/ario-storedplaylists.c:592 msgid "Are you sure that you want to delete all the selected playlists?" msgstr "Sei sicuro di voler cancellare tutte le playlist selezionate?" #: ../src/sources/ario-tree.c:856 msgid "Are you sure that you want to remove all the selected covers?" msgstr "Sei sicuro di voler rimuovere tutte le copertine selezionate?" #. Translators - This "Cover" refers to an album cover art #: ../src/sources/ario-tree-albums.c:199 msgid "Cover" msgstr "Copertina" #: ../src/shell/ario-shell.c:160 msgid "_File" msgstr "_File" #: ../src/shell/ario-shell.c:161 msgid "_Edit" msgstr "_Modifica" #: ../src/shell/ario-shell.c:162 msgid "_View" msgstr "_Visualizza" #: ../src/shell/ario-shell.c:163 msgid "_Control" msgstr "_Controllo" #: ../src/shell/ario-shell.c:164 msgid "_Tool" msgstr "S_trumento" #: ../src/shell/ario-shell.c:165 msgid "_Help" msgstr "Aiuto (_H)" #: ../src/shell/ario-shell.c:173 msgid "_Update database" msgstr "_Aggiorna database" #: ../src/shell/ario-shell.c:176 msgid "_Quit" msgstr "Esci (_Q)" #: ../src/shell/ario-shell.c:179 msgid "Plu_gins" msgstr "Plu_gin" #: ../src/shell/ario-shell.c:182 msgid "Prefere_nces" msgstr "Prefere_nze" #: ../src/shell/ario-shell.c:185 msgid "_Change current album cover" msgstr "_Cambia la copertina dell'album" #: ../src/shell/ario-shell.c:188 msgid "Download album _covers" msgstr "Scarica le _copertine dell'album" #: ../src/shell/ario-shell.c:191 msgid "Find similar artists" msgstr "Trova artisti simili" #: ../src/shell/ario-shell.c:194 msgid "Add similar songs to playlist" msgstr "Aggiungi canzoni simili nella playlist" #: ../src/shell/ario-shell.c:197 msgid "Go to _previous tab" msgstr "Vai al tab _precedente" #: ../src/shell/ario-shell.c:200 msgid "Go to _next tab" msgstr "Vai al tab successivo" #: ../src/shell/ario-shell.c:203 msgid "Show _lyrics" msgstr "Mostra testo della canzone (_L)" #: ../src/shell/ario-shell.c:209 msgid "_Translate this application..." msgstr "_Traduci questa applicazione..." #: ../src/shell/ario-shell.c:216 msgid "S_tatusbar" msgstr "Barra di s_tato" #: ../src/shell/ario-shell.c:219 msgid "Upper part" msgstr "Parte superiore" #: ../src/shell/ario-shell.c:825 msgid "GTK client for MPD" msgstr "Client GTK per MPD" #: ../src/shell/ario-shell.c:826 msgid "translator-credits" msgstr "" "Launchpad Contributions:\n" " Andrea https://launchpad.net/~seymourskinner-virgilio\n" " BrainHell https://launchpad.net/~brainhell\n" " Carlo Cifarelli https://launchpad.net/~binary.coded.brain\n" " Daniele de Virgilio https://launchpad.net/~erunamo-deactivatedaccount\n" " Giacomo Barbalinardo https://launchpad.net/~jacxs-lj\n" " Giasone https://launchpad.net/~giasone\n" " Guybrush88 https://launchpad.net/~erpizzo\n" " HdS619 https://launchpad.net/~hds619\n" " Jonathan Pulfer https://launchpad.net/~jonathan-necryon\n" " Marc Pavot https://launchpad.net/~marc-pavot\n" " Matteo Ferrabone https://launchpad.net/~desmoteo-gmail\n" " Milo Casagrande https://launchpad.net/~milo\n" " Nicola Piovesan https://launchpad.net/~piovesannicola\n" " Nikopol https://launchpad.net/~aegnor-isilra\n" " Sergio Spinatelli https://launchpad.net/~ituxer\n" " Vincenzo vikkio88 Ciaccio https://launchpad.net/~vikkio88\n" " beppe https://launchpad.net/~tibido\n" " simone.sandri https://launchpad.net/~lexluxsox" #. Create plugins configuration dialog window #: ../src/shell/ario-shell.c:1278 msgid "Configure Plugins" msgstr "Configura i plugin" #. Set window properties #: ../src/shell/ario-shell-coverdownloader.c:187 msgid "Music Player Cover Download" msgstr "Download Copertine per il Lettore Musicale" #: ../src/shell/ario-shell-coverdownloader.c:332 msgid "Download Finished!" msgstr "Download Terminato!" #. We show the numbers of covers found and not found #: ../src/shell/ario-shell-coverdownloader.c:335 #, c-format msgid "" "%i covers found\n" "%i covers not found\n" "%i covers already exist" msgstr "" "%i copertine trovate\n" "%i copertine non trovate\n" "%i copertine gia' esistenti" #. Set window properties #: ../src/shell/ario-shell-coverselect.c:242 msgid "Cover Download" msgstr "Download Copertine" #: ../src/shell/ario-shell-coverselect.c:559 msgid "Error reading file" msgstr "Errore nella lettura del file" #: ../src/shell/ario-shell-coverselect.c:584 msgid "Error saving file" msgstr "Si è verificato un errore salvando il file" #: ../src/shell/ario-shell-lyrics.c:43 #: ../src/shell/ario-shell-preferences.c:133 #: ../src/shell/ario-shell-songinfos.c:272 msgid "Lyrics" msgstr "Testi" #: ../src/shell/ario-shell-lyricsselect.c:152 msgid "Lyrics Download" msgstr "Download testi delle canzoni" #: ../src/shell/ario-shell-preferences.c:81 msgid "Ario Preferences" msgstr "Ario Preferenze" #: ../src/shell/ario-shell-preferences.c:113 msgid "Server" msgstr "Server" #: ../src/shell/ario-shell-preferences.c:143 msgid "Others" msgstr "Altri" #: ../src/shell/ario-shell-similarartists.c:318 #, c-format msgid "%d songs" msgstr "%d canzoni" #. Set window properties #. Set window title #: ../src/shell/ario-shell-songinfos.c:249 #: ../src/shell/ario-shell-songinfos.c:266 #: ../src/shell/ario-shell-songinfos.c:544 msgid "Song Properties" msgstr "Proprietà del brano" #: ../src/shell/ario-shell-songinfos.c:455 msgid "Error saving tags of file:" msgstr "Errore salvando tags del file:" #: ../src/widgets/ario-connection-widget.c:652 msgid "You must select a server." msgstr "Devi selezionare un server." #: ../src/widgets/ario-connection-widget.c:702 msgid "New Profile" msgstr "Nuovo Profilo" #: ../src/widgets/ario-firstlaunch.c:82 msgid "The following configuration will be used:" msgstr "Verrà usata la seguente configurazione:" #: ../src/widgets/ario-firstlaunch.c:106 msgid "" "It is the first time you launch Ario.\n" "This assistant will help you to configure it." msgstr "" "È la prima volta che esegui Ario\n" "Questa procedura guidata ti aiuterà a configurarlo." #: ../src/widgets/ario-firstlaunch.c:111 msgid "Welcome to Ario" msgstr "Benvenuto in Ario" #: ../src/widgets/ario-firstlaunch.c:129 msgid "Configuration" msgstr "Configurazione" #: ../src/widgets/ario-firstlaunch.c:141 msgid "Confirmation" msgstr "Conferma" #: ../src/widgets/ario-header.c:66 ../src/widgets/ario-tray-icon.h:42 #, c-format msgid "from %s by %s" msgstr "da %s di %s" #: ../src/widgets/ario-header.c:199 msgid "Play previous song" msgstr "Riproduci il brano precedente" #: ../src/widgets/ario-header.c:217 msgid "Play/Pause the music" msgstr "Riproduce/Interrompe la musica" #: ../src/widgets/ario-header.c:229 msgid "Stop the music" msgstr "Ferma la musica" #. Translators - This " of " is used to count the elapsed time #. of a song like in "00:59 of 03:24" #: ../src/widgets/ario-header.c:310 ../src/widgets/ario-tooltip.c:321 msgid " of " msgstr " di " #: ../src/widgets/ario-header.c:323 msgid "Toggle random on/off" msgstr "Imposta random on/off" #: ../src/widgets/ario-header.c:335 msgid "Toggle repeat on/off" msgstr "Imposta ripeti on/off" #: ../src/widgets/ario-header.c:340 msgid "Change the music volume" msgstr "Cambia il volume della musica" #: ../src/widgets/ario-lyrics-editor.c:323 msgid "Downloading lyrics..." msgstr "Sto scaricando il testo della canzone..." #: ../src/widgets/ario-lyrics-editor.c:351 msgid "Lyrics not found" msgstr "Non è stato trovato il testo della canzone" #: ../src/widgets/ario-playlist.c:133 msgid "_Clear" msgstr "_Cancella" #: ../src/widgets/ario-playlist.c:136 msgid "_Shuffle" msgstr "_Casuale" #: ../src/widgets/ario-playlist.c:139 msgid "Cr_op" msgstr "Rita_glia" #: ../src/widgets/ario-playlist.c:142 msgid "_Search in playlist" msgstr "_Cerca nella playlist" #: ../src/widgets/ario-playlist.c:145 msgid "_Remove" msgstr "_Rimuovi" #: ../src/widgets/ario-playlist.c:148 msgid "_Save" msgstr "_Salva" #: ../src/widgets/ario-playlist.c:154 msgid "_Go to playing song" msgstr "Vai alla canzone in esecuzione (_G)" #: ../src/widgets/ario-playlist.c:667 msgid "Filter:" msgstr "Filtro:" #. Create the widgets #: ../src/widgets/ario-playlist.c:1700 msgid "Save playlist" msgstr "Salva playlist" #: ../src/widgets/ario-playlist.c:1710 msgid "Playlist name :" msgstr "Nome playlist:" #: ../src/widgets/ario-playlist.c:1746 msgid "Playlist already exists. Do you want to overwrite it?" msgstr "La playlist esiste già. Vuoi sovrascriverla?" #. Format status bar message #: ../src/widgets/ario-status-bar.c:96 msgid "Songs" msgstr "Canzoni" #: ../src/widgets/ario-tray-icon.c:102 msgid "_Play" msgstr "Riproduci (_P)" #: ../src/widgets/ario-tray-icon.c:105 msgid "_Pause" msgstr "_Pausa" #: ../src/widgets/ario-tray-icon.c:108 msgid "_Stop" msgstr "_Stop" #: ../src/widgets/ario-tray-icon.c:111 msgid "_Next" msgstr "Successivo(_N)" #: ../src/widgets/ario-tray-icon.c:114 msgid "P_revious" msgstr "P_recedente" #: ../src/widgets/ario-tray-icon.h:41 msgid "Not playing" msgstr "Interrotto" #. Translators: "friendly time" string for the current day, strftime format. like "Today 12:34 am" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1179 msgid "Today %I:%M %p" msgstr "Oggi %I:%M %p" #. Translators: "friendly time" string for the previous day, #. * strftime format. e.g. "Yesterday 12:34 am" #. #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1192 msgid "Yesterday %I:%M %p" msgstr "Ieri %I:%M %p" #. Translators: "friendly time" string for a day in the current week, #. * strftime format. e.g. "Wed 12:34 am" #. #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1208 msgid "%a %I:%M %p" msgstr "%a %I:%M %p" #. Translators: "friendly time" string for a day in the current year, #. * strftime format. e.g. "Feb 12 12:34 am" #. #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1220 msgid "%b %d %I:%M %p" msgstr "%b %d %I:%M %p" #. Translators: "friendly time" string for a day in a different year, #. * strftime format. e.g. "Feb 12 1997" #. #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1225 msgid "%b %d %Y" msgstr "%b %d %Y" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1311 #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:4 msgid "Never" msgstr "Mai" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1335 msgid "OK" msgstr "OK" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1338 msgid "Logging in" msgstr "Accesso in corso" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1341 msgid "Request failed" msgstr "Richiesta fallita" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1344 msgid "Incorrect username" msgstr "Nome utente non corretto" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1347 msgid "Incorrect password" msgstr "Password errata" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1350 msgid "Handshake failed" msgstr "Handshake fallito" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1353 msgid "Client update required" msgstr "Richiesto aggiornamento del client" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1356 msgid "Track submission failed" msgstr "Invio della traccia fallito" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1359 msgid "Queue is too long" msgstr "La coda è troppo lunga" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1362 msgid "Track submission failed too many times" msgstr "Invio della traccia fallito troppe volte" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1417 msgid "Audioscrobbler preferences" msgstr "Preferenze di Audioscrobbler" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:1 msgid "Disabled" msgstr "Non attivo" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:2 msgid "Last submission time:" msgstr "Ultima data di invio:" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:3 msgid "Last.fm Profile" msgstr "Profilo Last.fm" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:6 msgid "Queued tracks:" msgstr "Tracce accodate:" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:7 msgid "Status:" msgstr "Stato:" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:8 msgid "Tracks submitted:" msgstr "Tracce inviate:" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:9 #: ../plugins/radios/ario-radio.c:168 msgid "Username :" msgstr "Utente:" #: ../plugins/audioscrobbler/audioscrobbler.ario-plugin.desktop.in.h:1 msgid "Last.fm" msgstr "Last.fm" #: ../plugins/audioscrobbler/audioscrobbler.ario-plugin.desktop.in.h:2 msgid "Submits song information to last.fm" msgstr "Invia le informazioni relative alla canzone a Last.fm" #: ../plugins/filesystem/ario-filesystem.c:158 msgid "File System" msgstr "File System" #: ../plugins/filesystem/ario-filesystem.c:422 msgid "Music" msgstr "Musica" #: ../plugins/filesystem/filesystem.ario-plugin.desktop.in.h:1 msgid "A File System Browser" msgstr "Un visualizzatore di risorse" #: ../plugins/filesystem/filesystem.ario-plugin.desktop.in.h:2 msgid "File System Browser" msgstr "Visualizzatore Risorse" #: ../plugins/information/ario-information.c:114 msgid "Information" msgstr "Informazioni" #: ../plugins/information/information.ario-plugin.desktop.in.h:1 msgid "Display various information about the playing song" msgstr "Mostra diverse informazioni sul brano in esecuzione" #: ../plugins/information/information.ario-plugin.desktop.in.h:2 msgid "Song Information" msgstr "Informazioni sul brano" #: ../plugins/information/information.ui.h:2 msgid "Albums from this artist:" msgstr "Album di questo artista:" #: ../plugins/information/information.ui.h:5 msgid "Lyrics:" msgstr "Testo:" #: ../plugins/libnotify/libnotify.ario-plugin.desktop.in.h:1 msgid "Add libnotify support" msgstr "Aggiungi supporto libnotify" #: ../plugins/libnotify/libnotify.ario-plugin.desktop.in.h:2 msgid "Libnotify" msgstr "Libnotify" #: ../plugins/mmkeys/mmkeys.ario-plugin.desktop.in.h:1 msgid "Add multimedia keys support" msgstr "Aggiungi il supporto per tasti multimediali" #: ../plugins/mmkeys/mmkeys.ario-plugin.desktop.in.h:2 msgid "Multimedia Keys" msgstr "Tasti Multimediali" #: ../plugins/radios/ario-radio.c:125 msgid "Add a _new radio" msgstr "Aggiungi una _nuova radio" #: ../plugins/radios/ario-radio.c:128 msgid "_Delete this radios" msgstr "Cancella questa radio (_D)" #: ../plugins/radios/ario-radio.c:166 msgid "Last.fm: Radio of similar artists" msgstr "Last.fm: Radio con artisti simili" #: ../plugins/radios/ario-radio.c:167 msgid "Last.fm: Radio of group" msgstr "Last.fm: Radio con gruppi" #: ../plugins/radios/ario-radio.c:167 msgid "Group :" msgstr "Gruppo :" #: ../plugins/radios/ario-radio.c:168 msgid "Last.fm: Personal radio" msgstr "Last.fm: Radio personale" #: ../plugins/radios/ario-radio.c:169 msgid "Last.fm: Radio of genre" msgstr "Last.fm: Radio per genere" #: ../plugins/radios/ario-radio.c:184 #: ../plugins/radios/radios.ario-plugin.desktop.in.h:2 msgid "Web Radios" msgstr "Web Radio" #: ../plugins/radios/ario-radio.c:246 msgid "Internet Radios" msgstr "Internet Radio" #. Create dialog window #: ../plugins/radios/ario-radio.c:774 msgid "Edit a WebRadio" msgstr "Modifica una WebRadio" #: ../plugins/radios/ario-radio.c:787 ../plugins/radios/ario-radio.c:923 msgid "URL :" msgstr "URL:" #: ../plugins/radios/ario-radio.c:853 ../plugins/radios/ario-radio.c:997 msgid "Bad parameters. You must specify a name and a URL for the radio." msgstr "" "Parametri non corretti. Devi specificare un nome e un URL per la radio." #. Create dialog window #: ../plugins/radios/ario-radio.c:883 msgid "Add a WebRadio" msgstr "Aggiungi una WebRadio" #: ../plugins/radios/ario-radio.c:1083 msgid "Are you sure you want to delete all the selected radios?" msgstr "Sei sicuro di voler cancellare tutte le radio selezionate?" #: ../plugins/radios/radios.ario-plugin.desktop.in.h:1 msgid "Listen to webradios" msgstr "Ascolta WebRadio" #: ../plugins/wikipedia/ario-wikipedia-plugin.c:49 #: ../plugins/wikipedia/ario-wikipedia-plugin.c:50 msgid "Find artist on Wikipedia" msgstr "Cerca artista su Wikipedia" #: ../plugins/wikipedia/ario-wikipedia-plugin.c:172 msgid "Wikipedia Plugin - Configuration" msgstr "Wikipedia Plugin - Configurazione" #: ../plugins/wikipedia/ario-wikipedia-plugin.c:181 msgid "Wikipedia language :" msgstr "Lingua di Wikipedia:" #: ../plugins/wikipedia/wikipedia.ario-plugin.desktop.in.h:1 msgid "A plugin to search current artist on wikipedia" msgstr "Un plugin per cercare l'artista in ascolto su wikipedia" #: ../plugins/wikipedia/wikipedia.ario-plugin.desktop.in.h:2 msgid "Wikipedia" msgstr "Wikipedia" #~ msgid "Search songs in the library" #~ msgstr "Cerca canzoni nella libreria" #~ msgid "Add a search criteria" #~ msgstr "Aggiungi un criterio di ricerca" #~ msgid "Remove a search criteria" #~ msgstr "Rimuovi un criterio di ricerca" ario-1.6/po/id.po0000644000175000017500000007460113226723435010624 00000000000000# Indonesian translation for ario # Copyright (c) 2007 Rosetta Contributors and Canonical Ltd 2007 # This file is distributed under the same license as the ario package. # FIRST AUTHOR , 2007. # msgid "" msgstr "" "Project-Id-Version: ario\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2011-06-13 18:15+0200\n" "PO-Revision-Date: 2010-07-25 04:04+0000\n" "Last-Translator: Marc Pavot \n" "Language-Team: Indonesian \n" "Language: id\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2011-06-13 16:32+0000\n" "X-Generator: Launchpad (build 13175)\n" #: ../data/ario.desktop.in.in.h:1 msgid "Ario music player" msgstr "pemutar lagu Ario" #: ../data/ario.desktop.in.in.h:2 msgid "Client application to mpd" msgstr "Aplikasi klien pada mpd" #: ../data/ui/browser-prefs.ui.h:1 msgid "Alphabetically" msgstr "Secara Abjad" #: ../data/ui/browser-prefs.ui.h:2 msgid "By year" msgstr "" #: ../data/ui/browser-prefs.ui.h:3 msgid "Library Options" msgstr "" #: ../data/ui/browser-prefs.ui.h:4 msgid "Library Organisation" msgstr "" #: ../data/ui/browser-prefs.ui.h:5 msgid "Sort albums: " msgstr "" #: ../data/ui/connection-autodetect.ui.h:1 msgid "" "If you don't see your MPD server thanks to the automatic detection, you " "should check that zeroconf is activated in your MPD configuration or use the " "manual configuration." msgstr "" #: ../data/ui/connection-autodetect.ui.h:2 msgid "Server autodetection" msgstr "Deteksi otomatis server" #: ../data/ui/connection-widget.ui.h:1 msgid "Auto detect" msgstr "Deteksi otomatis" #: ../data/ui/connection-widget.ui.h:2 msgid "Default" msgstr "Default" #: ../data/ui/connection-widget.ui.h:3 ../src/widgets/ario-firstlaunch.c:83 msgid "Host :" msgstr "tuan rumah" #: ../data/ui/connection-widget.ui.h:4 msgid "Music directory :" msgstr "Direktori Musik:" #: ../data/ui/connection-widget.ui.h:5 msgid "Music server is on the same computer as Ario" msgstr "" #. Create the widgets #: ../data/ui/connection-widget.ui.h:6 ../plugins/radios/ario-radio.c:786 #: ../plugins/radios/ario-radio.c:922 msgid "Name :" msgstr "Nama :" #: ../data/ui/connection-widget.ui.h:7 #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:5 msgid "Password :" msgstr "Kata sandi :" #: ../data/ui/connection-widget.ui.h:8 ../src/widgets/ario-firstlaunch.c:85 msgid "Port :" msgstr "Port :" #: ../data/ui/connection-widget.ui.h:9 #, fuzzy msgid "Server type :" msgstr "Server" #: ../data/ui/connection-widget.ui.h:10 msgid "Timeout :" msgstr "" #: ../data/ui/connection-widget.ui.h:11 msgid "XMMS 2 (Experimental)" msgstr "" #: ../data/ui/cover-prefs.ui.h:1 msgid "Automatically download the album cover of the playing song" msgstr "mendownload secara otomatis sampul album dari lagu yang sedang diputar" #: ../data/ui/cover-prefs.ui.h:2 ../src/shell/ario-shell-preferences.c:128 msgid "Covers" msgstr "sampul" #: ../data/ui/cover-prefs.ui.h:3 msgid "Covers Sources" msgstr "sumber sampul" #: ../data/ui/cover-prefs.ui.h:4 msgid "Show the covers in the albums list" msgstr "tunjukkan sampul pada daftar album" #: ../data/ui/cover-prefs.ui.h:5 msgid "Use Amazon." msgstr "menggunakan amazon" #: ../data/ui/connection-prefs.ui.h:1 #: ../src/shell/ario-shell-preferences.c:108 msgid "Connection" msgstr "Sambungan" #: ../data/ui/connection-prefs.ui.h:2 msgid "_Autoconnect on startup" msgstr "Sambung otomatis ketika mulai" #: ../data/ui/connection-prefs.ui.h:3 ../src/shell/ario-shell.c:167 msgid "_Connect" msgstr "_Sambungkan" #: ../data/ui/connection-prefs.ui.h:4 ../src/shell/ario-shell.c:170 msgid "_Disconnect" msgstr "_Putuskan-koneksi" #: ../data/ui/connection-assistant.ui.h:1 msgid "" "You need to specify a server to connect to. If you don't see your server " "thanks to the autodetection, you should check that zeroconf/avahi is " "activated in your server or use the manual configuration." msgstr "" #: ../data/ui/cover-progress.ui.h:1 ../data/ui/cover-select.ui.h:1 #: ../data/ui/song-infos.ui.h:1 ../plugins/information/information.ui.h:1 msgid "Album :" msgstr "Album :" #: ../data/ui/cover-progress.ui.h:2 ../data/ui/cover-select.ui.h:2 #: ../data/ui/lyrics-select.ui.h:1 ../data/ui/song-infos.ui.h:3 #: ../plugins/information/information.ui.h:3 #: ../plugins/radios/ario-radio.c:166 msgid "Artist :" msgstr "Artis :" #: ../data/ui/cover-progress.ui.h:3 msgid "Downloading cover" msgstr "" #: ../data/ui/cover-select.ui.h:3 msgid "Local search" msgstr "Pencarian lokal" #: ../data/ui/cover-select.ui.h:4 ../src/sources/ario-search.c:108 msgid "Search" msgstr "Cari" #: ../data/ui/others-prefs.ui.h:1 msgid "Allow only one instance of Ario" msgstr "" #: ../data/ui/others-prefs.ui.h:2 msgid "Hide window when close button is pressed" msgstr "" #: ../data/ui/others-prefs.ui.h:3 msgid "Interface" msgstr "" #: ../data/ui/others-prefs.ui.h:4 msgid "Playlist at the right of tabs" msgstr "" #: ../data/ui/others-prefs.ui.h:5 msgid "Playlist below tabs" msgstr "" #: ../data/ui/others-prefs.ui.h:6 msgid "Playlist within tabs" msgstr "" #: ../data/ui/others-prefs.ui.h:7 msgid "Proxy" msgstr "Proxy" #: ../data/ui/others-prefs.ui.h:8 msgid "Proxy Address :" msgstr "Alamat Proxy :" #: ../data/ui/others-prefs.ui.h:9 msgid "Proxy Port :" msgstr "" #: ../data/ui/others-prefs.ui.h:10 msgid "Show tabs" msgstr "" #: ../data/ui/others-prefs.ui.h:11 msgid "Use a proxy" msgstr "Menggunakan proxy" #: ../data/ui/lyrics-prefs.ui.h:1 msgid "Lyrics Sources" msgstr "" #: ../data/ui/lyrics-select.ui.h:2 ../data/ui/song-infos.ui.h:13 #: ../plugins/information/information.ui.h:6 msgid "Title :" msgstr "Judul :" #: ../data/ui/playlist-prefs.ui.h:1 msgid "Add after playing song" msgstr "" #: ../data/ui/playlist-prefs.ui.h:2 msgid "Add and play" msgstr "" #: ../data/ui/playlist-prefs.ui.h:3 ../data/ui/similar-artists.ui.h:2 msgid "Add to playlist" msgstr "tambahkan ke daftar main" #. ARIO_TAG_ARTIST #: ../data/ui/playlist-prefs.ui.h:4 ../src/servers/ario-server.c:46 #: ../src/sources/ario-tree-albums.c:213 ../src/widgets/ario-playlist.c:541 #: ../src/widgets/ario-songlist.c:228 ../src/widgets/ario-tray-icon.c:565 msgid "Album" msgstr "Album" #: ../data/ui/playlist-prefs.ui.h:5 ../src/servers/ario-server.c:45 #: ../src/widgets/ario-playlist.c:541 ../src/widgets/ario-songlist.c:213 #: ../src/widgets/ario-tray-icon.c:563 msgid "Artist" msgstr "Artis" #. ARIO_TAG_GENRE #: ../data/ui/playlist-prefs.ui.h:6 ../src/servers/ario-server.c:52 #: ../src/widgets/ario-playlist.c:541 msgid "Date" msgstr "Tanggal" #: ../data/ui/playlist-prefs.ui.h:7 ../src/widgets/ario-playlist.c:541 msgid "Disc" msgstr "" #: ../data/ui/playlist-prefs.ui.h:8 msgid "Double click" msgstr "" #: ../data/ui/playlist-prefs.ui.h:9 ../src/widgets/ario-playlist.c:541 msgid "Duration" msgstr "Durasi" #: ../data/ui/playlist-prefs.ui.h:10 ../src/widgets/ario-playlist.c:541 msgid "File" msgstr "Berkas" #. ARIO_TAG_TRACK #. ARIO_TAG_NAME #: ../data/ui/playlist-prefs.ui.h:11 ../src/servers/ario-server.c:51 #: ../src/widgets/ario-playlist.c:541 msgid "Genre" msgstr "Aliran" #: ../data/ui/playlist-prefs.ui.h:12 msgid "Go to current song when a new song is played" msgstr "" #: ../data/ui/playlist-prefs.ui.h:13 msgid "Mode" msgstr "" #: ../data/ui/playlist-prefs.ui.h:14 msgid "On double click:" msgstr "" #: ../data/ui/playlist-prefs.ui.h:15 ../src/sources/ario-storedplaylists.c:229 #: ../src/shell/ario-shell.c:222 ../src/shell/ario-shell-preferences.c:123 #: ../src/widgets/ario-playlist.c:272 msgid "Playlist" msgstr "Daftar lagu" #: ../data/ui/playlist-prefs.ui.h:16 msgid "Playlist mode:" msgstr "" #: ../data/ui/playlist-prefs.ui.h:17 msgid "Replace in playlist" msgstr "" #: ../data/ui/playlist-prefs.ui.h:18 msgid "Show rows:" msgstr "Tampilkan baris:" #. ARIO_TAG_ALBUM_ARTIST #: ../data/ui/playlist-prefs.ui.h:19 ../src/servers/ario-server.c:48 #: ../src/sources/ario-tree-songs.c:145 ../src/widgets/ario-playlist.c:541 #: ../src/widgets/ario-songlist.c:198 ../src/widgets/ario-tray-icon.c:567 msgid "Title" msgstr "Judul" #. ARIO_TAG_TITLE #: ../data/ui/playlist-prefs.ui.h:20 ../src/servers/ario-server.c:49 #: ../src/sources/ario-tree-songs.c:138 ../src/widgets/ario-playlist.c:541 msgid "Track" msgstr "Trek" #: ../data/ui/server-prefs.ui.h:1 msgid "Audio outputs" msgstr "" #: ../data/ui/server-prefs.ui.h:2 msgid "Crossfade" msgstr "" #: ../data/ui/server-prefs.ui.h:3 msgid "Database" msgstr "Database" #: ../data/ui/server-prefs.ui.h:4 msgid "Last updated:" msgstr "Pembaruan terakhir" #: ../data/ui/server-prefs.ui.h:5 msgid "Stop music on exit" msgstr "" #: ../data/ui/server-prefs.ui.h:6 msgid "Update on startup" msgstr "" #: ../data/ui/server-prefs.ui.h:7 msgid "_Update" msgstr "_Pembaruan" #: ../data/ui/server-prefs.ui.h:8 msgid "enable crossfade" msgstr "aktifkan menghilang silang" #: ../data/ui/server-prefs.ui.h:9 msgid "fade time (s):" msgstr "waktu pudar" #: ../data/ui/server-prefs.ui.h:10 ../src/ario-util.c:50 ../src/ario-util.c:71 #: ../src/ario-util.c:93 ../plugins/information/information.ui.h:7 #, c-format msgid "n/a" msgstr "n/a" #: ../data/ui/similar-artists.ui.h:1 msgid "Add all to playlist" msgstr "tambahkan semua ke daftar main" #: ../data/ui/similar-artists.ui.h:3 msgid "Find on Last.fm" msgstr "Cari di Last.fm" #: ../data/ui/stats-prefs.ui.h:1 msgid "Database play time :" msgstr "database waktu putar lagu" #: ../data/ui/stats-prefs.ui.h:2 msgid "Number of albums :" msgstr "" #: ../data/ui/stats-prefs.ui.h:3 msgid "Number of artists :" msgstr "" #: ../data/ui/stats-prefs.ui.h:4 msgid "Number of songs :" msgstr "" #: ../data/ui/stats-prefs.ui.h:5 msgid "Play time :" msgstr "Waktu memutar :" #: ../data/ui/stats-prefs.ui.h:6 ../src/shell/ario-shell-preferences.c:148 msgid "Statistics" msgstr "Statistik" #: ../data/ui/stats-prefs.ui.h:7 msgid "Uptime :" msgstr "" #: ../data/ui/song-infos.ui.h:2 msgid "Album Artist :" msgstr "" #: ../data/ui/song-infos.ui.h:4 msgid "Comment :" msgstr "Komentar" #: ../data/ui/song-infos.ui.h:5 msgid "Composer :" msgstr "" #: ../data/ui/song-infos.ui.h:6 msgid "Date :" msgstr "Tanggal" #: ../data/ui/song-infos.ui.h:7 msgid "Disc :" msgstr "" #: ../data/ui/song-infos.ui.h:8 msgid "Filename :" msgstr "Nama berkas :" #: ../data/ui/song-infos.ui.h:9 ../plugins/radios/ario-radio.c:169 msgid "Genre :" msgstr "Aliran :" #: ../data/ui/song-infos.ui.h:10 ../plugins/information/information.ui.h:4 msgid "Length :" msgstr "Panjang :" #: ../data/ui/song-infos.ui.h:11 msgid "Performer :" msgstr "" #: ../data/ui/song-infos.ui.h:12 msgid "Song" msgstr "Lagu" #: ../data/ui/song-infos.ui.h:14 msgid "Track :" msgstr "Trek" #: ../data/ui/trayicon-prefs.ui.h:1 msgid "Do nothing" msgstr "Tak ada yang dilakukan" #: ../data/ui/trayicon-prefs.ui.h:2 msgid "Mute" msgstr "" #: ../data/ui/trayicon-prefs.ui.h:3 ../src/shell/ario-shell-preferences.c:138 msgid "Notification" msgstr "" #: ../data/ui/trayicon-prefs.ui.h:4 msgid "Notification on song change" msgstr "" #: ../data/ui/trayicon-prefs.ui.h:5 msgid "Notification time: " msgstr "" #: ../data/ui/trayicon-prefs.ui.h:6 msgid "On middle button click on tray icon :" msgstr "" #: ../data/ui/trayicon-prefs.ui.h:7 ../src/widgets/ario-header.c:241 msgid "Play next song" msgstr "Putar lagu berikutnya" #: ../data/ui/trayicon-prefs.ui.h:8 msgid "Play/Pause" msgstr "Mainkan/Jeda" #: ../data/ui/trayicon-prefs.ui.h:9 msgid "Tray icon" msgstr "" #: ../src/ario-main.c:67 msgid "Start minimized window" msgstr "" #: ../src/ario-main.c:68 msgid "Start with specific profile" msgstr "" #. Format result string #: ../src/ario-util.c:110 msgid "seconds" msgstr "detik" #: ../src/ario-util.c:112 msgid "minutes" msgstr "menit" #: ../src/ario-util.c:118 msgid "hours" msgstr "jam" #: ../src/ario-util.c:124 msgid "days" msgstr "hari" #: ../src/covers/ario-cover.c:149 msgid "The cover already exists. Do you want to replace it?" msgstr "Sampul telah ada. Ingin menggantinya?" #: ../src/covers/ario-cover-local.c:48 msgid "Music Directory" msgstr "Direktori musik :" #: ../src/playlist/ario-playlist-dynamic.c:49 msgid "songs of same artist" msgstr "" #: ../src/playlist/ario-playlist-dynamic.c:50 msgid "songs of same album" msgstr "" #: ../src/playlist/ario-playlist-dynamic.c:51 msgid "songs of similar artists" msgstr "" #: ../src/playlist/ario-playlist-dynamic.c:52 msgid "albums of same artists" msgstr "" #: ../src/playlist/ario-playlist-dynamic.c:53 msgid "albums of similar artists" msgstr "" #: ../src/playlist/ario-playlist-dynamic.c:69 msgid "Dynamic Playlist" msgstr "" #: ../src/playlist/ario-playlist-queue.c:49 msgid "Queue Mode" msgstr "" #: ../src/playlist/ario-playlist-normal.c:47 msgid "Normal" msgstr "" #: ../src/plugins/ario-plugin-manager.c:45 msgid "Plugin" msgstr "Plugin" #: ../src/plugins/ario-plugin-manager.c:46 msgid "Enabled" msgstr "Diaktifkan" #: ../src/plugins/ario-plugin-manager.c:480 ../src/shell/ario-shell.c:206 msgid "_About" msgstr "_Tentang" #: ../src/plugins/ario-plugin-manager.c:488 msgid "C_onfigure" msgstr "K_onfigurasi" #: ../src/plugins/ario-plugin-manager.c:497 msgid "A_ctivate" msgstr "A_ktivasi" #: ../src/plugins/ario-plugin-manager.c:508 msgid "Ac_tivate All" msgstr "Ak_tivasi Semua" #: ../src/plugins/ario-plugin-manager.c:513 msgid "_Deactivate All" msgstr "_Matikan Semua" #: ../src/plugins/ario-plugin-manager.c:722 msgid "Active plugins" msgstr "Plugin aktif" #: ../src/preferences/ario-server-preferences.c:182 #: ../src/preferences/ario-stats-preferences.c:151 #: ../src/preferences/ario-stats-preferences.c:152 #: ../src/preferences/ario-stats-preferences.c:153 #: ../src/preferences/ario-stats-preferences.c:154 #: ../src/preferences/ario-stats-preferences.c:155 #: ../src/preferences/ario-stats-preferences.c:156 msgid "Not connected" msgstr "Tidak tersambung" #: ../src/preferences/ario-server-preferences.c:187 #: ../src/preferences/ario-server-preferences.c:278 #: ../src/widgets/ario-status-bar.c:100 msgid "Updating..." msgstr "Memperbarui..." #: ../src/servers/ario-mpd.c:410 ../src/servers/ario-mpd2.c:522 msgid "Connecting to server..." msgstr "" #: ../src/servers/ario-mpd.c:438 ../src/servers/ario-mpd2.c:550 msgid "Impossible to connect to server. Check the connection options." msgstr "" #. ARIO_TAG_ALBUM #: ../src/servers/ario-server.c:47 msgid "Album Artist" msgstr "" #. ARIO_TAG_DATE #: ../src/servers/ario-server.c:53 msgid "Composer" msgstr "" #. ARIO_TAG_COMPOSER #: ../src/servers/ario-server.c:54 msgid "Performer" msgstr "" #. ARIO_TAG_PERFORMER #. ARIO_TAG_COMMENT #. ARIO_TAG_DISC #: ../src/servers/ario-server.c:57 msgid "Filename" msgstr "Nama berkas" #. ARIO_TAG_FILENAME #: ../src/servers/ario-server.c:58 msgid "Any" msgstr "Apapun" #. impossible time or broken locale settings #: ../src/servers/ario-server.h:27 #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1235 msgid "Unknown" msgstr "Tidak diketahui" #: ../src/sources/ario-browser.c:82 ../src/sources/ario-search.c:70 #: ../src/sources/ario-storedplaylists.c:88 #: ../src/sources/ario-storedplaylists.c:106 #: ../plugins/filesystem/ario-filesystem.c:94 #: ../plugins/filesystem/ario-filesystem.c:109 #: ../plugins/radios/ario-radio.c:116 msgid "_Add to playlist" msgstr "" #: ../src/sources/ario-browser.c:85 ../src/sources/ario-search.c:73 #: ../src/sources/ario-storedplaylists.c:91 #: ../src/sources/ario-storedplaylists.c:109 #: ../plugins/filesystem/ario-filesystem.c:97 #: ../plugins/filesystem/ario-filesystem.c:112 #: ../plugins/radios/ario-radio.c:119 msgid "Add and _play" msgstr "Tambah dan _mainkan" #: ../src/sources/ario-browser.c:88 ../src/sources/ario-search.c:76 #: ../src/sources/ario-storedplaylists.c:94 #: ../src/sources/ario-storedplaylists.c:112 #: ../plugins/filesystem/ario-filesystem.c:100 #: ../plugins/filesystem/ario-filesystem.c:115 #: ../plugins/radios/ario-radio.c:122 msgid "_Replace in playlist" msgstr "" #: ../src/sources/ario-browser.c:91 msgid "Get the covers" msgstr "" #: ../src/sources/ario-browser.c:94 msgid "_Delete the covers" msgstr "Hapus sampul" #: ../src/sources/ario-browser.c:97 ../src/sources/ario-browser.c:100 #: ../src/sources/ario-search.c:79 ../src/sources/ario-storedplaylists.c:115 #: ../src/widgets/ario-playlist.c:151 #: ../plugins/filesystem/ario-filesystem.c:118 #: ../plugins/radios/ario-radio.c:131 msgid "_Properties" msgstr "_Properti" #: ../src/sources/ario-browser.c:125 ../src/shell/ario-shell-preferences.c:118 msgid "Library" msgstr "Pustaka" #: ../src/sources/ario-storedplaylists.c:97 msgid "_Delete" msgstr "_Hapus" #: ../src/sources/ario-storedplaylists.c:151 msgid "Playlists" msgstr "Daftar Lagu" #: ../src/sources/ario-storedplaylists.c:592 msgid "Are you sure that you want to delete all the selected playlists?" msgstr "Apakah anda yakin ingin menghapus semua daftar main?" #: ../src/sources/ario-tree.c:856 msgid "Are you sure that you want to remove all the selected covers?" msgstr "" #. Translators - This "Cover" refers to an album cover art #: ../src/sources/ario-tree-albums.c:199 msgid "Cover" msgstr "Sampul" #: ../src/shell/ario-shell.c:160 msgid "_File" msgstr "_Berkas" #: ../src/shell/ario-shell.c:161 msgid "_Edit" msgstr "_Sunting" #: ../src/shell/ario-shell.c:162 msgid "_View" msgstr "_Tampilan" #: ../src/shell/ario-shell.c:163 msgid "_Control" msgstr "" #: ../src/shell/ario-shell.c:164 msgid "_Tool" msgstr "perkakas" #: ../src/shell/ario-shell.c:165 msgid "_Help" msgstr "_Bantuan" #: ../src/shell/ario-shell.c:173 msgid "_Update database" msgstr "" #: ../src/shell/ario-shell.c:176 msgid "_Quit" msgstr "_Keluar" #: ../src/shell/ario-shell.c:179 msgid "Plu_gins" msgstr "Plu_gin" #: ../src/shell/ario-shell.c:182 msgid "Prefere_nces" msgstr "Pe_ngaturan" #: ../src/shell/ario-shell.c:185 msgid "_Change current album cover" msgstr "" #: ../src/shell/ario-shell.c:188 msgid "Download album _covers" msgstr "Unduh sampul album" #: ../src/shell/ario-shell.c:191 msgid "Find similar artists" msgstr "Cari artis yang sama" #: ../src/shell/ario-shell.c:194 msgid "Add similar songs to playlist" msgstr "" #: ../src/shell/ario-shell.c:197 msgid "Go to _previous tab" msgstr "" #: ../src/shell/ario-shell.c:200 msgid "Go to _next tab" msgstr "" #: ../src/shell/ario-shell.c:203 msgid "Show _lyrics" msgstr "Tampilkan _lirik" #: ../src/shell/ario-shell.c:209 msgid "_Translate this application..." msgstr "_Terjemahkan aplikasi ini..." #: ../src/shell/ario-shell.c:216 msgid "S_tatusbar" msgstr "Panel S_tatus" #: ../src/shell/ario-shell.c:219 msgid "Upper part" msgstr "Bagian paling atas" #: ../src/shell/ario-shell.c:825 msgid "GTK client for MPD" msgstr "Klien GTK untuk MPD" #: ../src/shell/ario-shell.c:826 msgid "translator-credits" msgstr "" "Launchpad Contributions:\n" " LOnely Luna https://launchpad.net/~gerydcutegal\n" " Marc Pavot https://launchpad.net/~marc-pavot\n" " Muhammad Zulfikar https://launchpad.net/~zulfikars-deactivatedaccount\n" " Nestanet https://launchpad.net/~nesta-101106\n" " reza https://launchpad.net/~edja-kun" #. Create plugins configuration dialog window #: ../src/shell/ario-shell.c:1278 msgid "Configure Plugins" msgstr "Mengkonfigurasi Plugin" #. Set window properties #: ../src/shell/ario-shell-coverdownloader.c:187 msgid "Music Player Cover Download" msgstr "" #: ../src/shell/ario-shell-coverdownloader.c:332 msgid "Download Finished!" msgstr "Pengunduhan selesai" #. We show the numbers of covers found and not found #: ../src/shell/ario-shell-coverdownloader.c:335 #, c-format msgid "" "%i covers found\n" "%i covers not found\n" "%i covers already exist" msgstr "" "%i sampul ditemukan\n" "%i sampul not tidak ditemukan\n" "%i sampul sudah ada" #. Set window properties #: ../src/shell/ario-shell-coverselect.c:242 msgid "Cover Download" msgstr "Mengunduh sampul" #: ../src/shell/ario-shell-coverselect.c:559 msgid "Error reading file" msgstr "Kesalahan membaca berkas" #: ../src/shell/ario-shell-coverselect.c:584 msgid "Error saving file" msgstr "Kesalahan menyimpan berkas" #: ../src/shell/ario-shell-lyrics.c:43 #: ../src/shell/ario-shell-preferences.c:133 #: ../src/shell/ario-shell-songinfos.c:272 msgid "Lyrics" msgstr "Lirik" #: ../src/shell/ario-shell-lyricsselect.c:152 msgid "Lyrics Download" msgstr "Mengunduh lirik" #: ../src/shell/ario-shell-preferences.c:81 msgid "Ario Preferences" msgstr "Pengaturan Ario" #: ../src/shell/ario-shell-preferences.c:113 msgid "Server" msgstr "Server" #: ../src/shell/ario-shell-preferences.c:143 msgid "Others" msgstr "" #: ../src/shell/ario-shell-similarartists.c:318 #, c-format msgid "%d songs" msgstr "%d Lagu" #. Set window properties #. Set window title #: ../src/shell/ario-shell-songinfos.c:249 #: ../src/shell/ario-shell-songinfos.c:266 #: ../src/shell/ario-shell-songinfos.c:544 msgid "Song Properties" msgstr "Keterangan Lagu" #: ../src/shell/ario-shell-songinfos.c:455 msgid "Error saving tags of file:" msgstr "" #: ../src/widgets/ario-connection-widget.c:652 msgid "You must select a server." msgstr "Anda harus memilih server" #: ../src/widgets/ario-connection-widget.c:702 msgid "New Profile" msgstr "Profil Baru" #: ../src/widgets/ario-firstlaunch.c:82 msgid "The following configuration will be used:" msgstr "" #: ../src/widgets/ario-firstlaunch.c:106 msgid "" "It is the first time you launch Ario.\n" "This assistant will help you to configure it." msgstr "" #: ../src/widgets/ario-firstlaunch.c:111 msgid "Welcome to Ario" msgstr "Selamat Datang di Ario" #: ../src/widgets/ario-firstlaunch.c:129 msgid "Configuration" msgstr "Konfigurasi" #: ../src/widgets/ario-firstlaunch.c:141 msgid "Confirmation" msgstr "Konfirmasi" #: ../src/widgets/ario-header.c:66 ../src/widgets/ario-tray-icon.h:42 #, c-format msgid "from %s by %s" msgstr "" #: ../src/widgets/ario-header.c:199 msgid "Play previous song" msgstr "Putar lagu sebelumnya" #: ../src/widgets/ario-header.c:217 msgid "Play/Pause the music" msgstr "" #: ../src/widgets/ario-header.c:229 msgid "Stop the music" msgstr "" #. Translators - This " of " is used to count the elapsed time #. of a song like in "00:59 of 03:24" #: ../src/widgets/ario-header.c:310 ../src/widgets/ario-tooltip.c:321 msgid " of " msgstr " dari " #: ../src/widgets/ario-header.c:323 msgid "Toggle random on/off" msgstr "" #: ../src/widgets/ario-header.c:335 msgid "Toggle repeat on/off" msgstr "" #: ../src/widgets/ario-header.c:340 msgid "Change the music volume" msgstr "ubah volume musik" #: ../src/widgets/ario-lyrics-editor.c:323 msgid "Downloading lyrics..." msgstr "Download lirik" #: ../src/widgets/ario-lyrics-editor.c:351 msgid "Lyrics not found" msgstr "lirik tak ditemukan" #: ../src/widgets/ario-playlist.c:133 msgid "_Clear" msgstr "_Bersih" #: ../src/widgets/ario-playlist.c:136 msgid "_Shuffle" msgstr "" #: ../src/widgets/ario-playlist.c:139 msgid "Cr_op" msgstr "" #: ../src/widgets/ario-playlist.c:142 msgid "_Search in playlist" msgstr "" #: ../src/widgets/ario-playlist.c:145 msgid "_Remove" msgstr "_Hapus" #: ../src/widgets/ario-playlist.c:148 msgid "_Save" msgstr "_Simpan" #: ../src/widgets/ario-playlist.c:154 msgid "_Go to playing song" msgstr "" #: ../src/widgets/ario-playlist.c:667 msgid "Filter:" msgstr "" #. Create the widgets #: ../src/widgets/ario-playlist.c:1700 msgid "Save playlist" msgstr "Simpan daftar lagu" #: ../src/widgets/ario-playlist.c:1710 msgid "Playlist name :" msgstr "Nama daftar lagu" #: ../src/widgets/ario-playlist.c:1746 msgid "Playlist already exists. Do you want to overwrite it?" msgstr "Sampul telah ada. Ingin menggantinya?" #. Format status bar message #: ../src/widgets/ario-status-bar.c:96 msgid "Songs" msgstr "Lagu" #: ../src/widgets/ario-tray-icon.c:102 msgid "_Play" msgstr "" #: ../src/widgets/ario-tray-icon.c:105 msgid "_Pause" msgstr "" #: ../src/widgets/ario-tray-icon.c:108 msgid "_Stop" msgstr "_Berhenti" #: ../src/widgets/ario-tray-icon.c:111 msgid "_Next" msgstr "Selanjutnya" #: ../src/widgets/ario-tray-icon.c:114 msgid "P_revious" msgstr "M_undur" #: ../src/widgets/ario-tray-icon.h:41 msgid "Not playing" msgstr "Sedang berhenti" #. Translators: "friendly time" string for the current day, strftime format. like "Today 12:34 am" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1179 msgid "Today %I:%M %p" msgstr "Hari ini %H:%M" #. Translators: "friendly time" string for the previous day, #. * strftime format. e.g. "Yesterday 12:34 am" #. #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1192 msgid "Yesterday %I:%M %p" msgstr "Kemarin %H:%M" #. Translators: "friendly time" string for a day in the current week, #. * strftime format. e.g. "Wed 12:34 am" #. #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1208 msgid "%a %I:%M %p" msgstr "%a %I:%M %p" #. Translators: "friendly time" string for a day in the current year, #. * strftime format. e.g. "Feb 12 12:34 am" #. #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1220 msgid "%b %d %I:%M %p" msgstr "" #. Translators: "friendly time" string for a day in a different year, #. * strftime format. e.g. "Feb 12 1997" #. #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1225 msgid "%b %d %Y" msgstr "%b %d %Y" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1311 #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:4 msgid "Never" msgstr "Jangan Pernah" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1335 msgid "OK" msgstr "OK" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1338 msgid "Logging in" msgstr "Login masuk" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1341 msgid "Request failed" msgstr "Permohonan gagal" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1344 msgid "Incorrect username" msgstr "Nama Pengguna Tidak Cocok" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1347 msgid "Incorrect password" msgstr "Kata sandi salah" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1350 msgid "Handshake failed" msgstr "" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1353 msgid "Client update required" msgstr "Pembaharuan Klient Gagal" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1356 msgid "Track submission failed" msgstr "" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1359 msgid "Queue is too long" msgstr "Antrian terlalu panjang" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1362 msgid "Track submission failed too many times" msgstr "" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1417 msgid "Audioscrobbler preferences" msgstr "" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:1 msgid "Disabled" msgstr "Tidak aktif" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:2 msgid "Last submission time:" msgstr "Waktu pendaftaran terakhir:" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:3 msgid "Last.fm Profile" msgstr "Profil Last.fm" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:6 msgid "Queued tracks:" msgstr "Antrian Trek:" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:7 msgid "Status:" msgstr "Kondisi:" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:8 msgid "Tracks submitted:" msgstr "Trek dikirimkan:" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:9 #: ../plugins/radios/ario-radio.c:168 msgid "Username :" msgstr "" #: ../plugins/audioscrobbler/audioscrobbler.ario-plugin.desktop.in.h:1 msgid "Last.fm" msgstr "Last.fm" #: ../plugins/audioscrobbler/audioscrobbler.ario-plugin.desktop.in.h:2 msgid "Submits song information to last.fm" msgstr "" #: ../plugins/filesystem/ario-filesystem.c:158 msgid "File System" msgstr "Sistem Berkas" #: ../plugins/filesystem/ario-filesystem.c:422 msgid "Music" msgstr "Musik" #: ../plugins/filesystem/filesystem.ario-plugin.desktop.in.h:1 msgid "A File System Browser" msgstr "" #: ../plugins/filesystem/filesystem.ario-plugin.desktop.in.h:2 msgid "File System Browser" msgstr "" #: ../plugins/information/ario-information.c:114 msgid "Information" msgstr "" #: ../plugins/information/information.ario-plugin.desktop.in.h:1 msgid "Display various information about the playing song" msgstr "" #: ../plugins/information/information.ario-plugin.desktop.in.h:2 msgid "Song Information" msgstr "" #: ../plugins/information/information.ui.h:2 msgid "Albums from this artist:" msgstr "" #: ../plugins/information/information.ui.h:5 msgid "Lyrics:" msgstr "" #: ../plugins/libnotify/libnotify.ario-plugin.desktop.in.h:1 msgid "Add libnotify support" msgstr "" #: ../plugins/libnotify/libnotify.ario-plugin.desktop.in.h:2 msgid "Libnotify" msgstr "" #: ../plugins/mmkeys/mmkeys.ario-plugin.desktop.in.h:1 msgid "Add multimedia keys support" msgstr "" #: ../plugins/mmkeys/mmkeys.ario-plugin.desktop.in.h:2 msgid "Multimedia Keys" msgstr "" #: ../plugins/radios/ario-radio.c:125 msgid "Add a _new radio" msgstr "" #: ../plugins/radios/ario-radio.c:128 msgid "_Delete this radios" msgstr "hapus radio ini" #: ../plugins/radios/ario-radio.c:166 msgid "Last.fm: Radio of similar artists" msgstr "" #: ../plugins/radios/ario-radio.c:167 msgid "Last.fm: Radio of group" msgstr "" #: ../plugins/radios/ario-radio.c:167 msgid "Group :" msgstr "" #: ../plugins/radios/ario-radio.c:168 msgid "Last.fm: Personal radio" msgstr "" #: ../plugins/radios/ario-radio.c:169 msgid "Last.fm: Radio of genre" msgstr "" #: ../plugins/radios/ario-radio.c:184 #: ../plugins/radios/radios.ario-plugin.desktop.in.h:2 msgid "Web Radios" msgstr "" #: ../plugins/radios/ario-radio.c:246 msgid "Internet Radios" msgstr "Radio internet" #. Create dialog window #: ../plugins/radios/ario-radio.c:774 msgid "Edit a WebRadio" msgstr "" #: ../plugins/radios/ario-radio.c:787 ../plugins/radios/ario-radio.c:923 msgid "URL :" msgstr "URL :" #: ../plugins/radios/ario-radio.c:853 ../plugins/radios/ario-radio.c:997 msgid "Bad parameters. You must specify a name and a URL for the radio." msgstr "" "Parameter yang buruk. Anda harus menspesifikasikan nama dan URL untuk radio" #. Create dialog window #: ../plugins/radios/ario-radio.c:883 msgid "Add a WebRadio" msgstr "" #: ../plugins/radios/ario-radio.c:1083 msgid "Are you sure you want to delete all the selected radios?" msgstr "Apakah kamu yakin untuk menghapus semua radio terpilih?" #: ../plugins/radios/radios.ario-plugin.desktop.in.h:1 msgid "Listen to webradios" msgstr "" #: ../plugins/wikipedia/ario-wikipedia-plugin.c:49 #: ../plugins/wikipedia/ario-wikipedia-plugin.c:50 msgid "Find artist on Wikipedia" msgstr "Cari artis di Wikipedia" #: ../plugins/wikipedia/ario-wikipedia-plugin.c:172 msgid "Wikipedia Plugin - Configuration" msgstr "" #: ../plugins/wikipedia/ario-wikipedia-plugin.c:181 msgid "Wikipedia language :" msgstr "Bahasa wikipedia :" #: ../plugins/wikipedia/wikipedia.ario-plugin.desktop.in.h:1 msgid "A plugin to search current artist on wikipedia" msgstr "" #: ../plugins/wikipedia/wikipedia.ario-plugin.desktop.in.h:2 msgid "Wikipedia" msgstr "Wikipedia" #~ msgid "Remove a search criteria" #~ msgstr "Hapus kriteria pencarian" #~ msgid "Add a search criteria" #~ msgstr "Tambah kriteria pencarian" ario-1.6/po/sv.po0000644000175000017500000010236413226723435010656 00000000000000# Swedish translation for ario # Copyright (c) 2008 Rosetta Contributors and Canonical Ltd 2008 # This file is distributed under the same license as the ario package. # FIRST AUTHOR , 2008. # msgid "" msgstr "" "Project-Id-Version: ario\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2011-06-13 18:15+0200\n" "PO-Revision-Date: 2009-11-28 23:51+0000\n" "Last-Translator: Daniel Nylander \n" "Language-Team: Swedish \n" "Language: sv\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2011-06-13 16:32+0000\n" "X-Generator: Launchpad (build 13175)\n" #: ../data/ario.desktop.in.in.h:1 msgid "Ario music player" msgstr "Ario musikspelare" #: ../data/ario.desktop.in.in.h:2 msgid "Client application to mpd" msgstr "Klientprogram för mpd" #: ../data/ui/browser-prefs.ui.h:1 msgid "Alphabetically" msgstr "Alfabetiskt" #: ../data/ui/browser-prefs.ui.h:2 msgid "By year" msgstr "Efter år" #: ../data/ui/browser-prefs.ui.h:3 msgid "Library Options" msgstr "Biblioteksinställningar" #: ../data/ui/browser-prefs.ui.h:4 msgid "Library Organisation" msgstr "Biblioteksorganisation" #: ../data/ui/browser-prefs.ui.h:5 msgid "Sort albums: " msgstr "Sortera album: " #: ../data/ui/connection-autodetect.ui.h:1 msgid "" "If you don't see your MPD server thanks to the automatic detection, you " "should check that zeroconf is activated in your MPD configuration or use the " "manual configuration." msgstr "" "Om du inte ser din MPD-server tack vare den automatiska funktioner så bör du " "kontrollera att zeroconf är aktiverad i din MPD-konfiguration eller använda " "manuell konfiguration." #: ../data/ui/connection-autodetect.ui.h:2 msgid "Server autodetection" msgstr "Automatisk upptäckning av server" #: ../data/ui/connection-widget.ui.h:1 msgid "Auto detect" msgstr "Upptäck automatiskt" #: ../data/ui/connection-widget.ui.h:2 msgid "Default" msgstr "Standard" #: ../data/ui/connection-widget.ui.h:3 ../src/widgets/ario-firstlaunch.c:83 msgid "Host :" msgstr "Värd:" #: ../data/ui/connection-widget.ui.h:4 msgid "Music directory :" msgstr "Musikkatalog :" #: ../data/ui/connection-widget.ui.h:5 msgid "Music server is on the same computer as Ario" msgstr "Musikserver är på samma dator som Ario" #. Create the widgets #: ../data/ui/connection-widget.ui.h:6 ../plugins/radios/ario-radio.c:786 #: ../plugins/radios/ario-radio.c:922 msgid "Name :" msgstr "Namn:" #: ../data/ui/connection-widget.ui.h:7 #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:5 msgid "Password :" msgstr "Lösenord:" #: ../data/ui/connection-widget.ui.h:8 ../src/widgets/ario-firstlaunch.c:85 msgid "Port :" msgstr "Port:" #: ../data/ui/connection-widget.ui.h:9 msgid "Server type :" msgstr "Servertyp :" #: ../data/ui/connection-widget.ui.h:10 msgid "Timeout :" msgstr "" #: ../data/ui/connection-widget.ui.h:11 msgid "XMMS 2 (Experimental)" msgstr "XMMS 2 (Experimentell)" #: ../data/ui/cover-prefs.ui.h:1 msgid "Automatically download the album cover of the playing song" msgstr "Automatiskt ladda ner albumbilden för den sång som spelas" #: ../data/ui/cover-prefs.ui.h:2 ../src/shell/ario-shell-preferences.c:128 msgid "Covers" msgstr "Omslagsbilder" #: ../data/ui/cover-prefs.ui.h:3 msgid "Covers Sources" msgstr "Omslagskällor" #: ../data/ui/cover-prefs.ui.h:4 msgid "Show the covers in the albums list" msgstr "Visa omslagsbilderna i albumlistan" #: ../data/ui/cover-prefs.ui.h:5 msgid "Use Amazon." msgstr "Använd Amazon" #: ../data/ui/connection-prefs.ui.h:1 #: ../src/shell/ario-shell-preferences.c:108 msgid "Connection" msgstr "Anslutning" #: ../data/ui/connection-prefs.ui.h:2 msgid "_Autoconnect on startup" msgstr "_Anslut automatiskt vid uppstart" #: ../data/ui/connection-prefs.ui.h:3 ../src/shell/ario-shell.c:167 msgid "_Connect" msgstr "_Anslut" #: ../data/ui/connection-prefs.ui.h:4 ../src/shell/ario-shell.c:170 msgid "_Disconnect" msgstr "_Koppla från" #: ../data/ui/connection-assistant.ui.h:1 msgid "" "You need to specify a server to connect to. If you don't see your server " "thanks to the autodetection, you should check that zeroconf/avahi is " "activated in your server or use the manual configuration." msgstr "" "Du måste ange vilken server som programmet ska ansluta till. Om inte " "autodetekteringen visar din server, försäkra dig om att din server har " "aktiverat sitt stöd för zeroconf/avahi. Om inget annat så kan du ställa in " "server manellt." #: ../data/ui/cover-progress.ui.h:1 ../data/ui/cover-select.ui.h:1 #: ../data/ui/song-infos.ui.h:1 ../plugins/information/information.ui.h:1 msgid "Album :" msgstr "Album:" #: ../data/ui/cover-progress.ui.h:2 ../data/ui/cover-select.ui.h:2 #: ../data/ui/lyrics-select.ui.h:1 ../data/ui/song-infos.ui.h:3 #: ../plugins/information/information.ui.h:3 #: ../plugins/radios/ario-radio.c:166 msgid "Artist :" msgstr "Artist:" #: ../data/ui/cover-progress.ui.h:3 msgid "Downloading cover" msgstr "Laddar ner omslag" #: ../data/ui/cover-select.ui.h:3 msgid "Local search" msgstr "Lokal sökning" #: ../data/ui/cover-select.ui.h:4 ../src/sources/ario-search.c:108 msgid "Search" msgstr "Sök" #: ../data/ui/others-prefs.ui.h:1 msgid "Allow only one instance of Ario" msgstr "Tillåt endast en instans av Ario åt gången" #: ../data/ui/others-prefs.ui.h:2 msgid "Hide window when close button is pressed" msgstr "Dölj fönster när stäng knapp trycks ned" #: ../data/ui/others-prefs.ui.h:3 msgid "Interface" msgstr "Gränssnitt" #: ../data/ui/others-prefs.ui.h:4 msgid "Playlist at the right of tabs" msgstr "" #: ../data/ui/others-prefs.ui.h:5 msgid "Playlist below tabs" msgstr "" #: ../data/ui/others-prefs.ui.h:6 msgid "Playlist within tabs" msgstr "" #: ../data/ui/others-prefs.ui.h:7 msgid "Proxy" msgstr "Proxyserver" #: ../data/ui/others-prefs.ui.h:8 msgid "Proxy Address :" msgstr "Proxyadress:" #: ../data/ui/others-prefs.ui.h:9 msgid "Proxy Port :" msgstr "Proxyyport:" #: ../data/ui/others-prefs.ui.h:10 msgid "Show tabs" msgstr "Visa flikar" #: ../data/ui/others-prefs.ui.h:11 msgid "Use a proxy" msgstr "Använd en proxyserver" #: ../data/ui/lyrics-prefs.ui.h:1 msgid "Lyrics Sources" msgstr "Källor för låttexter" #: ../data/ui/lyrics-select.ui.h:2 ../data/ui/song-infos.ui.h:13 #: ../plugins/information/information.ui.h:6 msgid "Title :" msgstr "Titel:" #: ../data/ui/playlist-prefs.ui.h:1 msgid "Add after playing song" msgstr "" #: ../data/ui/playlist-prefs.ui.h:2 msgid "Add and play" msgstr "" #: ../data/ui/playlist-prefs.ui.h:3 ../data/ui/similar-artists.ui.h:2 msgid "Add to playlist" msgstr "Lägg till i spellista" #. ARIO_TAG_ARTIST #: ../data/ui/playlist-prefs.ui.h:4 ../src/servers/ario-server.c:46 #: ../src/sources/ario-tree-albums.c:213 ../src/widgets/ario-playlist.c:541 #: ../src/widgets/ario-songlist.c:228 ../src/widgets/ario-tray-icon.c:565 msgid "Album" msgstr "Album" #: ../data/ui/playlist-prefs.ui.h:5 ../src/servers/ario-server.c:45 #: ../src/widgets/ario-playlist.c:541 ../src/widgets/ario-songlist.c:213 #: ../src/widgets/ario-tray-icon.c:563 msgid "Artist" msgstr "Artist" #. ARIO_TAG_GENRE #: ../data/ui/playlist-prefs.ui.h:6 ../src/servers/ario-server.c:52 #: ../src/widgets/ario-playlist.c:541 msgid "Date" msgstr "Datum" #: ../data/ui/playlist-prefs.ui.h:7 ../src/widgets/ario-playlist.c:541 msgid "Disc" msgstr "" #: ../data/ui/playlist-prefs.ui.h:8 msgid "Double click" msgstr "" #: ../data/ui/playlist-prefs.ui.h:9 ../src/widgets/ario-playlist.c:541 msgid "Duration" msgstr "Längd" #: ../data/ui/playlist-prefs.ui.h:10 ../src/widgets/ario-playlist.c:541 msgid "File" msgstr "Arkiv" #. ARIO_TAG_TRACK #. ARIO_TAG_NAME #: ../data/ui/playlist-prefs.ui.h:11 ../src/servers/ario-server.c:51 #: ../src/widgets/ario-playlist.c:541 msgid "Genre" msgstr "Genre" #: ../data/ui/playlist-prefs.ui.h:12 msgid "Go to current song when a new song is played" msgstr "Gå till aktib sång,, när den spelas upp" #: ../data/ui/playlist-prefs.ui.h:13 msgid "Mode" msgstr "Läge" #: ../data/ui/playlist-prefs.ui.h:14 msgid "On double click:" msgstr "" #: ../data/ui/playlist-prefs.ui.h:15 ../src/sources/ario-storedplaylists.c:229 #: ../src/shell/ario-shell.c:222 ../src/shell/ario-shell-preferences.c:123 #: ../src/widgets/ario-playlist.c:272 msgid "Playlist" msgstr "Spellista" #: ../data/ui/playlist-prefs.ui.h:16 msgid "Playlist mode:" msgstr "Läge för spellista:" #: ../data/ui/playlist-prefs.ui.h:17 msgid "Replace in playlist" msgstr "" #: ../data/ui/playlist-prefs.ui.h:18 msgid "Show rows:" msgstr "Visa rader:" #. ARIO_TAG_ALBUM_ARTIST #: ../data/ui/playlist-prefs.ui.h:19 ../src/servers/ario-server.c:48 #: ../src/sources/ario-tree-songs.c:145 ../src/widgets/ario-playlist.c:541 #: ../src/widgets/ario-songlist.c:198 ../src/widgets/ario-tray-icon.c:567 msgid "Title" msgstr "Titel" #. ARIO_TAG_TITLE #: ../data/ui/playlist-prefs.ui.h:20 ../src/servers/ario-server.c:49 #: ../src/sources/ario-tree-songs.c:138 ../src/widgets/ario-playlist.c:541 msgid "Track" msgstr "Spår" #: ../data/ui/server-prefs.ui.h:1 msgid "Audio outputs" msgstr "Ljudutgångar" #: ../data/ui/server-prefs.ui.h:2 msgid "Crossfade" msgstr "Crossfade" #: ../data/ui/server-prefs.ui.h:3 msgid "Database" msgstr "Databas" #: ../data/ui/server-prefs.ui.h:4 msgid "Last updated:" msgstr "Senast uppdaterad:" #: ../data/ui/server-prefs.ui.h:5 msgid "Stop music on exit" msgstr "Sluta splea musiken vid avslut" #: ../data/ui/server-prefs.ui.h:6 msgid "Update on startup" msgstr "Uppdatera vid start" #: ../data/ui/server-prefs.ui.h:7 msgid "_Update" msgstr "_Uppdatera" #: ../data/ui/server-prefs.ui.h:8 msgid "enable crossfade" msgstr "aktivera korstoning" #: ../data/ui/server-prefs.ui.h:9 msgid "fade time (s):" msgstr "toningstid (s)" #: ../data/ui/server-prefs.ui.h:10 ../src/ario-util.c:50 ../src/ario-util.c:71 #: ../src/ario-util.c:93 ../plugins/information/information.ui.h:7 #, c-format msgid "n/a" msgstr "Inte tillgänglig" #: ../data/ui/similar-artists.ui.h:1 msgid "Add all to playlist" msgstr "Lägg till alla till spellista" #: ../data/ui/similar-artists.ui.h:3 msgid "Find on Last.fm" msgstr "Sök efter på Last.fm" #: ../data/ui/stats-prefs.ui.h:1 msgid "Database play time :" msgstr "Databasens speltid:" #: ../data/ui/stats-prefs.ui.h:2 msgid "Number of albums :" msgstr "Antal album:" #: ../data/ui/stats-prefs.ui.h:3 msgid "Number of artists :" msgstr "Antal artister:" #: ../data/ui/stats-prefs.ui.h:4 msgid "Number of songs :" msgstr "Antal låtar:" #: ../data/ui/stats-prefs.ui.h:5 msgid "Play time :" msgstr "Speltid:" #: ../data/ui/stats-prefs.ui.h:6 ../src/shell/ario-shell-preferences.c:148 msgid "Statistics" msgstr "Statistik" #: ../data/ui/stats-prefs.ui.h:7 msgid "Uptime :" msgstr "Uptid :" #: ../data/ui/song-infos.ui.h:2 msgid "Album Artist :" msgstr "" #: ../data/ui/song-infos.ui.h:4 msgid "Comment :" msgstr "Kommentar:" #: ../data/ui/song-infos.ui.h:5 msgid "Composer :" msgstr "Kompositör:" #: ../data/ui/song-infos.ui.h:6 msgid "Date :" msgstr "Datum:" #: ../data/ui/song-infos.ui.h:7 msgid "Disc :" msgstr "Skiva:" #: ../data/ui/song-infos.ui.h:8 msgid "Filename :" msgstr "Filnamn:" #: ../data/ui/song-infos.ui.h:9 ../plugins/radios/ario-radio.c:169 msgid "Genre :" msgstr "Genre:" #: ../data/ui/song-infos.ui.h:10 ../plugins/information/information.ui.h:4 msgid "Length :" msgstr "Längd:" #: ../data/ui/song-infos.ui.h:11 msgid "Performer :" msgstr "Uppträdande :" #: ../data/ui/song-infos.ui.h:12 msgid "Song" msgstr "Låt" #: ../data/ui/song-infos.ui.h:14 msgid "Track :" msgstr "Spår:" #: ../data/ui/trayicon-prefs.ui.h:1 msgid "Do nothing" msgstr "Gör ingenting" #: ../data/ui/trayicon-prefs.ui.h:2 msgid "Mute" msgstr "" #: ../data/ui/trayicon-prefs.ui.h:3 ../src/shell/ario-shell-preferences.c:138 msgid "Notification" msgstr "Avisering" #: ../data/ui/trayicon-prefs.ui.h:4 msgid "Notification on song change" msgstr "Avisering vid byte av låt" #: ../data/ui/trayicon-prefs.ui.h:5 msgid "Notification time: " msgstr "Aviseringstid: " #: ../data/ui/trayicon-prefs.ui.h:6 msgid "On middle button click on tray icon :" msgstr "Klicka på aktivitetsikonen med mittenknappen :" #: ../data/ui/trayicon-prefs.ui.h:7 ../src/widgets/ario-header.c:241 msgid "Play next song" msgstr "Spela nästa låt" #: ../data/ui/trayicon-prefs.ui.h:8 msgid "Play/Pause" msgstr "Spela/Paus" #: ../data/ui/trayicon-prefs.ui.h:9 msgid "Tray icon" msgstr "Aktivitetsikon" #: ../src/ario-main.c:67 msgid "Start minimized window" msgstr "Starta minimerat fönster" #: ../src/ario-main.c:68 msgid "Start with specific profile" msgstr "" #. Format result string #: ../src/ario-util.c:110 msgid "seconds" msgstr "sekunder" #: ../src/ario-util.c:112 msgid "minutes" msgstr "minuter" #: ../src/ario-util.c:118 msgid "hours" msgstr "timmar" #: ../src/ario-util.c:124 msgid "days" msgstr "dagar" #: ../src/covers/ario-cover.c:149 msgid "The cover already exists. Do you want to replace it?" msgstr "Omslagsbilden finns redan. Vill du ersätta den?" #: ../src/covers/ario-cover-local.c:48 msgid "Music Directory" msgstr "Musikkatalog" #: ../src/playlist/ario-playlist-dynamic.c:49 msgid "songs of same artist" msgstr "låtar av samma artist" #: ../src/playlist/ario-playlist-dynamic.c:50 msgid "songs of same album" msgstr "låtar på samma album" #: ../src/playlist/ario-playlist-dynamic.c:51 msgid "songs of similar artists" msgstr "låtar av liknande artister" #: ../src/playlist/ario-playlist-dynamic.c:52 msgid "albums of same artists" msgstr "album av samma artister" #: ../src/playlist/ario-playlist-dynamic.c:53 msgid "albums of similar artists" msgstr "album av liknande artister" #: ../src/playlist/ario-playlist-dynamic.c:69 msgid "Dynamic Playlist" msgstr "Dynamisk spellista" #: ../src/playlist/ario-playlist-queue.c:49 msgid "Queue Mode" msgstr "Köläge" #: ../src/playlist/ario-playlist-normal.c:47 msgid "Normal" msgstr "Normal" #: ../src/plugins/ario-plugin-manager.c:45 msgid "Plugin" msgstr "Insticksmodul" #: ../src/plugins/ario-plugin-manager.c:46 msgid "Enabled" msgstr "Aktiverad" #: ../src/plugins/ario-plugin-manager.c:480 ../src/shell/ario-shell.c:206 msgid "_About" msgstr "_Om" #: ../src/plugins/ario-plugin-manager.c:488 msgid "C_onfigure" msgstr "K_onfigurera" #: ../src/plugins/ario-plugin-manager.c:497 msgid "A_ctivate" msgstr "A_ktivera" #: ../src/plugins/ario-plugin-manager.c:508 msgid "Ac_tivate All" msgstr "Ak_tivera alla" #: ../src/plugins/ario-plugin-manager.c:513 msgid "_Deactivate All" msgstr "A_vaktivera alla" #: ../src/plugins/ario-plugin-manager.c:722 msgid "Active plugins" msgstr "Aktiva insticksmoduler" #: ../src/preferences/ario-server-preferences.c:182 #: ../src/preferences/ario-stats-preferences.c:151 #: ../src/preferences/ario-stats-preferences.c:152 #: ../src/preferences/ario-stats-preferences.c:153 #: ../src/preferences/ario-stats-preferences.c:154 #: ../src/preferences/ario-stats-preferences.c:155 #: ../src/preferences/ario-stats-preferences.c:156 msgid "Not connected" msgstr "Ej ansluten" #: ../src/preferences/ario-server-preferences.c:187 #: ../src/preferences/ario-server-preferences.c:278 #: ../src/widgets/ario-status-bar.c:100 msgid "Updating..." msgstr "Uppdaterar..." #: ../src/servers/ario-mpd.c:410 ../src/servers/ario-mpd2.c:522 msgid "Connecting to server..." msgstr "Ansluter till server..." #: ../src/servers/ario-mpd.c:438 ../src/servers/ario-mpd2.c:550 msgid "Impossible to connect to server. Check the connection options." msgstr "" "Det gick inte att ansluta till servern. Kontrollera anslutningsalternativen." #. ARIO_TAG_ALBUM #: ../src/servers/ario-server.c:47 msgid "Album Artist" msgstr "" #. ARIO_TAG_DATE #: ../src/servers/ario-server.c:53 msgid "Composer" msgstr "Tonsättare" #. ARIO_TAG_COMPOSER #: ../src/servers/ario-server.c:54 msgid "Performer" msgstr "Artist" #. ARIO_TAG_PERFORMER #. ARIO_TAG_COMMENT #. ARIO_TAG_DISC #: ../src/servers/ario-server.c:57 msgid "Filename" msgstr "Filnamn" #. ARIO_TAG_FILENAME #: ../src/servers/ario-server.c:58 msgid "Any" msgstr "Valfri" #. impossible time or broken locale settings #: ../src/servers/ario-server.h:27 #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1235 msgid "Unknown" msgstr "Okänd" #: ../src/sources/ario-browser.c:82 ../src/sources/ario-search.c:70 #: ../src/sources/ario-storedplaylists.c:88 #: ../src/sources/ario-storedplaylists.c:106 #: ../plugins/filesystem/ario-filesystem.c:94 #: ../plugins/filesystem/ario-filesystem.c:109 #: ../plugins/radios/ario-radio.c:116 msgid "_Add to playlist" msgstr "_Lägg till i spellistan" #: ../src/sources/ario-browser.c:85 ../src/sources/ario-search.c:73 #: ../src/sources/ario-storedplaylists.c:91 #: ../src/sources/ario-storedplaylists.c:109 #: ../plugins/filesystem/ario-filesystem.c:97 #: ../plugins/filesystem/ario-filesystem.c:112 #: ../plugins/radios/ario-radio.c:119 msgid "Add and _play" msgstr "Lägg till och _spela upp" #: ../src/sources/ario-browser.c:88 ../src/sources/ario-search.c:76 #: ../src/sources/ario-storedplaylists.c:94 #: ../src/sources/ario-storedplaylists.c:112 #: ../plugins/filesystem/ario-filesystem.c:100 #: ../plugins/filesystem/ario-filesystem.c:115 #: ../plugins/radios/ario-radio.c:122 msgid "_Replace in playlist" msgstr "_Ersätt i spellistan" #: ../src/sources/ario-browser.c:91 msgid "Get the covers" msgstr "Hämta omslagsbilderna" #: ../src/sources/ario-browser.c:94 msgid "_Delete the covers" msgstr "_Radera omslagsbilderna" #: ../src/sources/ario-browser.c:97 ../src/sources/ario-browser.c:100 #: ../src/sources/ario-search.c:79 ../src/sources/ario-storedplaylists.c:115 #: ../src/widgets/ario-playlist.c:151 #: ../plugins/filesystem/ario-filesystem.c:118 #: ../plugins/radios/ario-radio.c:131 msgid "_Properties" msgstr "_Egenskaper" #: ../src/sources/ario-browser.c:125 ../src/shell/ario-shell-preferences.c:118 msgid "Library" msgstr "Bibliotek" #: ../src/sources/ario-storedplaylists.c:97 msgid "_Delete" msgstr "_Ta bort" #: ../src/sources/ario-storedplaylists.c:151 msgid "Playlists" msgstr "Spellistor" #: ../src/sources/ario-storedplaylists.c:592 msgid "Are you sure that you want to delete all the selected playlists?" msgstr "Är du säker på att du vill ta bort de valda spellistorna?" #: ../src/sources/ario-tree.c:856 msgid "Are you sure that you want to remove all the selected covers?" msgstr "Är du säker på att du vill ta bort alla markerade omslag?" #. Translators - This "Cover" refers to an album cover art #: ../src/sources/ario-tree-albums.c:199 msgid "Cover" msgstr "Omslag" #: ../src/shell/ario-shell.c:160 msgid "_File" msgstr "_Arkiv" #: ../src/shell/ario-shell.c:161 msgid "_Edit" msgstr "_Redigera" #: ../src/shell/ario-shell.c:162 msgid "_View" msgstr "_Visa" #: ../src/shell/ario-shell.c:163 msgid "_Control" msgstr "" #: ../src/shell/ario-shell.c:164 msgid "_Tool" msgstr "V_erktyg" #: ../src/shell/ario-shell.c:165 msgid "_Help" msgstr "_Hjälp" #: ../src/shell/ario-shell.c:173 msgid "_Update database" msgstr "" #: ../src/shell/ario-shell.c:176 msgid "_Quit" msgstr "_Avsluta" #: ../src/shell/ario-shell.c:179 msgid "Plu_gins" msgstr "Insticks_moduler" #: ../src/shell/ario-shell.c:182 msgid "Prefere_nces" msgstr "Inställ_ningar" #: ../src/shell/ario-shell.c:185 msgid "_Change current album cover" msgstr "Ändra _omslagsbild" #: ../src/shell/ario-shell.c:188 msgid "Download album _covers" msgstr "Ladda _ned omslagsbilld" #: ../src/shell/ario-shell.c:191 msgid "Find similar artists" msgstr "Hitta liknande artister" #: ../src/shell/ario-shell.c:194 msgid "Add similar songs to playlist" msgstr "Lägg till liknande låtar till spellista" #: ../src/shell/ario-shell.c:197 msgid "Go to _previous tab" msgstr "" #: ../src/shell/ario-shell.c:200 msgid "Go to _next tab" msgstr "" #: ../src/shell/ario-shell.c:203 msgid "Show _lyrics" msgstr "Visa _låttext" #: ../src/shell/ario-shell.c:209 msgid "_Translate this application..." msgstr "Hjälp till och _översätt detta program" #: ../src/shell/ario-shell.c:216 msgid "S_tatusbar" msgstr "S_tatusrad" #: ../src/shell/ario-shell.c:219 msgid "Upper part" msgstr "Övre del" #: ../src/shell/ario-shell.c:825 msgid "GTK client for MPD" msgstr "GTK-klient för MPD" #: ../src/shell/ario-shell.c:826 msgid "translator-credits" msgstr "" "Launchpad Contributions:\n" " Daniel Nylander https://launchpad.net/~yeager\n" " Dostojevskji https://launchpad.net/~darkangel-nr1\n" " Magnus Malmsten https://launchpad.net/~magnus-malmsten\n" " Malte Lenz https://launchpad.net/~maltelenz\n" " Marc Pavot https://launchpad.net/~marc-pavot\n" " Mattias Ohlsson https://launchpad.net/~mattias-oh\n" " Monia Elvin https://launchpad.net/~moniaelvin\n" " Per Söderkvist https://launchpad.net/~sodper" #. Create plugins configuration dialog window #: ../src/shell/ario-shell.c:1278 msgid "Configure Plugins" msgstr "Konfigurera insticksmoduler" #. Set window properties #: ../src/shell/ario-shell-coverdownloader.c:187 msgid "Music Player Cover Download" msgstr "Musikspelarens omslagsbildsnedladdare" #: ../src/shell/ario-shell-coverdownloader.c:332 msgid "Download Finished!" msgstr "Nedladdning klar!" #. We show the numbers of covers found and not found #: ../src/shell/ario-shell-coverdownloader.c:335 #, c-format msgid "" "%i covers found\n" "%i covers not found\n" "%i covers already exist" msgstr "" "%i skivomslag hittades\n" "%i skivomslag hittades inte\n" "%i skivomslag finns redan" #. Set window properties #: ../src/shell/ario-shell-coverselect.c:242 msgid "Cover Download" msgstr "Ladda ner skivomslag" #: ../src/shell/ario-shell-coverselect.c:559 msgid "Error reading file" msgstr "Fel vid inläsning av fil" #: ../src/shell/ario-shell-coverselect.c:584 msgid "Error saving file" msgstr "Fel vid skrivning till fil" #: ../src/shell/ario-shell-lyrics.c:43 #: ../src/shell/ario-shell-preferences.c:133 #: ../src/shell/ario-shell-songinfos.c:272 msgid "Lyrics" msgstr "Låttext" #: ../src/shell/ario-shell-lyricsselect.c:152 msgid "Lyrics Download" msgstr "Ladda ner sångtext" #: ../src/shell/ario-shell-preferences.c:81 msgid "Ario Preferences" msgstr "Arios inställningar" #: ../src/shell/ario-shell-preferences.c:113 msgid "Server" msgstr "Server" #: ../src/shell/ario-shell-preferences.c:143 msgid "Others" msgstr "Övriga" #: ../src/shell/ario-shell-similarartists.c:318 #, c-format msgid "%d songs" msgstr "%d låtar" #. Set window properties #. Set window title #: ../src/shell/ario-shell-songinfos.c:249 #: ../src/shell/ario-shell-songinfos.c:266 #: ../src/shell/ario-shell-songinfos.c:544 msgid "Song Properties" msgstr "Låtegenskaper" #: ../src/shell/ario-shell-songinfos.c:455 msgid "Error saving tags of file:" msgstr "Fel vid sparande av taggar för filen:" #: ../src/widgets/ario-connection-widget.c:652 msgid "You must select a server." msgstr "Du måste välja en server." #: ../src/widgets/ario-connection-widget.c:702 msgid "New Profile" msgstr "Ny profil" #: ../src/widgets/ario-firstlaunch.c:82 msgid "The following configuration will be used:" msgstr "Följande inställningar kommer att användas:" #: ../src/widgets/ario-firstlaunch.c:106 msgid "" "It is the first time you launch Ario.\n" "This assistant will help you to configure it." msgstr "" "Det verkar vara första gången som du kör Ario.\n" "Hjälpassistenten kommer att guida dig igenom\n" "några inställningar som behöver göras." #: ../src/widgets/ario-firstlaunch.c:111 msgid "Welcome to Ario" msgstr "Välkommen till Ario" #: ../src/widgets/ario-firstlaunch.c:129 msgid "Configuration" msgstr "Inställningar" #: ../src/widgets/ario-firstlaunch.c:141 msgid "Confirmation" msgstr "Bekräftelse" #: ../src/widgets/ario-header.c:66 ../src/widgets/ario-tray-icon.h:42 #, c-format msgid "from %s by %s" msgstr "från %s av %s" #: ../src/widgets/ario-header.c:199 msgid "Play previous song" msgstr "Spela föregående låt" #: ../src/widgets/ario-header.c:217 msgid "Play/Pause the music" msgstr "Spela upp/Gör paus i musiken" #: ../src/widgets/ario-header.c:229 msgid "Stop the music" msgstr "Sluta spela" #. Translators - This " of " is used to count the elapsed time #. of a song like in "00:59 of 03:24" #: ../src/widgets/ario-header.c:310 ../src/widgets/ario-tooltip.c:321 msgid " of " msgstr " av " #: ../src/widgets/ario-header.c:323 msgid "Toggle random on/off" msgstr "Växla blandning av/på" #: ../src/widgets/ario-header.c:335 msgid "Toggle repeat on/off" msgstr "Växla repetering av/på" #: ../src/widgets/ario-header.c:340 msgid "Change the music volume" msgstr "Ändra ljudvolym" #: ../src/widgets/ario-lyrics-editor.c:323 msgid "Downloading lyrics..." msgstr "Laddar ner låttexter..." #: ../src/widgets/ario-lyrics-editor.c:351 msgid "Lyrics not found" msgstr "Låttexter ej funna" #: ../src/widgets/ario-playlist.c:133 msgid "_Clear" msgstr "_Töm" #: ../src/widgets/ario-playlist.c:136 msgid "_Shuffle" msgstr "_Blanda" #: ../src/widgets/ario-playlist.c:139 msgid "Cr_op" msgstr "B_eskär" #: ../src/widgets/ario-playlist.c:142 msgid "_Search in playlist" msgstr "" #: ../src/widgets/ario-playlist.c:145 msgid "_Remove" msgstr "Ta _bort" #: ../src/widgets/ario-playlist.c:148 msgid "_Save" msgstr "_Spara" #: ../src/widgets/ario-playlist.c:154 msgid "_Go to playing song" msgstr "_Gå till spela sång" #: ../src/widgets/ario-playlist.c:667 msgid "Filter:" msgstr "Filter:" #. Create the widgets #: ../src/widgets/ario-playlist.c:1700 msgid "Save playlist" msgstr "Spara spellista" #: ../src/widgets/ario-playlist.c:1710 msgid "Playlist name :" msgstr "Spellistenamn:" #: ../src/widgets/ario-playlist.c:1746 msgid "Playlist already exists. Do you want to overwrite it?" msgstr "Spellistan finns redan, vill du skriva över den?" #. Format status bar message #: ../src/widgets/ario-status-bar.c:96 msgid "Songs" msgstr "Låtar" #: ../src/widgets/ario-tray-icon.c:102 msgid "_Play" msgstr "_Spela" #: ../src/widgets/ario-tray-icon.c:105 msgid "_Pause" msgstr "_Paus" #: ../src/widgets/ario-tray-icon.c:108 msgid "_Stop" msgstr "_Stopp" #: ../src/widgets/ario-tray-icon.c:111 msgid "_Next" msgstr "_Nästa" #: ../src/widgets/ario-tray-icon.c:114 msgid "P_revious" msgstr "_Föregående" #: ../src/widgets/ario-tray-icon.h:41 msgid "Not playing" msgstr "Spelar inte" #. Translators: "friendly time" string for the current day, strftime format. like "Today 12:34 am" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1179 msgid "Today %I:%M %p" msgstr "Idag %I:%M %p" #. Translators: "friendly time" string for the previous day, #. * strftime format. e.g. "Yesterday 12:34 am" #. #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1192 msgid "Yesterday %I:%M %p" msgstr "Igår %I:%M" #. Translators: "friendly time" string for a day in the current week, #. * strftime format. e.g. "Wed 12:34 am" #. #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1208 msgid "%a %I:%M %p" msgstr "%a %I:%M" #. Translators: "friendly time" string for a day in the current year, #. * strftime format. e.g. "Feb 12 12:34 am" #. #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1220 msgid "%b %d %I:%M %p" msgstr "%b %d %H.%M" #. Translators: "friendly time" string for a day in a different year, #. * strftime format. e.g. "Feb 12 1997" #. #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1225 msgid "%b %d %Y" msgstr "%d %b %Y" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1311 #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:4 msgid "Never" msgstr "Aldrig" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1335 msgid "OK" msgstr "Ok" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1338 msgid "Logging in" msgstr "Loggar in" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1341 msgid "Request failed" msgstr "Begäran misslyckades" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1344 msgid "Incorrect username" msgstr "Felaktigt användarnamn" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1347 msgid "Incorrect password" msgstr "Felaktigt lösenord" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1350 msgid "Handshake failed" msgstr "Handskakning misslyckades" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1353 msgid "Client update required" msgstr "Klientuppdatering krävs" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1356 msgid "Track submission failed" msgstr "Inrapportering av spår misslyckades" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1359 msgid "Queue is too long" msgstr "Kön är för lång" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1362 msgid "Track submission failed too many times" msgstr "Inrapportering av spår misslyckades för många gånger" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1417 msgid "Audioscrobbler preferences" msgstr "Inställningar för Audioscrobbler" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:1 msgid "Disabled" msgstr "Inaktiverad" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:2 msgid "Last submission time:" msgstr "Tid för senaste inrapportering:" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:3 msgid "Last.fm Profile" msgstr "Last.fm-profil" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:6 msgid "Queued tracks:" msgstr "Spår i kö:" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:7 msgid "Status:" msgstr "Status:" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:8 msgid "Tracks submitted:" msgstr "Inlämnade spår:" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:9 #: ../plugins/radios/ario-radio.c:168 msgid "Username :" msgstr "Användarnamn:" #: ../plugins/audioscrobbler/audioscrobbler.ario-plugin.desktop.in.h:1 msgid "Last.fm" msgstr "Last.fm" #: ../plugins/audioscrobbler/audioscrobbler.ario-plugin.desktop.in.h:2 msgid "Submits song information to last.fm" msgstr "Överlämna sång information till last.fm" #: ../plugins/filesystem/ario-filesystem.c:158 msgid "File System" msgstr "Filsystem" #: ../plugins/filesystem/ario-filesystem.c:422 msgid "Music" msgstr "Musik" #: ../plugins/filesystem/filesystem.ario-plugin.desktop.in.h:1 msgid "A File System Browser" msgstr "En bläddrare för filsystem" #: ../plugins/filesystem/filesystem.ario-plugin.desktop.in.h:2 msgid "File System Browser" msgstr "Filsystensutforskaren" #: ../plugins/information/ario-information.c:114 msgid "Information" msgstr "Information" #: ../plugins/information/information.ario-plugin.desktop.in.h:1 msgid "Display various information about the playing song" msgstr "Visar blandad information om den nuvarande låten." #: ../plugins/information/information.ario-plugin.desktop.in.h:2 msgid "Song Information" msgstr "Låtinformation" #: ../plugins/information/information.ui.h:2 msgid "Albums from this artist:" msgstr "Album av den här artisten:" #: ../plugins/information/information.ui.h:5 msgid "Lyrics:" msgstr "Låttext:" #: ../plugins/libnotify/libnotify.ario-plugin.desktop.in.h:1 msgid "Add libnotify support" msgstr "Lägg till stöd för libnotify" #: ../plugins/libnotify/libnotify.ario-plugin.desktop.in.h:2 msgid "Libnotify" msgstr "Libnotify" #: ../plugins/mmkeys/mmkeys.ario-plugin.desktop.in.h:1 msgid "Add multimedia keys support" msgstr "Lägg till stöd för multimedia tangenter" #: ../plugins/mmkeys/mmkeys.ario-plugin.desktop.in.h:2 msgid "Multimedia Keys" msgstr "Multimedia tangenter" #: ../plugins/radios/ario-radio.c:125 msgid "Add a _new radio" msgstr "Lägg till en _ny radio" #: ../plugins/radios/ario-radio.c:128 msgid "_Delete this radios" msgstr "_Radera denna radio" #: ../plugins/radios/ario-radio.c:166 msgid "Last.fm: Radio of similar artists" msgstr "" #: ../plugins/radios/ario-radio.c:167 msgid "Last.fm: Radio of group" msgstr "" #: ../plugins/radios/ario-radio.c:167 msgid "Group :" msgstr "" #: ../plugins/radios/ario-radio.c:168 msgid "Last.fm: Personal radio" msgstr "" #: ../plugins/radios/ario-radio.c:169 msgid "Last.fm: Radio of genre" msgstr "" #: ../plugins/radios/ario-radio.c:184 #: ../plugins/radios/radios.ario-plugin.desktop.in.h:2 msgid "Web Radios" msgstr "Webbradion" #: ../plugins/radios/ario-radio.c:246 msgid "Internet Radios" msgstr "Internet radion" #. Create dialog window #: ../plugins/radios/ario-radio.c:774 msgid "Edit a WebRadio" msgstr "Redigera en webbradio" #: ../plugins/radios/ario-radio.c:787 ../plugins/radios/ario-radio.c:923 msgid "URL :" msgstr "URL :" #: ../plugins/radios/ario-radio.c:853 ../plugins/radios/ario-radio.c:997 msgid "Bad parameters. You must specify a name and a URL for the radio." msgstr "Fel parameter. Du måste ange ett namn och en URL för radion." #. Create dialog window #: ../plugins/radios/ario-radio.c:883 msgid "Add a WebRadio" msgstr "Lägg till en webbradio" #: ../plugins/radios/ario-radio.c:1083 msgid "Are you sure you want to delete all the selected radios?" msgstr "Är du säker på att du vill radera alla valda radion?" #: ../plugins/radios/radios.ario-plugin.desktop.in.h:1 msgid "Listen to webradios" msgstr "Lyssna på en webbradio" #: ../plugins/wikipedia/ario-wikipedia-plugin.c:49 #: ../plugins/wikipedia/ario-wikipedia-plugin.c:50 msgid "Find artist on Wikipedia" msgstr "Sök en artist på Wikipedia" #: ../plugins/wikipedia/ario-wikipedia-plugin.c:172 msgid "Wikipedia Plugin - Configuration" msgstr "Wikipedia tillägg - inställningar" #: ../plugins/wikipedia/ario-wikipedia-plugin.c:181 msgid "Wikipedia language :" msgstr "Wikipedia språk :" #: ../plugins/wikipedia/wikipedia.ario-plugin.desktop.in.h:1 msgid "A plugin to search current artist on wikipedia" msgstr "Ett tillägg för att söka artister på wikipedia" #: ../plugins/wikipedia/wikipedia.ario-plugin.desktop.in.h:2 msgid "Wikipedia" msgstr "Wikipedia" #~ msgid "Search songs in the library" #~ msgstr "Sök låtar i biblioteket" #~ msgid "Remove a search criteria" #~ msgstr "Ta bort ett sökkriterium" #~ msgid "Add a search criteria" #~ msgstr "Lägg till ett sökkriterium" ario-1.6/po/tr.po0000644000175000017500000010435113226723435010651 00000000000000# Turkish translation for ario # Copyright (c) 2008 Rosetta Contributors and Canonical Ltd 2008 # This file is distributed under the same license as the ario package. # FIRST AUTHOR , 2008. # msgid "" msgstr "" "Project-Id-Version: ario\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2011-06-13 18:15+0200\n" "PO-Revision-Date: 2010-08-09 16:14+0000\n" "Last-Translator: can kaçan \n" "Language-Team: Turkish \n" "Language: tr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2011-06-13 16:32+0000\n" "X-Generator: Launchpad (build 13175)\n" #: ../data/ario.desktop.in.in.h:1 msgid "Ario music player" msgstr "Ario müzik çalar" #: ../data/ario.desktop.in.in.h:2 msgid "Client application to mpd" msgstr "mpd için istemci uygulaması" #: ../data/ui/browser-prefs.ui.h:1 msgid "Alphabetically" msgstr "Alfabetik olarak" #: ../data/ui/browser-prefs.ui.h:2 msgid "By year" msgstr "Yıla göre" #: ../data/ui/browser-prefs.ui.h:3 msgid "Library Options" msgstr "Kitaplık Seçenekleri" #: ../data/ui/browser-prefs.ui.h:4 msgid "Library Organisation" msgstr "Kitaplık Organizasyonu" #: ../data/ui/browser-prefs.ui.h:5 msgid "Sort albums: " msgstr "Albümleri sırala: " #: ../data/ui/connection-autodetect.ui.h:1 msgid "" "If you don't see your MPD server thanks to the automatic detection, you " "should check that zeroconf is activated in your MPD configuration or use the " "manual configuration." msgstr "" "Eğer MPD sunucusunu göremiyorsanız bunu otomatik saptamaya borçlusunuz, MPD " "yapılandırmanızda zeroconf'un etkinleştirilmiş olduğunu denetleyin ya da " "kişisel yapılandırmanızı kullanın." #: ../data/ui/connection-autodetect.ui.h:2 msgid "Server autodetection" msgstr "Otomatik sunucu saptaması" #: ../data/ui/connection-widget.ui.h:1 msgid "Auto detect" msgstr "Otomatik sapta" #: ../data/ui/connection-widget.ui.h:2 msgid "Default" msgstr "Varsayılan" #: ../data/ui/connection-widget.ui.h:3 ../src/widgets/ario-firstlaunch.c:83 msgid "Host :" msgstr "Yer sağlayıcı :" #: ../data/ui/connection-widget.ui.h:4 msgid "Music directory :" msgstr "Müzik dizini:" #: ../data/ui/connection-widget.ui.h:5 msgid "Music server is on the same computer as Ario" msgstr "Müzik sunucusu Ario ile aynı bilgisayarda" #. Create the widgets #: ../data/ui/connection-widget.ui.h:6 ../plugins/radios/ario-radio.c:786 #: ../plugins/radios/ario-radio.c:922 msgid "Name :" msgstr "Ad :" #: ../data/ui/connection-widget.ui.h:7 #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:5 msgid "Password :" msgstr "Parola:" #: ../data/ui/connection-widget.ui.h:8 ../src/widgets/ario-firstlaunch.c:85 msgid "Port :" msgstr "Kapı :" #: ../data/ui/connection-widget.ui.h:9 msgid "Server type :" msgstr "Sunucu türü :" #: ../data/ui/connection-widget.ui.h:10 msgid "Timeout :" msgstr "" #: ../data/ui/connection-widget.ui.h:11 msgid "XMMS 2 (Experimental)" msgstr "XMMS 2 (Deneysel)" #: ../data/ui/cover-prefs.ui.h:1 msgid "Automatically download the album cover of the playing song" msgstr "Çalan şarkının albüm kapağını otomatik olarak indir" #: ../data/ui/cover-prefs.ui.h:2 ../src/shell/ario-shell-preferences.c:128 msgid "Covers" msgstr "Albüm Kapakları" #: ../data/ui/cover-prefs.ui.h:3 msgid "Covers Sources" msgstr "Kapak Kaynakları" #: ../data/ui/cover-prefs.ui.h:4 msgid "Show the covers in the albums list" msgstr "Albüm listesinde kapakları göster" #: ../data/ui/cover-prefs.ui.h:5 msgid "Use Amazon." msgstr "Amazon'u kullan." #: ../data/ui/connection-prefs.ui.h:1 #: ../src/shell/ario-shell-preferences.c:108 msgid "Connection" msgstr "Bağlantı" #: ../data/ui/connection-prefs.ui.h:2 msgid "_Autoconnect on startup" msgstr "_Başlangıçta otomatik bağlan" #: ../data/ui/connection-prefs.ui.h:3 ../src/shell/ario-shell.c:167 msgid "_Connect" msgstr "_Bağlan" #: ../data/ui/connection-prefs.ui.h:4 ../src/shell/ario-shell.c:170 msgid "_Disconnect" msgstr "_Bağlantıyı Kes" #: ../data/ui/connection-assistant.ui.h:1 msgid "" "You need to specify a server to connect to. If you don't see your server " "thanks to the autodetection, you should check that zeroconf/avahi is " "activated in your server or use the manual configuration." msgstr "" "Bağlanacak bir sunucu belirtmeniz gerekli. Eğer sunucunuzu göremiyorsanız " "otomatik saptama sayesindedir, zeroconf/avahi'nin sunucunuzda etkin olduğunu " "denetleyin ya da kendi yapılandırmanızı kullanın." #: ../data/ui/cover-progress.ui.h:1 ../data/ui/cover-select.ui.h:1 #: ../data/ui/song-infos.ui.h:1 ../plugins/information/information.ui.h:1 msgid "Album :" msgstr "Albüm :" #: ../data/ui/cover-progress.ui.h:2 ../data/ui/cover-select.ui.h:2 #: ../data/ui/lyrics-select.ui.h:1 ../data/ui/song-infos.ui.h:3 #: ../plugins/information/information.ui.h:3 #: ../plugins/radios/ario-radio.c:166 msgid "Artist :" msgstr "Sanatçı :" #: ../data/ui/cover-progress.ui.h:3 msgid "Downloading cover" msgstr "Albüm kapağı indirme" #: ../data/ui/cover-select.ui.h:3 msgid "Local search" msgstr "Yerel arama" #: ../data/ui/cover-select.ui.h:4 ../src/sources/ario-search.c:108 msgid "Search" msgstr "Ara" #: ../data/ui/others-prefs.ui.h:1 msgid "Allow only one instance of Ario" msgstr "Ario'nun sadece bir örneğine izin ver" #: ../data/ui/others-prefs.ui.h:2 msgid "Hide window when close button is pressed" msgstr "Kapat tuşuna basıldığında pencereyi gizle" #: ../data/ui/others-prefs.ui.h:3 msgid "Interface" msgstr "Arayüz" #: ../data/ui/others-prefs.ui.h:4 msgid "Playlist at the right of tabs" msgstr "Çalma listsi sekmenin sağında." #: ../data/ui/others-prefs.ui.h:5 msgid "Playlist below tabs" msgstr "Çalma listesi sekmenin altında" #: ../data/ui/others-prefs.ui.h:6 msgid "Playlist within tabs" msgstr "Çalma listesi sekmenin içinde" #: ../data/ui/others-prefs.ui.h:7 msgid "Proxy" msgstr "Vekil Sunucu" #: ../data/ui/others-prefs.ui.h:8 msgid "Proxy Address :" msgstr "Vekil Sunucu adresi :" #: ../data/ui/others-prefs.ui.h:9 msgid "Proxy Port :" msgstr "Vekil Sunucu kapısı :" #: ../data/ui/others-prefs.ui.h:10 msgid "Show tabs" msgstr "Sekmeleri göster" #: ../data/ui/others-prefs.ui.h:11 msgid "Use a proxy" msgstr "Bir Vekil sunucu kullan" #: ../data/ui/lyrics-prefs.ui.h:1 msgid "Lyrics Sources" msgstr "Şarkı sözü kaynakları" #: ../data/ui/lyrics-select.ui.h:2 ../data/ui/song-infos.ui.h:13 #: ../plugins/information/information.ui.h:6 msgid "Title :" msgstr "Başlık :" #: ../data/ui/playlist-prefs.ui.h:1 msgid "Add after playing song" msgstr "Şarkı çaldıktan sonra ekle" #: ../data/ui/playlist-prefs.ui.h:2 msgid "Add and play" msgstr "Ekle ve Oyna" #: ../data/ui/playlist-prefs.ui.h:3 ../data/ui/similar-artists.ui.h:2 msgid "Add to playlist" msgstr "Çalma listesine ekle" #. ARIO_TAG_ARTIST #: ../data/ui/playlist-prefs.ui.h:4 ../src/servers/ario-server.c:46 #: ../src/sources/ario-tree-albums.c:213 ../src/widgets/ario-playlist.c:541 #: ../src/widgets/ario-songlist.c:228 ../src/widgets/ario-tray-icon.c:565 msgid "Album" msgstr "Albüm" #: ../data/ui/playlist-prefs.ui.h:5 ../src/servers/ario-server.c:45 #: ../src/widgets/ario-playlist.c:541 ../src/widgets/ario-songlist.c:213 #: ../src/widgets/ario-tray-icon.c:563 msgid "Artist" msgstr "Sanatçı" #. ARIO_TAG_GENRE #: ../data/ui/playlist-prefs.ui.h:6 ../src/servers/ario-server.c:52 #: ../src/widgets/ario-playlist.c:541 msgid "Date" msgstr "Tarih" #: ../data/ui/playlist-prefs.ui.h:7 ../src/widgets/ario-playlist.c:541 msgid "Disc" msgstr "Disk" #: ../data/ui/playlist-prefs.ui.h:8 msgid "Double click" msgstr "Çift tıklama" #: ../data/ui/playlist-prefs.ui.h:9 ../src/widgets/ario-playlist.c:541 msgid "Duration" msgstr "Süre" #: ../data/ui/playlist-prefs.ui.h:10 ../src/widgets/ario-playlist.c:541 msgid "File" msgstr "Dosya" #. ARIO_TAG_TRACK #. ARIO_TAG_NAME #: ../data/ui/playlist-prefs.ui.h:11 ../src/servers/ario-server.c:51 #: ../src/widgets/ario-playlist.c:541 msgid "Genre" msgstr "Tarz" #: ../data/ui/playlist-prefs.ui.h:12 msgid "Go to current song when a new song is played" msgstr "Yeni bir şarkı çalındığında çalan şarkıya git" #: ../data/ui/playlist-prefs.ui.h:13 msgid "Mode" msgstr "Mod:" #: ../data/ui/playlist-prefs.ui.h:14 msgid "On double click:" msgstr "Çift tıklamada:" #: ../data/ui/playlist-prefs.ui.h:15 ../src/sources/ario-storedplaylists.c:229 #: ../src/shell/ario-shell.c:222 ../src/shell/ario-shell-preferences.c:123 #: ../src/widgets/ario-playlist.c:272 msgid "Playlist" msgstr "Çalma Listesi" #: ../data/ui/playlist-prefs.ui.h:16 msgid "Playlist mode:" msgstr "Çalma listesi modu" #: ../data/ui/playlist-prefs.ui.h:17 msgid "Replace in playlist" msgstr "Çalma Listesinde yer değiştir" #: ../data/ui/playlist-prefs.ui.h:18 msgid "Show rows:" msgstr "Satırları göster:" #. ARIO_TAG_ALBUM_ARTIST #: ../data/ui/playlist-prefs.ui.h:19 ../src/servers/ario-server.c:48 #: ../src/sources/ario-tree-songs.c:145 ../src/widgets/ario-playlist.c:541 #: ../src/widgets/ario-songlist.c:198 ../src/widgets/ario-tray-icon.c:567 msgid "Title" msgstr "Başlık" #. ARIO_TAG_TITLE #: ../data/ui/playlist-prefs.ui.h:20 ../src/servers/ario-server.c:49 #: ../src/sources/ario-tree-songs.c:138 ../src/widgets/ario-playlist.c:541 msgid "Track" msgstr "Parça" #: ../data/ui/server-prefs.ui.h:1 msgid "Audio outputs" msgstr "Ses çıkışları" #: ../data/ui/server-prefs.ui.h:2 msgid "Crossfade" msgstr "Çapraz geçiş" #: ../data/ui/server-prefs.ui.h:3 msgid "Database" msgstr "Veritabanı" #: ../data/ui/server-prefs.ui.h:4 msgid "Last updated:" msgstr "Son güncelleme:" #: ../data/ui/server-prefs.ui.h:5 msgid "Stop music on exit" msgstr "Çıkarken müziği durdur" #: ../data/ui/server-prefs.ui.h:6 msgid "Update on startup" msgstr "Başlangıçta güncelle" #: ../data/ui/server-prefs.ui.h:7 msgid "_Update" msgstr "_Güncelle" #: ../data/ui/server-prefs.ui.h:8 msgid "enable crossfade" msgstr "çapraz geçişi etkinleştir" #: ../data/ui/server-prefs.ui.h:9 msgid "fade time (s):" msgstr "geçiş zamanı (sn):" #: ../data/ui/server-prefs.ui.h:10 ../src/ario-util.c:50 ../src/ario-util.c:71 #: ../src/ario-util.c:93 ../plugins/information/information.ui.h:7 #, c-format msgid "n/a" msgstr "mevcut değil" #: ../data/ui/similar-artists.ui.h:1 msgid "Add all to playlist" msgstr "Hepsini çalma listesine ekle" #: ../data/ui/similar-artists.ui.h:3 msgid "Find on Last.fm" msgstr "Last.fm'de bul" #: ../data/ui/stats-prefs.ui.h:1 msgid "Database play time :" msgstr "Veritabanı çalma süresi :" #: ../data/ui/stats-prefs.ui.h:2 msgid "Number of albums :" msgstr "Albüm sayısı :" #: ../data/ui/stats-prefs.ui.h:3 msgid "Number of artists :" msgstr "Sanatçı sayısı :" #: ../data/ui/stats-prefs.ui.h:4 msgid "Number of songs :" msgstr "Şarkı sayısı :" #: ../data/ui/stats-prefs.ui.h:5 msgid "Play time :" msgstr "Çalma süresi :" #: ../data/ui/stats-prefs.ui.h:6 ../src/shell/ario-shell-preferences.c:148 msgid "Statistics" msgstr "İstatistikler" #: ../data/ui/stats-prefs.ui.h:7 msgid "Uptime :" msgstr "Çalışabilirlik süresi :" #: ../data/ui/song-infos.ui.h:2 msgid "Album Artist :" msgstr "Albüm Sanatçısı:" #: ../data/ui/song-infos.ui.h:4 msgid "Comment :" msgstr "Yorum :" #: ../data/ui/song-infos.ui.h:5 msgid "Composer :" msgstr "Besteleyen :" #: ../data/ui/song-infos.ui.h:6 msgid "Date :" msgstr "Tarih :" #: ../data/ui/song-infos.ui.h:7 msgid "Disc :" msgstr "Disk :" #: ../data/ui/song-infos.ui.h:8 msgid "Filename :" msgstr "Dosya Adı :" #: ../data/ui/song-infos.ui.h:9 ../plugins/radios/ario-radio.c:169 msgid "Genre :" msgstr "Tarz :" #: ../data/ui/song-infos.ui.h:10 ../plugins/information/information.ui.h:4 msgid "Length :" msgstr "Uzunluk :" #: ../data/ui/song-infos.ui.h:11 msgid "Performer :" msgstr "Sanatçı :" #: ../data/ui/song-infos.ui.h:12 msgid "Song" msgstr "Şarkı" #: ../data/ui/song-infos.ui.h:14 msgid "Track :" msgstr "Parça :" #: ../data/ui/trayicon-prefs.ui.h:1 msgid "Do nothing" msgstr "Hiçbir şey yapma" #: ../data/ui/trayicon-prefs.ui.h:2 msgid "Mute" msgstr "Sesi Kapat" #: ../data/ui/trayicon-prefs.ui.h:3 ../src/shell/ario-shell-preferences.c:138 msgid "Notification" msgstr "Bildirim" #: ../data/ui/trayicon-prefs.ui.h:4 msgid "Notification on song change" msgstr "Şarkı değişiminde bildirim" #: ../data/ui/trayicon-prefs.ui.h:5 msgid "Notification time: " msgstr "Bildirim süresi: " #: ../data/ui/trayicon-prefs.ui.h:6 msgid "On middle button click on tray icon :" msgstr "sistem tepsisindeyken orta fare tuşu ile tıkla :" #: ../data/ui/trayicon-prefs.ui.h:7 ../src/widgets/ario-header.c:241 msgid "Play next song" msgstr "Sonraki şarkıyı çal" #: ../data/ui/trayicon-prefs.ui.h:8 msgid "Play/Pause" msgstr "Oynat/Durakla" #: ../data/ui/trayicon-prefs.ui.h:9 msgid "Tray icon" msgstr "Sistem tepsisi simgesi" #: ../src/ario-main.c:67 msgid "Start minimized window" msgstr "Küçültülmüş pencerede başlat" #: ../src/ario-main.c:68 msgid "Start with specific profile" msgstr "" #. Format result string #: ../src/ario-util.c:110 msgid "seconds" msgstr "saniye" #: ../src/ario-util.c:112 msgid "minutes" msgstr "dakika" #: ../src/ario-util.c:118 msgid "hours" msgstr "saat" #: ../src/ario-util.c:124 msgid "days" msgstr "gün" #: ../src/covers/ario-cover.c:149 msgid "The cover already exists. Do you want to replace it?" msgstr "Bu albüm kapağı zaten var. Yerine koymak ister misin?" #: ../src/covers/ario-cover-local.c:48 msgid "Music Directory" msgstr "Müzik Dizini" #: ../src/playlist/ario-playlist-dynamic.c:49 msgid "songs of same artist" msgstr "Aynı sanatçının parçaları" #: ../src/playlist/ario-playlist-dynamic.c:50 msgid "songs of same album" msgstr "Aynı albümün parçaları" #: ../src/playlist/ario-playlist-dynamic.c:51 msgid "songs of similar artists" msgstr "Benzer sanatçıların parçaları" #: ../src/playlist/ario-playlist-dynamic.c:52 msgid "albums of same artists" msgstr "Aynı sanatçıların albümleri" #: ../src/playlist/ario-playlist-dynamic.c:53 msgid "albums of similar artists" msgstr "Benzer sanatçıların albümleri" #: ../src/playlist/ario-playlist-dynamic.c:69 msgid "Dynamic Playlist" msgstr "Dinamik çalma listesi" #: ../src/playlist/ario-playlist-queue.c:49 msgid "Queue Mode" msgstr "Sıra modu" #: ../src/playlist/ario-playlist-normal.c:47 msgid "Normal" msgstr "Normal" #: ../src/plugins/ario-plugin-manager.c:45 msgid "Plugin" msgstr "Eklenti" #: ../src/plugins/ario-plugin-manager.c:46 msgid "Enabled" msgstr "Etkin" #: ../src/plugins/ario-plugin-manager.c:480 ../src/shell/ario-shell.c:206 msgid "_About" msgstr "_Hakkında" #: ../src/plugins/ario-plugin-manager.c:488 msgid "C_onfigure" msgstr "Y_apılandır" #: ../src/plugins/ario-plugin-manager.c:497 msgid "A_ctivate" msgstr "E_tkinleştir" #: ../src/plugins/ario-plugin-manager.c:508 msgid "Ac_tivate All" msgstr "_Tümünü Etkinleştir" #: ../src/plugins/ario-plugin-manager.c:513 msgid "_Deactivate All" msgstr "Tümünü _Etkisizleştir" #: ../src/plugins/ario-plugin-manager.c:722 msgid "Active plugins" msgstr "Etkin eklentiler" #: ../src/preferences/ario-server-preferences.c:182 #: ../src/preferences/ario-stats-preferences.c:151 #: ../src/preferences/ario-stats-preferences.c:152 #: ../src/preferences/ario-stats-preferences.c:153 #: ../src/preferences/ario-stats-preferences.c:154 #: ../src/preferences/ario-stats-preferences.c:155 #: ../src/preferences/ario-stats-preferences.c:156 msgid "Not connected" msgstr "Bağlı değil" #: ../src/preferences/ario-server-preferences.c:187 #: ../src/preferences/ario-server-preferences.c:278 #: ../src/widgets/ario-status-bar.c:100 msgid "Updating..." msgstr "Güncelleniyor..." #: ../src/servers/ario-mpd.c:410 ../src/servers/ario-mpd2.c:522 msgid "Connecting to server..." msgstr "Sunucuya bağlanılıyor..." #: ../src/servers/ario-mpd.c:438 ../src/servers/ario-mpd2.c:550 msgid "Impossible to connect to server. Check the connection options." msgstr "Sunucuya bağlanmak olanaksız. Bağlantı seçeneklerini denetleyin." #. ARIO_TAG_ALBUM #: ../src/servers/ario-server.c:47 msgid "Album Artist" msgstr "Albüm Sanatçısı" #. ARIO_TAG_DATE #: ../src/servers/ario-server.c:53 msgid "Composer" msgstr "Besteci" #. ARIO_TAG_COMPOSER #: ../src/servers/ario-server.c:54 msgid "Performer" msgstr "Sanatçı" #. ARIO_TAG_PERFORMER #. ARIO_TAG_COMMENT #. ARIO_TAG_DISC #: ../src/servers/ario-server.c:57 msgid "Filename" msgstr "Dosya adı" #. ARIO_TAG_FILENAME #: ../src/servers/ario-server.c:58 msgid "Any" msgstr "Herhangi" #. impossible time or broken locale settings #: ../src/servers/ario-server.h:27 #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1235 msgid "Unknown" msgstr "Bilinmeyen" #: ../src/sources/ario-browser.c:82 ../src/sources/ario-search.c:70 #: ../src/sources/ario-storedplaylists.c:88 #: ../src/sources/ario-storedplaylists.c:106 #: ../plugins/filesystem/ario-filesystem.c:94 #: ../plugins/filesystem/ario-filesystem.c:109 #: ../plugins/radios/ario-radio.c:116 msgid "_Add to playlist" msgstr "_Çalma listesine ekle" #: ../src/sources/ario-browser.c:85 ../src/sources/ario-search.c:73 #: ../src/sources/ario-storedplaylists.c:91 #: ../src/sources/ario-storedplaylists.c:109 #: ../plugins/filesystem/ario-filesystem.c:97 #: ../plugins/filesystem/ario-filesystem.c:112 #: ../plugins/radios/ario-radio.c:119 msgid "Add and _play" msgstr "Ekle ve _oynat" #: ../src/sources/ario-browser.c:88 ../src/sources/ario-search.c:76 #: ../src/sources/ario-storedplaylists.c:94 #: ../src/sources/ario-storedplaylists.c:112 #: ../plugins/filesystem/ario-filesystem.c:100 #: ../plugins/filesystem/ario-filesystem.c:115 #: ../plugins/radios/ario-radio.c:122 msgid "_Replace in playlist" msgstr "_Çalma listesinde yerine koy" #: ../src/sources/ario-browser.c:91 msgid "Get the covers" msgstr "Albüm kapaklarını al" #: ../src/sources/ario-browser.c:94 msgid "_Delete the covers" msgstr "_Albüm kapaklarını sil" #: ../src/sources/ario-browser.c:97 ../src/sources/ario-browser.c:100 #: ../src/sources/ario-search.c:79 ../src/sources/ario-storedplaylists.c:115 #: ../src/widgets/ario-playlist.c:151 #: ../plugins/filesystem/ario-filesystem.c:118 #: ../plugins/radios/ario-radio.c:131 msgid "_Properties" msgstr "_Özellikler" #: ../src/sources/ario-browser.c:125 ../src/shell/ario-shell-preferences.c:118 msgid "Library" msgstr "Kütüphane" #: ../src/sources/ario-storedplaylists.c:97 msgid "_Delete" msgstr "_Sil" #: ../src/sources/ario-storedplaylists.c:151 msgid "Playlists" msgstr "Çalma Listeleri" #: ../src/sources/ario-storedplaylists.c:592 msgid "Are you sure that you want to delete all the selected playlists?" msgstr "Seçilen tüm çalma listelerini silmek istediğinize emin misiniz?" #: ../src/sources/ario-tree.c:856 msgid "Are you sure that you want to remove all the selected covers?" msgstr "Bütün kapakları kaldırmak istediğinize emin misiniz?" #. Translators - This "Cover" refers to an album cover art #: ../src/sources/ario-tree-albums.c:199 msgid "Cover" msgstr "Kapak" #: ../src/shell/ario-shell.c:160 msgid "_File" msgstr "_Dosya" #: ../src/shell/ario-shell.c:161 msgid "_Edit" msgstr "_Düzenle" #: ../src/shell/ario-shell.c:162 msgid "_View" msgstr "_Görünüm" #: ../src/shell/ario-shell.c:163 msgid "_Control" msgstr "_Kontrol" #: ../src/shell/ario-shell.c:164 msgid "_Tool" msgstr "_Araç" #: ../src/shell/ario-shell.c:165 msgid "_Help" msgstr "_Yardım" #: ../src/shell/ario-shell.c:173 msgid "_Update database" msgstr "_Güncelle veritabanı" #: ../src/shell/ario-shell.c:176 msgid "_Quit" msgstr "_Çık" #: ../src/shell/ario-shell.c:179 msgid "Plu_gins" msgstr "E_klentiler" #: ../src/shell/ario-shell.c:182 msgid "Prefere_nces" msgstr "Yeğlene_nler" #: ../src/shell/ario-shell.c:185 msgid "_Change current album cover" msgstr "_Geçerli albüm kapağını değiştir" #: ../src/shell/ario-shell.c:188 msgid "Download album _covers" msgstr "Albüm _Kapaklarını indir" #: ../src/shell/ario-shell.c:191 msgid "Find similar artists" msgstr "Benzer sanatçıları bul" #: ../src/shell/ario-shell.c:194 msgid "Add similar songs to playlist" msgstr "Benzer şarkıları çalma listesine ekle" #: ../src/shell/ario-shell.c:197 msgid "Go to _previous tab" msgstr "_Önceki sekmeye git" #: ../src/shell/ario-shell.c:200 msgid "Go to _next tab" msgstr "_Sonraki sekmeye git" #: ../src/shell/ario-shell.c:203 msgid "Show _lyrics" msgstr "_Şarkı sözlerini göster" #: ../src/shell/ario-shell.c:209 msgid "_Translate this application..." msgstr "_Bu uygulamayı tercüme et." #: ../src/shell/ario-shell.c:216 msgid "S_tatusbar" msgstr "_Durum çubuğu" #: ../src/shell/ario-shell.c:219 msgid "Upper part" msgstr "Üst tarafı" #: ../src/shell/ario-shell.c:825 msgid "GTK client for MPD" msgstr "MPD için GTK istemcisi" #: ../src/shell/ario-shell.c:826 msgid "translator-credits" msgstr "" "Launchpad Contributions:\n" " Enes Albay https://launchpad.net/~albayenes\n" " Fatih Ekin https://launchpad.net/~f-ekin22\n" " Furkan KARA https://launchpad.net/~frkn\n" " GüneyTekfidan https://launchpad.net/~ubuntuturk-hotmail\n" " Hasan Yılmaz https://launchpad.net/~hasanyilmaz\n" " Marc Pavot https://launchpad.net/~marc-pavot\n" " Murat Bişkin https://launchpad.net/~muratbiskin\n" " TurkMame https://launchpad.net/~turkmame\n" " Volkan Esgel https://launchpad.net/~vesgel\n" " Yahuda https://launchpad.net/~judaskro\n" " can kaçan https://launchpad.net/~amon-ra\n" " celil aydin https://launchpad.net/~celil-aydin\n" " utdemir https://launchpad.net/~utdemir" #. Create plugins configuration dialog window #: ../src/shell/ario-shell.c:1278 msgid "Configure Plugins" msgstr "Eklentileri Yapılandır" #. Set window properties #: ../src/shell/ario-shell-coverdownloader.c:187 msgid "Music Player Cover Download" msgstr "Müzik Çalar Kapağı İndir" #: ../src/shell/ario-shell-coverdownloader.c:332 msgid "Download Finished!" msgstr "İndirme Tamamlandı!" #. We show the numbers of covers found and not found #: ../src/shell/ario-shell-coverdownloader.c:335 #, c-format msgid "" "%i covers found\n" "%i covers not found\n" "%i covers already exist" msgstr "" "%i kapak bulundu\n" "%i kapak bulunamadı\n" "%i kapak zaten var" #. Set window properties #: ../src/shell/ario-shell-coverselect.c:242 msgid "Cover Download" msgstr "Kapak İndir" #: ../src/shell/ario-shell-coverselect.c:559 msgid "Error reading file" msgstr "Dosya okumada hata" #: ../src/shell/ario-shell-coverselect.c:584 msgid "Error saving file" msgstr "Dosya kaydetmede hata" #: ../src/shell/ario-shell-lyrics.c:43 #: ../src/shell/ario-shell-preferences.c:133 #: ../src/shell/ario-shell-songinfos.c:272 msgid "Lyrics" msgstr "Şarkı sözleri" #: ../src/shell/ario-shell-lyricsselect.c:152 msgid "Lyrics Download" msgstr "Şarkı Sözleri İndir" #: ../src/shell/ario-shell-preferences.c:81 msgid "Ario Preferences" msgstr "Ario Yeğlenenleri" #: ../src/shell/ario-shell-preferences.c:113 msgid "Server" msgstr "Sunucu" #: ../src/shell/ario-shell-preferences.c:143 msgid "Others" msgstr "Diğerleri" #: ../src/shell/ario-shell-similarartists.c:318 #, c-format msgid "%d songs" msgstr "%d şarkı" #. Set window properties #. Set window title #: ../src/shell/ario-shell-songinfos.c:249 #: ../src/shell/ario-shell-songinfos.c:266 #: ../src/shell/ario-shell-songinfos.c:544 msgid "Song Properties" msgstr "Şarkı Özellikleri" #: ../src/shell/ario-shell-songinfos.c:455 msgid "Error saving tags of file:" msgstr "Dosya etiketi kaydı hatası" #: ../src/widgets/ario-connection-widget.c:652 msgid "You must select a server." msgstr "Bir sunucu seçmelisiniz." #: ../src/widgets/ario-connection-widget.c:702 msgid "New Profile" msgstr "Yeni Profil" #: ../src/widgets/ario-firstlaunch.c:82 msgid "The following configuration will be used:" msgstr "İzleyen yapılandırma kullanılacak:" #: ../src/widgets/ario-firstlaunch.c:106 msgid "" "It is the first time you launch Ario.\n" "This assistant will help you to configure it." msgstr "" "İlk kez Ario'yu çalıştırıyorsunuz.\n" "Bu asistan, programı yapılandırmanıza yardım edecek." #: ../src/widgets/ario-firstlaunch.c:111 msgid "Welcome to Ario" msgstr "Ario'ya hoşgeldiniz" #: ../src/widgets/ario-firstlaunch.c:129 msgid "Configuration" msgstr "Yapılandırma" #: ../src/widgets/ario-firstlaunch.c:141 msgid "Confirmation" msgstr "Doğrulama" #: ../src/widgets/ario-header.c:66 ../src/widgets/ario-tray-icon.h:42 #, c-format msgid "from %s by %s" msgstr "%s içinden %s tarafından" #: ../src/widgets/ario-header.c:199 msgid "Play previous song" msgstr "Önceki şarkıyı çal" #: ../src/widgets/ario-header.c:217 msgid "Play/Pause the music" msgstr "Müziği Oynat/Duraklat" #: ../src/widgets/ario-header.c:229 msgid "Stop the music" msgstr "Müziği durdur" #. Translators - This " of " is used to count the elapsed time #. of a song like in "00:59 of 03:24" #: ../src/widgets/ario-header.c:310 ../src/widgets/ario-tooltip.c:321 msgid " of " msgstr " / " #: ../src/widgets/ario-header.c:323 msgid "Toggle random on/off" msgstr "Rastgele aç/kapa" #: ../src/widgets/ario-header.c:335 msgid "Toggle repeat on/off" msgstr "Yinele aç/kapa" #: ../src/widgets/ario-header.c:340 msgid "Change the music volume" msgstr "Müziğin ses düzeyini değiştir" #: ../src/widgets/ario-lyrics-editor.c:323 msgid "Downloading lyrics..." msgstr "Şarkı sözleri indiriliyor..." #: ../src/widgets/ario-lyrics-editor.c:351 msgid "Lyrics not found" msgstr "Şarkı sözleri bulunamadı" #: ../src/widgets/ario-playlist.c:133 msgid "_Clear" msgstr "_Temizle" #: ../src/widgets/ario-playlist.c:136 msgid "_Shuffle" msgstr "_Karıştır" #: ../src/widgets/ario-playlist.c:139 msgid "Cr_op" msgstr "Kır_p" #: ../src/widgets/ario-playlist.c:142 msgid "_Search in playlist" msgstr "Çalma listesinde _Ara" #: ../src/widgets/ario-playlist.c:145 msgid "_Remove" msgstr "_Kaldır" #: ../src/widgets/ario-playlist.c:148 msgid "_Save" msgstr "_Kaydet" #: ../src/widgets/ario-playlist.c:154 msgid "_Go to playing song" msgstr "Çalan şarkıya _git" #: ../src/widgets/ario-playlist.c:667 msgid "Filter:" msgstr "Filtre:" #. Create the widgets #: ../src/widgets/ario-playlist.c:1700 msgid "Save playlist" msgstr "Çalma listesini kaydet" #: ../src/widgets/ario-playlist.c:1710 msgid "Playlist name :" msgstr "Çalma listesi adı :" #: ../src/widgets/ario-playlist.c:1746 msgid "Playlist already exists. Do you want to overwrite it?" msgstr "Çalma listesi zaten var. Üzerine yazmak istiyor musunuz?" #. Format status bar message #: ../src/widgets/ario-status-bar.c:96 msgid "Songs" msgstr "Şarkılar" #: ../src/widgets/ario-tray-icon.c:102 msgid "_Play" msgstr "Ç_al" #: ../src/widgets/ario-tray-icon.c:105 msgid "_Pause" msgstr "_Duraklat" #: ../src/widgets/ario-tray-icon.c:108 msgid "_Stop" msgstr "D_urdur" #: ../src/widgets/ario-tray-icon.c:111 msgid "_Next" msgstr "_Sonraki" #: ../src/widgets/ario-tray-icon.c:114 msgid "P_revious" msgstr "_Önceki" #: ../src/widgets/ario-tray-icon.h:41 msgid "Not playing" msgstr "Çalmıyor" #. Translators: "friendly time" string for the current day, strftime format. like "Today 12:34 am" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1179 msgid "Today %I:%M %p" msgstr "Bugün %I:%M %p" #. Translators: "friendly time" string for the previous day, #. * strftime format. e.g. "Yesterday 12:34 am" #. #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1192 msgid "Yesterday %I:%M %p" msgstr "Dün %I:%M %p" #. Translators: "friendly time" string for a day in the current week, #. * strftime format. e.g. "Wed 12:34 am" #. #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1208 msgid "%a %I:%M %p" msgstr "%a %I:%M %p" #. Translators: "friendly time" string for a day in the current year, #. * strftime format. e.g. "Feb 12 12:34 am" #. #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1220 msgid "%b %d %I:%M %p" msgstr "%d %b %I:%M %p" #. Translators: "friendly time" string for a day in a different year, #. * strftime format. e.g. "Feb 12 1997" #. #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1225 msgid "%b %d %Y" msgstr "%d %b %Y" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1311 #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:4 msgid "Never" msgstr "Asla" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1335 msgid "OK" msgstr "Tamam" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1338 msgid "Logging in" msgstr "Giriş yapılıyor" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1341 msgid "Request failed" msgstr "İstek başarısız" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1344 msgid "Incorrect username" msgstr "Geçersiz kullanıcı adı" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1347 msgid "Incorrect password" msgstr "Geçersiz parola" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1350 msgid "Handshake failed" msgstr "Anlaşma başarısız oldu" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1353 msgid "Client update required" msgstr "İstemci güncellemesi gerekiyor" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1356 msgid "Track submission failed" msgstr "Parça gönderme başarısız" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1359 msgid "Queue is too long" msgstr "Kuyruk çok uzun" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1362 msgid "Track submission failed too many times" msgstr "Parça gönderme birçok kez başarısız oldu" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1417 msgid "Audioscrobbler preferences" msgstr "Audioscrobbler yeğlenenleri" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:1 msgid "Disabled" msgstr "Etkisizleştirildi" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:2 msgid "Last submission time:" msgstr "Son gönderme zamanı:" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:3 msgid "Last.fm Profile" msgstr "Last.fm Profili" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:6 msgid "Queued tracks:" msgstr "Sıralanmış parçalar:" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:7 msgid "Status:" msgstr "Durum:" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:8 msgid "Tracks submitted:" msgstr "Gönderilen parçalar:" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:9 #: ../plugins/radios/ario-radio.c:168 msgid "Username :" msgstr "Kullanıcı adı:" #: ../plugins/audioscrobbler/audioscrobbler.ario-plugin.desktop.in.h:1 msgid "Last.fm" msgstr "Last.fm" #: ../plugins/audioscrobbler/audioscrobbler.ario-plugin.desktop.in.h:2 msgid "Submits song information to last.fm" msgstr "Şarkı bilgisini Last.fm'e gönderir" #: ../plugins/filesystem/ario-filesystem.c:158 msgid "File System" msgstr "Dosya Sistemi" #: ../plugins/filesystem/ario-filesystem.c:422 msgid "Music" msgstr "Müzik" #: ../plugins/filesystem/filesystem.ario-plugin.desktop.in.h:1 msgid "A File System Browser" msgstr "Bir Dosya Sistemi Gezgini" #: ../plugins/filesystem/filesystem.ario-plugin.desktop.in.h:2 msgid "File System Browser" msgstr "Dosya Sistemi Gezgini" #: ../plugins/information/ario-information.c:114 msgid "Information" msgstr "Bilgi" #: ../plugins/information/information.ario-plugin.desktop.in.h:1 msgid "Display various information about the playing song" msgstr "Çalan şarkı hakkında çeşitli bilgiyi gösterir" #: ../plugins/information/information.ario-plugin.desktop.in.h:2 msgid "Song Information" msgstr "Şarkı Bilgisi" #: ../plugins/information/information.ui.h:2 msgid "Albums from this artist:" msgstr "Bu sanatçının albümleri:" #: ../plugins/information/information.ui.h:5 msgid "Lyrics:" msgstr "Şarkı sözleri:" #: ../plugins/libnotify/libnotify.ario-plugin.desktop.in.h:1 msgid "Add libnotify support" msgstr "libnotify desteği ekle" #: ../plugins/libnotify/libnotify.ario-plugin.desktop.in.h:2 msgid "Libnotify" msgstr "Libnotify" #: ../plugins/mmkeys/mmkeys.ario-plugin.desktop.in.h:1 msgid "Add multimedia keys support" msgstr "Çoklu ortam tuşları desteği ekle" #: ../plugins/mmkeys/mmkeys.ario-plugin.desktop.in.h:2 msgid "Multimedia Keys" msgstr "Çoklu Ortam Tuşları" #: ../plugins/radios/ario-radio.c:125 msgid "Add a _new radio" msgstr "_Yeni bir radyo ekle" #: ../plugins/radios/ario-radio.c:128 msgid "_Delete this radios" msgstr "Bu radyoları _sil" #: ../plugins/radios/ario-radio.c:166 msgid "Last.fm: Radio of similar artists" msgstr "Last.fm: Benzer sanatçıların radyosu" #: ../plugins/radios/ario-radio.c:167 msgid "Last.fm: Radio of group" msgstr "Last.fm: Grup radyosu" #: ../plugins/radios/ario-radio.c:167 msgid "Group :" msgstr "Grup" #: ../plugins/radios/ario-radio.c:168 msgid "Last.fm: Personal radio" msgstr "Last.fm: Kişisel radyo" #: ../plugins/radios/ario-radio.c:169 msgid "Last.fm: Radio of genre" msgstr "Last.fm: Tarz radyosu" #: ../plugins/radios/ario-radio.c:184 #: ../plugins/radios/radios.ario-plugin.desktop.in.h:2 msgid "Web Radios" msgstr "Ağ Radyoları" #: ../plugins/radios/ario-radio.c:246 msgid "Internet Radios" msgstr "İnternet Radyoları" #. Create dialog window #: ../plugins/radios/ario-radio.c:774 msgid "Edit a WebRadio" msgstr "Bir Ağ Radyo'sunu düzenle" #: ../plugins/radios/ario-radio.c:787 ../plugins/radios/ario-radio.c:923 msgid "URL :" msgstr "Adres :" #: ../plugins/radios/ario-radio.c:853 ../plugins/radios/ario-radio.c:997 msgid "Bad parameters. You must specify a name and a URL for the radio." msgstr "Kötü parametreler. Radyo için yeni bir ad ve adres belirtmelisiniz." #. Create dialog window #: ../plugins/radios/ario-radio.c:883 msgid "Add a WebRadio" msgstr "Bir Ağ Radyosu ekle" #: ../plugins/radios/ario-radio.c:1083 msgid "Are you sure you want to delete all the selected radios?" msgstr "Seçilmiş tüm radyoları silmek istediğinize emin misiniz?" #: ../plugins/radios/radios.ario-plugin.desktop.in.h:1 msgid "Listen to webradios" msgstr "Ağ Radyo'larını dinle" #: ../plugins/wikipedia/ario-wikipedia-plugin.c:49 #: ../plugins/wikipedia/ario-wikipedia-plugin.c:50 msgid "Find artist on Wikipedia" msgstr "Sanatçıyı Vikipedi'de bul" #: ../plugins/wikipedia/ario-wikipedia-plugin.c:172 msgid "Wikipedia Plugin - Configuration" msgstr "Vikipedi Eklentisi - Yapılandırma" #: ../plugins/wikipedia/ario-wikipedia-plugin.c:181 msgid "Wikipedia language :" msgstr "Vikipedi dili :" #: ../plugins/wikipedia/wikipedia.ario-plugin.desktop.in.h:1 msgid "A plugin to search current artist on wikipedia" msgstr "Mevcut sanatçıyı Vikipedi'de aramak için bir eklenti" #: ../plugins/wikipedia/wikipedia.ario-plugin.desktop.in.h:2 msgid "Wikipedia" msgstr "Vikipedi" #~ msgid "Search songs in the library" #~ msgstr "Şarkıyı kütüphanede ara" #~ msgid "Add a search criteria" #~ msgstr "Bir arama kısıtı ekle" #~ msgid "Remove a search criteria" #~ msgstr "Bir arama kısıtını kaldır" ario-1.6/po/he.po0000644000175000017500000010616113226723435010621 00000000000000# Hebrew translation for ario # Copyright (c) 2008 Rosetta Contributors and Canonical Ltd 2008 # This file is distributed under the same license as the ario package. # FIRST AUTHOR , 2008. # msgid "" msgstr "" "Project-Id-Version: ario\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2011-06-13 18:15+0200\n" "PO-Revision-Date: 2010-07-25 04:05+0000\n" "Last-Translator: Yaron \n" "Language-Team: Hebrew \n" "Language: he\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2011-06-13 16:32+0000\n" "X-Generator: Launchpad (build 13175)\n" #: ../data/ario.desktop.in.in.h:1 msgid "Ario music player" msgstr "נגן המוסיקה Ario" #: ../data/ario.desktop.in.in.h:2 msgid "Client application to mpd" msgstr "תוכנת לקוח ל-mpd" #: ../data/ui/browser-prefs.ui.h:1 msgid "Alphabetically" msgstr "אלפבתית" #: ../data/ui/browser-prefs.ui.h:2 msgid "By year" msgstr "לפי שנה" #: ../data/ui/browser-prefs.ui.h:3 msgid "Library Options" msgstr "אפשרויות ספרייה" #: ../data/ui/browser-prefs.ui.h:4 msgid "Library Organisation" msgstr "אירגון ספרייה" #: ../data/ui/browser-prefs.ui.h:5 msgid "Sort albums: " msgstr "סידור אלבומים: " #: ../data/ui/connection-autodetect.ui.h:1 msgid "" "If you don't see your MPD server thanks to the automatic detection, you " "should check that zeroconf is activated in your MPD configuration or use the " "manual configuration." msgstr "" "אם שרת ה־MPD שלך אינו גלוי הודות לאיתור האוטומטי, יהיה עליך לבדוק שהשירות " "zeroconf מופעל בתצורת ה־MPD שלך או לעשות שימוש בתצורה הידנית." #: ../data/ui/connection-autodetect.ui.h:2 msgid "Server autodetection" msgstr "זיהוי השרת אוטומטית" #: ../data/ui/connection-widget.ui.h:1 msgid "Auto detect" msgstr "זהה אוטומטית" #: ../data/ui/connection-widget.ui.h:2 msgid "Default" msgstr "ברירת מחדל" #: ../data/ui/connection-widget.ui.h:3 ../src/widgets/ario-firstlaunch.c:83 msgid "Host :" msgstr "מארח :" #: ../data/ui/connection-widget.ui.h:4 msgid "Music directory :" msgstr "תיקיית מוסיקה :" #: ../data/ui/connection-widget.ui.h:5 msgid "Music server is on the same computer as Ario" msgstr "שרת המוסיקה נמצא על אותו המחשב בו נמצא Ario" #. Create the widgets #: ../data/ui/connection-widget.ui.h:6 ../plugins/radios/ario-radio.c:786 #: ../plugins/radios/ario-radio.c:922 msgid "Name :" msgstr "שם :" #: ../data/ui/connection-widget.ui.h:7 #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:5 msgid "Password :" msgstr "סיסמה :" #: ../data/ui/connection-widget.ui.h:8 ../src/widgets/ario-firstlaunch.c:85 msgid "Port :" msgstr "פותחה :" #: ../data/ui/connection-widget.ui.h:9 msgid "Server type :" msgstr "סוג שרת :" #: ../data/ui/connection-widget.ui.h:10 msgid "Timeout :" msgstr "" #: ../data/ui/connection-widget.ui.h:11 msgid "XMMS 2 (Experimental)" msgstr "XMMS 2 (ניסיוני)" #: ../data/ui/cover-prefs.ui.h:1 msgid "Automatically download the album cover of the playing song" msgstr "הורדה אוטומטית של עטיפת האלבום של השיר המנוגן" #: ../data/ui/cover-prefs.ui.h:2 ../src/shell/ario-shell-preferences.c:128 msgid "Covers" msgstr "עטיפות" #: ../data/ui/cover-prefs.ui.h:3 msgid "Covers Sources" msgstr "מקור העטיפות" #: ../data/ui/cover-prefs.ui.h:4 msgid "Show the covers in the albums list" msgstr "הצג את העטיפות ברשימת האלבומים" #: ../data/ui/cover-prefs.ui.h:5 msgid "Use Amazon." msgstr "השתמש באמאזון." #: ../data/ui/connection-prefs.ui.h:1 #: ../src/shell/ario-shell-preferences.c:108 msgid "Connection" msgstr "חיבור" #: ../data/ui/connection-prefs.ui.h:2 msgid "_Autoconnect on startup" msgstr "ה_תחבר אוטומטית בהפעלה" #: ../data/ui/connection-prefs.ui.h:3 ../src/shell/ario-shell.c:167 msgid "_Connect" msgstr "_התחבר" #: ../data/ui/connection-prefs.ui.h:4 ../src/shell/ario-shell.c:170 msgid "_Disconnect" msgstr "הת_נתק" #: ../data/ui/connection-assistant.ui.h:1 msgid "" "You need to specify a server to connect to. If you don't see your server " "thanks to the autodetection, you should check that zeroconf/avahi is " "activated in your server or use the manual configuration." msgstr "" "יש לציין שרת להתחברות אליו. אם השרת שלך אינו מופיע הודות לגילוי האוטומטי, " "עליך לבדוק שהשירות zeroconf/avahi פעיל בשרת שלך או לעשות שימוש בתצורה הידנית." #: ../data/ui/cover-progress.ui.h:1 ../data/ui/cover-select.ui.h:1 #: ../data/ui/song-infos.ui.h:1 ../plugins/information/information.ui.h:1 msgid "Album :" msgstr "אלבום :" #: ../data/ui/cover-progress.ui.h:2 ../data/ui/cover-select.ui.h:2 #: ../data/ui/lyrics-select.ui.h:1 ../data/ui/song-infos.ui.h:3 #: ../plugins/information/information.ui.h:3 #: ../plugins/radios/ario-radio.c:166 msgid "Artist :" msgstr "אמן :" #: ../data/ui/cover-progress.ui.h:3 msgid "Downloading cover" msgstr "מוריד עטיפה" #: ../data/ui/cover-select.ui.h:3 msgid "Local search" msgstr "חיפוש מקומי" #: ../data/ui/cover-select.ui.h:4 ../src/sources/ario-search.c:108 msgid "Search" msgstr "חפש" #: ../data/ui/others-prefs.ui.h:1 msgid "Allow only one instance of Ario" msgstr "יש לאפשר מופע אחד בלבד של Ario" #: ../data/ui/others-prefs.ui.h:2 msgid "Hide window when close button is pressed" msgstr "הסתר חלון כאשר כפתור הסגירה נלחץ" #: ../data/ui/others-prefs.ui.h:3 msgid "Interface" msgstr "מנשק" #: ../data/ui/others-prefs.ui.h:4 msgid "Playlist at the right of tabs" msgstr "" #: ../data/ui/others-prefs.ui.h:5 msgid "Playlist below tabs" msgstr "" #: ../data/ui/others-prefs.ui.h:6 msgid "Playlist within tabs" msgstr "" #: ../data/ui/others-prefs.ui.h:7 msgid "Proxy" msgstr "מתווך" #: ../data/ui/others-prefs.ui.h:8 msgid "Proxy Address :" msgstr "כתובת המתווך :" #: ../data/ui/others-prefs.ui.h:9 msgid "Proxy Port :" msgstr "פותחת המתווך :" #: ../data/ui/others-prefs.ui.h:10 msgid "Show tabs" msgstr "הצג לשוניות" #: ../data/ui/others-prefs.ui.h:11 msgid "Use a proxy" msgstr "השתמש במתווך" #: ../data/ui/lyrics-prefs.ui.h:1 msgid "Lyrics Sources" msgstr "מקורות מילות השירים" #: ../data/ui/lyrics-select.ui.h:2 ../data/ui/song-infos.ui.h:13 #: ../plugins/information/information.ui.h:6 msgid "Title :" msgstr "כותרת :" #: ../data/ui/playlist-prefs.ui.h:1 msgid "Add after playing song" msgstr "הוספה לאחר נגינת השיר" #: ../data/ui/playlist-prefs.ui.h:2 msgid "Add and play" msgstr "הוסף ונגן" #: ../data/ui/playlist-prefs.ui.h:3 ../data/ui/similar-artists.ui.h:2 msgid "Add to playlist" msgstr "הוסף לרשימת השמעה" #. ARIO_TAG_ARTIST #: ../data/ui/playlist-prefs.ui.h:4 ../src/servers/ario-server.c:46 #: ../src/sources/ario-tree-albums.c:213 ../src/widgets/ario-playlist.c:541 #: ../src/widgets/ario-songlist.c:228 ../src/widgets/ario-tray-icon.c:565 msgid "Album" msgstr "אלבום" #: ../data/ui/playlist-prefs.ui.h:5 ../src/servers/ario-server.c:45 #: ../src/widgets/ario-playlist.c:541 ../src/widgets/ario-songlist.c:213 #: ../src/widgets/ario-tray-icon.c:563 msgid "Artist" msgstr "אמן" #. ARIO_TAG_GENRE #: ../data/ui/playlist-prefs.ui.h:6 ../src/servers/ario-server.c:52 #: ../src/widgets/ario-playlist.c:541 msgid "Date" msgstr "תאריך" #: ../data/ui/playlist-prefs.ui.h:7 ../src/widgets/ario-playlist.c:541 msgid "Disc" msgstr "תקליטור" #: ../data/ui/playlist-prefs.ui.h:8 msgid "Double click" msgstr "לחיצה כפולה" #: ../data/ui/playlist-prefs.ui.h:9 ../src/widgets/ario-playlist.c:541 msgid "Duration" msgstr "משך" #: ../data/ui/playlist-prefs.ui.h:10 ../src/widgets/ario-playlist.c:541 msgid "File" msgstr "קובץ" #. ARIO_TAG_TRACK #. ARIO_TAG_NAME #: ../data/ui/playlist-prefs.ui.h:11 ../src/servers/ario-server.c:51 #: ../src/widgets/ario-playlist.c:541 msgid "Genre" msgstr "ז'אנר" #: ../data/ui/playlist-prefs.ui.h:12 msgid "Go to current song when a new song is played" msgstr "עבור לשיר הנוכחי כאשר שיר חדש מתנגן" #: ../data/ui/playlist-prefs.ui.h:13 msgid "Mode" msgstr "Mode" #: ../data/ui/playlist-prefs.ui.h:14 msgid "On double click:" msgstr "בעת לחיצה כפולה:" #: ../data/ui/playlist-prefs.ui.h:15 ../src/sources/ario-storedplaylists.c:229 #: ../src/shell/ario-shell.c:222 ../src/shell/ario-shell-preferences.c:123 #: ../src/widgets/ario-playlist.c:272 msgid "Playlist" msgstr "רשימת השמעה" #: ../data/ui/playlist-prefs.ui.h:16 msgid "Playlist mode:" msgstr "מצב רשימת השמעה:" #: ../data/ui/playlist-prefs.ui.h:17 msgid "Replace in playlist" msgstr "החלף רשימת השמעה" #: ../data/ui/playlist-prefs.ui.h:18 msgid "Show rows:" msgstr "הצג שורות:" #. ARIO_TAG_ALBUM_ARTIST #: ../data/ui/playlist-prefs.ui.h:19 ../src/servers/ario-server.c:48 #: ../src/sources/ario-tree-songs.c:145 ../src/widgets/ario-playlist.c:541 #: ../src/widgets/ario-songlist.c:198 ../src/widgets/ario-tray-icon.c:567 msgid "Title" msgstr "כותרת" #. ARIO_TAG_TITLE #: ../data/ui/playlist-prefs.ui.h:20 ../src/servers/ario-server.c:49 #: ../src/sources/ario-tree-songs.c:138 ../src/widgets/ario-playlist.c:541 msgid "Track" msgstr "רצועה" #: ../data/ui/server-prefs.ui.h:1 msgid "Audio outputs" msgstr "פלט קולי" #: ../data/ui/server-prefs.ui.h:2 msgid "Crossfade" msgstr "עמעום הדרגתי" #: ../data/ui/server-prefs.ui.h:3 msgid "Database" msgstr "מסד נתונים" #: ../data/ui/server-prefs.ui.h:4 msgid "Last updated:" msgstr "עודכן לאחרונה:" #: ../data/ui/server-prefs.ui.h:5 msgid "Stop music on exit" msgstr "עצור מוסיקה בעת יציאה" #: ../data/ui/server-prefs.ui.h:6 msgid "Update on startup" msgstr "עדכן בעת הפעלה" #: ../data/ui/server-prefs.ui.h:7 msgid "_Update" msgstr "_עדכן" #: ../data/ui/server-prefs.ui.h:8 msgid "enable crossfade" msgstr "אפשר עמעום מדורג" #: ../data/ui/server-prefs.ui.h:9 msgid "fade time (s):" msgstr "זמן העמעום (ש'):" #: ../data/ui/server-prefs.ui.h:10 ../src/ario-util.c:50 ../src/ario-util.c:71 #: ../src/ario-util.c:93 ../plugins/information/information.ui.h:7 #, c-format msgid "n/a" msgstr "לא זמין" #: ../data/ui/similar-artists.ui.h:1 msgid "Add all to playlist" msgstr "הוסף הכל לרשימת השמעה" #: ../data/ui/similar-artists.ui.h:3 msgid "Find on Last.fm" msgstr "מצא ב-Last.fm" #: ../data/ui/stats-prefs.ui.h:1 msgid "Database play time :" msgstr "זמן נגינת מסד הנתונים :" #: ../data/ui/stats-prefs.ui.h:2 msgid "Number of albums :" msgstr "מספר האלבומים :" #: ../data/ui/stats-prefs.ui.h:3 msgid "Number of artists :" msgstr "מספר האמנים :" #: ../data/ui/stats-prefs.ui.h:4 msgid "Number of songs :" msgstr "מספר השירים :" #: ../data/ui/stats-prefs.ui.h:5 msgid "Play time :" msgstr "זמן הנגינה :" #: ../data/ui/stats-prefs.ui.h:6 ../src/shell/ario-shell-preferences.c:148 msgid "Statistics" msgstr "סטטיסטיקה" #: ../data/ui/stats-prefs.ui.h:7 msgid "Uptime :" msgstr "זמן הפעלה :" #: ../data/ui/song-infos.ui.h:2 msgid "Album Artist :" msgstr "אלבום אמן :" #: ../data/ui/song-infos.ui.h:4 msgid "Comment :" msgstr "הערה :" #: ../data/ui/song-infos.ui.h:5 msgid "Composer :" msgstr "מלחין :" #: ../data/ui/song-infos.ui.h:6 msgid "Date :" msgstr "תאריך :" #: ../data/ui/song-infos.ui.h:7 msgid "Disc :" msgstr "תקליטור :" #: ../data/ui/song-infos.ui.h:8 msgid "Filename :" msgstr "שם הקובץ :" #: ../data/ui/song-infos.ui.h:9 ../plugins/radios/ario-radio.c:169 msgid "Genre :" msgstr "סגנון :" #: ../data/ui/song-infos.ui.h:10 ../plugins/information/information.ui.h:4 msgid "Length :" msgstr "משך :" #: ../data/ui/song-infos.ui.h:11 msgid "Performer :" msgstr "מבצע :" #: ../data/ui/song-infos.ui.h:12 msgid "Song" msgstr "שיר" #: ../data/ui/song-infos.ui.h:14 msgid "Track :" msgstr "רצועה :" #: ../data/ui/trayicon-prefs.ui.h:1 msgid "Do nothing" msgstr "אל תעשה כלום" #: ../data/ui/trayicon-prefs.ui.h:2 msgid "Mute" msgstr "השתקה" #: ../data/ui/trayicon-prefs.ui.h:3 ../src/shell/ario-shell-preferences.c:138 msgid "Notification" msgstr "התראה" #: ../data/ui/trayicon-prefs.ui.h:4 msgid "Notification on song change" msgstr "התראה בעת שינוי שיר" #: ../data/ui/trayicon-prefs.ui.h:5 msgid "Notification time: " msgstr "זמן התראה: " #: ../data/ui/trayicon-prefs.ui.h:6 msgid "On middle button click on tray icon :" msgstr "עם לחיצת הלחצן האמצעי על הסמל בסרגל :" #: ../data/ui/trayicon-prefs.ui.h:7 ../src/widgets/ario-header.c:241 msgid "Play next song" msgstr "השמע את השיר הבא" #: ../data/ui/trayicon-prefs.ui.h:8 msgid "Play/Pause" msgstr "נגן/השהה" #: ../data/ui/trayicon-prefs.ui.h:9 msgid "Tray icon" msgstr "סמל בסרגל" #: ../src/ario-main.c:67 msgid "Start minimized window" msgstr "התחל חלון ממוזער" #: ../src/ario-main.c:68 msgid "Start with specific profile" msgstr "" #. Format result string #: ../src/ario-util.c:110 msgid "seconds" msgstr "שניות" #: ../src/ario-util.c:112 msgid "minutes" msgstr "דקות" #: ../src/ario-util.c:118 msgid "hours" msgstr "שעות" #: ../src/ario-util.c:124 msgid "days" msgstr "ימים" #: ../src/covers/ario-cover.c:149 msgid "The cover already exists. Do you want to replace it?" msgstr "העטיפה כבר קיימת. האם ברצונך להחליפה?" #: ../src/covers/ario-cover-local.c:48 msgid "Music Directory" msgstr "ספריית המוסיקה" #: ../src/playlist/ario-playlist-dynamic.c:49 msgid "songs of same artist" msgstr "שירים מאותו האמן" #: ../src/playlist/ario-playlist-dynamic.c:50 msgid "songs of same album" msgstr "שירים מאותו האלבום" #: ../src/playlist/ario-playlist-dynamic.c:51 msgid "songs of similar artists" msgstr "שירים מאמנים דומים" #: ../src/playlist/ario-playlist-dynamic.c:52 msgid "albums of same artists" msgstr "אלבומים מאותו האמן" #: ../src/playlist/ario-playlist-dynamic.c:53 msgid "albums of similar artists" msgstr "אלבומים מאמנים דומים" #: ../src/playlist/ario-playlist-dynamic.c:69 msgid "Dynamic Playlist" msgstr "רשימת השמעה דינאמית" #: ../src/playlist/ario-playlist-queue.c:49 msgid "Queue Mode" msgstr "מצב תור" #: ../src/playlist/ario-playlist-normal.c:47 msgid "Normal" msgstr "רגיל" #: ../src/plugins/ario-plugin-manager.c:45 msgid "Plugin" msgstr "תוסף" #: ../src/plugins/ario-plugin-manager.c:46 msgid "Enabled" msgstr "מופעל" #: ../src/plugins/ario-plugin-manager.c:480 ../src/shell/ario-shell.c:206 msgid "_About" msgstr "_אודות" #: ../src/plugins/ario-plugin-manager.c:488 msgid "C_onfigure" msgstr "ה_גדר" #: ../src/plugins/ario-plugin-manager.c:497 msgid "A_ctivate" msgstr "ה_פעל" #: ../src/plugins/ario-plugin-manager.c:508 msgid "Ac_tivate All" msgstr "הפ_על הכל" #: ../src/plugins/ario-plugin-manager.c:513 msgid "_Deactivate All" msgstr "הפסק ה_כל" #: ../src/plugins/ario-plugin-manager.c:722 msgid "Active plugins" msgstr "תוספים פעילים" #: ../src/preferences/ario-server-preferences.c:182 #: ../src/preferences/ario-stats-preferences.c:151 #: ../src/preferences/ario-stats-preferences.c:152 #: ../src/preferences/ario-stats-preferences.c:153 #: ../src/preferences/ario-stats-preferences.c:154 #: ../src/preferences/ario-stats-preferences.c:155 #: ../src/preferences/ario-stats-preferences.c:156 msgid "Not connected" msgstr "לא מחובר" #: ../src/preferences/ario-server-preferences.c:187 #: ../src/preferences/ario-server-preferences.c:278 #: ../src/widgets/ario-status-bar.c:100 msgid "Updating..." msgstr "מעדכן..." #: ../src/servers/ario-mpd.c:410 ../src/servers/ario-mpd2.c:522 msgid "Connecting to server..." msgstr "מתחבר לשרת..." #: ../src/servers/ario-mpd.c:438 ../src/servers/ario-mpd2.c:550 msgid "Impossible to connect to server. Check the connection options." msgstr "לא ניתן להתחבר לשרת. יש לבדוק את אפשרויות החיבור." #. ARIO_TAG_ALBUM #: ../src/servers/ario-server.c:47 msgid "Album Artist" msgstr "אמן האלבום" #. ARIO_TAG_DATE #: ../src/servers/ario-server.c:53 msgid "Composer" msgstr "מלחין" #. ARIO_TAG_COMPOSER #: ../src/servers/ario-server.c:54 msgid "Performer" msgstr "מבצע" #. ARIO_TAG_PERFORMER #. ARIO_TAG_COMMENT #. ARIO_TAG_DISC #: ../src/servers/ario-server.c:57 msgid "Filename" msgstr "שם הקובץ" #. ARIO_TAG_FILENAME #: ../src/servers/ario-server.c:58 msgid "Any" msgstr "כלשהו" #. impossible time or broken locale settings #: ../src/servers/ario-server.h:27 #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1235 msgid "Unknown" msgstr "לא ידוע" #: ../src/sources/ario-browser.c:82 ../src/sources/ario-search.c:70 #: ../src/sources/ario-storedplaylists.c:88 #: ../src/sources/ario-storedplaylists.c:106 #: ../plugins/filesystem/ario-filesystem.c:94 #: ../plugins/filesystem/ario-filesystem.c:109 #: ../plugins/radios/ario-radio.c:116 msgid "_Add to playlist" msgstr "הוסף ל_רשימת ההשמעה" #: ../src/sources/ario-browser.c:85 ../src/sources/ario-search.c:73 #: ../src/sources/ario-storedplaylists.c:91 #: ../src/sources/ario-storedplaylists.c:109 #: ../plugins/filesystem/ario-filesystem.c:97 #: ../plugins/filesystem/ario-filesystem.c:112 #: ../plugins/radios/ario-radio.c:119 msgid "Add and _play" msgstr "הוסף ו_נגן" #: ../src/sources/ario-browser.c:88 ../src/sources/ario-search.c:76 #: ../src/sources/ario-storedplaylists.c:94 #: ../src/sources/ario-storedplaylists.c:112 #: ../plugins/filesystem/ario-filesystem.c:100 #: ../plugins/filesystem/ario-filesystem.c:115 #: ../plugins/radios/ario-radio.c:122 msgid "_Replace in playlist" msgstr "ה_חלף ברשימת ההשמעה" #: ../src/sources/ario-browser.c:91 msgid "Get the covers" msgstr "השג את העטיפות" #: ../src/sources/ario-browser.c:94 msgid "_Delete the covers" msgstr "מ_חק את העטיפות" #: ../src/sources/ario-browser.c:97 ../src/sources/ario-browser.c:100 #: ../src/sources/ario-search.c:79 ../src/sources/ario-storedplaylists.c:115 #: ../src/widgets/ario-playlist.c:151 #: ../plugins/filesystem/ario-filesystem.c:118 #: ../plugins/radios/ario-radio.c:131 msgid "_Properties" msgstr "_מאפיינים" #: ../src/sources/ario-browser.c:125 ../src/shell/ario-shell-preferences.c:118 msgid "Library" msgstr "ספרייה" #: ../src/sources/ario-storedplaylists.c:97 msgid "_Delete" msgstr "מ_חק" #: ../src/sources/ario-storedplaylists.c:151 msgid "Playlists" msgstr "רשימות השמעה" #: ../src/sources/ario-storedplaylists.c:592 msgid "Are you sure that you want to delete all the selected playlists?" msgstr "האם אתה בטוח שברצונך למחוק את כל רשימות ההשמעה הנבחרות?" #: ../src/sources/ario-tree.c:856 msgid "Are you sure that you want to remove all the selected covers?" msgstr "האם אתה בטוח שברצונך למחוק את כל העטיפות הנבחרות?" #. Translators - This "Cover" refers to an album cover art #: ../src/sources/ario-tree-albums.c:199 msgid "Cover" msgstr "עטיפה" #: ../src/shell/ario-shell.c:160 msgid "_File" msgstr "_קובץ" #: ../src/shell/ario-shell.c:161 msgid "_Edit" msgstr "ע_ריכה" #: ../src/shell/ario-shell.c:162 msgid "_View" msgstr "_תצוגה" #: ../src/shell/ario-shell.c:163 msgid "_Control" msgstr "_בקרה" #: ../src/shell/ario-shell.c:164 msgid "_Tool" msgstr "_כלי" #: ../src/shell/ario-shell.c:165 msgid "_Help" msgstr "_עזרה" #: ../src/shell/ario-shell.c:173 msgid "_Update database" msgstr "_עדכן מסד נתונים" #: ../src/shell/ario-shell.c:176 msgid "_Quit" msgstr "_יציאה" #: ../src/shell/ario-shell.c:179 msgid "Plu_gins" msgstr "תו_ספים" #: ../src/shell/ario-shell.c:182 msgid "Prefere_nces" msgstr "ה_עדפות" #: ../src/shell/ario-shell.c:185 msgid "_Change current album cover" msgstr "ש_נה את עטיפת האלבום הנוכחי" #: ../src/shell/ario-shell.c:188 msgid "Download album _covers" msgstr "הו_רד עטיפות אלבומים" #: ../src/shell/ario-shell.c:191 msgid "Find similar artists" msgstr "חפש אמנים דומים" #: ../src/shell/ario-shell.c:194 msgid "Add similar songs to playlist" msgstr "הוסף שירים דומים לרשימת ההשמעה" #: ../src/shell/ario-shell.c:197 msgid "Go to _previous tab" msgstr "מעבר ללשונית ה_קודמת" #: ../src/shell/ario-shell.c:200 msgid "Go to _next tab" msgstr "מעבר ללשונית ה_באה" #: ../src/shell/ario-shell.c:203 msgid "Show _lyrics" msgstr "הצ_ג את מילות השירים" #: ../src/shell/ario-shell.c:209 msgid "_Translate this application..." msgstr "_תרגם תוכנה זו..." #: ../src/shell/ario-shell.c:216 msgid "S_tatusbar" msgstr "_שורת המצב" #: ../src/shell/ario-shell.c:219 msgid "Upper part" msgstr "החלק ה_עליון" #: ../src/shell/ario-shell.c:825 msgid "GTK client for MPD" msgstr "לקוח MPD עבור GTK" #: ../src/shell/ario-shell.c:826 msgid "translator-credits" msgstr "" "Launchpad Contributions:\n" " Ddorda https://launchpad.net/~ddorda\n" " Yaron https://launchpad.net/~sh-yaron" #. Create plugins configuration dialog window #: ../src/shell/ario-shell.c:1278 msgid "Configure Plugins" msgstr "הגדרות תוספים" #. Set window properties #: ../src/shell/ario-shell-coverdownloader.c:187 msgid "Music Player Cover Download" msgstr "הורדת עטיפה לנגן המוסיקה" #: ../src/shell/ario-shell-coverdownloader.c:332 msgid "Download Finished!" msgstr "ההורדה הושלמה!" #. We show the numbers of covers found and not found #: ../src/shell/ario-shell-coverdownloader.c:335 #, c-format msgid "" "%i covers found\n" "%i covers not found\n" "%i covers already exist" msgstr "" "נמצאו %i עטיפות\n" "%i עטיפות לא נמצאו\n" "%i עטיפות כבר קיימות" #. Set window properties #: ../src/shell/ario-shell-coverselect.c:242 msgid "Cover Download" msgstr "הורדת עטיפה" #: ../src/shell/ario-shell-coverselect.c:559 msgid "Error reading file" msgstr "שגיאה בקריאת הקובץ" #: ../src/shell/ario-shell-coverselect.c:584 msgid "Error saving file" msgstr "שגיאה בשמירת הקובץ" #: ../src/shell/ario-shell-lyrics.c:43 #: ../src/shell/ario-shell-preferences.c:133 #: ../src/shell/ario-shell-songinfos.c:272 msgid "Lyrics" msgstr "מילות השיר" #: ../src/shell/ario-shell-lyricsselect.c:152 msgid "Lyrics Download" msgstr "הורדת מילות השיר" #: ../src/shell/ario-shell-preferences.c:81 msgid "Ario Preferences" msgstr "העדפות Ario" #: ../src/shell/ario-shell-preferences.c:113 msgid "Server" msgstr "שרת" #: ../src/shell/ario-shell-preferences.c:143 msgid "Others" msgstr "אחרים" #: ../src/shell/ario-shell-similarartists.c:318 #, c-format msgid "%d songs" msgstr "%d שירים" #. Set window properties #. Set window title #: ../src/shell/ario-shell-songinfos.c:249 #: ../src/shell/ario-shell-songinfos.c:266 #: ../src/shell/ario-shell-songinfos.c:544 msgid "Song Properties" msgstr "מאפייני השיר" #: ../src/shell/ario-shell-songinfos.c:455 msgid "Error saving tags of file:" msgstr "שגיאה בעת שמירת תגיות הקובץ:" #: ../src/widgets/ario-connection-widget.c:652 msgid "You must select a server." msgstr "עליך לבחור שרת." #: ../src/widgets/ario-connection-widget.c:702 msgid "New Profile" msgstr "פרופיל חדש" #: ../src/widgets/ario-firstlaunch.c:82 msgid "The following configuration will be used:" msgstr "יעשה שימוש בהגדרות הבאות:" #: ../src/widgets/ario-firstlaunch.c:106 msgid "" "It is the first time you launch Ario.\n" "This assistant will help you to configure it." msgstr "" "זוהי הפעם הראשונה בה אתה מפעיל את Ario.\n" "מסייע זה יעזור לך להגדיר את התוכנה." #: ../src/widgets/ario-firstlaunch.c:111 msgid "Welcome to Ario" msgstr "ברוכים הבאים ל-Ario" #: ../src/widgets/ario-firstlaunch.c:129 msgid "Configuration" msgstr "הגדרות" #: ../src/widgets/ario-firstlaunch.c:141 msgid "Confirmation" msgstr "אישור" #: ../src/widgets/ario-header.c:66 ../src/widgets/ario-tray-icon.h:42 #, c-format msgid "from %s by %s" msgstr "מאת %s על ידי %s" #: ../src/widgets/ario-header.c:199 msgid "Play previous song" msgstr "נגן את השיר הקודם" #: ../src/widgets/ario-header.c:217 msgid "Play/Pause the music" msgstr "נגן/השהה את המוסיקה" #: ../src/widgets/ario-header.c:229 msgid "Stop the music" msgstr "עצור את המוסיקה" #. Translators - This " of " is used to count the elapsed time #. of a song like in "00:59 of 03:24" #: ../src/widgets/ario-header.c:310 ../src/widgets/ario-tooltip.c:321 msgid " of " msgstr " מתוך " #: ../src/widgets/ario-header.c:323 msgid "Toggle random on/off" msgstr "הפעל/בטל בחירה אקראית" #: ../src/widgets/ario-header.c:335 msgid "Toggle repeat on/off" msgstr "הפעל/בטל חזרה" #: ../src/widgets/ario-header.c:340 msgid "Change the music volume" msgstr "שנה את עוצמת המוסיקה" #: ../src/widgets/ario-lyrics-editor.c:323 msgid "Downloading lyrics..." msgstr "מוריד את מילות השיר..." #: ../src/widgets/ario-lyrics-editor.c:351 msgid "Lyrics not found" msgstr "לא נמצאו מילות השיר" #: ../src/widgets/ario-playlist.c:133 msgid "_Clear" msgstr "_נקה" #: ../src/widgets/ario-playlist.c:136 msgid "_Shuffle" msgstr "עי_רבוב" #: ../src/widgets/ario-playlist.c:139 msgid "Cr_op" msgstr "_חיתוך" #: ../src/widgets/ario-playlist.c:142 msgid "_Search in playlist" msgstr "ח_יפוש ברשימת ההשמעה" #: ../src/widgets/ario-playlist.c:145 msgid "_Remove" msgstr "ה_סר" #: ../src/widgets/ario-playlist.c:148 msgid "_Save" msgstr "שמו_ר" #: ../src/widgets/ario-playlist.c:154 msgid "_Go to playing song" msgstr "ע_בור לשיר המתנגן" #: ../src/widgets/ario-playlist.c:667 msgid "Filter:" msgstr "מסנן:" #. Create the widgets #: ../src/widgets/ario-playlist.c:1700 msgid "Save playlist" msgstr "שמור את רשימת ההשמעה" #: ../src/widgets/ario-playlist.c:1710 msgid "Playlist name :" msgstr "שם רשימת ההשמעה :" #: ../src/widgets/ario-playlist.c:1746 msgid "Playlist already exists. Do you want to overwrite it?" msgstr "רשימת ההשמעה כבר קיימת. האם ברצונך לשכתב עליה?" #. Format status bar message #: ../src/widgets/ario-status-bar.c:96 msgid "Songs" msgstr "שירים" #: ../src/widgets/ario-tray-icon.c:102 msgid "_Play" msgstr "_נגן" #: ../src/widgets/ario-tray-icon.c:105 msgid "_Pause" msgstr "ה_שהה" #: ../src/widgets/ario-tray-icon.c:108 msgid "_Stop" msgstr "ע_צור" #: ../src/widgets/ario-tray-icon.c:111 msgid "_Next" msgstr "ה_בא" #: ../src/widgets/ario-tray-icon.c:114 msgid "P_revious" msgstr "ה_קודם" #: ../src/widgets/ario-tray-icon.h:41 msgid "Not playing" msgstr "לא מנגן" #. Translators: "friendly time" string for the current day, strftime format. like "Today 12:34 am" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1179 msgid "Today %I:%M %p" msgstr "היום %I:%M %p" #. Translators: "friendly time" string for the previous day, #. * strftime format. e.g. "Yesterday 12:34 am" #. #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1192 msgid "Yesterday %I:%M %p" msgstr "אתמול %I:%M %p" #. Translators: "friendly time" string for a day in the current week, #. * strftime format. e.g. "Wed 12:34 am" #. #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1208 msgid "%a %I:%M %p" msgstr "%a %I:%M %p" #. Translators: "friendly time" string for a day in the current year, #. * strftime format. e.g. "Feb 12 12:34 am" #. #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1220 msgid "%b %d %I:%M %p" msgstr "%d ב%b %I:%M %p" #. Translators: "friendly time" string for a day in a different year, #. * strftime format. e.g. "Feb 12 1997" #. #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1225 msgid "%b %d %Y" msgstr "%d ב%b %Y" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1311 #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:4 msgid "Never" msgstr "אף פעם" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1335 msgid "OK" msgstr "אישור" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1338 msgid "Logging in" msgstr "מתחבר" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1341 msgid "Request failed" msgstr "הבקשה נכשלה" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1344 msgid "Incorrect username" msgstr "שם משתמש שגוי" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1347 msgid "Incorrect password" msgstr "סיסמה שגויה" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1350 msgid "Handshake failed" msgstr "לחיצת היד נכשלה" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1353 msgid "Client update required" msgstr "נדרש עדכון הלקוח" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1356 msgid "Track submission failed" msgstr "שליחת הרצועה נכשלה" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1359 msgid "Queue is too long" msgstr "התור ארוך מדי" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1362 msgid "Track submission failed too many times" msgstr "שליחת הרצועה נכשלה יותר מדי פעמים" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1417 msgid "Audioscrobbler preferences" msgstr "העדפות Audioscrobbler" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:1 msgid "Disabled" msgstr "כבוי" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:2 msgid "Last submission time:" msgstr "זמן ההצבעה האחרון:" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:3 msgid "Last.fm Profile" msgstr "פרופיל last.fm" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:6 msgid "Queued tracks:" msgstr "רצועות בתור:" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:7 msgid "Status:" msgstr "מצב:‏" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:8 msgid "Tracks submitted:" msgstr "רצועות שנשלחו:" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:9 #: ../plugins/radios/ario-radio.c:168 msgid "Username :" msgstr "שם משתמש :" #: ../plugins/audioscrobbler/audioscrobbler.ario-plugin.desktop.in.h:1 msgid "Last.fm" msgstr "Last.fm" #: ../plugins/audioscrobbler/audioscrobbler.ario-plugin.desktop.in.h:2 msgid "Submits song information to last.fm" msgstr "שולח את נתוני השיר אל last.fm" #: ../plugins/filesystem/ario-filesystem.c:158 msgid "File System" msgstr "מערכת קבצים" #: ../plugins/filesystem/ario-filesystem.c:422 msgid "Music" msgstr "מוסיקה" #: ../plugins/filesystem/filesystem.ario-plugin.desktop.in.h:1 msgid "A File System Browser" msgstr "הסייר במערכת הקבצים" #: ../plugins/filesystem/filesystem.ario-plugin.desktop.in.h:2 msgid "File System Browser" msgstr "סייר מערכת הקבצים" #: ../plugins/information/ario-information.c:114 msgid "Information" msgstr "מידע" #: ../plugins/information/information.ario-plugin.desktop.in.h:1 msgid "Display various information about the playing song" msgstr "הצגת מידע מגוון אודות השיר שמתנגן" #: ../plugins/information/information.ario-plugin.desktop.in.h:2 msgid "Song Information" msgstr "נתוני השיר" #: ../plugins/information/information.ui.h:2 msgid "Albums from this artist:" msgstr "אלבומים מאמן זה:" #: ../plugins/information/information.ui.h:5 msgid "Lyrics:" msgstr "מילות השיר:" #: ../plugins/libnotify/libnotify.ario-plugin.desktop.in.h:1 msgid "Add libnotify support" msgstr "הוסף תמיכת libnotify" #: ../plugins/libnotify/libnotify.ario-plugin.desktop.in.h:2 msgid "Libnotify" msgstr "Libnotify" #: ../plugins/mmkeys/mmkeys.ario-plugin.desktop.in.h:1 msgid "Add multimedia keys support" msgstr "הוסף תמיכה במקשי מולטימדיה" #: ../plugins/mmkeys/mmkeys.ario-plugin.desktop.in.h:2 msgid "Multimedia Keys" msgstr "מקשי מולטימדיה" #: ../plugins/radios/ario-radio.c:125 msgid "Add a _new radio" msgstr "הוסף תחנת _רדיו חדשה" #: ../plugins/radios/ario-radio.c:128 msgid "_Delete this radios" msgstr "_מחק תחנות אלו" #: ../plugins/radios/ario-radio.c:166 msgid "Last.fm: Radio of similar artists" msgstr "Last.fm: רדיו של זמרים דומים" #: ../plugins/radios/ario-radio.c:167 msgid "Last.fm: Radio of group" msgstr "Last.fm: רדיו של קבוצה" #: ../plugins/radios/ario-radio.c:167 msgid "Group :" msgstr "קבוצה :" #: ../plugins/radios/ario-radio.c:168 msgid "Last.fm: Personal radio" msgstr "Last.fm: רדיו אישי" #: ../plugins/radios/ario-radio.c:169 msgid "Last.fm: Radio of genre" msgstr "Last.fm: רדיו לפי סוג" #: ../plugins/radios/ario-radio.c:184 #: ../plugins/radios/radios.ario-plugin.desktop.in.h:2 msgid "Web Radios" msgstr "תחנות רדיו רשת" #: ../plugins/radios/ario-radio.c:246 msgid "Internet Radios" msgstr "תחנות רדיו אינטרנט" #. Create dialog window #: ../plugins/radios/ario-radio.c:774 msgid "Edit a WebRadio" msgstr "ערוך רדיו-רשת" #: ../plugins/radios/ario-radio.c:787 ../plugins/radios/ario-radio.c:923 msgid "URL :" msgstr "כתובת :" #: ../plugins/radios/ario-radio.c:853 ../plugins/radios/ario-radio.c:997 msgid "Bad parameters. You must specify a name and a URL for the radio." msgstr "משתנים שגויים. עליך לציין את שמה וכתובתה של תחנת הרדיו." #. Create dialog window #: ../plugins/radios/ario-radio.c:883 msgid "Add a WebRadio" msgstr "הוסף רדיו-רשת" #: ../plugins/radios/ario-radio.c:1083 msgid "Are you sure you want to delete all the selected radios?" msgstr "האם אתה בטוח שברצונך למחוק את התחנות הנבחרות?" #: ../plugins/radios/radios.ario-plugin.desktop.in.h:1 msgid "Listen to webradios" msgstr "האזן לרדיו ברשת" #: ../plugins/wikipedia/ario-wikipedia-plugin.c:49 #: ../plugins/wikipedia/ario-wikipedia-plugin.c:50 msgid "Find artist on Wikipedia" msgstr "חפש אמן בויקיפדיה" #: ../plugins/wikipedia/ario-wikipedia-plugin.c:172 msgid "Wikipedia Plugin - Configuration" msgstr "תוסף ויקיפדיה - הגדרות" #: ../plugins/wikipedia/ario-wikipedia-plugin.c:181 msgid "Wikipedia language :" msgstr "שפת הויקיפדיה :" #: ../plugins/wikipedia/wikipedia.ario-plugin.desktop.in.h:1 msgid "A plugin to search current artist on wikipedia" msgstr "תוסף לחיפוש האמן הנוכחי בויקיפדיה" #: ../plugins/wikipedia/wikipedia.ario-plugin.desktop.in.h:2 msgid "Wikipedia" msgstr "ויקיפדיה" #~ msgid "Remove a search criteria" #~ msgstr "הסר קריטריון מהחיפוש" #~ msgid "Search songs in the library" #~ msgstr "חפש שירים בספרייה" #~ msgid "Add a search criteria" #~ msgstr "הוסף קריטריון לחיפוש" ario-1.6/po/POTFILES.in0000644000175000017500000001433613226723435011444 00000000000000# List of source files containing translatable strings. # Source files data/ario.desktop.in.in [type: gettext/glade]data/ui/browser-prefs.ui [type: gettext/glade]data/ui/connection-autodetect.ui [type: gettext/glade]data/ui/connection-widget.ui [type: gettext/glade]data/ui/cover-prefs.ui [type: gettext/glade]data/ui/connection-prefs.ui [type: gettext/glade]data/ui/connection-assistant.ui [type: gettext/glade]data/ui/cover-prefs.ui [type: gettext/glade]data/ui/cover-progress.ui [type: gettext/glade]data/ui/cover-select.ui [type: gettext/glade]data/ui/others-prefs.ui [type: gettext/glade]data/ui/lyrics-prefs.ui [type: gettext/glade]data/ui/lyrics-select.ui [type: gettext/glade]data/ui/playlist-prefs.ui [type: gettext/glade]data/ui/server-prefs.ui [type: gettext/glade]data/ui/similar-artists.ui [type: gettext/glade]data/ui/stats-prefs.ui [type: gettext/glade]data/ui/song-infos.ui [type: gettext/glade]data/ui/trayicon-prefs.ui src/ario-avahi.c src/ario-avahi.h src/ario-debug.h src/ario-main.c src/ario-profiles.c src/ario-profiles.h src/ario-util.c src/ario-util.h src/covers/ario-cover-amazon.c src/covers/ario-cover-amazon.h src/covers/ario-cover.c src/covers/ario-cover.h src/covers/ario-cover-handler.c src/covers/ario-cover-handler.h src/covers/ario-cover-lastfm.c src/covers/ario-cover-lastfm.h src/covers/ario-cover-local.c src/covers/ario-cover-local.h src/covers/ario-cover-manager.c src/covers/ario-cover-manager.h src/covers/ario-cover-provider.c src/covers/ario-cover-provider.h src/lib/ario-conf.c src/lib/ario-conf.h src/lib/libmpdclient.c src/lib/libmpdclient.h src/lib/gtk-builder-helpers.c src/lib/gtk-builder-helpers.h src/lyrics/ario-lyrics-manager.c src/lyrics/ario-lyrics-manager.h src/lyrics/ario-lyrics-provider.c src/lyrics/ario-lyrics-provider.h src/lyrics/ario-lyrics-letras.c src/lyrics/ario-lyrics-letras.h src/lyrics/ario-lyrics.c src/lyrics/ario-lyrics.h src/notification/ario-notification-manager.c src/notification/ario-notification-manager.h src/notification/ario-notifier.c src/notification/ario-notifier.h src/notification/ario-notifier-tooltip.c src/notification/ario-notifier-tooltip.h src/playlist/ario-playlist-dynamic.c src/playlist/ario-playlist-mode.c src/playlist/ario-playlist-queue.c src/playlist/ario-playlist-manager.c src/playlist/ario-playlist-normal.c src/plugins/ario-module.c src/plugins/ario-module.h src/plugins/ario-plugin.c src/plugins/ario-plugin.h src/plugins/ario-plugin-info.c src/plugins/ario-plugin-info.h src/plugins/ario-plugin-info-priv.h src/plugins/ario-plugin-manager.c src/plugins/ario-plugin-manager.h src/plugins/ario-plugins-engine.c src/plugins/ario-plugins-engine.h src/preferences/ario-browser-preferences.c src/preferences/ario-connection-preferences.c src/preferences/ario-connection-preferences.h src/preferences/ario-cover-preferences.c src/preferences/ario-cover-preferences.h src/preferences/ario-others-preferences.c src/preferences/ario-others-preferences.h src/preferences/ario-lyrics-preferences.c src/preferences/ario-lyrics-preferences.h src/preferences/ario-server-preferences.c src/preferences/ario-server-preferences.h src/preferences/ario-stats-preferences.c src/preferences/ario-stats-preferences.h src/preferences/ario-taskbar-preferences.c src/preferences/ario-preferences.h src/servers/ario-mpd.c src/servers/ario-mpd.h src/servers/ario-mpd2.c src/servers/ario-mpd2.h src/servers/ario-server.c src/servers/ario-server.h src/servers/ario-server-interface.c src/servers/ario-server-interface.h src/servers/ario-xmms.c src/servers/ario-xmms.h src/sources/ario-browser.c src/sources/ario-browser.h src/sources/ario-search.c src/sources/ario-search.h src/sources/ario-source.c src/sources/ario-source.h src/sources/ario-storedplaylists.c src/sources/ario-storedplaylists.h src/sources/ario-tree.c src/sources/ario-tree-albums.c src/sources/ario-tree-songs.c src/shell/ario-shell.c src/shell/ario-shell.h src/shell/ario-shell-coverdownloader.c src/shell/ario-shell-coverdownloader.h src/shell/ario-shell-coverselect.c src/shell/ario-shell-coverselect.h src/shell/ario-shell-lyrics.c src/shell/ario-shell-lyrics.h src/shell/ario-shell-lyricsselect.c src/shell/ario-shell-lyricsselect.h src/shell/ario-shell-preferences.c src/shell/ario-shell-preferences.h src/shell/ario-shell-similarartists.c src/shell/ario-shell-similarartists.h src/shell/ario-shell-songinfos.c src/shell/ario-shell-songinfos.h src/widgets/ario-connection-widget.c src/widgets/ario-firstlaunch.c src/widgets/ario-firstlaunch.h src/widgets/ario-header.c src/widgets/ario-header.h src/widgets/ario-lyrics-editor.c src/widgets/ario-lyrics-editor.h src/widgets/ario-playlist.c src/widgets/ario-playlist.h src/widgets/ario-songlist.c src/widgets/ario-songlist.h src/widgets/ario-status-bar.c src/widgets/ario-status-bar.h src/widgets/ario-tooltip.c src/widgets/ario-tooltip.h src/widgets/ario-tray-icon.c src/widgets/ario-tray-icon.h src/widgets/ario-volume.c src/widgets/ario-volume.h plugins/audioscrobbler/ario-audioscrobbler.c plugins/audioscrobbler/ario-audioscrobbler.h plugins/audioscrobbler/ario-audioscrobbler-plugin.c [type: gettext/glade]plugins/audioscrobbler/audioscrobbler-prefs.ui plugins/audioscrobbler/audioscrobbler.ario-plugin.desktop.in plugins/filesystem/ario-filesystem.c plugins/filesystem/ario-filesystem.h plugins/filesystem/ario-filesystem-plugin.c plugins/filesystem/ario-filesystem-plugin.h plugins/filesystem/filesystem.ario-plugin.desktop.in plugins/information/ario-information.c plugins/information/ario-information.h plugins/information/ario-information-plugin.c plugins/information/ario-information-plugin.h plugins/information/information.ario-plugin.desktop.in [type: gettext/glade]plugins/information/information.ui plugins/libnotify/libnotify.ario-plugin.desktop.in plugins/libnotify/ario-libnotify-plugin.c plugins/libnotify/ario-libnotify-plugin.h plugins/libnotify/ario-notifier-libnotify.c plugins/libnotify/ario-notifier-libnotify.h plugins/mmkeys/ario-mmkeys-plugin.c plugins/mmkeys/ario-mmkeys-plugin.h plugins/mmkeys/mmkeys.ario-plugin.desktop.in plugins/radios/ario-radio.c plugins/radios/ario-radio.h plugins/radios/ario-radios-plugin.c plugins/radios/ario-radios-plugin.h plugins/radios/radios.ario-plugin.desktop.in plugins/wikipedia/ario-wikipedia-plugin.c plugins/wikipedia/ario-wikipedia-plugin.h plugins/wikipedia/wikipedia.ario-plugin.desktop.in ario-1.6/po/es.po0000644000175000017500000010652013226723442010631 00000000000000# Spanish translation for ario # Copyright (c) 2008 Rosetta Contributors and Canonical Ltd 2008 # This file is distributed under the same license as the ario package. # FIRST AUTHOR , 2008. # msgid "" msgstr "" "Project-Id-Version: ario\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2011-06-13 18:15+0200\n" "PO-Revision-Date: 2011-01-12 04:58+0000\n" "Last-Translator: Fitoschido \n" "Language-Team: Spanish \n" "Language: es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2011-06-13 16:32+0000\n" "X-Generator: Launchpad (build 13175)\n" #: ../data/ario.desktop.in.in.h:1 msgid "Ario music player" msgstr "Reproductor de música Ario" #: ../data/ario.desktop.in.in.h:2 msgid "Client application to mpd" msgstr "Aplicación cliente de mpd" #: ../data/ui/browser-prefs.ui.h:1 msgid "Alphabetically" msgstr "Por orden alfabético" #: ../data/ui/browser-prefs.ui.h:2 msgid "By year" msgstr "Por año" #: ../data/ui/browser-prefs.ui.h:3 msgid "Library Options" msgstr "Opciones de biblioteca" #: ../data/ui/browser-prefs.ui.h:4 msgid "Library Organisation" msgstr "Organización de la biblioteca" #: ../data/ui/browser-prefs.ui.h:5 msgid "Sort albums: " msgstr "Ordenar álbumes: " #: ../data/ui/connection-autodetect.ui.h:1 msgid "" "If you don't see your MPD server thanks to the automatic detection, you " "should check that zeroconf is activated in your MPD configuration or use the " "manual configuration." msgstr "" "Si no ve su servidor de MPD gracias a la detección automática, debería " "comprobar que zeroconf está activado en su configuración MPD o usar el " "manual de configuración." #: ../data/ui/connection-autodetect.ui.h:2 msgid "Server autodetection" msgstr "Detección automática de servidor" #: ../data/ui/connection-widget.ui.h:1 msgid "Auto detect" msgstr "Detección automática" #: ../data/ui/connection-widget.ui.h:2 msgid "Default" msgstr "Predeterminado" #: ../data/ui/connection-widget.ui.h:3 ../src/widgets/ario-firstlaunch.c:83 msgid "Host :" msgstr "Servidor:" #: ../data/ui/connection-widget.ui.h:4 msgid "Music directory :" msgstr "Directorio de música:" #: ../data/ui/connection-widget.ui.h:5 msgid "Music server is on the same computer as Ario" msgstr "El servidor de música está en el mismo equipo que Ario" #. Create the widgets #: ../data/ui/connection-widget.ui.h:6 ../plugins/radios/ario-radio.c:786 #: ../plugins/radios/ario-radio.c:922 msgid "Name :" msgstr "Nombre:" #: ../data/ui/connection-widget.ui.h:7 #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:5 msgid "Password :" msgstr "Contraseña:" #: ../data/ui/connection-widget.ui.h:8 ../src/widgets/ario-firstlaunch.c:85 msgid "Port :" msgstr "Puerto:" #: ../data/ui/connection-widget.ui.h:9 msgid "Server type :" msgstr "Tipo de servidor :" #: ../data/ui/connection-widget.ui.h:10 msgid "Timeout :" msgstr "" #: ../data/ui/connection-widget.ui.h:11 msgid "XMMS 2 (Experimental)" msgstr "XMMS 2 (Experimental)" #: ../data/ui/cover-prefs.ui.h:1 msgid "Automatically download the album cover of the playing song" msgstr "Descargar automáticamente la portada de la canción en reproducción" #: ../data/ui/cover-prefs.ui.h:2 ../src/shell/ario-shell-preferences.c:128 msgid "Covers" msgstr "Portadas" #: ../data/ui/cover-prefs.ui.h:3 msgid "Covers Sources" msgstr "Orígenes de las portadas" #: ../data/ui/cover-prefs.ui.h:4 msgid "Show the covers in the albums list" msgstr "Mostrar las portadas en la lista de álbumes" #: ../data/ui/cover-prefs.ui.h:5 msgid "Use Amazon." msgstr "Usar Amazon." #: ../data/ui/connection-prefs.ui.h:1 #: ../src/shell/ario-shell-preferences.c:108 msgid "Connection" msgstr "Conexión" #: ../data/ui/connection-prefs.ui.h:2 msgid "_Autoconnect on startup" msgstr "Conectar _automáticamente al arrancar" #: ../data/ui/connection-prefs.ui.h:3 ../src/shell/ario-shell.c:167 msgid "_Connect" msgstr "_Conectar" #: ../data/ui/connection-prefs.ui.h:4 ../src/shell/ario-shell.c:170 msgid "_Disconnect" msgstr "_Desconectar" #: ../data/ui/connection-assistant.ui.h:1 msgid "" "You need to specify a server to connect to. If you don't see your server " "thanks to the autodetection, you should check that zeroconf/avahi is " "activated in your server or use the manual configuration." msgstr "" "Necesita especificar un servidor al que conectarte. Si no ve el servidor con " "la autodetección, debería comprobar que zeroconf/avahi esté activado en su " "servidor o usar la configuración manual." #: ../data/ui/cover-progress.ui.h:1 ../data/ui/cover-select.ui.h:1 #: ../data/ui/song-infos.ui.h:1 ../plugins/information/information.ui.h:1 msgid "Album :" msgstr "Álbum:" #: ../data/ui/cover-progress.ui.h:2 ../data/ui/cover-select.ui.h:2 #: ../data/ui/lyrics-select.ui.h:1 ../data/ui/song-infos.ui.h:3 #: ../plugins/information/information.ui.h:3 #: ../plugins/radios/ario-radio.c:166 msgid "Artist :" msgstr "Artista:" #: ../data/ui/cover-progress.ui.h:3 msgid "Downloading cover" msgstr "Descargando portada" #: ../data/ui/cover-select.ui.h:3 msgid "Local search" msgstr "Búsqueda local" #: ../data/ui/cover-select.ui.h:4 ../src/sources/ario-search.c:108 msgid "Search" msgstr "Buscar" #: ../data/ui/others-prefs.ui.h:1 msgid "Allow only one instance of Ario" msgstr "Permitir solo una instancia de Ario" #: ../data/ui/others-prefs.ui.h:2 msgid "Hide window when close button is pressed" msgstr "Ocultar la ventana cuando se pulsa el botón de cerrar" #: ../data/ui/others-prefs.ui.h:3 msgid "Interface" msgstr "Interfaz" #: ../data/ui/others-prefs.ui.h:4 msgid "Playlist at the right of tabs" msgstr "Lista de reproducción a la derecha de las pestañas" #: ../data/ui/others-prefs.ui.h:5 msgid "Playlist below tabs" msgstr "Lista de reproducción bajo las solapas" #: ../data/ui/others-prefs.ui.h:6 msgid "Playlist within tabs" msgstr "Lista de reproducción entre las solapas" #: ../data/ui/others-prefs.ui.h:7 msgid "Proxy" msgstr "Proxy" #: ../data/ui/others-prefs.ui.h:8 msgid "Proxy Address :" msgstr "Dirección del proxy:" #: ../data/ui/others-prefs.ui.h:9 msgid "Proxy Port :" msgstr "Puerto del proxy:" #: ../data/ui/others-prefs.ui.h:10 msgid "Show tabs" msgstr "Mostrar solapas" #: ../data/ui/others-prefs.ui.h:11 msgid "Use a proxy" msgstr "Usar un proxy" #: ../data/ui/lyrics-prefs.ui.h:1 msgid "Lyrics Sources" msgstr "Orígenes de letras" #: ../data/ui/lyrics-select.ui.h:2 ../data/ui/song-infos.ui.h:13 #: ../plugins/information/information.ui.h:6 msgid "Title :" msgstr "Título:" #: ../data/ui/playlist-prefs.ui.h:1 msgid "Add after playing song" msgstr "Añadir después de reproducir la canción" #: ../data/ui/playlist-prefs.ui.h:2 msgid "Add and play" msgstr "Añadir y reproducir" #: ../data/ui/playlist-prefs.ui.h:3 ../data/ui/similar-artists.ui.h:2 msgid "Add to playlist" msgstr "Añadir a la lista de reproducción" #. ARIO_TAG_ARTIST #: ../data/ui/playlist-prefs.ui.h:4 ../src/servers/ario-server.c:46 #: ../src/sources/ario-tree-albums.c:213 ../src/widgets/ario-playlist.c:541 #: ../src/widgets/ario-songlist.c:228 ../src/widgets/ario-tray-icon.c:565 msgid "Album" msgstr "Álbum" #: ../data/ui/playlist-prefs.ui.h:5 ../src/servers/ario-server.c:45 #: ../src/widgets/ario-playlist.c:541 ../src/widgets/ario-songlist.c:213 #: ../src/widgets/ario-tray-icon.c:563 msgid "Artist" msgstr "Artista" #. ARIO_TAG_GENRE #: ../data/ui/playlist-prefs.ui.h:6 ../src/servers/ario-server.c:52 #: ../src/widgets/ario-playlist.c:541 msgid "Date" msgstr "Fecha" #: ../data/ui/playlist-prefs.ui.h:7 ../src/widgets/ario-playlist.c:541 msgid "Disc" msgstr "Disco" #: ../data/ui/playlist-prefs.ui.h:8 msgid "Double click" msgstr "Pulsación doble" #: ../data/ui/playlist-prefs.ui.h:9 ../src/widgets/ario-playlist.c:541 msgid "Duration" msgstr "Duración" #: ../data/ui/playlist-prefs.ui.h:10 ../src/widgets/ario-playlist.c:541 msgid "File" msgstr "Archivo" #. ARIO_TAG_TRACK #. ARIO_TAG_NAME #: ../data/ui/playlist-prefs.ui.h:11 ../src/servers/ario-server.c:51 #: ../src/widgets/ario-playlist.c:541 msgid "Genre" msgstr "Género" #: ../data/ui/playlist-prefs.ui.h:12 msgid "Go to current song when a new song is played" msgstr "Ir a la canción actual, cuando se reproduce una nueva canción" #: ../data/ui/playlist-prefs.ui.h:13 msgid "Mode" msgstr "Modo" #: ../data/ui/playlist-prefs.ui.h:14 msgid "On double click:" msgstr "Al pulsar dos veces:" #: ../data/ui/playlist-prefs.ui.h:15 ../src/sources/ario-storedplaylists.c:229 #: ../src/shell/ario-shell.c:222 ../src/shell/ario-shell-preferences.c:123 #: ../src/widgets/ario-playlist.c:272 msgid "Playlist" msgstr "Lista de reproducción" #: ../data/ui/playlist-prefs.ui.h:16 msgid "Playlist mode:" msgstr "Modo de lista de reproducción:" #: ../data/ui/playlist-prefs.ui.h:17 msgid "Replace in playlist" msgstr "Reemplazar en la lista de reproducción" #: ../data/ui/playlist-prefs.ui.h:18 msgid "Show rows:" msgstr "Mostrar filas:" #. ARIO_TAG_ALBUM_ARTIST #: ../data/ui/playlist-prefs.ui.h:19 ../src/servers/ario-server.c:48 #: ../src/sources/ario-tree-songs.c:145 ../src/widgets/ario-playlist.c:541 #: ../src/widgets/ario-songlist.c:198 ../src/widgets/ario-tray-icon.c:567 msgid "Title" msgstr "Título" #. ARIO_TAG_TITLE #: ../data/ui/playlist-prefs.ui.h:20 ../src/servers/ario-server.c:49 #: ../src/sources/ario-tree-songs.c:138 ../src/widgets/ario-playlist.c:541 msgid "Track" msgstr "Pista" #: ../data/ui/server-prefs.ui.h:1 msgid "Audio outputs" msgstr "Salida de audio" #: ../data/ui/server-prefs.ui.h:2 msgid "Crossfade" msgstr "Transición" #: ../data/ui/server-prefs.ui.h:3 msgid "Database" msgstr "Base de datos" #: ../data/ui/server-prefs.ui.h:4 msgid "Last updated:" msgstr "Última actualización:" #: ../data/ui/server-prefs.ui.h:5 msgid "Stop music on exit" msgstr "Detener la música al salir" #: ../data/ui/server-prefs.ui.h:6 msgid "Update on startup" msgstr "Actualizar al iniciar" #: ../data/ui/server-prefs.ui.h:7 msgid "_Update" msgstr "_Actualizar" #: ../data/ui/server-prefs.ui.h:8 msgid "enable crossfade" msgstr "activar transición" #: ../data/ui/server-prefs.ui.h:9 msgid "fade time (s):" msgstr "Tiempo de desvanecimiento:" #: ../data/ui/server-prefs.ui.h:10 ../src/ario-util.c:50 ../src/ario-util.c:71 #: ../src/ario-util.c:93 ../plugins/information/information.ui.h:7 #, c-format msgid "n/a" msgstr "n/d" #: ../data/ui/similar-artists.ui.h:1 msgid "Add all to playlist" msgstr "Añadir todo a la lista de reproducción" #: ../data/ui/similar-artists.ui.h:3 msgid "Find on Last.fm" msgstr "Buscar en Last.fm" #: ../data/ui/stats-prefs.ui.h:1 msgid "Database play time :" msgstr "Base de datos del tiempo de reproducción:" #: ../data/ui/stats-prefs.ui.h:2 msgid "Number of albums :" msgstr "Número de álbumes:" #: ../data/ui/stats-prefs.ui.h:3 msgid "Number of artists :" msgstr "Número de artistas:" #: ../data/ui/stats-prefs.ui.h:4 msgid "Number of songs :" msgstr "Número de canciones:" #: ../data/ui/stats-prefs.ui.h:5 msgid "Play time :" msgstr "Tiempo de reproducción:" #: ../data/ui/stats-prefs.ui.h:6 ../src/shell/ario-shell-preferences.c:148 msgid "Statistics" msgstr "Estadísticas" #: ../data/ui/stats-prefs.ui.h:7 msgid "Uptime :" msgstr "Tiempo en funcionamiento:" #: ../data/ui/song-infos.ui.h:2 msgid "Album Artist :" msgstr "Artista del álbum:" #: ../data/ui/song-infos.ui.h:4 msgid "Comment :" msgstr "Comentario:" #: ../data/ui/song-infos.ui.h:5 msgid "Composer :" msgstr "Compositor:" #: ../data/ui/song-infos.ui.h:6 msgid "Date :" msgstr "Fecha:" #: ../data/ui/song-infos.ui.h:7 msgid "Disc :" msgstr "Disco:" #: ../data/ui/song-infos.ui.h:8 msgid "Filename :" msgstr "Nombre de archivo:" #: ../data/ui/song-infos.ui.h:9 ../plugins/radios/ario-radio.c:169 msgid "Genre :" msgstr "Género:" #: ../data/ui/song-infos.ui.h:10 ../plugins/information/information.ui.h:4 msgid "Length :" msgstr "Duración:" #: ../data/ui/song-infos.ui.h:11 msgid "Performer :" msgstr "Intérprete:" #: ../data/ui/song-infos.ui.h:12 msgid "Song" msgstr "Canción" #: ../data/ui/song-infos.ui.h:14 msgid "Track :" msgstr "Pista:" #: ../data/ui/trayicon-prefs.ui.h:1 msgid "Do nothing" msgstr "No hacer nada" #: ../data/ui/trayicon-prefs.ui.h:2 msgid "Mute" msgstr "Silenciar" #: ../data/ui/trayicon-prefs.ui.h:3 ../src/shell/ario-shell-preferences.c:138 msgid "Notification" msgstr "Notificación" #: ../data/ui/trayicon-prefs.ui.h:4 msgid "Notification on song change" msgstr "Notificación de cambio de canción" #: ../data/ui/trayicon-prefs.ui.h:5 msgid "Notification time: " msgstr "Tiempo de notificación: " #: ../data/ui/trayicon-prefs.ui.h:6 msgid "On middle button click on tray icon :" msgstr "Al pulsar en el icono de la bandeja con el botón central:" #: ../data/ui/trayicon-prefs.ui.h:7 ../src/widgets/ario-header.c:241 msgid "Play next song" msgstr "Reproducir la canción siguiente" #: ../data/ui/trayicon-prefs.ui.h:8 msgid "Play/Pause" msgstr "Reproducir/Pausa" #: ../data/ui/trayicon-prefs.ui.h:9 msgid "Tray icon" msgstr "Icono de la bandeja" #: ../src/ario-main.c:67 msgid "Start minimized window" msgstr "Iniciar ventana minimizada" #: ../src/ario-main.c:68 msgid "Start with specific profile" msgstr "" #. Format result string #: ../src/ario-util.c:110 msgid "seconds" msgstr "segundos" #: ../src/ario-util.c:112 msgid "minutes" msgstr "minutos" #: ../src/ario-util.c:118 msgid "hours" msgstr "horas" #: ../src/ario-util.c:124 msgid "days" msgstr "días" #: ../src/covers/ario-cover.c:149 msgid "The cover already exists. Do you want to replace it?" msgstr "La portada ya existe. ¿Desea reemplazarla?" #: ../src/covers/ario-cover-local.c:48 msgid "Music Directory" msgstr "Directorio de música" #: ../src/playlist/ario-playlist-dynamic.c:49 msgid "songs of same artist" msgstr "canciones del mismo artista" #: ../src/playlist/ario-playlist-dynamic.c:50 msgid "songs of same album" msgstr "canciones del mismo álbum" #: ../src/playlist/ario-playlist-dynamic.c:51 msgid "songs of similar artists" msgstr "canciones de artistas similares" #: ../src/playlist/ario-playlist-dynamic.c:52 msgid "albums of same artists" msgstr "álbumes de los mismos artistas" #: ../src/playlist/ario-playlist-dynamic.c:53 msgid "albums of similar artists" msgstr "álbumes de los artistas similares" #: ../src/playlist/ario-playlist-dynamic.c:69 msgid "Dynamic Playlist" msgstr "Lista de reproducción dinámica" #: ../src/playlist/ario-playlist-queue.c:49 msgid "Queue Mode" msgstr "Modo de cola" #: ../src/playlist/ario-playlist-normal.c:47 msgid "Normal" msgstr "Normal" #: ../src/plugins/ario-plugin-manager.c:45 msgid "Plugin" msgstr "Complemento" #: ../src/plugins/ario-plugin-manager.c:46 msgid "Enabled" msgstr "Activado" #: ../src/plugins/ario-plugin-manager.c:480 ../src/shell/ario-shell.c:206 msgid "_About" msgstr "_Acerca de" #: ../src/plugins/ario-plugin-manager.c:488 msgid "C_onfigure" msgstr "C_onfigurar" #: ../src/plugins/ario-plugin-manager.c:497 msgid "A_ctivate" msgstr "A_ctivar" #: ../src/plugins/ario-plugin-manager.c:508 msgid "Ac_tivate All" msgstr "Ac_tivar todos" #: ../src/plugins/ario-plugin-manager.c:513 msgid "_Deactivate All" msgstr "_Desactivar todos" #: ../src/plugins/ario-plugin-manager.c:722 msgid "Active plugins" msgstr "Complementos activos" #: ../src/preferences/ario-server-preferences.c:182 #: ../src/preferences/ario-stats-preferences.c:151 #: ../src/preferences/ario-stats-preferences.c:152 #: ../src/preferences/ario-stats-preferences.c:153 #: ../src/preferences/ario-stats-preferences.c:154 #: ../src/preferences/ario-stats-preferences.c:155 #: ../src/preferences/ario-stats-preferences.c:156 msgid "Not connected" msgstr "No conectado" #: ../src/preferences/ario-server-preferences.c:187 #: ../src/preferences/ario-server-preferences.c:278 #: ../src/widgets/ario-status-bar.c:100 msgid "Updating..." msgstr "Actualizando…" #: ../src/servers/ario-mpd.c:410 ../src/servers/ario-mpd2.c:522 msgid "Connecting to server..." msgstr "Conectándose al servidor..." #: ../src/servers/ario-mpd.c:438 ../src/servers/ario-mpd2.c:550 msgid "Impossible to connect to server. Check the connection options." msgstr "No se pudo conectar al servidor. Compruebe las opciones de conexión." #. ARIO_TAG_ALBUM #: ../src/servers/ario-server.c:47 msgid "Album Artist" msgstr "Artista del álbum" #. ARIO_TAG_DATE #: ../src/servers/ario-server.c:53 msgid "Composer" msgstr "Compositor" #. ARIO_TAG_COMPOSER #: ../src/servers/ario-server.c:54 msgid "Performer" msgstr "Intérprete" #. ARIO_TAG_PERFORMER #. ARIO_TAG_COMMENT #. ARIO_TAG_DISC #: ../src/servers/ario-server.c:57 msgid "Filename" msgstr "Nombre de archivo" #. ARIO_TAG_FILENAME #: ../src/servers/ario-server.c:58 msgid "Any" msgstr "Cualquiera" #. impossible time or broken locale settings #: ../src/servers/ario-server.h:27 #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1235 msgid "Unknown" msgstr "Desconocido" #: ../src/sources/ario-browser.c:82 ../src/sources/ario-search.c:70 #: ../src/sources/ario-storedplaylists.c:88 #: ../src/sources/ario-storedplaylists.c:106 #: ../plugins/filesystem/ario-filesystem.c:94 #: ../plugins/filesystem/ario-filesystem.c:109 #: ../plugins/radios/ario-radio.c:116 msgid "_Add to playlist" msgstr "_Añadir a la lista de reproducción" #: ../src/sources/ario-browser.c:85 ../src/sources/ario-search.c:73 #: ../src/sources/ario-storedplaylists.c:91 #: ../src/sources/ario-storedplaylists.c:109 #: ../plugins/filesystem/ario-filesystem.c:97 #: ../plugins/filesystem/ario-filesystem.c:112 #: ../plugins/radios/ario-radio.c:119 msgid "Add and _play" msgstr "Añadir y re_producir" #: ../src/sources/ario-browser.c:88 ../src/sources/ario-search.c:76 #: ../src/sources/ario-storedplaylists.c:94 #: ../src/sources/ario-storedplaylists.c:112 #: ../plugins/filesystem/ario-filesystem.c:100 #: ../plugins/filesystem/ario-filesystem.c:115 #: ../plugins/radios/ario-radio.c:122 msgid "_Replace in playlist" msgstr "_Reemplazar en la lista de reproducción" #: ../src/sources/ario-browser.c:91 msgid "Get the covers" msgstr "Obtener las portadas" #: ../src/sources/ario-browser.c:94 msgid "_Delete the covers" msgstr "_Eliminar las carátulas" #: ../src/sources/ario-browser.c:97 ../src/sources/ario-browser.c:100 #: ../src/sources/ario-search.c:79 ../src/sources/ario-storedplaylists.c:115 #: ../src/widgets/ario-playlist.c:151 #: ../plugins/filesystem/ario-filesystem.c:118 #: ../plugins/radios/ario-radio.c:131 msgid "_Properties" msgstr "_Propiedades" #: ../src/sources/ario-browser.c:125 ../src/shell/ario-shell-preferences.c:118 msgid "Library" msgstr "Biblioteca" #: ../src/sources/ario-storedplaylists.c:97 msgid "_Delete" msgstr "_Eliminar" #: ../src/sources/ario-storedplaylists.c:151 msgid "Playlists" msgstr "Lista de reproducción" #: ../src/sources/ario-storedplaylists.c:592 msgid "Are you sure that you want to delete all the selected playlists?" msgstr "" "¿Está seguro de querer borrar todas las listas de reproducción seleccionadas?" #: ../src/sources/ario-tree.c:856 msgid "Are you sure that you want to remove all the selected covers?" msgstr "¿Está seguro de querer eliminar todas las carátulas seleccionadas?" #. Translators - This "Cover" refers to an album cover art #: ../src/sources/ario-tree-albums.c:199 msgid "Cover" msgstr "Portada" #: ../src/shell/ario-shell.c:160 msgid "_File" msgstr "_Archivo" #: ../src/shell/ario-shell.c:161 msgid "_Edit" msgstr "_Editar" #: ../src/shell/ario-shell.c:162 msgid "_View" msgstr "_Ver" #: ../src/shell/ario-shell.c:163 msgid "_Control" msgstr "_Control" #: ../src/shell/ario-shell.c:164 msgid "_Tool" msgstr "Herramien_tas" #: ../src/shell/ario-shell.c:165 msgid "_Help" msgstr "Ay_uda" #: ../src/shell/ario-shell.c:173 msgid "_Update database" msgstr "Act_ualizar base de datos" #: ../src/shell/ario-shell.c:176 msgid "_Quit" msgstr "_Salir" #: ../src/shell/ario-shell.c:179 msgid "Plu_gins" msgstr "_Complementos" #: ../src/shell/ario-shell.c:182 msgid "Prefere_nces" msgstr "Prefere_ncias" #: ../src/shell/ario-shell.c:185 msgid "_Change current album cover" msgstr "_Cambiar la portada del álbum actual" #: ../src/shell/ario-shell.c:188 msgid "Download album _covers" msgstr "Descargar _portadas de albumes" #: ../src/shell/ario-shell.c:191 msgid "Find similar artists" msgstr "Encontrar artistas similares" #: ../src/shell/ario-shell.c:194 msgid "Add similar songs to playlist" msgstr "Añadir canciones similares a la lista de reproducción" #: ../src/shell/ario-shell.c:197 msgid "Go to _previous tab" msgstr "Ir a la solapa _anterior" #: ../src/shell/ario-shell.c:200 msgid "Go to _next tab" msgstr "Ir a la solapa _siguiente" #: ../src/shell/ario-shell.c:203 msgid "Show _lyrics" msgstr "Mostrar _letras" #: ../src/shell/ario-shell.c:209 msgid "_Translate this application..." msgstr "_Traducir esta aplicación..." #: ../src/shell/ario-shell.c:216 msgid "S_tatusbar" msgstr "Barra de esta_do" #: ../src/shell/ario-shell.c:219 msgid "Upper part" msgstr "Parte de arriba" #: ../src/shell/ario-shell.c:825 msgid "GTK client for MPD" msgstr "Cliente GTK para MPD" #: ../src/shell/ario-shell.c:826 msgid "translator-credits" msgstr "" "Launchpad Contributions:\n" " Alejandro Rochette https://launchpad.net/~alexroc\n" " Angel Guzman Maeso https://launchpad.net/~shakaran\n" " Bruno Barrera Yever https://launchpad.net/~bbyever\n" " David A Páez https://launchpad.net/~orlsend\n" " DiegoJ https://launchpad.net/~diegojromerolopez\n" " Eduardo Ruiz https://launchpad.net/~eduardo-ruizcarrillo\n" " Emilio https://launchpad.net/~turl\n" " Feder Sáiz https://launchpad.net/~federsaiz-deactivatedaccount\n" " Fidelinho https://launchpad.net/~fidel-vales\n" " Fitoschido https://launchpad.net/~fitoschido\n" " Gabriel Ruiz https://launchpad.net/~anakron\n" " Javier Acuña Ditzel https://launchpad.net/~santoposmoderno\n" " Javier García Díaz https://launchpad.net/~jgd\n" " Jesús Gómez Fernández https://launchpad.net/~je-gomez\n" " Jonay https://launchpad.net/~jonay-santana\n" " José Luis Flores Pineda https://launchpad.net/~peker\n" " Marc Pavot https://launchpad.net/~marc-pavot\n" " Maximiliano Marin Bustos https://launchpad.net/~max-debianchile\n" " Monkey https://launchpad.net/~monkey-libre\n" " Paco Molinero https://launchpad.net/~franciscomol\n" " Schaffino https://launchpad.net/~clowdex\n" " Skiros https://launchpad.net/~skiros\n" " elega https://launchpad.net/~elega\n" " kike4avila https://launchpad.net/~kike4avila" #. Create plugins configuration dialog window #: ../src/shell/ario-shell.c:1278 msgid "Configure Plugins" msgstr "Configurar complementos" #. Set window properties #: ../src/shell/ario-shell-coverdownloader.c:187 msgid "Music Player Cover Download" msgstr "Descarga de portadas del reproductor de música" #: ../src/shell/ario-shell-coverdownloader.c:332 msgid "Download Finished!" msgstr "Descarga finalizada" #. We show the numbers of covers found and not found #: ../src/shell/ario-shell-coverdownloader.c:335 #, c-format msgid "" "%i covers found\n" "%i covers not found\n" "%i covers already exist" msgstr "" "%i portadas encontradas\n" "%i portadas no encontradas\n" "%i portadas ya existen" #. Set window properties #: ../src/shell/ario-shell-coverselect.c:242 msgid "Cover Download" msgstr "Descargar portada" #: ../src/shell/ario-shell-coverselect.c:559 msgid "Error reading file" msgstr "Error al leer el archivo" #: ../src/shell/ario-shell-coverselect.c:584 msgid "Error saving file" msgstr "Error al guardar el archivo" #: ../src/shell/ario-shell-lyrics.c:43 #: ../src/shell/ario-shell-preferences.c:133 #: ../src/shell/ario-shell-songinfos.c:272 msgid "Lyrics" msgstr "Letras" #: ../src/shell/ario-shell-lyricsselect.c:152 msgid "Lyrics Download" msgstr "Descarga de letras" #: ../src/shell/ario-shell-preferences.c:81 msgid "Ario Preferences" msgstr "Preferencias de Ario" #: ../src/shell/ario-shell-preferences.c:113 msgid "Server" msgstr "Servidor" #: ../src/shell/ario-shell-preferences.c:143 msgid "Others" msgstr "Otros" #: ../src/shell/ario-shell-similarartists.c:318 #, c-format msgid "%d songs" msgstr "%d canciones" #. Set window properties #. Set window title #: ../src/shell/ario-shell-songinfos.c:249 #: ../src/shell/ario-shell-songinfos.c:266 #: ../src/shell/ario-shell-songinfos.c:544 msgid "Song Properties" msgstr "Propiedades de la canción" #: ../src/shell/ario-shell-songinfos.c:455 msgid "Error saving tags of file:" msgstr "Error al guardar las etiquetas del archivo:" #: ../src/widgets/ario-connection-widget.c:652 msgid "You must select a server." msgstr "Debe seleccionar un servidor." #: ../src/widgets/ario-connection-widget.c:702 msgid "New Profile" msgstr "Perfil nuevo" #: ../src/widgets/ario-firstlaunch.c:82 msgid "The following configuration will be used:" msgstr "Se utilizará la siguiente configuración:" #: ../src/widgets/ario-firstlaunch.c:106 msgid "" "It is the first time you launch Ario.\n" "This assistant will help you to configure it." msgstr "" "Es la primera vez que usa Ario.\n" "Éste asistente le ayudará a configurarlo." #: ../src/widgets/ario-firstlaunch.c:111 msgid "Welcome to Ario" msgstr "Bienvenido a Ario" #: ../src/widgets/ario-firstlaunch.c:129 msgid "Configuration" msgstr "Configuración" #: ../src/widgets/ario-firstlaunch.c:141 msgid "Confirmation" msgstr "Confirmación" #: ../src/widgets/ario-header.c:66 ../src/widgets/ario-tray-icon.h:42 #, c-format msgid "from %s by %s" msgstr "desde %s por %s" #: ../src/widgets/ario-header.c:199 msgid "Play previous song" msgstr "Reproducir la canción anterior" #: ../src/widgets/ario-header.c:217 msgid "Play/Pause the music" msgstr "Reproducir/Pausar la música" #: ../src/widgets/ario-header.c:229 msgid "Stop the music" msgstr "Detener la música" #. Translators - This " of " is used to count the elapsed time #. of a song like in "00:59 of 03:24" #: ../src/widgets/ario-header.c:310 ../src/widgets/ario-tooltip.c:321 msgid " of " msgstr " de " #: ../src/widgets/ario-header.c:323 msgid "Toggle random on/off" msgstr "Activar o desactivar aleatorio" #: ../src/widgets/ario-header.c:335 msgid "Toggle repeat on/off" msgstr "Activar o desactivar repetición" #: ../src/widgets/ario-header.c:340 msgid "Change the music volume" msgstr "Cambiar el volumen de la música" #: ../src/widgets/ario-lyrics-editor.c:323 msgid "Downloading lyrics..." msgstr "Descargando letras..." #: ../src/widgets/ario-lyrics-editor.c:351 msgid "Lyrics not found" msgstr "No se encontraron letras" #: ../src/widgets/ario-playlist.c:133 msgid "_Clear" msgstr "_Limpiar" #: ../src/widgets/ario-playlist.c:136 msgid "_Shuffle" msgstr "_Aleatorio" #: ../src/widgets/ario-playlist.c:139 msgid "Cr_op" msgstr "_Recortar" #: ../src/widgets/ario-playlist.c:142 msgid "_Search in playlist" msgstr "_Buscar en lista de reproducción" #: ../src/widgets/ario-playlist.c:145 msgid "_Remove" msgstr "_Eliminar" #: ../src/widgets/ario-playlist.c:148 msgid "_Save" msgstr "_Guardar" #: ../src/widgets/ario-playlist.c:154 msgid "_Go to playing song" msgstr "_Ir la la canción en reprodución" #: ../src/widgets/ario-playlist.c:667 msgid "Filter:" msgstr "Filtro:" #. Create the widgets #: ../src/widgets/ario-playlist.c:1700 msgid "Save playlist" msgstr "Guardar lista de reproducción" #: ../src/widgets/ario-playlist.c:1710 msgid "Playlist name :" msgstr "Nombre de lista de reprodución:" #: ../src/widgets/ario-playlist.c:1746 msgid "Playlist already exists. Do you want to overwrite it?" msgstr "La lista de reproducción ya existe. ¿Quiere sobrescribirla?" #. Format status bar message #: ../src/widgets/ario-status-bar.c:96 msgid "Songs" msgstr "Canciones" #: ../src/widgets/ario-tray-icon.c:102 msgid "_Play" msgstr "_Reproducir" #: ../src/widgets/ario-tray-icon.c:105 msgid "_Pause" msgstr "_Pausar" #: ../src/widgets/ario-tray-icon.c:108 msgid "_Stop" msgstr "_Detener" #: ../src/widgets/ario-tray-icon.c:111 msgid "_Next" msgstr "_Siguiente" #: ../src/widgets/ario-tray-icon.c:114 msgid "P_revious" msgstr "_Anterior" #: ../src/widgets/ario-tray-icon.h:41 msgid "Not playing" msgstr "No se está reproduciendo nada" #. Translators: "friendly time" string for the current day, strftime format. like "Today 12:34 am" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1179 msgid "Today %I:%M %p" msgstr "Hoy %I:%M %p" #. Translators: "friendly time" string for the previous day, #. * strftime format. e.g. "Yesterday 12:34 am" #. #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1192 msgid "Yesterday %I:%M %p" msgstr "Ayer %I:%M %p" #. Translators: "friendly time" string for a day in the current week, #. * strftime format. e.g. "Wed 12:34 am" #. #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1208 msgid "%a %I:%M %p" msgstr "%a %I:%M %p" #. Translators: "friendly time" string for a day in the current year, #. * strftime format. e.g. "Feb 12 12:34 am" #. #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1220 msgid "%b %d %I:%M %p" msgstr "%b %d %I:%M %p" #. Translators: "friendly time" string for a day in a different year, #. * strftime format. e.g. "Feb 12 1997" #. #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1225 msgid "%b %d %Y" msgstr "%b %d %Y" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1311 #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:4 msgid "Never" msgstr "Nunca" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1335 msgid "OK" msgstr "Aceptar" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1338 msgid "Logging in" msgstr "Iniciando sesión" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1341 msgid "Request failed" msgstr "Petición rechazada" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1344 msgid "Incorrect username" msgstr "Nombre de usuario incorrecto" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1347 msgid "Incorrect password" msgstr "Contraseña incorrecta" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1350 msgid "Handshake failed" msgstr "Negociación fallida" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1353 msgid "Client update required" msgstr "Se requiere actualización del cliente" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1356 msgid "Track submission failed" msgstr "Envío de pista fallido" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1359 msgid "Queue is too long" msgstr "La cola es demasiado larga" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1362 msgid "Track submission failed too many times" msgstr "El registro de pista falló demasiadas veces" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1417 msgid "Audioscrobbler preferences" msgstr "Preferencias de Audioscrobbler" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:1 msgid "Disabled" msgstr "Desactivado" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:2 msgid "Last submission time:" msgstr "Hora del último envío:" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:3 msgid "Last.fm Profile" msgstr "Perfil de Last.fm" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:6 msgid "Queued tracks:" msgstr "Pistas en la cola:" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:7 msgid "Status:" msgstr "Estado:" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:8 msgid "Tracks submitted:" msgstr "Pistas enviadas:" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:9 #: ../plugins/radios/ario-radio.c:168 msgid "Username :" msgstr "Nombre de usuario:" #: ../plugins/audioscrobbler/audioscrobbler.ario-plugin.desktop.in.h:1 msgid "Last.fm" msgstr "Last.fm" #: ../plugins/audioscrobbler/audioscrobbler.ario-plugin.desktop.in.h:2 msgid "Submits song information to last.fm" msgstr "Envía información de la canción a Last.fm" #: ../plugins/filesystem/ario-filesystem.c:158 msgid "File System" msgstr "Sistema de archivos" #: ../plugins/filesystem/ario-filesystem.c:422 msgid "Music" msgstr "Música" #: ../plugins/filesystem/filesystem.ario-plugin.desktop.in.h:1 msgid "A File System Browser" msgstr "Un explorador de archivos de sistema" #: ../plugins/filesystem/filesystem.ario-plugin.desktop.in.h:2 msgid "File System Browser" msgstr "Explorador de archivos de sistema" #: ../plugins/information/ario-information.c:114 msgid "Information" msgstr "Información" #: ../plugins/information/information.ario-plugin.desktop.in.h:1 msgid "Display various information about the playing song" msgstr "Muestra información acerca de la canción en reproducción" #: ../plugins/information/information.ario-plugin.desktop.in.h:2 msgid "Song Information" msgstr "Información de la canción" #: ../plugins/information/information.ui.h:2 msgid "Albums from this artist:" msgstr "Álbumes de éste artista:" #: ../plugins/information/information.ui.h:5 msgid "Lyrics:" msgstr "Letras:" #: ../plugins/libnotify/libnotify.ario-plugin.desktop.in.h:1 msgid "Add libnotify support" msgstr "Agregar soporte para libnotify" #: ../plugins/libnotify/libnotify.ario-plugin.desktop.in.h:2 msgid "Libnotify" msgstr "Libnotify" #: ../plugins/mmkeys/mmkeys.ario-plugin.desktop.in.h:1 msgid "Add multimedia keys support" msgstr "Añadir soporte para teclas multimedia" #: ../plugins/mmkeys/mmkeys.ario-plugin.desktop.in.h:2 msgid "Multimedia Keys" msgstr "Teclas multimedia" #: ../plugins/radios/ario-radio.c:125 msgid "Add a _new radio" msgstr "Añadir una radio _nueva" #: ../plugins/radios/ario-radio.c:128 msgid "_Delete this radios" msgstr "_Borrar estas radios" #: ../plugins/radios/ario-radio.c:166 msgid "Last.fm: Radio of similar artists" msgstr "Last.fm: Radio de artistas similares" #: ../plugins/radios/ario-radio.c:167 msgid "Last.fm: Radio of group" msgstr "Last.fm: Radio de grupo" #: ../plugins/radios/ario-radio.c:167 msgid "Group :" msgstr "Grupo:" #: ../plugins/radios/ario-radio.c:168 msgid "Last.fm: Personal radio" msgstr "Last.fm: Radio personal" #: ../plugins/radios/ario-radio.c:169 msgid "Last.fm: Radio of genre" msgstr "Last.fm: Radio de género" #: ../plugins/radios/ario-radio.c:184 #: ../plugins/radios/radios.ario-plugin.desktop.in.h:2 msgid "Web Radios" msgstr "Radios web" #: ../plugins/radios/ario-radio.c:246 msgid "Internet Radios" msgstr "Radios en Internet" #. Create dialog window #: ../plugins/radios/ario-radio.c:774 msgid "Edit a WebRadio" msgstr "Editar una radio web" #: ../plugins/radios/ario-radio.c:787 ../plugins/radios/ario-radio.c:923 msgid "URL :" msgstr "URL:" #: ../plugins/radios/ario-radio.c:853 ../plugins/radios/ario-radio.c:997 msgid "Bad parameters. You must specify a name and a URL for the radio." msgstr "" "Parámetros incorrectos. Debe especificar el nombre y la URL de la radio." #. Create dialog window #: ../plugins/radios/ario-radio.c:883 msgid "Add a WebRadio" msgstr "Añadir una radio web" #: ../plugins/radios/ario-radio.c:1083 msgid "Are you sure you want to delete all the selected radios?" msgstr "¿Está seguro de que quiere eliminar todas las radios seleccionadas?" #: ../plugins/radios/radios.ario-plugin.desktop.in.h:1 msgid "Listen to webradios" msgstr "Escuchar radio por internet" #: ../plugins/wikipedia/ario-wikipedia-plugin.c:49 #: ../plugins/wikipedia/ario-wikipedia-plugin.c:50 msgid "Find artist on Wikipedia" msgstr "Buscar artista en Wikipedia" #: ../plugins/wikipedia/ario-wikipedia-plugin.c:172 msgid "Wikipedia Plugin - Configuration" msgstr "Configuración - Complemento Wikipedia" #: ../plugins/wikipedia/ario-wikipedia-plugin.c:181 msgid "Wikipedia language :" msgstr "Idioma de Wikipedia :" #: ../plugins/wikipedia/wikipedia.ario-plugin.desktop.in.h:1 msgid "A plugin to search current artist on wikipedia" msgstr "Un complemento para buscar el artista actual en Wikipedia" #: ../plugins/wikipedia/wikipedia.ario-plugin.desktop.in.h:2 msgid "Wikipedia" msgstr "Wikipedia" #~ msgid "Search songs in the library" #~ msgstr "Buscar canciones en la biblioteca" #~ msgid "Add a search criteria" #~ msgstr "Añadir un criterio de búsqueda" #~ msgid "Remove a search criteria" #~ msgstr "Eliminar un criterio de búsqueda" ario-1.6/po/vi.po0000644000175000017500000010472113226723435010643 00000000000000msgid "" msgstr "" "Project-Id-Version: Ario 1.4.1\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2011-06-13 18:15+0200\n" "PO-Revision-Date: 2011-05-10 13:39+0000\n" "Last-Translator: Lê Trường An \n" "Language-Team: hn8456 \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2011-06-13 16:32+0000\n" "X-Generator: Launchpad (build 13175)\n" "X-Poedit-Country: VIET NAM\n" "X-Poedit-Language: Vietnamese\n" "X-Poedit-SourceCharset: utf-8\n" #: ../data/ario.desktop.in.in.h:1 msgid "Ario music player" msgstr "Trình phát nhạc Ario" #: ../data/ario.desktop.in.in.h:2 msgid "Client application to mpd" msgstr "Ứng dụng khách của mpd" #: ../data/ui/browser-prefs.ui.h:1 msgid "Alphabetically" msgstr "Theo thứ tự abc" #: ../data/ui/browser-prefs.ui.h:2 msgid "By year" msgstr "Theo năm" #: ../data/ui/browser-prefs.ui.h:3 msgid "Library Options" msgstr "Tùy chọn thư viện" #: ../data/ui/browser-prefs.ui.h:4 msgid "Library Organisation" msgstr "Tổ chức thư viện" #: ../data/ui/browser-prefs.ui.h:5 msgid "Sort albums: " msgstr "Sắp xếp album: " #: ../data/ui/connection-autodetect.ui.h:1 msgid "" "If you don't see your MPD server thanks to the automatic detection, you " "should check that zeroconf is activated in your MPD configuration or use the " "manual configuration." msgstr "" "Nếu bạn không thấy máy chủ MPD nhờ vào kết nối tự động, bạn nên kiểm tra " "zeroconf đã được kích hoạt hoặc dùng thiếp lập bằng tay." #: ../data/ui/connection-autodetect.ui.h:2 msgid "Server autodetection" msgstr "Tự động nhận diện máy chủ" #: ../data/ui/connection-widget.ui.h:1 msgid "Auto detect" msgstr "Tự động phát hiện" #: ../data/ui/connection-widget.ui.h:2 msgid "Default" msgstr "Mặc định" #: ../data/ui/connection-widget.ui.h:3 ../src/widgets/ario-firstlaunch.c:83 msgid "Host :" msgstr "Host:" #: ../data/ui/connection-widget.ui.h:4 msgid "Music directory :" msgstr "Thư mục nhạc :" #: ../data/ui/connection-widget.ui.h:5 msgid "Music server is on the same computer as Ario" msgstr "Máy chủ nằm trên cùng máy tính với Ario" #. Create the widgets #: ../data/ui/connection-widget.ui.h:6 ../plugins/radios/ario-radio.c:786 #: ../plugins/radios/ario-radio.c:922 msgid "Name :" msgstr "Tên :" #: ../data/ui/connection-widget.ui.h:7 #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:5 msgid "Password :" msgstr "Mật khẩu :" #: ../data/ui/connection-widget.ui.h:8 ../src/widgets/ario-firstlaunch.c:85 msgid "Port :" msgstr "Cổng :" #: ../data/ui/connection-widget.ui.h:9 msgid "Server type :" msgstr "Loại máy chủ :" #: ../data/ui/connection-widget.ui.h:10 msgid "Timeout :" msgstr "" #: ../data/ui/connection-widget.ui.h:11 msgid "XMMS 2 (Experimental)" msgstr "XMMS 2 (Thử nghiệm)" #: ../data/ui/cover-prefs.ui.h:1 msgid "Automatically download the album cover of the playing song" msgstr "Tự động tải về ảnh bìa album của bài hát đang phát" #: ../data/ui/cover-prefs.ui.h:2 ../src/shell/ario-shell-preferences.c:128 msgid "Covers" msgstr "Ảnh bìa" #: ../data/ui/cover-prefs.ui.h:3 msgid "Covers Sources" msgstr "Nguồn ảnh bìa" #: ../data/ui/cover-prefs.ui.h:4 msgid "Show the covers in the albums list" msgstr "Hiện ảnh bìa trong danh sách album" #: ../data/ui/cover-prefs.ui.h:5 msgid "Use Amazon." msgstr "Dùng Amazon." #: ../data/ui/connection-prefs.ui.h:1 #: ../src/shell/ario-shell-preferences.c:108 msgid "Connection" msgstr "Kết nối" #: ../data/ui/connection-prefs.ui.h:2 msgid "_Autoconnect on startup" msgstr "_Tự động kết nối lúc khởi động" #: ../data/ui/connection-prefs.ui.h:3 ../src/shell/ario-shell.c:167 msgid "_Connect" msgstr "_Kết nối" #: ../data/ui/connection-prefs.ui.h:4 ../src/shell/ario-shell.c:170 msgid "_Disconnect" msgstr "_Ngắt kết nối" #: ../data/ui/connection-assistant.ui.h:1 msgid "" "You need to specify a server to connect to. If you don't see your server " "thanks to the autodetection, you should check that zeroconf/avahi is " "activated in your server or use the manual configuration." msgstr "" "Bạn cần chỉ định máy chủ để kết nối. Nếu bạn không thể tìm thấy máy chủ nhờ " "kết nối tự động, bạn nên kiểm tra lại rằng zeroconf/avahi đã được kích hoạt " "hoặc thiếp lập bằng tay." #: ../data/ui/cover-progress.ui.h:1 ../data/ui/cover-select.ui.h:1 #: ../data/ui/song-infos.ui.h:1 ../plugins/information/information.ui.h:1 msgid "Album :" msgstr "Album :" #: ../data/ui/cover-progress.ui.h:2 ../data/ui/cover-select.ui.h:2 #: ../data/ui/lyrics-select.ui.h:1 ../data/ui/song-infos.ui.h:3 #: ../plugins/information/information.ui.h:3 #: ../plugins/radios/ario-radio.c:166 msgid "Artist :" msgstr "Nghệ sĩ :" #: ../data/ui/cover-progress.ui.h:3 msgid "Downloading cover" msgstr "Tải ảnh bìa" #: ../data/ui/cover-select.ui.h:3 msgid "Local search" msgstr "Tìm cục bộ" #: ../data/ui/cover-select.ui.h:4 ../src/sources/ario-search.c:108 msgid "Search" msgstr "Tìm kiếm" #: ../data/ui/others-prefs.ui.h:1 msgid "Allow only one instance of Ario" msgstr "Chỉ cho phép Ario chạy đơn" #: ../data/ui/others-prefs.ui.h:2 msgid "Hide window when close button is pressed" msgstr "Ẩn cửa sổ khi nhấn nút đóng" #: ../data/ui/others-prefs.ui.h:3 msgid "Interface" msgstr "Giao diện" #: ../data/ui/others-prefs.ui.h:4 msgid "Playlist at the right of tabs" msgstr "Danh sách ở bên phải của các tab" #: ../data/ui/others-prefs.ui.h:5 msgid "Playlist below tabs" msgstr "Danh sách bên dưới các tab" #: ../data/ui/others-prefs.ui.h:6 msgid "Playlist within tabs" msgstr "Danh sách bên trong các tab" #: ../data/ui/others-prefs.ui.h:7 msgid "Proxy" msgstr "Proxy" #: ../data/ui/others-prefs.ui.h:8 msgid "Proxy Address :" msgstr "Địa chỉ Proxy :" #: ../data/ui/others-prefs.ui.h:9 msgid "Proxy Port :" msgstr "Cổng Proxy :" #: ../data/ui/others-prefs.ui.h:10 msgid "Show tabs" msgstr "Hiện các tab" #: ../data/ui/others-prefs.ui.h:11 msgid "Use a proxy" msgstr "Dùng một proxy" #: ../data/ui/lyrics-prefs.ui.h:1 msgid "Lyrics Sources" msgstr "Nguồn lời bài hát" #: ../data/ui/lyrics-select.ui.h:2 ../data/ui/song-infos.ui.h:13 #: ../plugins/information/information.ui.h:6 msgid "Title :" msgstr "Tựa :" #: ../data/ui/playlist-prefs.ui.h:1 msgid "Add after playing song" msgstr "Thêm sau khi phát nhạc" #: ../data/ui/playlist-prefs.ui.h:2 msgid "Add and play" msgstr "Thêm vào và phát" #: ../data/ui/playlist-prefs.ui.h:3 ../data/ui/similar-artists.ui.h:2 msgid "Add to playlist" msgstr "Thêm vào danh sách" #. ARIO_TAG_ARTIST #: ../data/ui/playlist-prefs.ui.h:4 ../src/servers/ario-server.c:46 #: ../src/sources/ario-tree-albums.c:213 ../src/widgets/ario-playlist.c:541 #: ../src/widgets/ario-songlist.c:228 ../src/widgets/ario-tray-icon.c:565 msgid "Album" msgstr "Album" #: ../data/ui/playlist-prefs.ui.h:5 ../src/servers/ario-server.c:45 #: ../src/widgets/ario-playlist.c:541 ../src/widgets/ario-songlist.c:213 #: ../src/widgets/ario-tray-icon.c:563 msgid "Artist" msgstr "Nghệ sĩ" #. ARIO_TAG_GENRE #: ../data/ui/playlist-prefs.ui.h:6 ../src/servers/ario-server.c:52 #: ../src/widgets/ario-playlist.c:541 msgid "Date" msgstr "Ngày" #: ../data/ui/playlist-prefs.ui.h:7 ../src/widgets/ario-playlist.c:541 msgid "Disc" msgstr "Đĩa" #: ../data/ui/playlist-prefs.ui.h:8 msgid "Double click" msgstr "Nhấp đôi" #: ../data/ui/playlist-prefs.ui.h:9 ../src/widgets/ario-playlist.c:541 msgid "Duration" msgstr "Khoảng thời gian" #: ../data/ui/playlist-prefs.ui.h:10 ../src/widgets/ario-playlist.c:541 msgid "File" msgstr "Tập tin" #. ARIO_TAG_TRACK #. ARIO_TAG_NAME #: ../data/ui/playlist-prefs.ui.h:11 ../src/servers/ario-server.c:51 #: ../src/widgets/ario-playlist.c:541 msgid "Genre" msgstr "Thể loại" #: ../data/ui/playlist-prefs.ui.h:12 msgid "Go to current song when a new song is played" msgstr "Nhảy tới bài hát hiện tại khi chơi bài hát mới" #: ../data/ui/playlist-prefs.ui.h:13 msgid "Mode" msgstr "Chế độ" #: ../data/ui/playlist-prefs.ui.h:14 msgid "On double click:" msgstr "Khi nhấp đôi chuột:" #: ../data/ui/playlist-prefs.ui.h:15 ../src/sources/ario-storedplaylists.c:229 #: ../src/shell/ario-shell.c:222 ../src/shell/ario-shell-preferences.c:123 #: ../src/widgets/ario-playlist.c:272 msgid "Playlist" msgstr "Danh sách" #: ../data/ui/playlist-prefs.ui.h:16 msgid "Playlist mode:" msgstr "Chế độ danh sách:" #: ../data/ui/playlist-prefs.ui.h:17 msgid "Replace in playlist" msgstr "Thay thế trong danh sách" #: ../data/ui/playlist-prefs.ui.h:18 msgid "Show rows:" msgstr "Hiện hàng:" #. ARIO_TAG_ALBUM_ARTIST #: ../data/ui/playlist-prefs.ui.h:19 ../src/servers/ario-server.c:48 #: ../src/sources/ario-tree-songs.c:145 ../src/widgets/ario-playlist.c:541 #: ../src/widgets/ario-songlist.c:198 ../src/widgets/ario-tray-icon.c:567 msgid "Title" msgstr "Tên" #. ARIO_TAG_TITLE #: ../data/ui/playlist-prefs.ui.h:20 ../src/servers/ario-server.c:49 #: ../src/sources/ario-tree-songs.c:138 ../src/widgets/ario-playlist.c:541 msgid "Track" msgstr "Bài số" #: ../data/ui/server-prefs.ui.h:1 msgid "Audio outputs" msgstr "Tín hiệu âm thanh ra" #: ../data/ui/server-prefs.ui.h:2 msgid "Crossfade" msgstr "Chuyển bài mượt" #: ../data/ui/server-prefs.ui.h:3 msgid "Database" msgstr "Cơ sở dữ liệu" #: ../data/ui/server-prefs.ui.h:4 msgid "Last updated:" msgstr "Cập nhập lần cuối:" #: ../data/ui/server-prefs.ui.h:5 msgid "Stop music on exit" msgstr "Tắt nhạc khi thoát" #: ../data/ui/server-prefs.ui.h:6 msgid "Update on startup" msgstr "Cập nhật lúc khởi động" #: ../data/ui/server-prefs.ui.h:7 msgid "_Update" msgstr "_Cập nhật" #: ../data/ui/server-prefs.ui.h:8 msgid "enable crossfade" msgstr "kích hoạt chuyển bài mượt" #: ../data/ui/server-prefs.ui.h:9 msgid "fade time (s):" msgstr "Thời gian làm mờ âm thanh (giây) :" #: ../data/ui/server-prefs.ui.h:10 ../src/ario-util.c:50 ../src/ario-util.c:71 #: ../src/ario-util.c:93 ../plugins/information/information.ui.h:7 #, c-format msgid "n/a" msgstr "n/a" #: ../data/ui/similar-artists.ui.h:1 msgid "Add all to playlist" msgstr "Thêm tất cả vào danh sách" #: ../data/ui/similar-artists.ui.h:3 msgid "Find on Last.fm" msgstr "Tìm trên Last.fm" #: ../data/ui/stats-prefs.ui.h:1 msgid "Database play time :" msgstr "Thời gian phát hết cơ sở dữ liệu :" #: ../data/ui/stats-prefs.ui.h:2 msgid "Number of albums :" msgstr "Số album :" #: ../data/ui/stats-prefs.ui.h:3 msgid "Number of artists :" msgstr "Số nghệ sĩ :" #: ../data/ui/stats-prefs.ui.h:4 msgid "Number of songs :" msgstr "Số bài hát :" #: ../data/ui/stats-prefs.ui.h:5 msgid "Play time :" msgstr "Thời gian chơi :" #: ../data/ui/stats-prefs.ui.h:6 ../src/shell/ario-shell-preferences.c:148 msgid "Statistics" msgstr "Thống kê" #: ../data/ui/stats-prefs.ui.h:7 msgid "Uptime :" msgstr "Thời gian mở :" #: ../data/ui/song-infos.ui.h:2 msgid "Album Artist :" msgstr "Tác giả album :" #: ../data/ui/song-infos.ui.h:4 msgid "Comment :" msgstr "Lời bình :" #: ../data/ui/song-infos.ui.h:5 msgid "Composer :" msgstr "Người sáng tác :" #: ../data/ui/song-infos.ui.h:6 msgid "Date :" msgstr "Ngày :" #: ../data/ui/song-infos.ui.h:7 msgid "Disc :" msgstr "Đĩa :" #: ../data/ui/song-infos.ui.h:8 msgid "Filename :" msgstr "Tên tập tin :" #: ../data/ui/song-infos.ui.h:9 ../plugins/radios/ario-radio.c:169 msgid "Genre :" msgstr "Thể loại :" #: ../data/ui/song-infos.ui.h:10 ../plugins/information/information.ui.h:4 msgid "Length :" msgstr "Độ dài:" #: ../data/ui/song-infos.ui.h:11 msgid "Performer :" msgstr "Người biễu diễn :" #: ../data/ui/song-infos.ui.h:12 msgid "Song" msgstr "Bài hát" #: ../data/ui/song-infos.ui.h:14 msgid "Track :" msgstr "Track :" #: ../data/ui/trayicon-prefs.ui.h:1 msgid "Do nothing" msgstr "Không làm gì cả" #: ../data/ui/trayicon-prefs.ui.h:2 msgid "Mute" msgstr "Tắt âm" #: ../data/ui/trayicon-prefs.ui.h:3 ../src/shell/ario-shell-preferences.c:138 msgid "Notification" msgstr "Thông báo" #: ../data/ui/trayicon-prefs.ui.h:4 msgid "Notification on song change" msgstr "Hiện thông báo khi đổi bài hát" #: ../data/ui/trayicon-prefs.ui.h:5 msgid "Notification time: " msgstr "Thời gian hiện thông báo " #: ../data/ui/trayicon-prefs.ui.h:6 msgid "On middle button click on tray icon :" msgstr "Khi nhấn nút chuột giữa vào biểu tượng khay hệ thống thì :" #: ../data/ui/trayicon-prefs.ui.h:7 ../src/widgets/ario-header.c:241 msgid "Play next song" msgstr "Chơi bài tiếp theo" #: ../data/ui/trayicon-prefs.ui.h:8 msgid "Play/Pause" msgstr "Chơi/Tạm dừng" #: ../data/ui/trayicon-prefs.ui.h:9 msgid "Tray icon" msgstr "Biểu tượng khay hệ thống" #: ../src/ario-main.c:67 msgid "Start minimized window" msgstr "Thu nhỏ cửa sổ lúc bật" #: ../src/ario-main.c:68 msgid "Start with specific profile" msgstr "" #. Format result string #: ../src/ario-util.c:110 msgid "seconds" msgstr "giây" #: ../src/ario-util.c:112 msgid "minutes" msgstr "phút" #: ../src/ario-util.c:118 msgid "hours" msgstr "giờ" #: ../src/ario-util.c:124 msgid "days" msgstr "ngày" #: ../src/covers/ario-cover.c:149 msgid "The cover already exists. Do you want to replace it?" msgstr "Bìa đĩa đã có sẵn. Thay thế nó ?" #: ../src/covers/ario-cover-local.c:48 msgid "Music Directory" msgstr "Thư mục chứa âm nhạc" #: ../src/playlist/ario-playlist-dynamic.c:49 msgid "songs of same artist" msgstr "bài hát cùng nghệ sĩ" #: ../src/playlist/ario-playlist-dynamic.c:50 msgid "songs of same album" msgstr "bài hát cùng album" #: ../src/playlist/ario-playlist-dynamic.c:51 msgid "songs of similar artists" msgstr "bài hát cùng nghệ sĩ" #: ../src/playlist/ario-playlist-dynamic.c:52 msgid "albums of same artists" msgstr "album cùng nghệ sĩ" #: ../src/playlist/ario-playlist-dynamic.c:53 msgid "albums of similar artists" msgstr "album cùng nghệ sĩ" #: ../src/playlist/ario-playlist-dynamic.c:69 msgid "Dynamic Playlist" msgstr "Danh sách động" #: ../src/playlist/ario-playlist-queue.c:49 msgid "Queue Mode" msgstr "Chế độ xếp hàng" #: ../src/playlist/ario-playlist-normal.c:47 msgid "Normal" msgstr "Bình thường" #: ../src/plugins/ario-plugin-manager.c:45 msgid "Plugin" msgstr "Phần mở rộng" #: ../src/plugins/ario-plugin-manager.c:46 msgid "Enabled" msgstr "Kích hoạt" #: ../src/plugins/ario-plugin-manager.c:480 ../src/shell/ario-shell.c:206 msgid "_About" msgstr "_Giới thiệu" #: ../src/plugins/ario-plugin-manager.c:488 msgid "C_onfigure" msgstr "_Cấu hình" #: ../src/plugins/ario-plugin-manager.c:497 msgid "A_ctivate" msgstr "_Kích hoạt" #: ../src/plugins/ario-plugin-manager.c:508 msgid "Ac_tivate All" msgstr "Kí_ch hoạt tất cả" #: ../src/plugins/ario-plugin-manager.c:513 msgid "_Deactivate All" msgstr "_Bỏ kích hoạt tất cả" #: ../src/plugins/ario-plugin-manager.c:722 msgid "Active plugins" msgstr "Phần mở rộng được kích hoạt" #: ../src/preferences/ario-server-preferences.c:182 #: ../src/preferences/ario-stats-preferences.c:151 #: ../src/preferences/ario-stats-preferences.c:152 #: ../src/preferences/ario-stats-preferences.c:153 #: ../src/preferences/ario-stats-preferences.c:154 #: ../src/preferences/ario-stats-preferences.c:155 #: ../src/preferences/ario-stats-preferences.c:156 msgid "Not connected" msgstr "Chưa kết nối" #: ../src/preferences/ario-server-preferences.c:187 #: ../src/preferences/ario-server-preferences.c:278 #: ../src/widgets/ario-status-bar.c:100 msgid "Updating..." msgstr "Đang cập nhật..." #: ../src/servers/ario-mpd.c:410 ../src/servers/ario-mpd2.c:522 msgid "Connecting to server..." msgstr "Đang kết nối tới máy chủ..." #: ../src/servers/ario-mpd.c:438 ../src/servers/ario-mpd2.c:550 msgid "Impossible to connect to server. Check the connection options." msgstr "Không thể kết nối máy chủ. Hãy xem lại tùy chỉnh kết nối." #. ARIO_TAG_ALBUM #: ../src/servers/ario-server.c:47 msgid "Album Artist" msgstr "Album nghệ sĩ" #. ARIO_TAG_DATE #: ../src/servers/ario-server.c:53 msgid "Composer" msgstr "Người sáng tác" #. ARIO_TAG_COMPOSER #: ../src/servers/ario-server.c:54 msgid "Performer" msgstr "Người biểu diễn" #. ARIO_TAG_PERFORMER #. ARIO_TAG_COMMENT #. ARIO_TAG_DISC #: ../src/servers/ario-server.c:57 msgid "Filename" msgstr "Tên tập tin" #. ARIO_TAG_FILENAME #: ../src/servers/ario-server.c:58 msgid "Any" msgstr "Bất kì" #. impossible time or broken locale settings #: ../src/servers/ario-server.h:27 #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1235 msgid "Unknown" msgstr "Không rõ" #: ../src/sources/ario-browser.c:82 ../src/sources/ario-search.c:70 #: ../src/sources/ario-storedplaylists.c:88 #: ../src/sources/ario-storedplaylists.c:106 #: ../plugins/filesystem/ario-filesystem.c:94 #: ../plugins/filesystem/ario-filesystem.c:109 #: ../plugins/radios/ario-radio.c:116 msgid "_Add to playlist" msgstr "_Thêm vào danh sách" #: ../src/sources/ario-browser.c:85 ../src/sources/ario-search.c:73 #: ../src/sources/ario-storedplaylists.c:91 #: ../src/sources/ario-storedplaylists.c:109 #: ../plugins/filesystem/ario-filesystem.c:97 #: ../plugins/filesystem/ario-filesystem.c:112 #: ../plugins/radios/ario-radio.c:119 msgid "Add and _play" msgstr "Thêm vào và _phát" #: ../src/sources/ario-browser.c:88 ../src/sources/ario-search.c:76 #: ../src/sources/ario-storedplaylists.c:94 #: ../src/sources/ario-storedplaylists.c:112 #: ../plugins/filesystem/ario-filesystem.c:100 #: ../plugins/filesystem/ario-filesystem.c:115 #: ../plugins/radios/ario-radio.c:122 msgid "_Replace in playlist" msgstr "Th_ay thế trong danh sách" #: ../src/sources/ario-browser.c:91 msgid "Get the covers" msgstr "Tìm ảnh bìa" #: ../src/sources/ario-browser.c:94 msgid "_Delete the covers" msgstr "_Xóa ảnh bìa" #: ../src/sources/ario-browser.c:97 ../src/sources/ario-browser.c:100 #: ../src/sources/ario-search.c:79 ../src/sources/ario-storedplaylists.c:115 #: ../src/widgets/ario-playlist.c:151 #: ../plugins/filesystem/ario-filesystem.c:118 #: ../plugins/radios/ario-radio.c:131 msgid "_Properties" msgstr "Thôn_g tin" #: ../src/sources/ario-browser.c:125 ../src/shell/ario-shell-preferences.c:118 msgid "Library" msgstr "Thư viện" #: ../src/sources/ario-storedplaylists.c:97 msgid "_Delete" msgstr "_Xóa" #: ../src/sources/ario-storedplaylists.c:151 msgid "Playlists" msgstr "Danh sách" #: ../src/sources/ario-storedplaylists.c:592 msgid "Are you sure that you want to delete all the selected playlists?" msgstr "Bạn có chắc sẽ xóa tất cả danh sách ?" #: ../src/sources/ario-tree.c:856 msgid "Are you sure that you want to remove all the selected covers?" msgstr "Bạn có chắc sẽ loại bỏ tất cả ảnh bìa?" #. Translators - This "Cover" refers to an album cover art #: ../src/sources/ario-tree-albums.c:199 msgid "Cover" msgstr "Ảnh bìa" #: ../src/shell/ario-shell.c:160 msgid "_File" msgstr "_Tập tin" #: ../src/shell/ario-shell.c:161 msgid "_Edit" msgstr "Chỉnh _sửa" #: ../src/shell/ario-shell.c:162 msgid "_View" msgstr "_Hiển thị" #: ../src/shell/ario-shell.c:163 msgid "_Control" msgstr "Điều _khiển" #: ../src/shell/ario-shell.c:164 msgid "_Tool" msgstr "_Công cụ" #: ../src/shell/ario-shell.c:165 msgid "_Help" msgstr "Trợ g_iúp" #: ../src/shell/ario-shell.c:173 msgid "_Update database" msgstr "Cậ_p nhật cơ sở dữ liệu" #: ../src/shell/ario-shell.c:176 msgid "_Quit" msgstr "_Thoát" #: ../src/shell/ario-shell.c:179 msgid "Plu_gins" msgstr "Phần bổ t_rợ" #: ../src/shell/ario-shell.c:182 msgid "Prefere_nces" msgstr "Tù_y chỉnh" #: ../src/shell/ario-shell.c:185 msgid "_Change current album cover" msgstr "Đổi bìa a_lbum hiện thời" #: ../src/shell/ario-shell.c:188 msgid "Download album _covers" msgstr "Tải bìa album" #: ../src/shell/ario-shell.c:191 msgid "Find similar artists" msgstr "Tìm nghệ sĩ tương tự" #: ../src/shell/ario-shell.c:194 msgid "Add similar songs to playlist" msgstr "Thêm bài hát giống vào danh sách" #: ../src/shell/ario-shell.c:197 msgid "Go to _previous tab" msgstr "Đến tab trướ_c" #: ../src/shell/ario-shell.c:200 msgid "Go to _next tab" msgstr "Đế_n tab tiếp theo" #: ../src/shell/ario-shell.c:203 msgid "Show _lyrics" msgstr "Hiện _lời bài hát" #: ../src/shell/ario-shell.c:209 msgid "_Translate this application..." msgstr "_Dịch phần mềm này..." #: ../src/shell/ario-shell.c:216 msgid "S_tatusbar" msgstr "Than_h trạng thái" #: ../src/shell/ario-shell.c:219 msgid "Upper part" msgstr "Phần trên" #: ../src/shell/ario-shell.c:825 msgid "GTK client for MPD" msgstr "Một trạm con giao diện GTK cho MPD" #: ../src/shell/ario-shell.c:826 msgid "translator-credits" msgstr "" "Launchpad Contributions:\n" " Lê Kiến Trúc https://launchpad.net/~le-kien-truc\n" " Lê Trường An https://launchpad.net/~truongan\n" " Marc Pavot https://launchpad.net/~marc-pavot\n" " Nguyễn Hào Khôi https://launchpad.net/~nhkhoi\n" " Vo Van Hong Ngoc https://launchpad.net/~hn8456" #. Create plugins configuration dialog window #: ../src/shell/ario-shell.c:1278 msgid "Configure Plugins" msgstr "Thiệp lập phần bổ trợ" #. Set window properties #: ../src/shell/ario-shell-coverdownloader.c:187 msgid "Music Player Cover Download" msgstr "Tải ảnh bìa" #: ../src/shell/ario-shell-coverdownloader.c:332 msgid "Download Finished!" msgstr "Đã tải xong!" #. We show the numbers of covers found and not found #: ../src/shell/ario-shell-coverdownloader.c:335 #, c-format msgid "" "%i covers found\n" "%i covers not found\n" "%i covers already exist" msgstr "" "%i ảnh bìa được tìm thấy\n" "%i ảnh bìa không tìm thấy\n" "%i ảnh bìa đã tồn tại" #. Set window properties #: ../src/shell/ario-shell-coverselect.c:242 msgid "Cover Download" msgstr "Tải ảnh bìa" #: ../src/shell/ario-shell-coverselect.c:559 msgid "Error reading file" msgstr "Lỗi đọc tập tin" #: ../src/shell/ario-shell-coverselect.c:584 msgid "Error saving file" msgstr "Lỗi lưu tập tin" #: ../src/shell/ario-shell-lyrics.c:43 #: ../src/shell/ario-shell-preferences.c:133 #: ../src/shell/ario-shell-songinfos.c:272 msgid "Lyrics" msgstr "Lời bài hát" #: ../src/shell/ario-shell-lyricsselect.c:152 msgid "Lyrics Download" msgstr "Tải lời bài hát" #: ../src/shell/ario-shell-preferences.c:81 msgid "Ario Preferences" msgstr "Tùy chỉnh Ario" #: ../src/shell/ario-shell-preferences.c:113 msgid "Server" msgstr "Máy chủ" #: ../src/shell/ario-shell-preferences.c:143 msgid "Others" msgstr "Khác" #: ../src/shell/ario-shell-similarartists.c:318 #, c-format msgid "%d songs" msgstr "%d bài hát" #. Set window properties #. Set window title #: ../src/shell/ario-shell-songinfos.c:249 #: ../src/shell/ario-shell-songinfos.c:266 #: ../src/shell/ario-shell-songinfos.c:544 msgid "Song Properties" msgstr "Thông tin bài hát" #: ../src/shell/ario-shell-songinfos.c:455 msgid "Error saving tags of file:" msgstr "Lỗi khi lưu thẻ của file:" #: ../src/widgets/ario-connection-widget.c:652 msgid "You must select a server." msgstr "Bạn phải chọn một máy chủ." #: ../src/widgets/ario-connection-widget.c:702 msgid "New Profile" msgstr "Hồ sơ mới" #: ../src/widgets/ario-firstlaunch.c:82 msgid "The following configuration will be used:" msgstr "Những thiếp lập sau sẽ được dùng:" #: ../src/widgets/ario-firstlaunch.c:106 msgid "" "It is the first time you launch Ario.\n" "This assistant will help you to configure it." msgstr "" "Đây là lần đầu bạn dùng Ario.\n" "Phần này sẽ giúp bạn thiết lập nó." #: ../src/widgets/ario-firstlaunch.c:111 msgid "Welcome to Ario" msgstr "Chào mừng đến với Ario" #: ../src/widgets/ario-firstlaunch.c:129 msgid "Configuration" msgstr "Cấu hình" #: ../src/widgets/ario-firstlaunch.c:141 msgid "Confirmation" msgstr "Sự chứng thực" #: ../src/widgets/ario-header.c:66 ../src/widgets/ario-tray-icon.h:42 #, c-format msgid "from %s by %s" msgstr "từ %s bởi %s" #: ../src/widgets/ario-header.c:199 msgid "Play previous song" msgstr "Phát bản nhạc trước" #: ../src/widgets/ario-header.c:217 msgid "Play/Pause the music" msgstr "Phát/Tạm dừng nhạc" #: ../src/widgets/ario-header.c:229 msgid "Stop the music" msgstr "Dừng nhạc" #. Translators - This " of " is used to count the elapsed time #. of a song like in "00:59 of 03:24" #: ../src/widgets/ario-header.c:310 ../src/widgets/ario-tooltip.c:321 msgid " of " msgstr " trong " #: ../src/widgets/ario-header.c:323 msgid "Toggle random on/off" msgstr "Bật/Tắt việc phát ngẫu nhiên" #: ../src/widgets/ario-header.c:335 msgid "Toggle repeat on/off" msgstr "Bật/Tắt lặp lại" #: ../src/widgets/ario-header.c:340 msgid "Change the music volume" msgstr "Điều chỉnh âm lượng nhạc" #: ../src/widgets/ario-lyrics-editor.c:323 msgid "Downloading lyrics..." msgstr "Đang tải lời bài hát..." #: ../src/widgets/ario-lyrics-editor.c:351 msgid "Lyrics not found" msgstr "Không tìm thấy lời bài hát" #: ../src/widgets/ario-playlist.c:133 msgid "_Clear" msgstr "_Xóa" #: ../src/widgets/ario-playlist.c:136 msgid "_Shuffle" msgstr "Xá_o trộn" #: ../src/widgets/ario-playlist.c:139 msgid "Cr_op" msgstr "Cắ_t" #: ../src/widgets/ario-playlist.c:142 msgid "_Search in playlist" msgstr "_Tìm trong danh sách" #: ../src/widgets/ario-playlist.c:145 msgid "_Remove" msgstr "_Gỡ bỏ" #: ../src/widgets/ario-playlist.c:148 msgid "_Save" msgstr "_Lưu" #: ../src/widgets/ario-playlist.c:154 msgid "_Go to playing song" msgstr "_Nhảy tới bài đang phát" #: ../src/widgets/ario-playlist.c:667 msgid "Filter:" msgstr "Bộ lọc:" #. Create the widgets #: ../src/widgets/ario-playlist.c:1700 msgid "Save playlist" msgstr "Lưu danh sách" #: ../src/widgets/ario-playlist.c:1710 msgid "Playlist name :" msgstr "Tên danh sách :" #: ../src/widgets/ario-playlist.c:1746 msgid "Playlist already exists. Do you want to overwrite it?" msgstr "Danh sách đã có sẵn. Bạn có muốn ghi đè?" #. Format status bar message #: ../src/widgets/ario-status-bar.c:96 msgid "Songs" msgstr "Bài hát" #: ../src/widgets/ario-tray-icon.c:102 msgid "_Play" msgstr "_Phát" #: ../src/widgets/ario-tray-icon.c:105 msgid "_Pause" msgstr "_Tạm dừng" #: ../src/widgets/ario-tray-icon.c:108 msgid "_Stop" msgstr "_Dừng" #: ../src/widgets/ario-tray-icon.c:111 msgid "_Next" msgstr "_Tiếp theo" #: ../src/widgets/ario-tray-icon.c:114 msgid "P_revious" msgstr "T_rước" #: ../src/widgets/ario-tray-icon.h:41 msgid "Not playing" msgstr "Hiện không phát" #. Translators: "friendly time" string for the current day, strftime format. like "Today 12:34 am" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1179 msgid "Today %I:%M %p" msgstr "Hôm nay %I:%M %p" #. Translators: "friendly time" string for the previous day, #. * strftime format. e.g. "Yesterday 12:34 am" #. #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1192 msgid "Yesterday %I:%M %p" msgstr "Hôm qua %I:%M %p" #. Translators: "friendly time" string for a day in the current week, #. * strftime format. e.g. "Wed 12:34 am" #. #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1208 msgid "%a %I:%M %p" msgstr "%a %I:%M %p" #. Translators: "friendly time" string for a day in the current year, #. * strftime format. e.g. "Feb 12 12:34 am" #. #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1220 msgid "%b %d %I:%M %p" msgstr "%b %d %I:%M %p" #. Translators: "friendly time" string for a day in a different year, #. * strftime format. e.g. "Feb 12 1997" #. #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1225 msgid "%b %d %Y" msgstr "%b %d %Y" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1311 #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:4 msgid "Never" msgstr "Chưa bao giờ" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1335 msgid "OK" msgstr "Đồng ý" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1338 msgid "Logging in" msgstr "Đang đăng nhập" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1341 msgid "Request failed" msgstr "Yêu cầu thất bại" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1344 msgid "Incorrect username" msgstr "Sai tên đăng nhập" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1347 msgid "Incorrect password" msgstr "Sai mật khẩu" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1350 msgid "Handshake failed" msgstr "Lỗi thiết lập quan hệ" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1353 msgid "Client update required" msgstr "Cần cập nhật máy khách" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1356 msgid "Track submission failed" msgstr "Đề nghị bài hát thất bại" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1359 msgid "Queue is too long" msgstr "Hàng đợi nhạc quá dài" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1362 msgid "Track submission failed too many times" msgstr "Đề nghị bài hát thất bại quá nhiều lần" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1417 msgid "Audioscrobbler preferences" msgstr "Tùy chỉnh Audioscrobbler" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:1 msgid "Disabled" msgstr "Tắt" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:2 msgid "Last submission time:" msgstr "Thời gian lần đề nghị cuối:" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:3 msgid "Last.fm Profile" msgstr "Hồ sơ Last.fm" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:6 msgid "Queued tracks:" msgstr "Bài đang đợi phát:" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:7 msgid "Status:" msgstr "Trạng thái:" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:8 msgid "Tracks submitted:" msgstr "Bài hát đề nghị:" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:9 #: ../plugins/radios/ario-radio.c:168 msgid "Username :" msgstr "Tên đăng nhập :" #: ../plugins/audioscrobbler/audioscrobbler.ario-plugin.desktop.in.h:1 msgid "Last.fm" msgstr "Last.fm" #: ../plugins/audioscrobbler/audioscrobbler.ario-plugin.desktop.in.h:2 msgid "Submits song information to last.fm" msgstr "Đề nghị thông tin bài hát tới last.fm" #: ../plugins/filesystem/ario-filesystem.c:158 msgid "File System" msgstr "Hệ thống tập tin" #: ../plugins/filesystem/ario-filesystem.c:422 msgid "Music" msgstr "Âm nhạc" #: ../plugins/filesystem/filesystem.ario-plugin.desktop.in.h:1 msgid "A File System Browser" msgstr "Một trình duyệt hệ thống tập tin" #: ../plugins/filesystem/filesystem.ario-plugin.desktop.in.h:2 msgid "File System Browser" msgstr "Trình duyệt hệ thống tập tin" #: ../plugins/information/ario-information.c:114 msgid "Information" msgstr "Thông tin" #: ../plugins/information/information.ario-plugin.desktop.in.h:1 msgid "Display various information about the playing song" msgstr "Hiện nhiều thông tin về bài hát đang chơi" #: ../plugins/information/information.ario-plugin.desktop.in.h:2 msgid "Song Information" msgstr "Thông tin bài hát" #: ../plugins/information/information.ui.h:2 msgid "Albums from this artist:" msgstr "Album của nghệ sĩ này:" #: ../plugins/information/information.ui.h:5 msgid "Lyrics:" msgstr "Lời bài hát:" #: ../plugins/libnotify/libnotify.ario-plugin.desktop.in.h:1 msgid "Add libnotify support" msgstr "Thêm thư viện thông báo" #: ../plugins/libnotify/libnotify.ario-plugin.desktop.in.h:2 msgid "Libnotify" msgstr "Thư viện thông báo" #: ../plugins/mmkeys/mmkeys.ario-plugin.desktop.in.h:1 msgid "Add multimedia keys support" msgstr "Thêm một phím đa phương tiện" #: ../plugins/mmkeys/mmkeys.ario-plugin.desktop.in.h:2 msgid "Multimedia Keys" msgstr "Phím đa phương tiện" #: ../plugins/radios/ario-radio.c:125 msgid "Add a _new radio" msgstr "_Thêm đài radio" #: ../plugins/radios/ario-radio.c:128 msgid "_Delete this radios" msgstr "_Xóa radio này" #: ../plugins/radios/ario-radio.c:166 msgid "Last.fm: Radio of similar artists" msgstr "Last.fm: Radio cùng nghệ sĩ" #: ../plugins/radios/ario-radio.c:167 msgid "Last.fm: Radio of group" msgstr "Last.fm: Radio của nhóm" #: ../plugins/radios/ario-radio.c:167 msgid "Group :" msgstr "Nhóm :" #: ../plugins/radios/ario-radio.c:168 msgid "Last.fm: Personal radio" msgstr "Last.fm: Radio cá nhân" #: ../plugins/radios/ario-radio.c:169 msgid "Last.fm: Radio of genre" msgstr "Last.fm: Radio của thể loại" #: ../plugins/radios/ario-radio.c:184 #: ../plugins/radios/radios.ario-plugin.desktop.in.h:2 msgid "Web Radios" msgstr "Radio trên mạng" #: ../plugins/radios/ario-radio.c:246 msgid "Internet Radios" msgstr "Internet Radio" #. Create dialog window #: ../plugins/radios/ario-radio.c:774 msgid "Edit a WebRadio" msgstr "Chỉnh sửa một WebRadio" #: ../plugins/radios/ario-radio.c:787 ../plugins/radios/ario-radio.c:923 msgid "URL :" msgstr "URL :" #: ../plugins/radios/ario-radio.c:853 ../plugins/radios/ario-radio.c:997 msgid "Bad parameters. You must specify a name and a URL for the radio." msgstr "Thông số xấu. Bạn phải chỉ định tên hoặc địa chỉ cho radio." #. Create dialog window #: ../plugins/radios/ario-radio.c:883 msgid "Add a WebRadio" msgstr "Thêm một WebRadio" #: ../plugins/radios/ario-radio.c:1083 msgid "Are you sure you want to delete all the selected radios?" msgstr "Bạn có chắc muốn xóa tất cả những radio đã chọn ?" #: ../plugins/radios/radios.ario-plugin.desktop.in.h:1 msgid "Listen to webradios" msgstr "Nghe radio trên web" #: ../plugins/wikipedia/ario-wikipedia-plugin.c:49 #: ../plugins/wikipedia/ario-wikipedia-plugin.c:50 msgid "Find artist on Wikipedia" msgstr "Tìm nghệ sĩ trên Wikipedia" #: ../plugins/wikipedia/ario-wikipedia-plugin.c:172 msgid "Wikipedia Plugin - Configuration" msgstr "Phần bổ trợ Wikipedia - Cấu hình" #: ../plugins/wikipedia/ario-wikipedia-plugin.c:181 msgid "Wikipedia language :" msgstr "Ngôn ngữ Wikipedia :" #: ../plugins/wikipedia/wikipedia.ario-plugin.desktop.in.h:1 msgid "A plugin to search current artist on wikipedia" msgstr "Một phần bổ trợ sẽ tìm nghệ sĩ hiện thời trên wikipedia" #: ../plugins/wikipedia/wikipedia.ario-plugin.desktop.in.h:2 msgid "Wikipedia" msgstr "Wikipedia" #~ msgid "Add a search criteria" #~ msgstr "Thêm một tiêu chuẩn tìm kiếm" #~ msgid "Search songs in the library" #~ msgstr "Tìm bài hát trong thư viện" #~ msgid "Remove a search criteria" #~ msgstr "Bỏ một tiêu chuẩn tìm kiếm" ario-1.6/po/zh_HK.po0000644000175000017500000010026113226723442011221 00000000000000# Chinese (Hong Kong) translation for ario # Copyright (c) 2008 Rosetta Contributors and Canonical Ltd 2008 # This file is distributed under the same license as the ario package. # FIRST AUTHOR , 2008. # msgid "" msgstr "" "Project-Id-Version: ario\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2011-06-13 18:15+0200\n" "PO-Revision-Date: 2010-09-13 19:43+0000\n" "Last-Translator: sora \n" "Language-Team: Chinese (Hong Kong) \n" "Language: zh_HK\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2011-06-13 16:32+0000\n" "X-Generator: Launchpad (build 13175)\n" #: ../data/ario.desktop.in.in.h:1 msgid "Ario music player" msgstr "Ario 播放器" #: ../data/ario.desktop.in.in.h:2 msgid "Client application to mpd" msgstr "MPD用戶端" #: ../data/ui/browser-prefs.ui.h:1 msgid "Alphabetically" msgstr "依字母" #: ../data/ui/browser-prefs.ui.h:2 msgid "By year" msgstr "依年份" #: ../data/ui/browser-prefs.ui.h:3 msgid "Library Options" msgstr "媒體庫選項" #: ../data/ui/browser-prefs.ui.h:4 msgid "Library Organisation" msgstr "媒體庫組織" #: ../data/ui/browser-prefs.ui.h:5 msgid "Sort albums: " msgstr "排列專輯 " #: ../data/ui/connection-autodetect.ui.h:1 msgid "" "If you don't see your MPD server thanks to the automatic detection, you " "should check that zeroconf is activated in your MPD configuration or use the " "manual configuration." msgstr "" #: ../data/ui/connection-autodetect.ui.h:2 msgid "Server autodetection" msgstr "自動偵測伺服器" #: ../data/ui/connection-widget.ui.h:1 msgid "Auto detect" msgstr "自動偵測" #: ../data/ui/connection-widget.ui.h:2 msgid "Default" msgstr "預設" #: ../data/ui/connection-widget.ui.h:3 ../src/widgets/ario-firstlaunch.c:83 msgid "Host :" msgstr "主機 :" #: ../data/ui/connection-widget.ui.h:4 msgid "Music directory :" msgstr "音樂目錄 :" #: ../data/ui/connection-widget.ui.h:5 msgid "Music server is on the same computer as Ario" msgstr "MPD伺服器為本地主機" #. Create the widgets #: ../data/ui/connection-widget.ui.h:6 ../plugins/radios/ario-radio.c:786 #: ../plugins/radios/ario-radio.c:922 msgid "Name :" msgstr "名稱:" #: ../data/ui/connection-widget.ui.h:7 #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:5 msgid "Password :" msgstr "密碼:" #: ../data/ui/connection-widget.ui.h:8 ../src/widgets/ario-firstlaunch.c:85 msgid "Port :" msgstr "端口:" #: ../data/ui/connection-widget.ui.h:9 #, fuzzy msgid "Server type :" msgstr "伺服器類型: " #: ../data/ui/connection-widget.ui.h:10 msgid "Timeout :" msgstr "" #: ../data/ui/connection-widget.ui.h:11 msgid "XMMS 2 (Experimental)" msgstr "" #: ../data/ui/cover-prefs.ui.h:1 msgid "Automatically download the album cover of the playing song" msgstr "自動下載播放中歌曲的唱片封面" #: ../data/ui/cover-prefs.ui.h:2 ../src/shell/ario-shell-preferences.c:128 msgid "Covers" msgstr "專輯封面" #: ../data/ui/cover-prefs.ui.h:3 msgid "Covers Sources" msgstr "封面來源" #: ../data/ui/cover-prefs.ui.h:4 msgid "Show the covers in the albums list" msgstr "在專輯列表中顯示封面" #: ../data/ui/cover-prefs.ui.h:5 msgid "Use Amazon." msgstr "使用Amazon" #: ../data/ui/connection-prefs.ui.h:1 #: ../src/shell/ario-shell-preferences.c:108 msgid "Connection" msgstr "連線" #: ../data/ui/connection-prefs.ui.h:2 msgid "_Autoconnect on startup" msgstr "開啟時自動連線" #: ../data/ui/connection-prefs.ui.h:3 ../src/shell/ario-shell.c:167 msgid "_Connect" msgstr "連線(_C)" #: ../data/ui/connection-prefs.ui.h:4 ../src/shell/ario-shell.c:170 msgid "_Disconnect" msgstr "中斷連線(_D)" #: ../data/ui/connection-assistant.ui.h:1 msgid "" "You need to specify a server to connect to. If you don't see your server " "thanks to the autodetection, you should check that zeroconf/avahi is " "activated in your server or use the manual configuration." msgstr "" "你需要指定一個MPD伺服器。If you don't see your server thanks to the " "autodetection, you should check that zeroconf/avahi is activated in your " "server or use the manual configuration." #: ../data/ui/cover-progress.ui.h:1 ../data/ui/cover-select.ui.h:1 #: ../data/ui/song-infos.ui.h:1 ../plugins/information/information.ui.h:1 msgid "Album :" msgstr "專輯 :" #: ../data/ui/cover-progress.ui.h:2 ../data/ui/cover-select.ui.h:2 #: ../data/ui/lyrics-select.ui.h:1 ../data/ui/song-infos.ui.h:3 #: ../plugins/information/information.ui.h:3 #: ../plugins/radios/ario-radio.c:166 msgid "Artist :" msgstr "演出者:" #: ../data/ui/cover-progress.ui.h:3 msgid "Downloading cover" msgstr "下載封面中 ..." #: ../data/ui/cover-select.ui.h:3 msgid "Local search" msgstr "本地搜尋" #: ../data/ui/cover-select.ui.h:4 ../src/sources/ario-search.c:108 msgid "Search" msgstr "搜尋" #: ../data/ui/others-prefs.ui.h:1 msgid "Allow only one instance of Ario" msgstr "同時間只能開啟一個 Ario" #: ../data/ui/others-prefs.ui.h:2 msgid "Hide window when close button is pressed" msgstr "按下關閉按鈕時隱藏視窗" #: ../data/ui/others-prefs.ui.h:3 msgid "Interface" msgstr "界面" #: ../data/ui/others-prefs.ui.h:4 msgid "Playlist at the right of tabs" msgstr "播放清單於分頁右方" #: ../data/ui/others-prefs.ui.h:5 msgid "Playlist below tabs" msgstr "播放清單於分頁下" #: ../data/ui/others-prefs.ui.h:6 msgid "Playlist within tabs" msgstr "" #: ../data/ui/others-prefs.ui.h:7 msgid "Proxy" msgstr "代理伺服器" #: ../data/ui/others-prefs.ui.h:8 msgid "Proxy Address :" msgstr "代理伺服器地址:" #: ../data/ui/others-prefs.ui.h:9 msgid "Proxy Port :" msgstr "代理伺服器連接埠:" #: ../data/ui/others-prefs.ui.h:10 msgid "Show tabs" msgstr "顯示分頁" #: ../data/ui/others-prefs.ui.h:11 msgid "Use a proxy" msgstr "使用代理伺服器" #: ../data/ui/lyrics-prefs.ui.h:1 msgid "Lyrics Sources" msgstr "歌詞來源" #: ../data/ui/lyrics-select.ui.h:2 ../data/ui/song-infos.ui.h:13 #: ../plugins/information/information.ui.h:6 msgid "Title :" msgstr "標題:" #: ../data/ui/playlist-prefs.ui.h:1 msgid "Add after playing song" msgstr "於播放後新增" #: ../data/ui/playlist-prefs.ui.h:2 msgid "Add and play" msgstr "新增並播放" #: ../data/ui/playlist-prefs.ui.h:3 ../data/ui/similar-artists.ui.h:2 msgid "Add to playlist" msgstr "加入到播放清單" #. ARIO_TAG_ARTIST #: ../data/ui/playlist-prefs.ui.h:4 ../src/servers/ario-server.c:46 #: ../src/sources/ario-tree-albums.c:213 ../src/widgets/ario-playlist.c:541 #: ../src/widgets/ario-songlist.c:228 ../src/widgets/ario-tray-icon.c:565 msgid "Album" msgstr "專輯" #: ../data/ui/playlist-prefs.ui.h:5 ../src/servers/ario-server.c:45 #: ../src/widgets/ario-playlist.c:541 ../src/widgets/ario-songlist.c:213 #: ../src/widgets/ario-tray-icon.c:563 msgid "Artist" msgstr "演出者" #. ARIO_TAG_GENRE #: ../data/ui/playlist-prefs.ui.h:6 ../src/servers/ario-server.c:52 #: ../src/widgets/ario-playlist.c:541 msgid "Date" msgstr "日期" #: ../data/ui/playlist-prefs.ui.h:7 ../src/widgets/ario-playlist.c:541 msgid "Disc" msgstr "碟" #: ../data/ui/playlist-prefs.ui.h:8 msgid "Double click" msgstr "雙擊" #: ../data/ui/playlist-prefs.ui.h:9 ../src/widgets/ario-playlist.c:541 msgid "Duration" msgstr "長度" #: ../data/ui/playlist-prefs.ui.h:10 ../src/widgets/ario-playlist.c:541 msgid "File" msgstr "檔案" #. ARIO_TAG_TRACK #. ARIO_TAG_NAME #: ../data/ui/playlist-prefs.ui.h:11 ../src/servers/ario-server.c:51 #: ../src/widgets/ario-playlist.c:541 msgid "Genre" msgstr "類型" #: ../data/ui/playlist-prefs.ui.h:12 msgid "Go to current song when a new song is played" msgstr "" #: ../data/ui/playlist-prefs.ui.h:13 msgid "Mode" msgstr "模式" #: ../data/ui/playlist-prefs.ui.h:14 msgid "On double click:" msgstr "當雙擊時:" #: ../data/ui/playlist-prefs.ui.h:15 ../src/sources/ario-storedplaylists.c:229 #: ../src/shell/ario-shell.c:222 ../src/shell/ario-shell-preferences.c:123 #: ../src/widgets/ario-playlist.c:272 msgid "Playlist" msgstr "播放清單" #: ../data/ui/playlist-prefs.ui.h:16 msgid "Playlist mode:" msgstr "播放清單模式:" #: ../data/ui/playlist-prefs.ui.h:17 msgid "Replace in playlist" msgstr "取代播放清單" #: ../data/ui/playlist-prefs.ui.h:18 msgid "Show rows:" msgstr "顯示列:" #. ARIO_TAG_ALBUM_ARTIST #: ../data/ui/playlist-prefs.ui.h:19 ../src/servers/ario-server.c:48 #: ../src/sources/ario-tree-songs.c:145 ../src/widgets/ario-playlist.c:541 #: ../src/widgets/ario-songlist.c:198 ../src/widgets/ario-tray-icon.c:567 msgid "Title" msgstr "標題" #. ARIO_TAG_TITLE #: ../data/ui/playlist-prefs.ui.h:20 ../src/servers/ario-server.c:49 #: ../src/sources/ario-tree-songs.c:138 ../src/widgets/ario-playlist.c:541 msgid "Track" msgstr "音軌" #: ../data/ui/server-prefs.ui.h:1 msgid "Audio outputs" msgstr "音效輸出" #: ../data/ui/server-prefs.ui.h:2 msgid "Crossfade" msgstr "淡出淡入" #: ../data/ui/server-prefs.ui.h:3 msgid "Database" msgstr "資料庫" #: ../data/ui/server-prefs.ui.h:4 msgid "Last updated:" msgstr "最後更新:" #: ../data/ui/server-prefs.ui.h:5 msgid "Stop music on exit" msgstr "離開時停止音樂" #: ../data/ui/server-prefs.ui.h:6 msgid "Update on startup" msgstr "於啟動時更新" #: ../data/ui/server-prefs.ui.h:7 msgid "_Update" msgstr "更新(_U)" #: ../data/ui/server-prefs.ui.h:8 msgid "enable crossfade" msgstr "開啟淡入淡出" #: ../data/ui/server-prefs.ui.h:9 msgid "fade time (s):" msgstr "淡入淡出時間" #: ../data/ui/server-prefs.ui.h:10 ../src/ario-util.c:50 ../src/ario-util.c:71 #: ../src/ario-util.c:93 ../plugins/information/information.ui.h:7 #, c-format msgid "n/a" msgstr "(不適用)" #: ../data/ui/similar-artists.ui.h:1 msgid "Add all to playlist" msgstr "全部新增到播放清單" #: ../data/ui/similar-artists.ui.h:3 msgid "Find on Last.fm" msgstr "在Last.fm搜尋" #: ../data/ui/stats-prefs.ui.h:1 msgid "Database play time :" msgstr "" #: ../data/ui/stats-prefs.ui.h:2 msgid "Number of albums :" msgstr "專輯數量:" #: ../data/ui/stats-prefs.ui.h:3 msgid "Number of artists :" msgstr "演出者數量:" #: ../data/ui/stats-prefs.ui.h:4 msgid "Number of songs :" msgstr "歌曲數量:" #: ../data/ui/stats-prefs.ui.h:5 msgid "Play time :" msgstr "播放時間:" #: ../data/ui/stats-prefs.ui.h:6 ../src/shell/ario-shell-preferences.c:148 msgid "Statistics" msgstr "統計資料" #: ../data/ui/stats-prefs.ui.h:7 msgid "Uptime :" msgstr "啟動時間:" #: ../data/ui/song-infos.ui.h:2 msgid "Album Artist :" msgstr "專輯演出者:" #: ../data/ui/song-infos.ui.h:4 msgid "Comment :" msgstr "註釋" #: ../data/ui/song-infos.ui.h:5 msgid "Composer :" msgstr "作曲家:" #: ../data/ui/song-infos.ui.h:6 msgid "Date :" msgstr "日期:" #: ../data/ui/song-infos.ui.h:7 msgid "Disc :" msgstr "碟:" #: ../data/ui/song-infos.ui.h:8 msgid "Filename :" msgstr "檔案名稱:" #: ../data/ui/song-infos.ui.h:9 ../plugins/radios/ario-radio.c:169 msgid "Genre :" msgstr "類型:" #: ../data/ui/song-infos.ui.h:10 ../plugins/information/information.ui.h:4 msgid "Length :" msgstr "長度:" #: ../data/ui/song-infos.ui.h:11 msgid "Performer :" msgstr "演出者:" #: ../data/ui/song-infos.ui.h:12 msgid "Song" msgstr "歌曲" #: ../data/ui/song-infos.ui.h:14 msgid "Track :" msgstr "軌:" #: ../data/ui/trayicon-prefs.ui.h:1 msgid "Do nothing" msgstr "不作任何動作" #: ../data/ui/trayicon-prefs.ui.h:2 msgid "Mute" msgstr "靜音" #: ../data/ui/trayicon-prefs.ui.h:3 ../src/shell/ario-shell-preferences.c:138 msgid "Notification" msgstr "通知" #: ../data/ui/trayicon-prefs.ui.h:4 msgid "Notification on song change" msgstr "歌曲更替時通知我" #: ../data/ui/trayicon-prefs.ui.h:5 msgid "Notification time: " msgstr "通知時間: " #: ../data/ui/trayicon-prefs.ui.h:6 msgid "On middle button click on tray icon :" msgstr "" #: ../data/ui/trayicon-prefs.ui.h:7 ../src/widgets/ario-header.c:241 msgid "Play next song" msgstr "播放下一首" #: ../data/ui/trayicon-prefs.ui.h:8 msgid "Play/Pause" msgstr "播放/暫停" #: ../data/ui/trayicon-prefs.ui.h:9 msgid "Tray icon" msgstr "系統匣圖示" #: ../src/ario-main.c:67 msgid "Start minimized window" msgstr "開啟時最小化視窗" #: ../src/ario-main.c:68 msgid "Start with specific profile" msgstr "" #. Format result string #: ../src/ario-util.c:110 msgid "seconds" msgstr "秒" #: ../src/ario-util.c:112 msgid "minutes" msgstr "分" #: ../src/ario-util.c:118 msgid "hours" msgstr "時" #: ../src/ario-util.c:124 msgid "days" msgstr "日" #: ../src/covers/ario-cover.c:149 msgid "The cover already exists. Do you want to replace it?" msgstr "封面已存在,你想取代它嗎?" #: ../src/covers/ario-cover-local.c:48 msgid "Music Directory" msgstr "音樂目錄" #: ../src/playlist/ario-playlist-dynamic.c:49 msgid "songs of same artist" msgstr "相同演出者的音樂" #: ../src/playlist/ario-playlist-dynamic.c:50 msgid "songs of same album" msgstr "相同專輯的作品" #: ../src/playlist/ario-playlist-dynamic.c:51 msgid "songs of similar artists" msgstr "相似演出者的專輯" #: ../src/playlist/ario-playlist-dynamic.c:52 msgid "albums of same artists" msgstr "相同演出者的專輯" #: ../src/playlist/ario-playlist-dynamic.c:53 msgid "albums of similar artists" msgstr "相似演出者的專輯" #: ../src/playlist/ario-playlist-dynamic.c:69 msgid "Dynamic Playlist" msgstr "動態播放滿單" #: ../src/playlist/ario-playlist-queue.c:49 msgid "Queue Mode" msgstr "隊列模式" #: ../src/playlist/ario-playlist-normal.c:47 msgid "Normal" msgstr "正常" #: ../src/plugins/ario-plugin-manager.c:45 msgid "Plugin" msgstr "插件" #: ../src/plugins/ario-plugin-manager.c:46 msgid "Enabled" msgstr "已啟用" #: ../src/plugins/ario-plugin-manager.c:480 ../src/shell/ario-shell.c:206 msgid "_About" msgstr "關於(_A)" #: ../src/plugins/ario-plugin-manager.c:488 msgid "C_onfigure" msgstr "設定(_o)" #: ../src/plugins/ario-plugin-manager.c:497 msgid "A_ctivate" msgstr "啟用(_c)" #: ../src/plugins/ario-plugin-manager.c:508 msgid "Ac_tivate All" msgstr "啟用全部(_t)" #: ../src/plugins/ario-plugin-manager.c:513 msgid "_Deactivate All" msgstr "停用全部(_D)" #: ../src/plugins/ario-plugin-manager.c:722 msgid "Active plugins" msgstr "啟用外掛程式" #: ../src/preferences/ario-server-preferences.c:182 #: ../src/preferences/ario-stats-preferences.c:151 #: ../src/preferences/ario-stats-preferences.c:152 #: ../src/preferences/ario-stats-preferences.c:153 #: ../src/preferences/ario-stats-preferences.c:154 #: ../src/preferences/ario-stats-preferences.c:155 #: ../src/preferences/ario-stats-preferences.c:156 msgid "Not connected" msgstr "未連接" #: ../src/preferences/ario-server-preferences.c:187 #: ../src/preferences/ario-server-preferences.c:278 #: ../src/widgets/ario-status-bar.c:100 msgid "Updating..." msgstr "正在更新..." #: ../src/servers/ario-mpd.c:410 ../src/servers/ario-mpd2.c:522 msgid "Connecting to server..." msgstr "正連接至伺服器..." #: ../src/servers/ario-mpd.c:438 ../src/servers/ario-mpd2.c:550 msgid "Impossible to connect to server. Check the connection options." msgstr "無法連接到伺服器,請檢查連線選項。" #. ARIO_TAG_ALBUM #: ../src/servers/ario-server.c:47 msgid "Album Artist" msgstr "專輯演出者" #. ARIO_TAG_DATE #: ../src/servers/ario-server.c:53 msgid "Composer" msgstr "作曲家" #. ARIO_TAG_COMPOSER #: ../src/servers/ario-server.c:54 msgid "Performer" msgstr "演出者" #. ARIO_TAG_PERFORMER #. ARIO_TAG_COMMENT #. ARIO_TAG_DISC #: ../src/servers/ario-server.c:57 msgid "Filename" msgstr "檔案名稱" #. ARIO_TAG_FILENAME #: ../src/servers/ario-server.c:58 msgid "Any" msgstr "任何" #. impossible time or broken locale settings #: ../src/servers/ario-server.h:27 #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1235 msgid "Unknown" msgstr "不詳" #: ../src/sources/ario-browser.c:82 ../src/sources/ario-search.c:70 #: ../src/sources/ario-storedplaylists.c:88 #: ../src/sources/ario-storedplaylists.c:106 #: ../plugins/filesystem/ario-filesystem.c:94 #: ../plugins/filesystem/ario-filesystem.c:109 #: ../plugins/radios/ario-radio.c:116 msgid "_Add to playlist" msgstr "加入至播放清單(_A)" #: ../src/sources/ario-browser.c:85 ../src/sources/ario-search.c:73 #: ../src/sources/ario-storedplaylists.c:91 #: ../src/sources/ario-storedplaylists.c:109 #: ../plugins/filesystem/ario-filesystem.c:97 #: ../plugins/filesystem/ario-filesystem.c:112 #: ../plugins/radios/ario-radio.c:119 msgid "Add and _play" msgstr "新增並播放(_p)" #: ../src/sources/ario-browser.c:88 ../src/sources/ario-search.c:76 #: ../src/sources/ario-storedplaylists.c:94 #: ../src/sources/ario-storedplaylists.c:112 #: ../plugins/filesystem/ario-filesystem.c:100 #: ../plugins/filesystem/ario-filesystem.c:115 #: ../plugins/radios/ario-radio.c:122 msgid "_Replace in playlist" msgstr "取代到播放滿單(_R)" #: ../src/sources/ario-browser.c:91 msgid "Get the covers" msgstr "取得專輯封面" #: ../src/sources/ario-browser.c:94 msgid "_Delete the covers" msgstr "刪除專輯封面(_D)" #: ../src/sources/ario-browser.c:97 ../src/sources/ario-browser.c:100 #: ../src/sources/ario-search.c:79 ../src/sources/ario-storedplaylists.c:115 #: ../src/widgets/ario-playlist.c:151 #: ../plugins/filesystem/ario-filesystem.c:118 #: ../plugins/radios/ario-radio.c:131 msgid "_Properties" msgstr "屬性(_P)" #: ../src/sources/ario-browser.c:125 ../src/shell/ario-shell-preferences.c:118 msgid "Library" msgstr "媒體庫" #: ../src/sources/ario-storedplaylists.c:97 msgid "_Delete" msgstr "刪除(_D)" #: ../src/sources/ario-storedplaylists.c:151 msgid "Playlists" msgstr "播放清單" #: ../src/sources/ario-storedplaylists.c:592 msgid "Are you sure that you want to delete all the selected playlists?" msgstr "你確定要刪除選取的播放清單?" #: ../src/sources/ario-tree.c:856 msgid "Are you sure that you want to remove all the selected covers?" msgstr "你確定要刪除選取的專輯封面?" #. Translators - This "Cover" refers to an album cover art #: ../src/sources/ario-tree-albums.c:199 msgid "Cover" msgstr "專輯封面" #: ../src/shell/ario-shell.c:160 msgid "_File" msgstr "檔案 (_F)" #: ../src/shell/ario-shell.c:161 msgid "_Edit" msgstr "編輯(_E)" #: ../src/shell/ario-shell.c:162 msgid "_View" msgstr "檢視(_V)" #: ../src/shell/ario-shell.c:163 msgid "_Control" msgstr "控制(_C)" #: ../src/shell/ario-shell.c:164 msgid "_Tool" msgstr "工具(_T)" #: ../src/shell/ario-shell.c:165 msgid "_Help" msgstr "求助(_H)" #: ../src/shell/ario-shell.c:173 msgid "_Update database" msgstr "更新資料庫(_U)" #: ../src/shell/ario-shell.c:176 msgid "_Quit" msgstr "離開(_Q)" #: ../src/shell/ario-shell.c:179 msgid "Plu_gins" msgstr "插件(_g)" #: ../src/shell/ario-shell.c:182 msgid "Prefere_nces" msgstr "偏好設定(_n)" #: ../src/shell/ario-shell.c:185 msgid "_Change current album cover" msgstr "更改目前的專輯封面(_C)" #: ../src/shell/ario-shell.c:188 msgid "Download album _covers" msgstr "下載專輯封面(_c)" #: ../src/shell/ario-shell.c:191 msgid "Find similar artists" msgstr "搜尋相似的演出者" #: ../src/shell/ario-shell.c:194 msgid "Add similar songs to playlist" msgstr "新增相似的歌曲到播放清單" #: ../src/shell/ario-shell.c:197 msgid "Go to _previous tab" msgstr "跳至上一個分頁(_p)" #: ../src/shell/ario-shell.c:200 msgid "Go to _next tab" msgstr "跳至下一個分頁(_n)" #: ../src/shell/ario-shell.c:203 msgid "Show _lyrics" msgstr "顯示歌詞(_l)" #: ../src/shell/ario-shell.c:209 msgid "_Translate this application..." msgstr "翻譯這個應用程式(_T)" #: ../src/shell/ario-shell.c:216 msgid "S_tatusbar" msgstr "狀態列(_t)" #: ../src/shell/ario-shell.c:219 msgid "Upper part" msgstr "" #: ../src/shell/ario-shell.c:825 msgid "GTK client for MPD" msgstr "MPD的GTK客戶端" #: ../src/shell/ario-shell.c:826 msgid "translator-credits" msgstr "" "Launchpad Contributions:\n" " Choi https://launchpad.net/~vegetable55\n" " David https://launchpad.net/~davidlowy\n" " sora https://launchpad.net/~sora" #. Create plugins configuration dialog window #: ../src/shell/ario-shell.c:1278 msgid "Configure Plugins" msgstr "設定插件" #. Set window properties #: ../src/shell/ario-shell-coverdownloader.c:187 msgid "Music Player Cover Download" msgstr "播放器封面下載" #: ../src/shell/ario-shell-coverdownloader.c:332 msgid "Download Finished!" msgstr "下載完成!" #. We show the numbers of covers found and not found #: ../src/shell/ario-shell-coverdownloader.c:335 #, c-format msgid "" "%i covers found\n" "%i covers not found\n" "%i covers already exist" msgstr "" "成功找到%i的專輯封面\n" "無法到到%i的專輯封面\n" "已經存在%i的專輯封面" #. Set window properties #: ../src/shell/ario-shell-coverselect.c:242 msgid "Cover Download" msgstr "專輯封面下載" #: ../src/shell/ario-shell-coverselect.c:559 msgid "Error reading file" msgstr "讀取檔案時發生錯誤" #: ../src/shell/ario-shell-coverselect.c:584 msgid "Error saving file" msgstr "儲存檔案時發生錯誤" #: ../src/shell/ario-shell-lyrics.c:43 #: ../src/shell/ario-shell-preferences.c:133 #: ../src/shell/ario-shell-songinfos.c:272 msgid "Lyrics" msgstr "歌詞" #: ../src/shell/ario-shell-lyricsselect.c:152 msgid "Lyrics Download" msgstr "歌詞下載" #: ../src/shell/ario-shell-preferences.c:81 msgid "Ario Preferences" msgstr "Ario偏好設定" #: ../src/shell/ario-shell-preferences.c:113 msgid "Server" msgstr "伺服器" #: ../src/shell/ario-shell-preferences.c:143 msgid "Others" msgstr "其他" #: ../src/shell/ario-shell-similarartists.c:318 #, c-format msgid "%d songs" msgstr "" #. Set window properties #. Set window title #: ../src/shell/ario-shell-songinfos.c:249 #: ../src/shell/ario-shell-songinfos.c:266 #: ../src/shell/ario-shell-songinfos.c:544 msgid "Song Properties" msgstr "歌曲屬性" #: ../src/shell/ario-shell-songinfos.c:455 msgid "Error saving tags of file:" msgstr "儲存標籤時發生錯誤:" #: ../src/widgets/ario-connection-widget.c:652 msgid "You must select a server." msgstr "您必須選擇一個伺服器" #: ../src/widgets/ario-connection-widget.c:702 msgid "New Profile" msgstr "新設定檔" #: ../src/widgets/ario-firstlaunch.c:82 msgid "The following configuration will be used:" msgstr "以下的設定將會被應用:" #: ../src/widgets/ario-firstlaunch.c:106 msgid "" "It is the first time you launch Ario.\n" "This assistant will help you to configure it." msgstr "" "這是你第一次使用Ario,\n" "這個小幫手會協助你進行配置。" #: ../src/widgets/ario-firstlaunch.c:111 msgid "Welcome to Ario" msgstr "歡迎使用Ario" #: ../src/widgets/ario-firstlaunch.c:129 msgid "Configuration" msgstr "設定" #: ../src/widgets/ario-firstlaunch.c:141 msgid "Confirmation" msgstr "確定" #: ../src/widgets/ario-header.c:66 ../src/widgets/ario-tray-icon.h:42 #, c-format msgid "from %s by %s" msgstr "" #: ../src/widgets/ario-header.c:199 msgid "Play previous song" msgstr "播放上一首歌曲" #: ../src/widgets/ario-header.c:217 msgid "Play/Pause the music" msgstr "播放/暫停 音樂" #: ../src/widgets/ario-header.c:229 msgid "Stop the music" msgstr "停止播放" #. Translators - This " of " is used to count the elapsed time #. of a song like in "00:59 of 03:24" #: ../src/widgets/ario-header.c:310 ../src/widgets/ario-tooltip.c:321 msgid " of " msgstr "" #: ../src/widgets/ario-header.c:323 msgid "Toggle random on/off" msgstr "開啟/關閉 隨機播放" #: ../src/widgets/ario-header.c:335 msgid "Toggle repeat on/off" msgstr "開啟/關閉 重覆播放" #: ../src/widgets/ario-header.c:340 msgid "Change the music volume" msgstr "改變音量" #: ../src/widgets/ario-lyrics-editor.c:323 msgid "Downloading lyrics..." msgstr "正在下載歌詞..." #: ../src/widgets/ario-lyrics-editor.c:351 msgid "Lyrics not found" msgstr "找不到歌詞" #: ../src/widgets/ario-playlist.c:133 msgid "_Clear" msgstr "清除(_C)" #: ../src/widgets/ario-playlist.c:136 msgid "_Shuffle" msgstr "隨機(_S)" #: ../src/widgets/ario-playlist.c:139 msgid "Cr_op" msgstr "" #: ../src/widgets/ario-playlist.c:142 msgid "_Search in playlist" msgstr "在播放清單中搜尋(_S)" #: ../src/widgets/ario-playlist.c:145 msgid "_Remove" msgstr "移除 (_R)" #: ../src/widgets/ario-playlist.c:148 msgid "_Save" msgstr "儲存(_S)" #: ../src/widgets/ario-playlist.c:154 msgid "_Go to playing song" msgstr "跳到正在播放的歌曲(_G)" #: ../src/widgets/ario-playlist.c:667 msgid "Filter:" msgstr "過濾器:" #. Create the widgets #: ../src/widgets/ario-playlist.c:1700 msgid "Save playlist" msgstr "儲存播放清單" #: ../src/widgets/ario-playlist.c:1710 msgid "Playlist name :" msgstr "播放清單名稱:" #: ../src/widgets/ario-playlist.c:1746 msgid "Playlist already exists. Do you want to overwrite it?" msgstr "播放清單已存在,你是否想覆蓋它?" #. Format status bar message #: ../src/widgets/ario-status-bar.c:96 msgid "Songs" msgstr "歌曲" #: ../src/widgets/ario-tray-icon.c:102 msgid "_Play" msgstr "播放(_P)" #: ../src/widgets/ario-tray-icon.c:105 msgid "_Pause" msgstr "暫停(_P)" #: ../src/widgets/ario-tray-icon.c:108 msgid "_Stop" msgstr "停止(_S)" #: ../src/widgets/ario-tray-icon.c:111 msgid "_Next" msgstr "下一首(_N)" #: ../src/widgets/ario-tray-icon.c:114 msgid "P_revious" msgstr "上一首(_P)" #: ../src/widgets/ario-tray-icon.h:41 msgid "Not playing" msgstr "沒有播放歌曲" #. Translators: "friendly time" string for the current day, strftime format. like "Today 12:34 am" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1179 msgid "Today %I:%M %p" msgstr "今天 %I:%M %p" #. Translators: "friendly time" string for the previous day, #. * strftime format. e.g. "Yesterday 12:34 am" #. #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1192 msgid "Yesterday %I:%M %p" msgstr "昨天 %I:%M %p" #. Translators: "friendly time" string for a day in the current week, #. * strftime format. e.g. "Wed 12:34 am" #. #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1208 msgid "%a %I:%M %p" msgstr "%a %I:%M %p" #. Translators: "friendly time" string for a day in the current year, #. * strftime format. e.g. "Feb 12 12:34 am" #. #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1220 msgid "%b %d %I:%M %p" msgstr "%b %d %I:%M %p" #. Translators: "friendly time" string for a day in a different year, #. * strftime format. e.g. "Feb 12 1997" #. #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1225 msgid "%b %d %Y" msgstr "%b %d %Y" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1311 #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:4 msgid "Never" msgstr "永不" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1335 msgid "OK" msgstr "確定" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1338 msgid "Logging in" msgstr "登入中" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1341 msgid "Request failed" msgstr "請求失敗" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1344 msgid "Incorrect username" msgstr "用戶名稱錯誤" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1347 msgid "Incorrect password" msgstr "密碼錯誤" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1350 msgid "Handshake failed" msgstr "連線失敗" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1353 msgid "Client update required" msgstr "用戶端需要更新" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1356 msgid "Track submission failed" msgstr "提交樂曲失敗" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1359 msgid "Queue is too long" msgstr "佇列太長" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1362 msgid "Track submission failed too many times" msgstr "提交樂曲失敗次數太多" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1417 msgid "Audioscrobbler preferences" msgstr "Audioscrobbler 偏好設定" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:1 msgid "Disabled" msgstr "停用" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:2 msgid "Last submission time:" msgstr "最後提交時間:" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:3 msgid "Last.fm Profile" msgstr "Last.fm 設定" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:6 msgid "Queued tracks:" msgstr "" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:7 msgid "Status:" msgstr "狀態:" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:8 msgid "Tracks submitted:" msgstr "已提交的樂曲:" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:9 #: ../plugins/radios/ario-radio.c:168 msgid "Username :" msgstr "用戶名稱:" #: ../plugins/audioscrobbler/audioscrobbler.ario-plugin.desktop.in.h:1 msgid "Last.fm" msgstr "Last.fm" #: ../plugins/audioscrobbler/audioscrobbler.ario-plugin.desktop.in.h:2 msgid "Submits song information to last.fm" msgstr "提交歌曲資訊到 last.fm" #: ../plugins/filesystem/ario-filesystem.c:158 msgid "File System" msgstr "檔案系統" #: ../plugins/filesystem/ario-filesystem.c:422 msgid "Music" msgstr "音樂" #: ../plugins/filesystem/filesystem.ario-plugin.desktop.in.h:1 msgid "A File System Browser" msgstr "檔案系統瀏覽器" #: ../plugins/filesystem/filesystem.ario-plugin.desktop.in.h:2 msgid "File System Browser" msgstr "檔案系統瀏覽器" #: ../plugins/information/ario-information.c:114 msgid "Information" msgstr "資訊" #: ../plugins/information/information.ario-plugin.desktop.in.h:1 msgid "Display various information about the playing song" msgstr "顯示正在播放的歌曲資訊" #: ../plugins/information/information.ario-plugin.desktop.in.h:2 msgid "Song Information" msgstr "歌曲資訊" #: ../plugins/information/information.ui.h:2 msgid "Albums from this artist:" msgstr "這個演出者的專輯" #: ../plugins/information/information.ui.h:5 msgid "Lyrics:" msgstr "歌詞:" #: ../plugins/libnotify/libnotify.ario-plugin.desktop.in.h:1 msgid "Add libnotify support" msgstr "新增libnotify支援" #: ../plugins/libnotify/libnotify.ario-plugin.desktop.in.h:2 msgid "Libnotify" msgstr "Libnotify" #: ../plugins/mmkeys/mmkeys.ario-plugin.desktop.in.h:1 msgid "Add multimedia keys support" msgstr "新增媒體匙支援" #: ../plugins/mmkeys/mmkeys.ario-plugin.desktop.in.h:2 msgid "Multimedia Keys" msgstr "媒體匙" #: ../plugins/radios/ario-radio.c:125 msgid "Add a _new radio" msgstr "新增一個電台(_n)" #: ../plugins/radios/ario-radio.c:128 msgid "_Delete this radios" msgstr "刪除這個電台(_D)" #: ../plugins/radios/ario-radio.c:166 msgid "Last.fm: Radio of similar artists" msgstr "Last.fm: 相似演出者的電台" #: ../plugins/radios/ario-radio.c:167 msgid "Last.fm: Radio of group" msgstr "" #: ../plugins/radios/ario-radio.c:167 msgid "Group :" msgstr "" #: ../plugins/radios/ario-radio.c:168 msgid "Last.fm: Personal radio" msgstr "Last.fm: 個人電台" #: ../plugins/radios/ario-radio.c:169 msgid "Last.fm: Radio of genre" msgstr "Last.fm: 分類電台" #: ../plugins/radios/ario-radio.c:184 #: ../plugins/radios/radios.ario-plugin.desktop.in.h:2 msgid "Web Radios" msgstr "網上電台" #: ../plugins/radios/ario-radio.c:246 msgid "Internet Radios" msgstr "網上電台" #. Create dialog window #: ../plugins/radios/ario-radio.c:774 msgid "Edit a WebRadio" msgstr "編輯網上電台" #: ../plugins/radios/ario-radio.c:787 ../plugins/radios/ario-radio.c:923 msgid "URL :" msgstr "URL:" #: ../plugins/radios/ario-radio.c:853 ../plugins/radios/ario-radio.c:997 msgid "Bad parameters. You must specify a name and a URL for the radio." msgstr "參數錯誤,您必須指定網上電台的名稱和URL。" #. Create dialog window #: ../plugins/radios/ario-radio.c:883 msgid "Add a WebRadio" msgstr "新增網上電台" #: ../plugins/radios/ario-radio.c:1083 msgid "Are you sure you want to delete all the selected radios?" msgstr "你確定要刪除選取的電台?" #: ../plugins/radios/radios.ario-plugin.desktop.in.h:1 msgid "Listen to webradios" msgstr "收聽網上電台" #: ../plugins/wikipedia/ario-wikipedia-plugin.c:49 #: ../plugins/wikipedia/ario-wikipedia-plugin.c:50 msgid "Find artist on Wikipedia" msgstr "在維基百科搜尋演出者" #: ../plugins/wikipedia/ario-wikipedia-plugin.c:172 msgid "Wikipedia Plugin - Configuration" msgstr "維基百科插件 - 配置" #: ../plugins/wikipedia/ario-wikipedia-plugin.c:181 msgid "Wikipedia language :" msgstr "維基百科語言" #: ../plugins/wikipedia/wikipedia.ario-plugin.desktop.in.h:1 msgid "A plugin to search current artist on wikipedia" msgstr "可以在維基百科搜尋演出者的插件" #: ../plugins/wikipedia/wikipedia.ario-plugin.desktop.in.h:2 msgid "Wikipedia" msgstr "維基百科" ario-1.6/po/POTFILES.skip0000644000175000017500000000142513226723435011777 00000000000000data/ario.desktop.in plugins/audioscrobbler/audioscrobbler-prefs.glade plugins/information/information.glade plugins/sample/ario-sample-plugin.c plugins/sample/ario-sample-plugin.h plugins/sample/sample.ario-plugin.desktop.in plugins/sample-python/sample-python.ario-plugin.desktop.in data/glade/browser-prefs.glade data/glade/connection-assistant.glade data/glade/connection-prefs.glade data/glade/connection-widget.glade data/glade/cover-prefs.glade data/glade/cover-progress.glade data/glade/cover-select.glade data/glade/others-prefs.glade data/glade/lyrics-prefs.glade data/glade/lyrics-select.glade data/glade/playlist-prefs.glade data/glade/server-prefs.glade data/glade/similar-artists.glade data/glade/song-infos.glade data/glade/stats-prefs.glade data/glade/trayicon-prefs.glade ario-1.6/po/en_CA.po0000644000175000017500000010143113226723435011165 00000000000000# English (Canada) translation for ario # Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009 # This file is distributed under the same license as the ario package. # FIRST AUTHOR , 2009. # msgid "" msgstr "" "Project-Id-Version: ario\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2011-06-13 18:15+0200\n" "PO-Revision-Date: 2010-08-10 20:15+0000\n" "Last-Translator: Jesse Bye \n" "Language-Team: English (Canada) \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2011-06-13 16:32+0000\n" "X-Generator: Launchpad (build 13175)\n" #: ../data/ario.desktop.in.in.h:1 msgid "Ario music player" msgstr "Ario music player" #: ../data/ario.desktop.in.in.h:2 msgid "Client application to mpd" msgstr "Client application to mpd" #: ../data/ui/browser-prefs.ui.h:1 msgid "Alphabetically" msgstr "Alphabetically" #: ../data/ui/browser-prefs.ui.h:2 msgid "By year" msgstr "By year" #: ../data/ui/browser-prefs.ui.h:3 msgid "Library Options" msgstr "Libary Options" #: ../data/ui/browser-prefs.ui.h:4 msgid "Library Organisation" msgstr "Library Organisation" #: ../data/ui/browser-prefs.ui.h:5 msgid "Sort albums: " msgstr "Sort albums: " #: ../data/ui/connection-autodetect.ui.h:1 msgid "" "If you don't see your MPD server thanks to the automatic detection, you " "should check that zeroconf is activated in your MPD configuration or use the " "manual configuration." msgstr "" "If you don't see your MPD server thanks to the automatic detection, you " "should check that zeroconf is activated in your MPD configuration or use the " "manual configuration." #: ../data/ui/connection-autodetect.ui.h:2 msgid "Server autodetection" msgstr "Server autodetection" #: ../data/ui/connection-widget.ui.h:1 msgid "Auto detect" msgstr "Auto detect" #: ../data/ui/connection-widget.ui.h:2 msgid "Default" msgstr "Default" #: ../data/ui/connection-widget.ui.h:3 ../src/widgets/ario-firstlaunch.c:83 msgid "Host :" msgstr "Host :" #: ../data/ui/connection-widget.ui.h:4 msgid "Music directory :" msgstr "Music directory :" #: ../data/ui/connection-widget.ui.h:5 msgid "Music server is on the same computer as Ario" msgstr "Music server is on the same computer as Ario" #. Create the widgets #: ../data/ui/connection-widget.ui.h:6 ../plugins/radios/ario-radio.c:786 #: ../plugins/radios/ario-radio.c:922 msgid "Name :" msgstr "Name :" #: ../data/ui/connection-widget.ui.h:7 #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:5 msgid "Password :" msgstr "Password :" #: ../data/ui/connection-widget.ui.h:8 ../src/widgets/ario-firstlaunch.c:85 msgid "Port :" msgstr "Port :" #: ../data/ui/connection-widget.ui.h:9 msgid "Server type :" msgstr "Server type :" #: ../data/ui/connection-widget.ui.h:10 msgid "Timeout :" msgstr "" #: ../data/ui/connection-widget.ui.h:11 msgid "XMMS 2 (Experimental)" msgstr "XMMS 2 (Experimental)" #: ../data/ui/cover-prefs.ui.h:1 msgid "Automatically download the album cover of the playing song" msgstr "Automatically download the album cover of the playing song" #: ../data/ui/cover-prefs.ui.h:2 ../src/shell/ario-shell-preferences.c:128 msgid "Covers" msgstr "Covers" #: ../data/ui/cover-prefs.ui.h:3 msgid "Covers Sources" msgstr "Covers Sources" #: ../data/ui/cover-prefs.ui.h:4 msgid "Show the covers in the albums list" msgstr "Show the covers in the albums list" #: ../data/ui/cover-prefs.ui.h:5 msgid "Use Amazon." msgstr "Use Amazon." #: ../data/ui/connection-prefs.ui.h:1 #: ../src/shell/ario-shell-preferences.c:108 msgid "Connection" msgstr "Connection" #: ../data/ui/connection-prefs.ui.h:2 msgid "_Autoconnect on startup" msgstr "_Autoconnect on startup" #: ../data/ui/connection-prefs.ui.h:3 ../src/shell/ario-shell.c:167 msgid "_Connect" msgstr "_Connect" #: ../data/ui/connection-prefs.ui.h:4 ../src/shell/ario-shell.c:170 msgid "_Disconnect" msgstr "_Disconnect" #: ../data/ui/connection-assistant.ui.h:1 msgid "" "You need to specify a server to connect to. If you don't see your server " "thanks to the autodetection, you should check that zeroconf/avahi is " "activated in your server or use the manual configuration." msgstr "" "You need to specify a server to connect to. If you don't see your server " "thanks to the autodetection, you should check that zeroconf/avahi is " "activated in your server or use the manual configuration." #: ../data/ui/cover-progress.ui.h:1 ../data/ui/cover-select.ui.h:1 #: ../data/ui/song-infos.ui.h:1 ../plugins/information/information.ui.h:1 msgid "Album :" msgstr "Album :" #: ../data/ui/cover-progress.ui.h:2 ../data/ui/cover-select.ui.h:2 #: ../data/ui/lyrics-select.ui.h:1 ../data/ui/song-infos.ui.h:3 #: ../plugins/information/information.ui.h:3 #: ../plugins/radios/ario-radio.c:166 msgid "Artist :" msgstr "Artist :" #: ../data/ui/cover-progress.ui.h:3 msgid "Downloading cover" msgstr "Downloading cover" #: ../data/ui/cover-select.ui.h:3 msgid "Local search" msgstr "Local search" #: ../data/ui/cover-select.ui.h:4 ../src/sources/ario-search.c:108 msgid "Search" msgstr "Search" #: ../data/ui/others-prefs.ui.h:1 msgid "Allow only one instance of Ario" msgstr "Allow only one instance of Ario" #: ../data/ui/others-prefs.ui.h:2 msgid "Hide window when close button is pressed" msgstr "Hide window when close button is pressed" #: ../data/ui/others-prefs.ui.h:3 msgid "Interface" msgstr "Interface" #: ../data/ui/others-prefs.ui.h:4 msgid "Playlist at the right of tabs" msgstr "Playlist at the right of tabs" #: ../data/ui/others-prefs.ui.h:5 msgid "Playlist below tabs" msgstr "Playlist below tabs" #: ../data/ui/others-prefs.ui.h:6 msgid "Playlist within tabs" msgstr "Playlist within tabs" #: ../data/ui/others-prefs.ui.h:7 msgid "Proxy" msgstr "Proxy" #: ../data/ui/others-prefs.ui.h:8 msgid "Proxy Address :" msgstr "Proxy Address :" #: ../data/ui/others-prefs.ui.h:9 msgid "Proxy Port :" msgstr "Proxy Port :" #: ../data/ui/others-prefs.ui.h:10 msgid "Show tabs" msgstr "Show tabs" #: ../data/ui/others-prefs.ui.h:11 msgid "Use a proxy" msgstr "Use a proxy" #: ../data/ui/lyrics-prefs.ui.h:1 msgid "Lyrics Sources" msgstr "Lyrics Sources" #: ../data/ui/lyrics-select.ui.h:2 ../data/ui/song-infos.ui.h:13 #: ../plugins/information/information.ui.h:6 msgid "Title :" msgstr "Title :" #: ../data/ui/playlist-prefs.ui.h:1 msgid "Add after playing song" msgstr "Add after playing song" #: ../data/ui/playlist-prefs.ui.h:2 msgid "Add and play" msgstr "Add and play" #: ../data/ui/playlist-prefs.ui.h:3 ../data/ui/similar-artists.ui.h:2 msgid "Add to playlist" msgstr "Add to playlist" #. ARIO_TAG_ARTIST #: ../data/ui/playlist-prefs.ui.h:4 ../src/servers/ario-server.c:46 #: ../src/sources/ario-tree-albums.c:213 ../src/widgets/ario-playlist.c:541 #: ../src/widgets/ario-songlist.c:228 ../src/widgets/ario-tray-icon.c:565 msgid "Album" msgstr "Album" #: ../data/ui/playlist-prefs.ui.h:5 ../src/servers/ario-server.c:45 #: ../src/widgets/ario-playlist.c:541 ../src/widgets/ario-songlist.c:213 #: ../src/widgets/ario-tray-icon.c:563 msgid "Artist" msgstr "Artist" #. ARIO_TAG_GENRE #: ../data/ui/playlist-prefs.ui.h:6 ../src/servers/ario-server.c:52 #: ../src/widgets/ario-playlist.c:541 msgid "Date" msgstr "Date" #: ../data/ui/playlist-prefs.ui.h:7 ../src/widgets/ario-playlist.c:541 msgid "Disc" msgstr "Disc" #: ../data/ui/playlist-prefs.ui.h:8 msgid "Double click" msgstr "Double click" #: ../data/ui/playlist-prefs.ui.h:9 ../src/widgets/ario-playlist.c:541 msgid "Duration" msgstr "Duration" #: ../data/ui/playlist-prefs.ui.h:10 ../src/widgets/ario-playlist.c:541 msgid "File" msgstr "File" #. ARIO_TAG_TRACK #. ARIO_TAG_NAME #: ../data/ui/playlist-prefs.ui.h:11 ../src/servers/ario-server.c:51 #: ../src/widgets/ario-playlist.c:541 msgid "Genre" msgstr "Genre" #: ../data/ui/playlist-prefs.ui.h:12 msgid "Go to current song when a new song is played" msgstr "Go to current song when a new song is played" #: ../data/ui/playlist-prefs.ui.h:13 msgid "Mode" msgstr "Mode" #: ../data/ui/playlist-prefs.ui.h:14 msgid "On double click:" msgstr "On double click:" #: ../data/ui/playlist-prefs.ui.h:15 ../src/sources/ario-storedplaylists.c:229 #: ../src/shell/ario-shell.c:222 ../src/shell/ario-shell-preferences.c:123 #: ../src/widgets/ario-playlist.c:272 msgid "Playlist" msgstr "Playlist" #: ../data/ui/playlist-prefs.ui.h:16 msgid "Playlist mode:" msgstr "Playlist mode:" #: ../data/ui/playlist-prefs.ui.h:17 msgid "Replace in playlist" msgstr "Replace in playlist" #: ../data/ui/playlist-prefs.ui.h:18 msgid "Show rows:" msgstr "Show rows:" #. ARIO_TAG_ALBUM_ARTIST #: ../data/ui/playlist-prefs.ui.h:19 ../src/servers/ario-server.c:48 #: ../src/sources/ario-tree-songs.c:145 ../src/widgets/ario-playlist.c:541 #: ../src/widgets/ario-songlist.c:198 ../src/widgets/ario-tray-icon.c:567 msgid "Title" msgstr "Title" #. ARIO_TAG_TITLE #: ../data/ui/playlist-prefs.ui.h:20 ../src/servers/ario-server.c:49 #: ../src/sources/ario-tree-songs.c:138 ../src/widgets/ario-playlist.c:541 msgid "Track" msgstr "Track" #: ../data/ui/server-prefs.ui.h:1 msgid "Audio outputs" msgstr "Audio outputs" #: ../data/ui/server-prefs.ui.h:2 msgid "Crossfade" msgstr "Crossfade" #: ../data/ui/server-prefs.ui.h:3 msgid "Database" msgstr "Database" #: ../data/ui/server-prefs.ui.h:4 msgid "Last updated:" msgstr "Last updated:" #: ../data/ui/server-prefs.ui.h:5 msgid "Stop music on exit" msgstr "Stop music on exit" #: ../data/ui/server-prefs.ui.h:6 msgid "Update on startup" msgstr "Update on startup" #: ../data/ui/server-prefs.ui.h:7 msgid "_Update" msgstr "_Update" #: ../data/ui/server-prefs.ui.h:8 msgid "enable crossfade" msgstr "enable crossfade" #: ../data/ui/server-prefs.ui.h:9 msgid "fade time (s):" msgstr "fade time (s):" #: ../data/ui/server-prefs.ui.h:10 ../src/ario-util.c:50 ../src/ario-util.c:71 #: ../src/ario-util.c:93 ../plugins/information/information.ui.h:7 #, c-format msgid "n/a" msgstr "n/a" #: ../data/ui/similar-artists.ui.h:1 msgid "Add all to playlist" msgstr "Add all to playlist" #: ../data/ui/similar-artists.ui.h:3 msgid "Find on Last.fm" msgstr "Find on Last.fm" #: ../data/ui/stats-prefs.ui.h:1 msgid "Database play time :" msgstr "Database play time :" #: ../data/ui/stats-prefs.ui.h:2 msgid "Number of albums :" msgstr "Number of albums :" #: ../data/ui/stats-prefs.ui.h:3 msgid "Number of artists :" msgstr "Number of artists :" #: ../data/ui/stats-prefs.ui.h:4 msgid "Number of songs :" msgstr "Number of songs :" #: ../data/ui/stats-prefs.ui.h:5 msgid "Play time :" msgstr "Play time :" #: ../data/ui/stats-prefs.ui.h:6 ../src/shell/ario-shell-preferences.c:148 msgid "Statistics" msgstr "Statistics" #: ../data/ui/stats-prefs.ui.h:7 msgid "Uptime :" msgstr "Uptime :" #: ../data/ui/song-infos.ui.h:2 msgid "Album Artist :" msgstr "Album Artist :" #: ../data/ui/song-infos.ui.h:4 msgid "Comment :" msgstr "Comment :" #: ../data/ui/song-infos.ui.h:5 msgid "Composer :" msgstr "Composer :" #: ../data/ui/song-infos.ui.h:6 msgid "Date :" msgstr "Date :" #: ../data/ui/song-infos.ui.h:7 msgid "Disc :" msgstr "Disc :" #: ../data/ui/song-infos.ui.h:8 msgid "Filename :" msgstr "Filename :" #: ../data/ui/song-infos.ui.h:9 ../plugins/radios/ario-radio.c:169 msgid "Genre :" msgstr "Genre :" #: ../data/ui/song-infos.ui.h:10 ../plugins/information/information.ui.h:4 msgid "Length :" msgstr "Length :" #: ../data/ui/song-infos.ui.h:11 msgid "Performer :" msgstr "Performer :" #: ../data/ui/song-infos.ui.h:12 msgid "Song" msgstr "Song" #: ../data/ui/song-infos.ui.h:14 msgid "Track :" msgstr "Track :" #: ../data/ui/trayicon-prefs.ui.h:1 msgid "Do nothing" msgstr "Do nothing" #: ../data/ui/trayicon-prefs.ui.h:2 msgid "Mute" msgstr "Mute" #: ../data/ui/trayicon-prefs.ui.h:3 ../src/shell/ario-shell-preferences.c:138 msgid "Notification" msgstr "Notification" #: ../data/ui/trayicon-prefs.ui.h:4 msgid "Notification on song change" msgstr "Notification on song change" #: ../data/ui/trayicon-prefs.ui.h:5 msgid "Notification time: " msgstr "Notification time: " #: ../data/ui/trayicon-prefs.ui.h:6 msgid "On middle button click on tray icon :" msgstr "On middle button click on tray icon :" #: ../data/ui/trayicon-prefs.ui.h:7 ../src/widgets/ario-header.c:241 msgid "Play next song" msgstr "Play next song" #: ../data/ui/trayicon-prefs.ui.h:8 msgid "Play/Pause" msgstr "Play/Pause" #: ../data/ui/trayicon-prefs.ui.h:9 msgid "Tray icon" msgstr "Tray icon" #: ../src/ario-main.c:67 msgid "Start minimized window" msgstr "Start minimized window" #: ../src/ario-main.c:68 msgid "Start with specific profile" msgstr "" #. Format result string #: ../src/ario-util.c:110 msgid "seconds" msgstr "seconds" #: ../src/ario-util.c:112 msgid "minutes" msgstr "minutes" #: ../src/ario-util.c:118 msgid "hours" msgstr "hours" #: ../src/ario-util.c:124 msgid "days" msgstr "days" #: ../src/covers/ario-cover.c:149 msgid "The cover already exists. Do you want to replace it?" msgstr "The cover already exists. Do you want to replace it?" #: ../src/covers/ario-cover-local.c:48 msgid "Music Directory" msgstr "Music Directory" #: ../src/playlist/ario-playlist-dynamic.c:49 msgid "songs of same artist" msgstr "songs of same artist" #: ../src/playlist/ario-playlist-dynamic.c:50 msgid "songs of same album" msgstr "songs of same album" #: ../src/playlist/ario-playlist-dynamic.c:51 msgid "songs of similar artists" msgstr "songs of similar artists" #: ../src/playlist/ario-playlist-dynamic.c:52 msgid "albums of same artists" msgstr "albums of same artists" #: ../src/playlist/ario-playlist-dynamic.c:53 msgid "albums of similar artists" msgstr "albums of similar artists" #: ../src/playlist/ario-playlist-dynamic.c:69 msgid "Dynamic Playlist" msgstr "Dynamic Playlist" #: ../src/playlist/ario-playlist-queue.c:49 msgid "Queue Mode" msgstr "Queue Mode" #: ../src/playlist/ario-playlist-normal.c:47 msgid "Normal" msgstr "Normal" #: ../src/plugins/ario-plugin-manager.c:45 msgid "Plugin" msgstr "Plug-in" #: ../src/plugins/ario-plugin-manager.c:46 msgid "Enabled" msgstr "Enabled" #: ../src/plugins/ario-plugin-manager.c:480 ../src/shell/ario-shell.c:206 msgid "_About" msgstr "_About" #: ../src/plugins/ario-plugin-manager.c:488 msgid "C_onfigure" msgstr "C_onfigure" #: ../src/plugins/ario-plugin-manager.c:497 msgid "A_ctivate" msgstr "A_ctivate" #: ../src/plugins/ario-plugin-manager.c:508 msgid "Ac_tivate All" msgstr "Ac_tivate All" #: ../src/plugins/ario-plugin-manager.c:513 msgid "_Deactivate All" msgstr "_Deactivate All" #: ../src/plugins/ario-plugin-manager.c:722 msgid "Active plugins" msgstr "Active plug-ins" #: ../src/preferences/ario-server-preferences.c:182 #: ../src/preferences/ario-stats-preferences.c:151 #: ../src/preferences/ario-stats-preferences.c:152 #: ../src/preferences/ario-stats-preferences.c:153 #: ../src/preferences/ario-stats-preferences.c:154 #: ../src/preferences/ario-stats-preferences.c:155 #: ../src/preferences/ario-stats-preferences.c:156 msgid "Not connected" msgstr "Not connected" #: ../src/preferences/ario-server-preferences.c:187 #: ../src/preferences/ario-server-preferences.c:278 #: ../src/widgets/ario-status-bar.c:100 msgid "Updating..." msgstr "Updating..." #: ../src/servers/ario-mpd.c:410 ../src/servers/ario-mpd2.c:522 msgid "Connecting to server..." msgstr "Connecting to server..." #: ../src/servers/ario-mpd.c:438 ../src/servers/ario-mpd2.c:550 msgid "Impossible to connect to server. Check the connection options." msgstr "Impossible to connect to server. Check the connection options." #. ARIO_TAG_ALBUM #: ../src/servers/ario-server.c:47 msgid "Album Artist" msgstr "Album Artist" #. ARIO_TAG_DATE #: ../src/servers/ario-server.c:53 msgid "Composer" msgstr "Composer" #. ARIO_TAG_COMPOSER #: ../src/servers/ario-server.c:54 msgid "Performer" msgstr "Performer" #. ARIO_TAG_PERFORMER #. ARIO_TAG_COMMENT #. ARIO_TAG_DISC #: ../src/servers/ario-server.c:57 msgid "Filename" msgstr "Filename" #. ARIO_TAG_FILENAME #: ../src/servers/ario-server.c:58 msgid "Any" msgstr "Any" #. impossible time or broken locale settings #: ../src/servers/ario-server.h:27 #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1235 msgid "Unknown" msgstr "Unknown" #: ../src/sources/ario-browser.c:82 ../src/sources/ario-search.c:70 #: ../src/sources/ario-storedplaylists.c:88 #: ../src/sources/ario-storedplaylists.c:106 #: ../plugins/filesystem/ario-filesystem.c:94 #: ../plugins/filesystem/ario-filesystem.c:109 #: ../plugins/radios/ario-radio.c:116 msgid "_Add to playlist" msgstr "_Add to playlist" #: ../src/sources/ario-browser.c:85 ../src/sources/ario-search.c:73 #: ../src/sources/ario-storedplaylists.c:91 #: ../src/sources/ario-storedplaylists.c:109 #: ../plugins/filesystem/ario-filesystem.c:97 #: ../plugins/filesystem/ario-filesystem.c:112 #: ../plugins/radios/ario-radio.c:119 msgid "Add and _play" msgstr "Add and _play" #: ../src/sources/ario-browser.c:88 ../src/sources/ario-search.c:76 #: ../src/sources/ario-storedplaylists.c:94 #: ../src/sources/ario-storedplaylists.c:112 #: ../plugins/filesystem/ario-filesystem.c:100 #: ../plugins/filesystem/ario-filesystem.c:115 #: ../plugins/radios/ario-radio.c:122 msgid "_Replace in playlist" msgstr "_Replace in playlist" #: ../src/sources/ario-browser.c:91 msgid "Get the covers" msgstr "Get the covers" #: ../src/sources/ario-browser.c:94 msgid "_Delete the covers" msgstr "_Delete the covers" #: ../src/sources/ario-browser.c:97 ../src/sources/ario-browser.c:100 #: ../src/sources/ario-search.c:79 ../src/sources/ario-storedplaylists.c:115 #: ../src/widgets/ario-playlist.c:151 #: ../plugins/filesystem/ario-filesystem.c:118 #: ../plugins/radios/ario-radio.c:131 msgid "_Properties" msgstr "_Properties" #: ../src/sources/ario-browser.c:125 ../src/shell/ario-shell-preferences.c:118 msgid "Library" msgstr "Library" #: ../src/sources/ario-storedplaylists.c:97 msgid "_Delete" msgstr "_Delete" #: ../src/sources/ario-storedplaylists.c:151 msgid "Playlists" msgstr "Playlists" #: ../src/sources/ario-storedplaylists.c:592 msgid "Are you sure that you want to delete all the selected playlists?" msgstr "Are you sure that you want to delete all the selected playlists?" #: ../src/sources/ario-tree.c:856 msgid "Are you sure that you want to remove all the selected covers?" msgstr "Are you sure that you want to remove all the selected covers?" #. Translators - This "Cover" refers to an album cover art #: ../src/sources/ario-tree-albums.c:199 msgid "Cover" msgstr "Cover" #: ../src/shell/ario-shell.c:160 msgid "_File" msgstr "_File" #: ../src/shell/ario-shell.c:161 msgid "_Edit" msgstr "_Edit" #: ../src/shell/ario-shell.c:162 msgid "_View" msgstr "_View" #: ../src/shell/ario-shell.c:163 msgid "_Control" msgstr "_Control" #: ../src/shell/ario-shell.c:164 msgid "_Tool" msgstr "_Tool" #: ../src/shell/ario-shell.c:165 msgid "_Help" msgstr "_Help" #: ../src/shell/ario-shell.c:173 msgid "_Update database" msgstr "_Update database" #: ../src/shell/ario-shell.c:176 msgid "_Quit" msgstr "_Quit" #: ../src/shell/ario-shell.c:179 msgid "Plu_gins" msgstr "Plu_gins" #: ../src/shell/ario-shell.c:182 msgid "Prefere_nces" msgstr "Prefere_nces" #: ../src/shell/ario-shell.c:185 msgid "_Change current album cover" msgstr "_Change current album cover" #: ../src/shell/ario-shell.c:188 msgid "Download album _covers" msgstr "Download album _covers" #: ../src/shell/ario-shell.c:191 msgid "Find similar artists" msgstr "Find similar artists" #: ../src/shell/ario-shell.c:194 msgid "Add similar songs to playlist" msgstr "Add similar songs to playlist" #: ../src/shell/ario-shell.c:197 msgid "Go to _previous tab" msgstr "Go to _previous tab" #: ../src/shell/ario-shell.c:200 msgid "Go to _next tab" msgstr "Go to _next tab" #: ../src/shell/ario-shell.c:203 msgid "Show _lyrics" msgstr "Show _lyrics" #: ../src/shell/ario-shell.c:209 msgid "_Translate this application..." msgstr "_Translate this application..." #: ../src/shell/ario-shell.c:216 msgid "S_tatusbar" msgstr "S_tatusbar" #: ../src/shell/ario-shell.c:219 msgid "Upper part" msgstr "Upper part" #: ../src/shell/ario-shell.c:825 msgid "GTK client for MPD" msgstr "GTK client for MPD" #: ../src/shell/ario-shell.c:826 msgid "translator-credits" msgstr "" "Launchpad Contributions:\n" " Itai Molenaar https://launchpad.net/~imolenaar-deactivatedaccount\n" " Jesse Bye https://launchpad.net/~jesse-bye\n" " Ken Sharp https://launchpad.net/~kennybobs\n" " Marc Pavot https://launchpad.net/~marc-pavot" #. Create plugins configuration dialog window #: ../src/shell/ario-shell.c:1278 msgid "Configure Plugins" msgstr "Configure Plug-ins" #. Set window properties #: ../src/shell/ario-shell-coverdownloader.c:187 msgid "Music Player Cover Download" msgstr "Music Player Cover Download" #: ../src/shell/ario-shell-coverdownloader.c:332 msgid "Download Finished!" msgstr "Download Finished!" #. We show the numbers of covers found and not found #: ../src/shell/ario-shell-coverdownloader.c:335 #, c-format msgid "" "%i covers found\n" "%i covers not found\n" "%i covers already exist" msgstr "" "%i covers found\n" "%i covers not found\n" "%i covers already exist" #. Set window properties #: ../src/shell/ario-shell-coverselect.c:242 msgid "Cover Download" msgstr "Cover Download" #: ../src/shell/ario-shell-coverselect.c:559 msgid "Error reading file" msgstr "Error reading file" #: ../src/shell/ario-shell-coverselect.c:584 msgid "Error saving file" msgstr "Error saving file" #: ../src/shell/ario-shell-lyrics.c:43 #: ../src/shell/ario-shell-preferences.c:133 #: ../src/shell/ario-shell-songinfos.c:272 msgid "Lyrics" msgstr "Lyrics" #: ../src/shell/ario-shell-lyricsselect.c:152 msgid "Lyrics Download" msgstr "Lyrics Download" #: ../src/shell/ario-shell-preferences.c:81 msgid "Ario Preferences" msgstr "Ario Preferences" #: ../src/shell/ario-shell-preferences.c:113 msgid "Server" msgstr "Server" #: ../src/shell/ario-shell-preferences.c:143 msgid "Others" msgstr "Others" #: ../src/shell/ario-shell-similarartists.c:318 #, c-format msgid "%d songs" msgstr "%d songs" #. Set window properties #. Set window title #: ../src/shell/ario-shell-songinfos.c:249 #: ../src/shell/ario-shell-songinfos.c:266 #: ../src/shell/ario-shell-songinfos.c:544 msgid "Song Properties" msgstr "Song Properties" #: ../src/shell/ario-shell-songinfos.c:455 msgid "Error saving tags of file:" msgstr "Error saving tags of file:" #: ../src/widgets/ario-connection-widget.c:652 msgid "You must select a server." msgstr "You must select a server." #: ../src/widgets/ario-connection-widget.c:702 msgid "New Profile" msgstr "New Profile" #: ../src/widgets/ario-firstlaunch.c:82 msgid "The following configuration will be used:" msgstr "The following configuration will be used:" #: ../src/widgets/ario-firstlaunch.c:106 msgid "" "It is the first time you launch Ario.\n" "This assistant will help you to configure it." msgstr "" "It is the first time you launch Ario.\n" "This assistant will help you to configure it." #: ../src/widgets/ario-firstlaunch.c:111 msgid "Welcome to Ario" msgstr "Welcome to Ario" #: ../src/widgets/ario-firstlaunch.c:129 msgid "Configuration" msgstr "Configuration" #: ../src/widgets/ario-firstlaunch.c:141 msgid "Confirmation" msgstr "Confirmation" #: ../src/widgets/ario-header.c:66 ../src/widgets/ario-tray-icon.h:42 #, c-format msgid "from %s by %s" msgstr "from %s by %s" #: ../src/widgets/ario-header.c:199 msgid "Play previous song" msgstr "Play previous song" #: ../src/widgets/ario-header.c:217 msgid "Play/Pause the music" msgstr "Play/Pause the music" #: ../src/widgets/ario-header.c:229 msgid "Stop the music" msgstr "Stop the music" #. Translators - This " of " is used to count the elapsed time #. of a song like in "00:59 of 03:24" #: ../src/widgets/ario-header.c:310 ../src/widgets/ario-tooltip.c:321 msgid " of " msgstr " of " #: ../src/widgets/ario-header.c:323 msgid "Toggle random on/off" msgstr "Toggle random on/off" #: ../src/widgets/ario-header.c:335 msgid "Toggle repeat on/off" msgstr "Toggle repeat on/off" #: ../src/widgets/ario-header.c:340 msgid "Change the music volume" msgstr "Change the music volume" #: ../src/widgets/ario-lyrics-editor.c:323 msgid "Downloading lyrics..." msgstr "Downloading lyrics..." #: ../src/widgets/ario-lyrics-editor.c:351 msgid "Lyrics not found" msgstr "Lyrics not found" #: ../src/widgets/ario-playlist.c:133 msgid "_Clear" msgstr "_Clear" #: ../src/widgets/ario-playlist.c:136 msgid "_Shuffle" msgstr "_Shuffle" #: ../src/widgets/ario-playlist.c:139 msgid "Cr_op" msgstr "Cr_op" #: ../src/widgets/ario-playlist.c:142 msgid "_Search in playlist" msgstr "_Search in playlist" #: ../src/widgets/ario-playlist.c:145 msgid "_Remove" msgstr "_Remove" #: ../src/widgets/ario-playlist.c:148 msgid "_Save" msgstr "_Save" #: ../src/widgets/ario-playlist.c:154 msgid "_Go to playing song" msgstr "_Go to playing song" #: ../src/widgets/ario-playlist.c:667 msgid "Filter:" msgstr "Filter:" #. Create the widgets #: ../src/widgets/ario-playlist.c:1700 msgid "Save playlist" msgstr "Save playlist" #: ../src/widgets/ario-playlist.c:1710 msgid "Playlist name :" msgstr "Playlist name :" #: ../src/widgets/ario-playlist.c:1746 msgid "Playlist already exists. Do you want to overwrite it?" msgstr "Playlist already exists. Do you want to overwrite it?" #. Format status bar message #: ../src/widgets/ario-status-bar.c:96 msgid "Songs" msgstr "Songs" #: ../src/widgets/ario-tray-icon.c:102 msgid "_Play" msgstr "_Play" #: ../src/widgets/ario-tray-icon.c:105 msgid "_Pause" msgstr "_Pause" #: ../src/widgets/ario-tray-icon.c:108 msgid "_Stop" msgstr "_Stop" #: ../src/widgets/ario-tray-icon.c:111 msgid "_Next" msgstr "_Next" #: ../src/widgets/ario-tray-icon.c:114 msgid "P_revious" msgstr "P_revious" #: ../src/widgets/ario-tray-icon.h:41 msgid "Not playing" msgstr "Not playing" #. Translators: "friendly time" string for the current day, strftime format. like "Today 12:34 am" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1179 msgid "Today %I:%M %p" msgstr "Today %I:%M %p" #. Translators: "friendly time" string for the previous day, #. * strftime format. e.g. "Yesterday 12:34 am" #. #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1192 msgid "Yesterday %I:%M %p" msgstr "Yesterday %I:%M %p" #. Translators: "friendly time" string for a day in the current week, #. * strftime format. e.g. "Wed 12:34 am" #. #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1208 msgid "%a %I:%M %p" msgstr "%a %I:%M %p" #. Translators: "friendly time" string for a day in the current year, #. * strftime format. e.g. "Feb 12 12:34 am" #. #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1220 msgid "%b %d %I:%M %p" msgstr "%b %d %I:%M %p" #. Translators: "friendly time" string for a day in a different year, #. * strftime format. e.g. "Feb 12 1997" #. #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1225 msgid "%b %d %Y" msgstr "%b %d %Y" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1311 #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:4 msgid "Never" msgstr "Never" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1335 msgid "OK" msgstr "OK" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1338 msgid "Logging in" msgstr "Logging in" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1341 msgid "Request failed" msgstr "Request failed" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1344 msgid "Incorrect username" msgstr "Incorrect username" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1347 msgid "Incorrect password" msgstr "Incorrect password" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1350 msgid "Handshake failed" msgstr "Handshake failed" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1353 msgid "Client update required" msgstr "Client update required" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1356 msgid "Track submission failed" msgstr "Track submission failed" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1359 msgid "Queue is too long" msgstr "Queue is too long" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1362 msgid "Track submission failed too many times" msgstr "Track submission failed too many times" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1417 msgid "Audioscrobbler preferences" msgstr "Audioscrobbler preferences" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:1 msgid "Disabled" msgstr "Disabled" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:2 msgid "Last submission time:" msgstr "Last submission time:" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:3 msgid "Last.fm Profile" msgstr "Last.fm Profile" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:6 msgid "Queued tracks:" msgstr "Queued tracks:" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:7 msgid "Status:" msgstr "Status:" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:8 msgid "Tracks submitted:" msgstr "Tracks submitted:" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:9 #: ../plugins/radios/ario-radio.c:168 msgid "Username :" msgstr "Username :" #: ../plugins/audioscrobbler/audioscrobbler.ario-plugin.desktop.in.h:1 msgid "Last.fm" msgstr "Last.fm" #: ../plugins/audioscrobbler/audioscrobbler.ario-plugin.desktop.in.h:2 msgid "Submits song information to last.fm" msgstr "Submits song information to last.fm" #: ../plugins/filesystem/ario-filesystem.c:158 msgid "File System" msgstr "File System" #: ../plugins/filesystem/ario-filesystem.c:422 msgid "Music" msgstr "Music" #: ../plugins/filesystem/filesystem.ario-plugin.desktop.in.h:1 msgid "A File System Browser" msgstr "A File System Browser" #: ../plugins/filesystem/filesystem.ario-plugin.desktop.in.h:2 msgid "File System Browser" msgstr "File System Browser" #: ../plugins/information/ario-information.c:114 msgid "Information" msgstr "Information" #: ../plugins/information/information.ario-plugin.desktop.in.h:1 msgid "Display various information about the playing song" msgstr "Display various information about the playing song" #: ../plugins/information/information.ario-plugin.desktop.in.h:2 msgid "Song Information" msgstr "Song Information" #: ../plugins/information/information.ui.h:2 msgid "Albums from this artist:" msgstr "Albums from this artist:" #: ../plugins/information/information.ui.h:5 msgid "Lyrics:" msgstr "Lyrics:" #: ../plugins/libnotify/libnotify.ario-plugin.desktop.in.h:1 msgid "Add libnotify support" msgstr "Add libnotify support" #: ../plugins/libnotify/libnotify.ario-plugin.desktop.in.h:2 msgid "Libnotify" msgstr "Libnotify" #: ../plugins/mmkeys/mmkeys.ario-plugin.desktop.in.h:1 msgid "Add multimedia keys support" msgstr "Add multimedia keys support" #: ../plugins/mmkeys/mmkeys.ario-plugin.desktop.in.h:2 msgid "Multimedia Keys" msgstr "Multimedia Keys" #: ../plugins/radios/ario-radio.c:125 msgid "Add a _new radio" msgstr "Add a _new radio" #: ../plugins/radios/ario-radio.c:128 msgid "_Delete this radios" msgstr "_Delete this radios" #: ../plugins/radios/ario-radio.c:166 msgid "Last.fm: Radio of similar artists" msgstr "Last.fm: Radio of similar artists" #: ../plugins/radios/ario-radio.c:167 msgid "Last.fm: Radio of group" msgstr "Last.fm: Radio of group" #: ../plugins/radios/ario-radio.c:167 msgid "Group :" msgstr "Group :" #: ../plugins/radios/ario-radio.c:168 msgid "Last.fm: Personal radio" msgstr "Last.fm: Personal radio" #: ../plugins/radios/ario-radio.c:169 msgid "Last.fm: Radio of genre" msgstr "Last.fm: Radio of genre" #: ../plugins/radios/ario-radio.c:184 #: ../plugins/radios/radios.ario-plugin.desktop.in.h:2 msgid "Web Radios" msgstr "Web Radios" #: ../plugins/radios/ario-radio.c:246 msgid "Internet Radios" msgstr "Internet Radios" #. Create dialog window #: ../plugins/radios/ario-radio.c:774 msgid "Edit a WebRadio" msgstr "Edit a WebRadio" #: ../plugins/radios/ario-radio.c:787 ../plugins/radios/ario-radio.c:923 msgid "URL :" msgstr "URL :" #: ../plugins/radios/ario-radio.c:853 ../plugins/radios/ario-radio.c:997 msgid "Bad parameters. You must specify a name and a URL for the radio." msgstr "Bad parameters. You must specify a name and a URL for the radio." #. Create dialog window #: ../plugins/radios/ario-radio.c:883 msgid "Add a WebRadio" msgstr "Add a WebRadio" #: ../plugins/radios/ario-radio.c:1083 msgid "Are you sure you want to delete all the selected radios?" msgstr "Are you sure you want to delete all the selected radios?" #: ../plugins/radios/radios.ario-plugin.desktop.in.h:1 msgid "Listen to webradios" msgstr "Listen to webradios" #: ../plugins/wikipedia/ario-wikipedia-plugin.c:49 #: ../plugins/wikipedia/ario-wikipedia-plugin.c:50 msgid "Find artist on Wikipedia" msgstr "Find artist on Wikipedia" #: ../plugins/wikipedia/ario-wikipedia-plugin.c:172 msgid "Wikipedia Plugin - Configuration" msgstr "Wikipedia Plug-in - Configuration" #: ../plugins/wikipedia/ario-wikipedia-plugin.c:181 msgid "Wikipedia language :" msgstr "Wikipedia language :" #: ../plugins/wikipedia/wikipedia.ario-plugin.desktop.in.h:1 msgid "A plugin to search current artist on wikipedia" msgstr "A plug-in to search current artist on Wikipedia" #: ../plugins/wikipedia/wikipedia.ario-plugin.desktop.in.h:2 msgid "Wikipedia" msgstr "Wikipedia" #~ msgid "Add a search criteria" #~ msgstr "Add a search criteria" #~ msgid "Remove a search criteria" #~ msgstr "Remove a search criteria" #~ msgid "Search songs in the library" #~ msgstr "Search songs in the library" ario-1.6/po/uk.po0000644000175000017500000011443513226723435010647 00000000000000# Ukrainian translation for ario # Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 # This file is distributed under the same license as the ario package. # FIRST AUTHOR , 2010. # msgid "" msgstr "" "Project-Id-Version: ario\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2011-06-13 18:15+0200\n" "PO-Revision-Date: 2010-07-31 07:23+0000\n" "Last-Translator: Sergiy Gavrylov \n" "Language-Team: Ukrainian \n" "Language: uk\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2011-06-13 16:32+0000\n" "X-Generator: Launchpad (build 13175)\n" #: ../data/ario.desktop.in.in.h:1 msgid "Ario music player" msgstr "Музичний програвач Ario" #: ../data/ario.desktop.in.in.h:2 msgid "Client application to mpd" msgstr "Програма-клієнт для mpd" #: ../data/ui/browser-prefs.ui.h:1 msgid "Alphabetically" msgstr "За абеткою" #: ../data/ui/browser-prefs.ui.h:2 msgid "By year" msgstr "По року" #: ../data/ui/browser-prefs.ui.h:3 msgid "Library Options" msgstr "Опції бібліотеки" #: ../data/ui/browser-prefs.ui.h:4 msgid "Library Organisation" msgstr "Організація бібліотеки" #: ../data/ui/browser-prefs.ui.h:5 msgid "Sort albums: " msgstr "Сортувати альбоми: " #: ../data/ui/connection-autodetect.ui.h:1 msgid "" "If you don't see your MPD server thanks to the automatic detection, you " "should check that zeroconf is activated in your MPD configuration or use the " "manual configuration." msgstr "" "Якщо ви не бачите MPD-сервер дякуючи автоматичному виявленню, перевірте чи " "zeroconf активовано у конфігурації MPD або використайте ручне налаштування." #: ../data/ui/connection-autodetect.ui.h:2 msgid "Server autodetection" msgstr "Автоматичне виявлення серверу" #: ../data/ui/connection-widget.ui.h:1 msgid "Auto detect" msgstr "Автоматичне виявлення" #: ../data/ui/connection-widget.ui.h:2 msgid "Default" msgstr "Стандартно" #: ../data/ui/connection-widget.ui.h:3 ../src/widgets/ario-firstlaunch.c:83 msgid "Host :" msgstr "Хост-машина :" #: ../data/ui/connection-widget.ui.h:4 msgid "Music directory :" msgstr "Директорія із музикою :" #: ../data/ui/connection-widget.ui.h:5 msgid "Music server is on the same computer as Ario" msgstr "Музичний сервер знаходиться на тому ж комп'ютері що й Ario" #. Create the widgets #: ../data/ui/connection-widget.ui.h:6 ../plugins/radios/ario-radio.c:786 #: ../plugins/radios/ario-radio.c:922 msgid "Name :" msgstr "Назва :" #: ../data/ui/connection-widget.ui.h:7 #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:5 msgid "Password :" msgstr "Пароль :" #: ../data/ui/connection-widget.ui.h:8 ../src/widgets/ario-firstlaunch.c:85 msgid "Port :" msgstr "Порт :" #: ../data/ui/connection-widget.ui.h:9 msgid "Server type :" msgstr "Тип серверу :" #: ../data/ui/connection-widget.ui.h:10 msgid "Timeout :" msgstr "" #: ../data/ui/connection-widget.ui.h:11 msgid "XMMS 2 (Experimental)" msgstr "XMMS 2 (Експериментальний)" #: ../data/ui/cover-prefs.ui.h:1 msgid "Automatically download the album cover of the playing song" msgstr "Автоматично завантажувати обкладинку альбому пісні, що зараз грає" #: ../data/ui/cover-prefs.ui.h:2 ../src/shell/ario-shell-preferences.c:128 msgid "Covers" msgstr "Обкладинки" #: ../data/ui/cover-prefs.ui.h:3 msgid "Covers Sources" msgstr "Джерела обкладинок" #: ../data/ui/cover-prefs.ui.h:4 msgid "Show the covers in the albums list" msgstr "Показувати обкладинки у списку альбомів" #: ../data/ui/cover-prefs.ui.h:5 msgid "Use Amazon." msgstr "Використовувати Amazon." #: ../data/ui/connection-prefs.ui.h:1 #: ../src/shell/ario-shell-preferences.c:108 msgid "Connection" msgstr "З'єднання" #: ../data/ui/connection-prefs.ui.h:2 msgid "_Autoconnect on startup" msgstr "_Автоматично з'єднуватись при запуску" #: ../data/ui/connection-prefs.ui.h:3 ../src/shell/ario-shell.c:167 msgid "_Connect" msgstr "_З'єднатись" #: ../data/ui/connection-prefs.ui.h:4 ../src/shell/ario-shell.c:170 msgid "_Disconnect" msgstr "_Від'єднатись" #: ../data/ui/connection-assistant.ui.h:1 msgid "" "You need to specify a server to connect to. If you don't see your server " "thanks to the autodetection, you should check that zeroconf/avahi is " "activated in your server or use the manual configuration." msgstr "" "Вам необхідно вказати сервер для з'єднання. Якщо ви не бачите ваш сервер, " "переконайтеся, що zeroconf/avahi активовані на вашому сервері або " "використовуйте ручне налаштування." #: ../data/ui/cover-progress.ui.h:1 ../data/ui/cover-select.ui.h:1 #: ../data/ui/song-infos.ui.h:1 ../plugins/information/information.ui.h:1 msgid "Album :" msgstr "Альбом :" #: ../data/ui/cover-progress.ui.h:2 ../data/ui/cover-select.ui.h:2 #: ../data/ui/lyrics-select.ui.h:1 ../data/ui/song-infos.ui.h:3 #: ../plugins/information/information.ui.h:3 #: ../plugins/radios/ario-radio.c:166 msgid "Artist :" msgstr "Виконавець :" #: ../data/ui/cover-progress.ui.h:3 msgid "Downloading cover" msgstr "Загружаю обкладинку" #: ../data/ui/cover-select.ui.h:3 msgid "Local search" msgstr "Обрати локально" #: ../data/ui/cover-select.ui.h:4 ../src/sources/ario-search.c:108 msgid "Search" msgstr "Шукати" #: ../data/ui/others-prefs.ui.h:1 msgid "Allow only one instance of Ario" msgstr "Дозволити лише одну копію Ario" #: ../data/ui/others-prefs.ui.h:2 msgid "Hide window when close button is pressed" msgstr "Сховати вікно при натисканні кнопки закрити" #: ../data/ui/others-prefs.ui.h:3 msgid "Interface" msgstr "Зовнішній вигляд" #: ../data/ui/others-prefs.ui.h:4 msgid "Playlist at the right of tabs" msgstr "Список відтворення праворуч від вкладок" #: ../data/ui/others-prefs.ui.h:5 msgid "Playlist below tabs" msgstr "Список відтворення нижче вкладок" #: ../data/ui/others-prefs.ui.h:6 msgid "Playlist within tabs" msgstr "Список відтворення в межах вкладок" #: ../data/ui/others-prefs.ui.h:7 msgid "Proxy" msgstr "Проксі-сервер" #: ../data/ui/others-prefs.ui.h:8 msgid "Proxy Address :" msgstr "Адреса проксі-серверу :" #: ../data/ui/others-prefs.ui.h:9 msgid "Proxy Port :" msgstr "Порт проксі серверу :" #: ../data/ui/others-prefs.ui.h:10 msgid "Show tabs" msgstr "Показувати вкладки" #: ../data/ui/others-prefs.ui.h:11 msgid "Use a proxy" msgstr "Використовувати проксі-сервер" #: ../data/ui/lyrics-prefs.ui.h:1 msgid "Lyrics Sources" msgstr "Джерела текстів пісень" #: ../data/ui/lyrics-select.ui.h:2 ../data/ui/song-infos.ui.h:13 #: ../plugins/information/information.ui.h:6 msgid "Title :" msgstr "Назва :" #: ../data/ui/playlist-prefs.ui.h:1 msgid "Add after playing song" msgstr "Додати після програвання пісні" #: ../data/ui/playlist-prefs.ui.h:2 msgid "Add and play" msgstr "Додати та відтворити" #: ../data/ui/playlist-prefs.ui.h:3 ../data/ui/similar-artists.ui.h:2 msgid "Add to playlist" msgstr "Додати до списку відтворення" #. ARIO_TAG_ARTIST #: ../data/ui/playlist-prefs.ui.h:4 ../src/servers/ario-server.c:46 #: ../src/sources/ario-tree-albums.c:213 ../src/widgets/ario-playlist.c:541 #: ../src/widgets/ario-songlist.c:228 ../src/widgets/ario-tray-icon.c:565 msgid "Album" msgstr "Альбом" #: ../data/ui/playlist-prefs.ui.h:5 ../src/servers/ario-server.c:45 #: ../src/widgets/ario-playlist.c:541 ../src/widgets/ario-songlist.c:213 #: ../src/widgets/ario-tray-icon.c:563 msgid "Artist" msgstr "Виконавець" #. ARIO_TAG_GENRE #: ../data/ui/playlist-prefs.ui.h:6 ../src/servers/ario-server.c:52 #: ../src/widgets/ario-playlist.c:541 msgid "Date" msgstr "Рік" #: ../data/ui/playlist-prefs.ui.h:7 ../src/widgets/ario-playlist.c:541 msgid "Disc" msgstr "Диск" #: ../data/ui/playlist-prefs.ui.h:8 msgid "Double click" msgstr "Подвійне натискання" #: ../data/ui/playlist-prefs.ui.h:9 ../src/widgets/ario-playlist.c:541 msgid "Duration" msgstr "Тривалість" #: ../data/ui/playlist-prefs.ui.h:10 ../src/widgets/ario-playlist.c:541 msgid "File" msgstr "Файл" #. ARIO_TAG_TRACK #. ARIO_TAG_NAME #: ../data/ui/playlist-prefs.ui.h:11 ../src/servers/ario-server.c:51 #: ../src/widgets/ario-playlist.c:541 msgid "Genre" msgstr "Жанр" #: ../data/ui/playlist-prefs.ui.h:12 msgid "Go to current song when a new song is played" msgstr "Перейти до поточного треку по закінченні нового" #: ../data/ui/playlist-prefs.ui.h:13 msgid "Mode" msgstr "Режим" #: ../data/ui/playlist-prefs.ui.h:14 msgid "On double click:" msgstr "Під час подвійного натискання:" #: ../data/ui/playlist-prefs.ui.h:15 ../src/sources/ario-storedplaylists.c:229 #: ../src/shell/ario-shell.c:222 ../src/shell/ario-shell-preferences.c:123 #: ../src/widgets/ario-playlist.c:272 msgid "Playlist" msgstr "Список відтворення" #: ../data/ui/playlist-prefs.ui.h:16 msgid "Playlist mode:" msgstr "Режим списку відтворення:" #: ../data/ui/playlist-prefs.ui.h:17 msgid "Replace in playlist" msgstr "Замінити у списку відтворення" #: ../data/ui/playlist-prefs.ui.h:18 msgid "Show rows:" msgstr "Показати рядки:" #. ARIO_TAG_ALBUM_ARTIST #: ../data/ui/playlist-prefs.ui.h:19 ../src/servers/ario-server.c:48 #: ../src/sources/ario-tree-songs.c:145 ../src/widgets/ario-playlist.c:541 #: ../src/widgets/ario-songlist.c:198 ../src/widgets/ario-tray-icon.c:567 msgid "Title" msgstr "Назва" #. ARIO_TAG_TITLE #: ../data/ui/playlist-prefs.ui.h:20 ../src/servers/ario-server.c:49 #: ../src/sources/ario-tree-songs.c:138 ../src/widgets/ario-playlist.c:541 msgid "Track" msgstr "Доріжка" #: ../data/ui/server-prefs.ui.h:1 msgid "Audio outputs" msgstr "Аудіо-вихід" #: ../data/ui/server-prefs.ui.h:2 msgid "Crossfade" msgstr "Плавний перехід" #: ../data/ui/server-prefs.ui.h:3 msgid "Database" msgstr "База даних" #: ../data/ui/server-prefs.ui.h:4 msgid "Last updated:" msgstr "Останнє оновлення:" #: ../data/ui/server-prefs.ui.h:5 msgid "Stop music on exit" msgstr "Зупинити програвання по виході" #: ../data/ui/server-prefs.ui.h:6 msgid "Update on startup" msgstr "Оновити при старті" #: ../data/ui/server-prefs.ui.h:7 msgid "_Update" msgstr "_Оновити" #: ../data/ui/server-prefs.ui.h:8 msgid "enable crossfade" msgstr "увімкнути crossfade" #: ../data/ui/server-prefs.ui.h:9 msgid "fade time (s):" msgstr "час згасання (s):" #: ../data/ui/server-prefs.ui.h:10 ../src/ario-util.c:50 ../src/ario-util.c:71 #: ../src/ario-util.c:93 ../plugins/information/information.ui.h:7 #, c-format msgid "n/a" msgstr "н/д" #: ../data/ui/similar-artists.ui.h:1 msgid "Add all to playlist" msgstr "Додати все до списку" #: ../data/ui/similar-artists.ui.h:3 msgid "Find on Last.fm" msgstr "Знайти на Last.fm" #: ../data/ui/stats-prefs.ui.h:1 msgid "Database play time :" msgstr "Тривалість програвання бази" #: ../data/ui/stats-prefs.ui.h:2 msgid "Number of albums :" msgstr "Кількість альбомів :" #: ../data/ui/stats-prefs.ui.h:3 msgid "Number of artists :" msgstr "Кількість виконавців :" #: ../data/ui/stats-prefs.ui.h:4 msgid "Number of songs :" msgstr "Кількість пісень :" #: ../data/ui/stats-prefs.ui.h:5 msgid "Play time :" msgstr "Час відтворення :" #: ../data/ui/stats-prefs.ui.h:6 ../src/shell/ario-shell-preferences.c:148 msgid "Statistics" msgstr "Статистика" #: ../data/ui/stats-prefs.ui.h:7 msgid "Uptime :" msgstr "Без перерв :" #: ../data/ui/song-infos.ui.h:2 msgid "Album Artist :" msgstr "Альбоми виконавця:" #: ../data/ui/song-infos.ui.h:4 msgid "Comment :" msgstr "Коментар :" #: ../data/ui/song-infos.ui.h:5 msgid "Composer :" msgstr "Композитор :" #: ../data/ui/song-infos.ui.h:6 msgid "Date :" msgstr "Рік :" #: ../data/ui/song-infos.ui.h:7 msgid "Disc :" msgstr "Диск :" #: ../data/ui/song-infos.ui.h:8 msgid "Filename :" msgstr "Назва файлу :" #: ../data/ui/song-infos.ui.h:9 ../plugins/radios/ario-radio.c:169 msgid "Genre :" msgstr "Жанр :" #: ../data/ui/song-infos.ui.h:10 ../plugins/information/information.ui.h:4 msgid "Length :" msgstr "Тривалість :" #: ../data/ui/song-infos.ui.h:11 msgid "Performer :" msgstr "Виконавець :" #: ../data/ui/song-infos.ui.h:12 msgid "Song" msgstr "Пісня" #: ../data/ui/song-infos.ui.h:14 msgid "Track :" msgstr "Доріжка :" #: ../data/ui/trayicon-prefs.ui.h:1 msgid "Do nothing" msgstr "Нічого не робити" #: ../data/ui/trayicon-prefs.ui.h:2 msgid "Mute" msgstr "Приглушити" #: ../data/ui/trayicon-prefs.ui.h:3 ../src/shell/ario-shell-preferences.c:138 msgid "Notification" msgstr "Сповіщення" #: ../data/ui/trayicon-prefs.ui.h:4 msgid "Notification on song change" msgstr "Сповіщення при зміні треку" #: ../data/ui/trayicon-prefs.ui.h:5 msgid "Notification time: " msgstr "Тривалість сповіщення: " #: ../data/ui/trayicon-prefs.ui.h:6 msgid "On middle button click on tray icon :" msgstr "При натисканні середньою кнопки миші на піктограмі :" #: ../data/ui/trayicon-prefs.ui.h:7 ../src/widgets/ario-header.c:241 msgid "Play next song" msgstr "Відтворити наступну композицію" #: ../data/ui/trayicon-prefs.ui.h:8 msgid "Play/Pause" msgstr "Відтворення/пауза" #: ../data/ui/trayicon-prefs.ui.h:9 msgid "Tray icon" msgstr "Піктограма в лотку" #: ../src/ario-main.c:67 msgid "Start minimized window" msgstr "Запускати вікно звернутим" #: ../src/ario-main.c:68 msgid "Start with specific profile" msgstr "" #. Format result string #: ../src/ario-util.c:110 msgid "seconds" msgstr "секунд" #: ../src/ario-util.c:112 msgid "minutes" msgstr "хвилин" #: ../src/ario-util.c:118 msgid "hours" msgstr "годин" #: ../src/ario-util.c:124 msgid "days" msgstr "днів" #: ../src/covers/ario-cover.c:149 msgid "The cover already exists. Do you want to replace it?" msgstr "Обкладинка вже існує. Бажаєте її замінити?" #: ../src/covers/ario-cover-local.c:48 msgid "Music Directory" msgstr "Тека з музикою" #: ../src/playlist/ario-playlist-dynamic.c:49 msgid "songs of same artist" msgstr "треки цього виконавця" #: ../src/playlist/ario-playlist-dynamic.c:50 msgid "songs of same album" msgstr "треки цього альбому" #: ../src/playlist/ario-playlist-dynamic.c:51 msgid "songs of similar artists" msgstr "пісні схожих виконавців" #: ../src/playlist/ario-playlist-dynamic.c:52 msgid "albums of same artists" msgstr "альбоми цього виконавця" #: ../src/playlist/ario-playlist-dynamic.c:53 msgid "albums of similar artists" msgstr "альбоми схожих виконавців" #: ../src/playlist/ario-playlist-dynamic.c:69 msgid "Dynamic Playlist" msgstr "Динамічний список відтворення" #: ../src/playlist/ario-playlist-queue.c:49 msgid "Queue Mode" msgstr "Режим черги" #: ../src/playlist/ario-playlist-normal.c:47 msgid "Normal" msgstr "Нормально" #: ../src/plugins/ario-plugin-manager.c:45 msgid "Plugin" msgstr "Модуль" #: ../src/plugins/ario-plugin-manager.c:46 msgid "Enabled" msgstr "Увімкнено" #: ../src/plugins/ario-plugin-manager.c:480 ../src/shell/ario-shell.c:206 msgid "_About" msgstr "_Про програму" #: ../src/plugins/ario-plugin-manager.c:488 msgid "C_onfigure" msgstr "_Налаштувати" #: ../src/plugins/ario-plugin-manager.c:497 msgid "A_ctivate" msgstr "_Активувати" #: ../src/plugins/ario-plugin-manager.c:508 msgid "Ac_tivate All" msgstr "Активувати _усі" #: ../src/plugins/ario-plugin-manager.c:513 msgid "_Deactivate All" msgstr "_Деактивувати всі" #: ../src/plugins/ario-plugin-manager.c:722 msgid "Active plugins" msgstr "Активні модулі" #: ../src/preferences/ario-server-preferences.c:182 #: ../src/preferences/ario-stats-preferences.c:151 #: ../src/preferences/ario-stats-preferences.c:152 #: ../src/preferences/ario-stats-preferences.c:153 #: ../src/preferences/ario-stats-preferences.c:154 #: ../src/preferences/ario-stats-preferences.c:155 #: ../src/preferences/ario-stats-preferences.c:156 msgid "Not connected" msgstr "Не під’єднано" #: ../src/preferences/ario-server-preferences.c:187 #: ../src/preferences/ario-server-preferences.c:278 #: ../src/widgets/ario-status-bar.c:100 msgid "Updating..." msgstr "Оновлюю…" #: ../src/servers/ario-mpd.c:410 ../src/servers/ario-mpd2.c:522 msgid "Connecting to server..." msgstr "Йде з'єднання з сервером..." #: ../src/servers/ario-mpd.c:438 ../src/servers/ario-mpd2.c:550 msgid "Impossible to connect to server. Check the connection options." msgstr "Неможливо з'єднатись з сервером. Перевірте налаштування з'єднання." #. ARIO_TAG_ALBUM #: ../src/servers/ario-server.c:47 msgid "Album Artist" msgstr "Виконавець альбому" #. ARIO_TAG_DATE #: ../src/servers/ario-server.c:53 msgid "Composer" msgstr "Автор" #. ARIO_TAG_COMPOSER #: ../src/servers/ario-server.c:54 msgid "Performer" msgstr "Виконавець" #. ARIO_TAG_PERFORMER #. ARIO_TAG_COMMENT #. ARIO_TAG_DISC #: ../src/servers/ario-server.c:57 msgid "Filename" msgstr "Назва файлу" #. ARIO_TAG_FILENAME #: ../src/servers/ario-server.c:58 msgid "Any" msgstr "Будь-яка" #. impossible time or broken locale settings #: ../src/servers/ario-server.h:27 #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1235 msgid "Unknown" msgstr "Невідомо" #: ../src/sources/ario-browser.c:82 ../src/sources/ario-search.c:70 #: ../src/sources/ario-storedplaylists.c:88 #: ../src/sources/ario-storedplaylists.c:106 #: ../plugins/filesystem/ario-filesystem.c:94 #: ../plugins/filesystem/ario-filesystem.c:109 #: ../plugins/radios/ario-radio.c:116 msgid "_Add to playlist" msgstr "_Додати до списку відтворення" #: ../src/sources/ario-browser.c:85 ../src/sources/ario-search.c:73 #: ../src/sources/ario-storedplaylists.c:91 #: ../src/sources/ario-storedplaylists.c:109 #: ../plugins/filesystem/ario-filesystem.c:97 #: ../plugins/filesystem/ario-filesystem.c:112 #: ../plugins/radios/ario-radio.c:119 msgid "Add and _play" msgstr "Додати та _відтворити" #: ../src/sources/ario-browser.c:88 ../src/sources/ario-search.c:76 #: ../src/sources/ario-storedplaylists.c:94 #: ../src/sources/ario-storedplaylists.c:112 #: ../plugins/filesystem/ario-filesystem.c:100 #: ../plugins/filesystem/ario-filesystem.c:115 #: ../plugins/radios/ario-radio.c:122 msgid "_Replace in playlist" msgstr "_Перемістити в списку" #: ../src/sources/ario-browser.c:91 msgid "Get the covers" msgstr "Отримати обкладинки" #: ../src/sources/ario-browser.c:94 msgid "_Delete the covers" msgstr "_Вилучити обкладинки" #: ../src/sources/ario-browser.c:97 ../src/sources/ario-browser.c:100 #: ../src/sources/ario-search.c:79 ../src/sources/ario-storedplaylists.c:115 #: ../src/widgets/ario-playlist.c:151 #: ../plugins/filesystem/ario-filesystem.c:118 #: ../plugins/radios/ario-radio.c:131 msgid "_Properties" msgstr "В_ластивості" #: ../src/sources/ario-browser.c:125 ../src/shell/ario-shell-preferences.c:118 msgid "Library" msgstr "Фонотека" #: ../src/sources/ario-storedplaylists.c:97 msgid "_Delete" msgstr "В_илучити" #: ../src/sources/ario-storedplaylists.c:151 msgid "Playlists" msgstr "Списки відтворення" #: ../src/sources/ario-storedplaylists.c:592 msgid "Are you sure that you want to delete all the selected playlists?" msgstr "Ви впевнені, що хочете вилучити усі виділені списки відтворення?" #: ../src/sources/ario-tree.c:856 msgid "Are you sure that you want to remove all the selected covers?" msgstr "Ви впевнені, що хочете вилучити усі виділені обкладинки?" #. Translators - This "Cover" refers to an album cover art #: ../src/sources/ario-tree-albums.c:199 msgid "Cover" msgstr "Обкладинка" #: ../src/shell/ario-shell.c:160 msgid "_File" msgstr "_Файл" #: ../src/shell/ario-shell.c:161 msgid "_Edit" msgstr "_Правка" #: ../src/shell/ario-shell.c:162 msgid "_View" msgstr "_Перегляд" #: ../src/shell/ario-shell.c:163 msgid "_Control" msgstr "_Керування" #: ../src/shell/ario-shell.c:164 msgid "_Tool" msgstr "_Утиліта" #: ../src/shell/ario-shell.c:165 msgid "_Help" msgstr "_Довідка" #: ../src/shell/ario-shell.c:173 msgid "_Update database" msgstr "_Оновити базу" #: ../src/shell/ario-shell.c:176 msgid "_Quit" msgstr "_Вихід" #: ../src/shell/ario-shell.c:179 msgid "Plu_gins" msgstr "_Додатки" #: ../src/shell/ario-shell.c:182 msgid "Prefere_nces" msgstr "_Налаштування" #: ../src/shell/ario-shell.c:185 msgid "_Change current album cover" msgstr "Змінити обкладинку цього альбому" #: ../src/shell/ario-shell.c:188 msgid "Download album _covers" msgstr "Завантажити обкладинку альбому" #: ../src/shell/ario-shell.c:191 msgid "Find similar artists" msgstr "Знайти схожих виконавців" #: ../src/shell/ario-shell.c:194 msgid "Add similar songs to playlist" msgstr "Додати схожі треки до списку" #: ../src/shell/ario-shell.c:197 msgid "Go to _previous tab" msgstr "Перейти до попередньої вкладки" #: ../src/shell/ario-shell.c:200 msgid "Go to _next tab" msgstr "Перейти до наступної вкладки" #: ../src/shell/ario-shell.c:203 msgid "Show _lyrics" msgstr "Показати текст" #: ../src/shell/ario-shell.c:209 msgid "_Translate this application..." msgstr "Перевести дану програму" #: ../src/shell/ario-shell.c:216 msgid "S_tatusbar" msgstr "_Рядок стану" #: ../src/shell/ario-shell.c:219 msgid "Upper part" msgstr "Верхня частина" #: ../src/shell/ario-shell.c:825 msgid "GTK client for MPD" msgstr "Клієнт GTK для MPD" #: ../src/shell/ario-shell.c:826 msgid "translator-credits" msgstr "" "Launchpad Contributions:\n" " Alexander Orlov https://launchpad.net/~alex-orlov7\n" " Maks Lyashuk aka Ma)(imuM https://launchpad.net/~probel\n" " Marc Pavot https://launchpad.net/~marc-pavot\n" " Sergiy Gavrylov https://launchpad.net/~gavro\n" " Vitalii https://launchpad.net/~vetalkl1\n" " Yakubovsky Dmitriy(Якубовський Д.) https://launchpad.net/~dmitriy-" "yakubovsky\n" " danilyc https://launchpad.net/~danilyc" #. Create plugins configuration dialog window #: ../src/shell/ario-shell.c:1278 msgid "Configure Plugins" msgstr "Налаштовування модулів" #. Set window properties #: ../src/shell/ario-shell-coverdownloader.c:187 msgid "Music Player Cover Download" msgstr "Завантажувач обкладинки музичного плейєру" #: ../src/shell/ario-shell-coverdownloader.c:332 msgid "Download Finished!" msgstr "Завантаження закінчено!" #. We show the numbers of covers found and not found #: ../src/shell/ario-shell-coverdownloader.c:335 #, c-format msgid "" "%i covers found\n" "%i covers not found\n" "%i covers already exist" msgstr "" "%i обкладинок знайдено\n" "%i обкладинок не знайдено\n" "%i обкладинок наявно" #. Set window properties #: ../src/shell/ario-shell-coverselect.c:242 msgid "Cover Download" msgstr "Завантаження обкладинок" #: ../src/shell/ario-shell-coverselect.c:559 msgid "Error reading file" msgstr "Помилка при зчитуванні файлу" #: ../src/shell/ario-shell-coverselect.c:584 msgid "Error saving file" msgstr "Помилка збереження файлу" #: ../src/shell/ario-shell-lyrics.c:43 #: ../src/shell/ario-shell-preferences.c:133 #: ../src/shell/ario-shell-songinfos.c:272 msgid "Lyrics" msgstr "Текст пісні" #: ../src/shell/ario-shell-lyricsselect.c:152 msgid "Lyrics Download" msgstr "Завантаження тексту пісні" #: ../src/shell/ario-shell-preferences.c:81 msgid "Ario Preferences" msgstr "Налаштування Ario" #: ../src/shell/ario-shell-preferences.c:113 msgid "Server" msgstr "Сервер" #: ../src/shell/ario-shell-preferences.c:143 msgid "Others" msgstr "Інші" #: ../src/shell/ario-shell-similarartists.c:318 #, c-format msgid "%d songs" msgstr "%d пісень" #. Set window properties #. Set window title #: ../src/shell/ario-shell-songinfos.c:249 #: ../src/shell/ario-shell-songinfos.c:266 #: ../src/shell/ario-shell-songinfos.c:544 msgid "Song Properties" msgstr "Властивості пісні" #: ../src/shell/ario-shell-songinfos.c:455 msgid "Error saving tags of file:" msgstr "Помилка збереження тегів у файл:" #: ../src/widgets/ario-connection-widget.c:652 msgid "You must select a server." msgstr "Ви повинні вибрати сервер." #: ../src/widgets/ario-connection-widget.c:702 msgid "New Profile" msgstr "Новий профіль" #: ../src/widgets/ario-firstlaunch.c:82 msgid "The following configuration will be used:" msgstr "Наступне налаштування буде використано:" #: ../src/widgets/ario-firstlaunch.c:106 msgid "" "It is the first time you launch Ario.\n" "This assistant will help you to configure it." msgstr "" "Ви запустили Ario вперше.\n" "Асистент допоможе вам налаштувати його." #: ../src/widgets/ario-firstlaunch.c:111 msgid "Welcome to Ario" msgstr "Вітаємо в Ario" #: ../src/widgets/ario-firstlaunch.c:129 msgid "Configuration" msgstr "Налаштування" #: ../src/widgets/ario-firstlaunch.c:141 msgid "Confirmation" msgstr "Підтвердження" #: ../src/widgets/ario-header.c:66 ../src/widgets/ario-tray-icon.h:42 #, c-format msgid "from %s by %s" msgstr "з альбому %s виконує %s" #: ../src/widgets/ario-header.c:199 msgid "Play previous song" msgstr "Відтворити попередню композицію" #: ../src/widgets/ario-header.c:217 msgid "Play/Pause the music" msgstr "Грати/припинити музику" #: ../src/widgets/ario-header.c:229 msgid "Stop the music" msgstr "Зупинити музику" #. Translators - This " of " is used to count the elapsed time #. of a song like in "00:59 of 03:24" #: ../src/widgets/ario-header.c:310 ../src/widgets/ario-tooltip.c:321 msgid " of " msgstr " з " #: ../src/widgets/ario-header.c:323 msgid "Toggle random on/off" msgstr "Перемикач випадково увімкн/вимкн" #: ../src/widgets/ario-header.c:335 msgid "Toggle repeat on/off" msgstr "Перемикач повторення увімкн/вимкн" #: ../src/widgets/ario-header.c:340 msgid "Change the music volume" msgstr "Змінити гучність" #: ../src/widgets/ario-lyrics-editor.c:323 msgid "Downloading lyrics..." msgstr "Завантаження тексту пісні...." #: ../src/widgets/ario-lyrics-editor.c:351 msgid "Lyrics not found" msgstr "Текст не знайдений" #: ../src/widgets/ario-playlist.c:133 msgid "_Clear" msgstr "_Очистити" #: ../src/widgets/ario-playlist.c:136 msgid "_Shuffle" msgstr "_Перемішати" #: ../src/widgets/ario-playlist.c:139 msgid "Cr_op" msgstr "_Обрізати" #: ../src/widgets/ario-playlist.c:142 msgid "_Search in playlist" msgstr "_Шукати в списку" #: ../src/widgets/ario-playlist.c:145 msgid "_Remove" msgstr "Ви_лучити" #: ../src/widgets/ario-playlist.c:148 msgid "_Save" msgstr "_Зберегти" #: ../src/widgets/ario-playlist.c:154 msgid "_Go to playing song" msgstr "Перейти до пісні, що програється" #: ../src/widgets/ario-playlist.c:667 msgid "Filter:" msgstr "Фільтр:" #. Create the widgets #: ../src/widgets/ario-playlist.c:1700 msgid "Save playlist" msgstr "Зберегти список відтворення" #: ../src/widgets/ario-playlist.c:1710 msgid "Playlist name :" msgstr "Назва списку відтворення:" #: ../src/widgets/ario-playlist.c:1746 msgid "Playlist already exists. Do you want to overwrite it?" msgstr "" "Список відтворення з таким іменем вже є в цій теці. Чи бажаєте ви " "перезаписати його?" #. Format status bar message #: ../src/widgets/ario-status-bar.c:96 msgid "Songs" msgstr "Композиції" #: ../src/widgets/ario-tray-icon.c:102 msgid "_Play" msgstr "_Відтворити" #: ../src/widgets/ario-tray-icon.c:105 msgid "_Pause" msgstr "_Призупинити" #: ../src/widgets/ario-tray-icon.c:108 msgid "_Stop" msgstr "_Зупинити" #: ../src/widgets/ario-tray-icon.c:111 msgid "_Next" msgstr "_Наступний" #: ../src/widgets/ario-tray-icon.c:114 msgid "P_revious" msgstr "П_опередній" #: ../src/widgets/ario-tray-icon.h:41 msgid "Not playing" msgstr "Не відтворюється" #. Translators: "friendly time" string for the current day, strftime format. like "Today 12:34 am" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1179 msgid "Today %I:%M %p" msgstr "Сьогодні %I:%M %p" #. Translators: "friendly time" string for the previous day, #. * strftime format. e.g. "Yesterday 12:34 am" #. #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1192 msgid "Yesterday %I:%M %p" msgstr "Вчора %I:%M %p" #. Translators: "friendly time" string for a day in the current week, #. * strftime format. e.g. "Wed 12:34 am" #. #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1208 msgid "%a %I:%M %p" msgstr "%a %I:%M %p" #. Translators: "friendly time" string for a day in the current year, #. * strftime format. e.g. "Feb 12 12:34 am" #. #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1220 msgid "%b %d %I:%M %p" msgstr "%b %d %I:%M %p" #. Translators: "friendly time" string for a day in a different year, #. * strftime format. e.g. "Feb 12 1997" #. #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1225 msgid "%b %d %Y" msgstr "%b %d %Y" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1311 #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:4 msgid "Never" msgstr "Ніколи" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1335 msgid "OK" msgstr "Гаразд" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1338 msgid "Logging in" msgstr "Вхід в систему" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1341 msgid "Request failed" msgstr "Не вдалося виконати запит" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1344 msgid "Incorrect username" msgstr "Неправильне ім'я користувача" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1347 msgid "Incorrect password" msgstr "Невірний пароль" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1350 msgid "Handshake failed" msgstr "Не вдалось встановити з’єднання" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1353 msgid "Client update required" msgstr "Необхідне оновлення клієнту" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1356 msgid "Track submission failed" msgstr "Помилка передачі треків" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1359 msgid "Queue is too long" msgstr "Черга занадто довга" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1362 msgid "Track submission failed too many times" msgstr "Занадто часто виникають помилки під час оновлення" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1417 msgid "Audioscrobbler preferences" msgstr "Налаштування Audioscrobbler" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:1 msgid "Disabled" msgstr "Вимкнено" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:2 msgid "Last submission time:" msgstr "Останнє оновлення:" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:3 msgid "Last.fm Profile" msgstr "Профіль last.fm" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:6 msgid "Queued tracks:" msgstr "В черзі:" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:7 msgid "Status:" msgstr "Статус:" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:8 msgid "Tracks submitted:" msgstr "Надано композицій:" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:9 #: ../plugins/radios/ario-radio.c:168 msgid "Username :" msgstr "Ім'я коритувача:" #: ../plugins/audioscrobbler/audioscrobbler.ario-plugin.desktop.in.h:1 msgid "Last.fm" msgstr "Last.fm" #: ../plugins/audioscrobbler/audioscrobbler.ario-plugin.desktop.in.h:2 msgid "Submits song information to last.fm" msgstr "Передати інформацію про трек до last.fm" #: ../plugins/filesystem/ario-filesystem.c:158 msgid "File System" msgstr "Файлова Система" #: ../plugins/filesystem/ario-filesystem.c:422 msgid "Music" msgstr "Музика" #: ../plugins/filesystem/filesystem.ario-plugin.desktop.in.h:1 msgid "A File System Browser" msgstr "Браузер файлової системи" #: ../plugins/filesystem/filesystem.ario-plugin.desktop.in.h:2 msgid "File System Browser" msgstr "Браузер файлової системи" #: ../plugins/information/ario-information.c:114 msgid "Information" msgstr "Відомості" #: ../plugins/information/information.ario-plugin.desktop.in.h:1 msgid "Display various information about the playing song" msgstr "Відображати різну інформацію про композицію, що програється" #: ../plugins/information/information.ario-plugin.desktop.in.h:2 msgid "Song Information" msgstr "Інформація про композицію" #: ../plugins/information/information.ui.h:2 msgid "Albums from this artist:" msgstr "Алюбоми даного виконавця" #: ../plugins/information/information.ui.h:5 msgid "Lyrics:" msgstr "Тексти пісень:" #: ../plugins/libnotify/libnotify.ario-plugin.desktop.in.h:1 msgid "Add libnotify support" msgstr "Додати підтримку libnotify" #: ../plugins/libnotify/libnotify.ario-plugin.desktop.in.h:2 msgid "Libnotify" msgstr "Libnotify" #: ../plugins/mmkeys/mmkeys.ario-plugin.desktop.in.h:1 msgid "Add multimedia keys support" msgstr "Додати підтримку гарячим клавішам" #: ../plugins/mmkeys/mmkeys.ario-plugin.desktop.in.h:2 msgid "Multimedia Keys" msgstr "Гарячі клавіші" #: ../plugins/radios/ario-radio.c:125 msgid "Add a _new radio" msgstr "Додати нове радіо" #: ../plugins/radios/ario-radio.c:128 msgid "_Delete this radios" msgstr "_Видалити ці радіо" #: ../plugins/radios/ario-radio.c:166 msgid "Last.fm: Radio of similar artists" msgstr "Last.fm: Радіо схожих виконавців" #: ../plugins/radios/ario-radio.c:167 msgid "Last.fm: Radio of group" msgstr "Last.fm: Радіо групи" #: ../plugins/radios/ario-radio.c:167 msgid "Group :" msgstr "Група:" #: ../plugins/radios/ario-radio.c:168 msgid "Last.fm: Personal radio" msgstr "Last.fm: Персональне радіо" #: ../plugins/radios/ario-radio.c:169 msgid "Last.fm: Radio of genre" msgstr "Last.fm: Радіо стилю" #: ../plugins/radios/ario-radio.c:184 #: ../plugins/radios/radios.ario-plugin.desktop.in.h:2 msgid "Web Radios" msgstr "Веб-радіо" #: ../plugins/radios/ario-radio.c:246 msgid "Internet Radios" msgstr "Інтернет радіо" #. Create dialog window #: ../plugins/radios/ario-radio.c:774 msgid "Edit a WebRadio" msgstr "Змінити веб-радіо" #: ../plugins/radios/ario-radio.c:787 ../plugins/radios/ario-radio.c:923 msgid "URL :" msgstr "Адреса URL:" #: ../plugins/radios/ario-radio.c:853 ../plugins/radios/ario-radio.c:997 msgid "Bad parameters. You must specify a name and a URL for the radio." msgstr "" "Не вірні параметри. Ви маєте вказати специфічне ім’я та адресу URL для радіо" #. Create dialog window #: ../plugins/radios/ario-radio.c:883 msgid "Add a WebRadio" msgstr "Додати веб-радіо" #: ../plugins/radios/ario-radio.c:1083 msgid "Are you sure you want to delete all the selected radios?" msgstr "Чи справді ви бажаєте видалити вісі виділені радіо?" #: ../plugins/radios/radios.ario-plugin.desktop.in.h:1 msgid "Listen to webradios" msgstr "Прослуховування веб-радіо" #: ../plugins/wikipedia/ario-wikipedia-plugin.c:49 #: ../plugins/wikipedia/ario-wikipedia-plugin.c:50 msgid "Find artist on Wikipedia" msgstr "Шукати виконавця у Wikipedia" #: ../plugins/wikipedia/ario-wikipedia-plugin.c:172 msgid "Wikipedia Plugin - Configuration" msgstr "Модуль Wikipedia - Налаштування" #: ../plugins/wikipedia/ario-wikipedia-plugin.c:181 msgid "Wikipedia language :" msgstr "Мова для Wikipedia :" #: ../plugins/wikipedia/wikipedia.ario-plugin.desktop.in.h:1 msgid "A plugin to search current artist on wikipedia" msgstr "Модуль для пошуку даного виконавця у wikipedia" #: ../plugins/wikipedia/wikipedia.ario-plugin.desktop.in.h:2 msgid "Wikipedia" msgstr "Wikipedia" ario-1.6/po/pl.po0000644000175000017500000010471113226723435010637 00000000000000# Polish translation for ario # Copyright (c) 2008 Rosetta Contributors and Canonical Ltd 2008 # This file is distributed under the same license as the ario package. # FIRST AUTHOR , 2008. # msgid "" msgstr "" "Project-Id-Version: ario\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2011-06-13 18:15+0200\n" "PO-Revision-Date: 2011-05-10 15:09+0000\n" "Last-Translator: Krzysztof Konatowicz \n" "Language-Team: Polish \n" "Language: pl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2011-06-13 16:33+0000\n" "X-Generator: Launchpad (build 13175)\n" #: ../data/ario.desktop.in.in.h:1 msgid "Ario music player" msgstr "Odtwarzacz muzyki Ario" #: ../data/ario.desktop.in.in.h:2 msgid "Client application to mpd" msgstr "Klient mpd" #: ../data/ui/browser-prefs.ui.h:1 msgid "Alphabetically" msgstr "Alfabetycznie" #: ../data/ui/browser-prefs.ui.h:2 msgid "By year" msgstr "Po roku" #: ../data/ui/browser-prefs.ui.h:3 msgid "Library Options" msgstr "Opcje biblioteki" #: ../data/ui/browser-prefs.ui.h:4 msgid "Library Organisation" msgstr "Organizacja biblioteki" #: ../data/ui/browser-prefs.ui.h:5 msgid "Sort albums: " msgstr "Sortuj albumy: " #: ../data/ui/connection-autodetect.ui.h:1 msgid "" "If you don't see your MPD server thanks to the automatic detection, you " "should check that zeroconf is activated in your MPD configuration or use the " "manual configuration." msgstr "" "Jeśli nie znalazłeś swojego serwera MPD przy pomocy automatycznej " "konfiguracji, sprawdź, czy zeroconf jest aktywny w ustawieniach twojego MPD, " "albo użyj ręcznej konfiguracji." #: ../data/ui/connection-autodetect.ui.h:2 msgid "Server autodetection" msgstr "Automatyczne wykrywanie serwera" #: ../data/ui/connection-widget.ui.h:1 msgid "Auto detect" msgstr "Automatyczne wykrywanie" #: ../data/ui/connection-widget.ui.h:2 msgid "Default" msgstr "Domyślny" #: ../data/ui/connection-widget.ui.h:3 ../src/widgets/ario-firstlaunch.c:83 msgid "Host :" msgstr "Host :" #: ../data/ui/connection-widget.ui.h:4 msgid "Music directory :" msgstr "Katalog z muzyką :" #: ../data/ui/connection-widget.ui.h:5 msgid "Music server is on the same computer as Ario" msgstr "Serwer muzyczny jest na tym samym komputerze co Ario" #. Create the widgets #: ../data/ui/connection-widget.ui.h:6 ../plugins/radios/ario-radio.c:786 #: ../plugins/radios/ario-radio.c:922 msgid "Name :" msgstr "Nazwa :" #: ../data/ui/connection-widget.ui.h:7 #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:5 msgid "Password :" msgstr "Hasło :" #: ../data/ui/connection-widget.ui.h:8 ../src/widgets/ario-firstlaunch.c:85 msgid "Port :" msgstr "Port :" #: ../data/ui/connection-widget.ui.h:9 msgid "Server type :" msgstr "Typ serwera :" #: ../data/ui/connection-widget.ui.h:10 msgid "Timeout :" msgstr "" #: ../data/ui/connection-widget.ui.h:11 msgid "XMMS 2 (Experimental)" msgstr "XMMS 2 (Tryb Experymentalny)" #: ../data/ui/cover-prefs.ui.h:1 msgid "Automatically download the album cover of the playing song" msgstr "Automatycznie pobierz okładki płyt odtwarzanych utworów" #: ../data/ui/cover-prefs.ui.h:2 ../src/shell/ario-shell-preferences.c:128 msgid "Covers" msgstr "Okładki" #: ../data/ui/cover-prefs.ui.h:3 msgid "Covers Sources" msgstr "Źródła okładek" #: ../data/ui/cover-prefs.ui.h:4 msgid "Show the covers in the albums list" msgstr "Pokaż okładki w liście albumów" #: ../data/ui/cover-prefs.ui.h:5 msgid "Use Amazon." msgstr "Użyj Amazon." #: ../data/ui/connection-prefs.ui.h:1 #: ../src/shell/ario-shell-preferences.c:108 msgid "Connection" msgstr "Połączenie" #: ../data/ui/connection-prefs.ui.h:2 msgid "_Autoconnect on startup" msgstr "_Automatycznie połącz podczas startu" #: ../data/ui/connection-prefs.ui.h:3 ../src/shell/ario-shell.c:167 msgid "_Connect" msgstr "_Połącz" #: ../data/ui/connection-prefs.ui.h:4 ../src/shell/ario-shell.c:170 msgid "_Disconnect" msgstr "_Rozłącz" #: ../data/ui/connection-assistant.ui.h:1 msgid "" "You need to specify a server to connect to. If you don't see your server " "thanks to the autodetection, you should check that zeroconf/avahi is " "activated in your server or use the manual configuration." msgstr "" "Musisz wybrać serwer z którym chcesz się połączyć. Jeśli nie widzisz " "serwerów dzięki funkcji autodetekcji, sprawdź czy zeroconf/avahi jest " "aktywny lub użyj konfiguracji ręcznej." #: ../data/ui/cover-progress.ui.h:1 ../data/ui/cover-select.ui.h:1 #: ../data/ui/song-infos.ui.h:1 ../plugins/information/information.ui.h:1 msgid "Album :" msgstr "Album :" #: ../data/ui/cover-progress.ui.h:2 ../data/ui/cover-select.ui.h:2 #: ../data/ui/lyrics-select.ui.h:1 ../data/ui/song-infos.ui.h:3 #: ../plugins/information/information.ui.h:3 #: ../plugins/radios/ario-radio.c:166 msgid "Artist :" msgstr "Artysta :" #: ../data/ui/cover-progress.ui.h:3 msgid "Downloading cover" msgstr "Pobieranie okładki" #: ../data/ui/cover-select.ui.h:3 msgid "Local search" msgstr "Wyszukiwanie lokalne" #: ../data/ui/cover-select.ui.h:4 ../src/sources/ario-search.c:108 msgid "Search" msgstr "Wyszukiwanie" #: ../data/ui/others-prefs.ui.h:1 msgid "Allow only one instance of Ario" msgstr "Pozwól tylko na jeden proces Ario" #: ../data/ui/others-prefs.ui.h:2 msgid "Hide window when close button is pressed" msgstr "Ukryj okno gdy zostanie naciśnięty przycisk zamknij" #: ../data/ui/others-prefs.ui.h:3 msgid "Interface" msgstr "Interfejs" #: ../data/ui/others-prefs.ui.h:4 msgid "Playlist at the right of tabs" msgstr "Lista odtwarzania na prawo od zakładek" #: ../data/ui/others-prefs.ui.h:5 msgid "Playlist below tabs" msgstr "Lista odtwarzania poniżej zakładek" #: ../data/ui/others-prefs.ui.h:6 msgid "Playlist within tabs" msgstr "Lista odtwarzania w zakładkach" #: ../data/ui/others-prefs.ui.h:7 msgid "Proxy" msgstr "Proxy" #: ../data/ui/others-prefs.ui.h:8 msgid "Proxy Address :" msgstr "Adres proxy :" #: ../data/ui/others-prefs.ui.h:9 msgid "Proxy Port :" msgstr "Port proxy :" #: ../data/ui/others-prefs.ui.h:10 msgid "Show tabs" msgstr "Pokaż karty" #: ../data/ui/others-prefs.ui.h:11 msgid "Use a proxy" msgstr "Użyj proxy" #: ../data/ui/lyrics-prefs.ui.h:1 msgid "Lyrics Sources" msgstr "Źródła tekstów" #: ../data/ui/lyrics-select.ui.h:2 ../data/ui/song-infos.ui.h:13 #: ../plugins/information/information.ui.h:6 msgid "Title :" msgstr "Tytuł :" #: ../data/ui/playlist-prefs.ui.h:1 msgid "Add after playing song" msgstr "Dodaj po odtworzeniu piosenki" #: ../data/ui/playlist-prefs.ui.h:2 msgid "Add and play" msgstr "Dodaj i odtwarzaj" #: ../data/ui/playlist-prefs.ui.h:3 ../data/ui/similar-artists.ui.h:2 msgid "Add to playlist" msgstr "Dodaj do listy odtwarzania" #. ARIO_TAG_ARTIST #: ../data/ui/playlist-prefs.ui.h:4 ../src/servers/ario-server.c:46 #: ../src/sources/ario-tree-albums.c:213 ../src/widgets/ario-playlist.c:541 #: ../src/widgets/ario-songlist.c:228 ../src/widgets/ario-tray-icon.c:565 msgid "Album" msgstr "Album" #: ../data/ui/playlist-prefs.ui.h:5 ../src/servers/ario-server.c:45 #: ../src/widgets/ario-playlist.c:541 ../src/widgets/ario-songlist.c:213 #: ../src/widgets/ario-tray-icon.c:563 msgid "Artist" msgstr "Artysta" #. ARIO_TAG_GENRE #: ../data/ui/playlist-prefs.ui.h:6 ../src/servers/ario-server.c:52 #: ../src/widgets/ario-playlist.c:541 msgid "Date" msgstr "Data" #: ../data/ui/playlist-prefs.ui.h:7 ../src/widgets/ario-playlist.c:541 msgid "Disc" msgstr "Płyta" #: ../data/ui/playlist-prefs.ui.h:8 msgid "Double click" msgstr "Podwójne kiknięcie" #: ../data/ui/playlist-prefs.ui.h:9 ../src/widgets/ario-playlist.c:541 msgid "Duration" msgstr "Czas trwania" #: ../data/ui/playlist-prefs.ui.h:10 ../src/widgets/ario-playlist.c:541 msgid "File" msgstr "Plik" #. ARIO_TAG_TRACK #. ARIO_TAG_NAME #: ../data/ui/playlist-prefs.ui.h:11 ../src/servers/ario-server.c:51 #: ../src/widgets/ario-playlist.c:541 msgid "Genre" msgstr "Gatunek" #: ../data/ui/playlist-prefs.ui.h:12 msgid "Go to current song when a new song is played" msgstr "Przejdź do aktualnego utworu, gdy nowy utwór jest odtwarzany" #: ../data/ui/playlist-prefs.ui.h:13 msgid "Mode" msgstr "Tryb" #: ../data/ui/playlist-prefs.ui.h:14 msgid "On double click:" msgstr "Po podwójnym kliknięciu:" #: ../data/ui/playlist-prefs.ui.h:15 ../src/sources/ario-storedplaylists.c:229 #: ../src/shell/ario-shell.c:222 ../src/shell/ario-shell-preferences.c:123 #: ../src/widgets/ario-playlist.c:272 msgid "Playlist" msgstr "Lista odtwarzania" #: ../data/ui/playlist-prefs.ui.h:16 msgid "Playlist mode:" msgstr "Tryb listy odtwarzania:" #: ../data/ui/playlist-prefs.ui.h:17 msgid "Replace in playlist" msgstr "Zastąp na liście odtwarzania" #: ../data/ui/playlist-prefs.ui.h:18 msgid "Show rows:" msgstr "Pokaż wiersze:" #. ARIO_TAG_ALBUM_ARTIST #: ../data/ui/playlist-prefs.ui.h:19 ../src/servers/ario-server.c:48 #: ../src/sources/ario-tree-songs.c:145 ../src/widgets/ario-playlist.c:541 #: ../src/widgets/ario-songlist.c:198 ../src/widgets/ario-tray-icon.c:567 msgid "Title" msgstr "Tytuł" #. ARIO_TAG_TITLE #: ../data/ui/playlist-prefs.ui.h:20 ../src/servers/ario-server.c:49 #: ../src/sources/ario-tree-songs.c:138 ../src/widgets/ario-playlist.c:541 msgid "Track" msgstr "Ścieżka" #: ../data/ui/server-prefs.ui.h:1 msgid "Audio outputs" msgstr "Wyjścia audio" #: ../data/ui/server-prefs.ui.h:2 msgid "Crossfade" msgstr "Przenikanie (crossfade)" #: ../data/ui/server-prefs.ui.h:3 msgid "Database" msgstr "Baza danych" #: ../data/ui/server-prefs.ui.h:4 msgid "Last updated:" msgstr "Ostatnia aktualizacja:" #: ../data/ui/server-prefs.ui.h:5 msgid "Stop music on exit" msgstr "Zatrzymaj odtwarzanie po zamknięciu programu" #: ../data/ui/server-prefs.ui.h:6 msgid "Update on startup" msgstr "Aktualizuj po uruchomieniu" #: ../data/ui/server-prefs.ui.h:7 msgid "_Update" msgstr "_Uaktualnij" #: ../data/ui/server-prefs.ui.h:8 msgid "enable crossfade" msgstr "włącz przejscie z wyciszaniem" #: ../data/ui/server-prefs.ui.h:9 msgid "fade time (s):" msgstr "długość przejścia (s):" #: ../data/ui/server-prefs.ui.h:10 ../src/ario-util.c:50 ../src/ario-util.c:71 #: ../src/ario-util.c:93 ../plugins/information/information.ui.h:7 #, c-format msgid "n/a" msgstr "brak" #: ../data/ui/similar-artists.ui.h:1 msgid "Add all to playlist" msgstr "Dodaj wszystko do listy odtwarzania" #: ../data/ui/similar-artists.ui.h:3 msgid "Find on Last.fm" msgstr "Znajdź w Last.fm" #: ../data/ui/stats-prefs.ui.h:1 msgid "Database play time :" msgstr "Czas odtwarzania bazy:" #: ../data/ui/stats-prefs.ui.h:2 msgid "Number of albums :" msgstr "Liczba albumów :" #: ../data/ui/stats-prefs.ui.h:3 msgid "Number of artists :" msgstr "Liczba artystów :" #: ../data/ui/stats-prefs.ui.h:4 msgid "Number of songs :" msgstr "Liczba utworów :" #: ../data/ui/stats-prefs.ui.h:5 msgid "Play time :" msgstr "Czas odtwarzania:" #: ../data/ui/stats-prefs.ui.h:6 ../src/shell/ario-shell-preferences.c:148 msgid "Statistics" msgstr "Statystyki" #: ../data/ui/stats-prefs.ui.h:7 msgid "Uptime :" msgstr "Czas pracy :" #: ../data/ui/song-infos.ui.h:2 msgid "Album Artist :" msgstr "Wykonawca Albumu :" #: ../data/ui/song-infos.ui.h:4 msgid "Comment :" msgstr "Komentarz :" #: ../data/ui/song-infos.ui.h:5 msgid "Composer :" msgstr "Kompozytor :" #: ../data/ui/song-infos.ui.h:6 msgid "Date :" msgstr "Data :" #: ../data/ui/song-infos.ui.h:7 msgid "Disc :" msgstr "Płyta :" #: ../data/ui/song-infos.ui.h:8 msgid "Filename :" msgstr "Nazwa pliku :" #: ../data/ui/song-infos.ui.h:9 ../plugins/radios/ario-radio.c:169 msgid "Genre :" msgstr "Gatunek :" #: ../data/ui/song-infos.ui.h:10 ../plugins/information/information.ui.h:4 msgid "Length :" msgstr "Długość :" #: ../data/ui/song-infos.ui.h:11 msgid "Performer :" msgstr "Wykonawca :" #: ../data/ui/song-infos.ui.h:12 msgid "Song" msgstr "Utwór" #: ../data/ui/song-infos.ui.h:14 msgid "Track :" msgstr "Utwór:" #: ../data/ui/trayicon-prefs.ui.h:1 msgid "Do nothing" msgstr "Nie rób nic" #: ../data/ui/trayicon-prefs.ui.h:2 msgid "Mute" msgstr "Wycisz" #: ../data/ui/trayicon-prefs.ui.h:3 ../src/shell/ario-shell-preferences.c:138 msgid "Notification" msgstr "Powiadomienie" #: ../data/ui/trayicon-prefs.ui.h:4 msgid "Notification on song change" msgstr "Powiadomienie przy zmianie utworu" #: ../data/ui/trayicon-prefs.ui.h:5 msgid "Notification time: " msgstr "Czas powiadomienia: " #: ../data/ui/trayicon-prefs.ui.h:6 msgid "On middle button click on tray icon :" msgstr "" "Przy kliknięciu środkowym przyciskiem myszy na ikonie obszaru powiadamiania :" #: ../data/ui/trayicon-prefs.ui.h:7 ../src/widgets/ario-header.c:241 msgid "Play next song" msgstr "Odtwarzaj następny utwór" #: ../data/ui/trayicon-prefs.ui.h:8 msgid "Play/Pause" msgstr "Odtwarzaj/Pauzuj" #: ../data/ui/trayicon-prefs.ui.h:9 msgid "Tray icon" msgstr "Ikona obszaru powiadamiania" #: ../src/ario-main.c:67 msgid "Start minimized window" msgstr "Uruchamiaj jako zminimalizowany" #: ../src/ario-main.c:68 msgid "Start with specific profile" msgstr "" #. Format result string #: ../src/ario-util.c:110 msgid "seconds" msgstr "sekund" #: ../src/ario-util.c:112 msgid "minutes" msgstr "minut" #: ../src/ario-util.c:118 msgid "hours" msgstr "godzin" #: ../src/ario-util.c:124 msgid "days" msgstr "dni" #: ../src/covers/ario-cover.c:149 msgid "The cover already exists. Do you want to replace it?" msgstr "Okładka już istnieje. Czy chcesz ją zastąpić?" #: ../src/covers/ario-cover-local.c:48 msgid "Music Directory" msgstr "Katalog z muzyką" #: ../src/playlist/ario-playlist-dynamic.c:49 msgid "songs of same artist" msgstr "utwory tego samego wykonawcy" #: ../src/playlist/ario-playlist-dynamic.c:50 msgid "songs of same album" msgstr "utwory z tego samego albumu" #: ../src/playlist/ario-playlist-dynamic.c:51 msgid "songs of similar artists" msgstr "utwory podobnych wykonawców" #: ../src/playlist/ario-playlist-dynamic.c:52 msgid "albums of same artists" msgstr "albumy tych samych wykonawców" #: ../src/playlist/ario-playlist-dynamic.c:53 msgid "albums of similar artists" msgstr "albumy podobnych wykonawców" #: ../src/playlist/ario-playlist-dynamic.c:69 msgid "Dynamic Playlist" msgstr "Dynamiczna lista odtwarzania" #: ../src/playlist/ario-playlist-queue.c:49 msgid "Queue Mode" msgstr "Tryb Kolejkowania" #: ../src/playlist/ario-playlist-normal.c:47 msgid "Normal" msgstr "Normalny" #: ../src/plugins/ario-plugin-manager.c:45 msgid "Plugin" msgstr "Wtyczka" #: ../src/plugins/ario-plugin-manager.c:46 msgid "Enabled" msgstr "Włączony" #: ../src/plugins/ario-plugin-manager.c:480 ../src/shell/ario-shell.c:206 msgid "_About" msgstr "_O programie" #: ../src/plugins/ario-plugin-manager.c:488 msgid "C_onfigure" msgstr "Sk_onfiguruj" #: ../src/plugins/ario-plugin-manager.c:497 msgid "A_ctivate" msgstr "A_ktywuj" #: ../src/plugins/ario-plugin-manager.c:508 msgid "Ac_tivate All" msgstr "Ak_tywuj wszystko" #: ../src/plugins/ario-plugin-manager.c:513 msgid "_Deactivate All" msgstr "_Deaktywuj wszystko" #: ../src/plugins/ario-plugin-manager.c:722 msgid "Active plugins" msgstr "Aktywne wtyczki" #: ../src/preferences/ario-server-preferences.c:182 #: ../src/preferences/ario-stats-preferences.c:151 #: ../src/preferences/ario-stats-preferences.c:152 #: ../src/preferences/ario-stats-preferences.c:153 #: ../src/preferences/ario-stats-preferences.c:154 #: ../src/preferences/ario-stats-preferences.c:155 #: ../src/preferences/ario-stats-preferences.c:156 msgid "Not connected" msgstr "Niepołączony" #: ../src/preferences/ario-server-preferences.c:187 #: ../src/preferences/ario-server-preferences.c:278 #: ../src/widgets/ario-status-bar.c:100 msgid "Updating..." msgstr "Aktualizowanie..." #: ../src/servers/ario-mpd.c:410 ../src/servers/ario-mpd2.c:522 msgid "Connecting to server..." msgstr "Łączenie z serwerem..." #: ../src/servers/ario-mpd.c:438 ../src/servers/ario-mpd2.c:550 msgid "Impossible to connect to server. Check the connection options." msgstr "Połączenie z serwerem niemożliwe. Sprawdź ustawienia połączenia." #. ARIO_TAG_ALBUM #: ../src/servers/ario-server.c:47 msgid "Album Artist" msgstr "Wykonawca Albumu" #. ARIO_TAG_DATE #: ../src/servers/ario-server.c:53 msgid "Composer" msgstr "Kompozytor" #. ARIO_TAG_COMPOSER #: ../src/servers/ario-server.c:54 msgid "Performer" msgstr "Wykonawca" #. ARIO_TAG_PERFORMER #. ARIO_TAG_COMMENT #. ARIO_TAG_DISC #: ../src/servers/ario-server.c:57 msgid "Filename" msgstr "Nazwa pliku" #. ARIO_TAG_FILENAME #: ../src/servers/ario-server.c:58 msgid "Any" msgstr "Dowolny" #. impossible time or broken locale settings #: ../src/servers/ario-server.h:27 #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1235 msgid "Unknown" msgstr "Nieznany" #: ../src/sources/ario-browser.c:82 ../src/sources/ario-search.c:70 #: ../src/sources/ario-storedplaylists.c:88 #: ../src/sources/ario-storedplaylists.c:106 #: ../plugins/filesystem/ario-filesystem.c:94 #: ../plugins/filesystem/ario-filesystem.c:109 #: ../plugins/radios/ario-radio.c:116 msgid "_Add to playlist" msgstr "Dod_aj do playlisty" #: ../src/sources/ario-browser.c:85 ../src/sources/ario-search.c:73 #: ../src/sources/ario-storedplaylists.c:91 #: ../src/sources/ario-storedplaylists.c:109 #: ../plugins/filesystem/ario-filesystem.c:97 #: ../plugins/filesystem/ario-filesystem.c:112 #: ../plugins/radios/ario-radio.c:119 msgid "Add and _play" msgstr "Dodaj i _odtwórz" #: ../src/sources/ario-browser.c:88 ../src/sources/ario-search.c:76 #: ../src/sources/ario-storedplaylists.c:94 #: ../src/sources/ario-storedplaylists.c:112 #: ../plugins/filesystem/ario-filesystem.c:100 #: ../plugins/filesystem/ario-filesystem.c:115 #: ../plugins/radios/ario-radio.c:122 msgid "_Replace in playlist" msgstr "_Zastąp w liście utworów" #: ../src/sources/ario-browser.c:91 msgid "Get the covers" msgstr "Pobierz okładki" #: ../src/sources/ario-browser.c:94 msgid "_Delete the covers" msgstr "Usuń okła_dki" #: ../src/sources/ario-browser.c:97 ../src/sources/ario-browser.c:100 #: ../src/sources/ario-search.c:79 ../src/sources/ario-storedplaylists.c:115 #: ../src/widgets/ario-playlist.c:151 #: ../plugins/filesystem/ario-filesystem.c:118 #: ../plugins/radios/ario-radio.c:131 msgid "_Properties" msgstr "_Preferencje" #: ../src/sources/ario-browser.c:125 ../src/shell/ario-shell-preferences.c:118 msgid "Library" msgstr "Biblioteka" #: ../src/sources/ario-storedplaylists.c:97 msgid "_Delete" msgstr "_Usuń" #: ../src/sources/ario-storedplaylists.c:151 msgid "Playlists" msgstr "Playlisty" #: ../src/sources/ario-storedplaylists.c:592 msgid "Are you sure that you want to delete all the selected playlists?" msgstr "Czy jesteś pewny że chcesz usunąć wszystkie zaznaczone playlisty?" #: ../src/sources/ario-tree.c:856 msgid "Are you sure that you want to remove all the selected covers?" msgstr "Jesteś pewny, że chcesz usunąć wszystkie zaznaczone okładki?" #. Translators - This "Cover" refers to an album cover art #: ../src/sources/ario-tree-albums.c:199 msgid "Cover" msgstr "Okładka" #: ../src/shell/ario-shell.c:160 msgid "_File" msgstr "_Plik" #: ../src/shell/ario-shell.c:161 msgid "_Edit" msgstr "_Edycja" #: ../src/shell/ario-shell.c:162 msgid "_View" msgstr "_Widok" #: ../src/shell/ario-shell.c:163 msgid "_Control" msgstr "_Sterowanie" #: ../src/shell/ario-shell.c:164 msgid "_Tool" msgstr "_Narzędzia" #: ../src/shell/ario-shell.c:165 msgid "_Help" msgstr "_Pomoc" #: ../src/shell/ario-shell.c:173 msgid "_Update database" msgstr "_Aktualizauj bazę danych" #: ../src/shell/ario-shell.c:176 msgid "_Quit" msgstr "_Zakończ" #: ../src/shell/ario-shell.c:179 msgid "Plu_gins" msgstr "Wt_yczki" #: ../src/shell/ario-shell.c:182 msgid "Prefere_nces" msgstr "Ustawie_nia" #: ../src/shell/ario-shell.c:185 msgid "_Change current album cover" msgstr "_Zmień okładkę" #: ../src/shell/ario-shell.c:188 msgid "Download album _covers" msgstr "Pobierz okładki" #: ../src/shell/ario-shell.c:191 msgid "Find similar artists" msgstr "Znajdź podobnych artystów" #: ../src/shell/ario-shell.c:194 msgid "Add similar songs to playlist" msgstr "Dodaj podobne utwory do listy odtwarzania" #: ../src/shell/ario-shell.c:197 msgid "Go to _previous tab" msgstr "Idź do _poprzedniej zakładki" #: ../src/shell/ario-shell.c:200 msgid "Go to _next tab" msgstr "Idź do _następnej zakładki" #: ../src/shell/ario-shell.c:203 msgid "Show _lyrics" msgstr "Pokaż tekst utworu" #: ../src/shell/ario-shell.c:209 msgid "_Translate this application..." msgstr "Prze_tłumacz ten program..." #: ../src/shell/ario-shell.c:216 msgid "S_tatusbar" msgstr "Pasek s_tanu" #: ../src/shell/ario-shell.c:219 msgid "Upper part" msgstr "Część górna" #: ../src/shell/ario-shell.c:825 msgid "GTK client for MPD" msgstr "Klient GTK dla MPD" #: ../src/shell/ario-shell.c:826 msgid "translator-credits" msgstr "" "Launchpad Contributions:\n" " Andrzej MoST (Marcin Ostajewski) https://launchpad.net/~marcobolo\n" " Bartosz Kaszubowski https://launchpad.net/~simek\n" " Bernard Potocki https://launchpad.net/~imanel\n" " Jarosław Ogrodnik https://launchpad.net/~goz\n" " Krzysztof Konatowicz https://launchpad.net/~mieczotronix\n" " Marc Pavot https://launchpad.net/~marc-pavot\n" " Mateusz Sz. https://launchpad.net/~mateyko\n" " Michał Trzebiatowski https://launchpad.net/~hippie-1968\n" " Piotr Wicijowski https://launchpad.net/~piwsko\n" " Przemysław Liszka https://launchpad.net/~mistix\n" " Wit Wilinski https://launchpad.net/~wit-wilinski\n" " nitrofurano https://launchpad.net/~nitrofurano-3t\n" " skrzat https://launchpad.net/~radek-floraland" #. Create plugins configuration dialog window #: ../src/shell/ario-shell.c:1278 msgid "Configure Plugins" msgstr "Konfiguruj wtyczki" #. Set window properties #: ../src/shell/ario-shell-coverdownloader.c:187 msgid "Music Player Cover Download" msgstr "Pobieranie Okładek Music Player'a" #: ../src/shell/ario-shell-coverdownloader.c:332 msgid "Download Finished!" msgstr "Pobieranie zakończone!" #. We show the numbers of covers found and not found #: ../src/shell/ario-shell-coverdownloader.c:335 #, c-format msgid "" "%i covers found\n" "%i covers not found\n" "%i covers already exist" msgstr "" "%i - liczba odnalezionych okładek\n" "%i - liczba nie odnalezionych okładek\n" "%i - liczba istniejących już okładek" #. Set window properties #: ../src/shell/ario-shell-coverselect.c:242 msgid "Cover Download" msgstr "Pobieranie okładek" #: ../src/shell/ario-shell-coverselect.c:559 msgid "Error reading file" msgstr "Błąd przy odczycie pliku" #: ../src/shell/ario-shell-coverselect.c:584 msgid "Error saving file" msgstr "Błąd zapisu pliku" #: ../src/shell/ario-shell-lyrics.c:43 #: ../src/shell/ario-shell-preferences.c:133 #: ../src/shell/ario-shell-songinfos.c:272 msgid "Lyrics" msgstr "Teksty utworów" #: ../src/shell/ario-shell-lyricsselect.c:152 msgid "Lyrics Download" msgstr "Pobieranie tekstów utworów" #: ../src/shell/ario-shell-preferences.c:81 msgid "Ario Preferences" msgstr "Ustawienia Ario" #: ../src/shell/ario-shell-preferences.c:113 msgid "Server" msgstr "Serwer" #: ../src/shell/ario-shell-preferences.c:143 msgid "Others" msgstr "Inne" #: ../src/shell/ario-shell-similarartists.c:318 #, c-format msgid "%d songs" msgstr "%d utworów" #. Set window properties #. Set window title #: ../src/shell/ario-shell-songinfos.c:249 #: ../src/shell/ario-shell-songinfos.c:266 #: ../src/shell/ario-shell-songinfos.c:544 msgid "Song Properties" msgstr "Właściwości utworu" #: ../src/shell/ario-shell-songinfos.c:455 msgid "Error saving tags of file:" msgstr "Błąd podczas zapisywania tagów pliku:" #: ../src/widgets/ario-connection-widget.c:652 msgid "You must select a server." msgstr "Musisz wybrać serwer." #: ../src/widgets/ario-connection-widget.c:702 msgid "New Profile" msgstr "Nowy profil" #: ../src/widgets/ario-firstlaunch.c:82 msgid "The following configuration will be used:" msgstr "Użyte zostaną następujące ustawienia:" #: ../src/widgets/ario-firstlaunch.c:106 msgid "" "It is the first time you launch Ario.\n" "This assistant will help you to configure it." msgstr "" "Po raz pierwszy uruchamiasz Ario. \n" "Ten asystent pomoże Ci go skonfigurować." #: ../src/widgets/ario-firstlaunch.c:111 msgid "Welcome to Ario" msgstr "Witamy w Ario" #: ../src/widgets/ario-firstlaunch.c:129 msgid "Configuration" msgstr "Konfiguracja" #: ../src/widgets/ario-firstlaunch.c:141 msgid "Confirmation" msgstr "Potwierdzenie" #: ../src/widgets/ario-header.c:66 ../src/widgets/ario-tray-icon.h:42 #, c-format msgid "from %s by %s" msgstr "z %s przez %s" #: ../src/widgets/ario-header.c:199 msgid "Play previous song" msgstr "Odtwórz poprzedni utwór" #: ../src/widgets/ario-header.c:217 msgid "Play/Pause the music" msgstr "Odtwarzaj/pauzuj muzykę" #: ../src/widgets/ario-header.c:229 msgid "Stop the music" msgstr "Zatrzymaj odtwarzanie" #. Translators - This " of " is used to count the elapsed time #. of a song like in "00:59 of 03:24" #: ../src/widgets/ario-header.c:310 ../src/widgets/ario-tooltip.c:321 msgid " of " msgstr " z " #: ../src/widgets/ario-header.c:323 msgid "Toggle random on/off" msgstr "Włącz/wyłącz losowe odtwarzanie" #: ../src/widgets/ario-header.c:335 msgid "Toggle repeat on/off" msgstr "Włącz/wyłącz powtarzanie" #: ../src/widgets/ario-header.c:340 msgid "Change the music volume" msgstr "Zmiana głośności" #: ../src/widgets/ario-lyrics-editor.c:323 msgid "Downloading lyrics..." msgstr "Pobieranie tekstów utworów..." #: ../src/widgets/ario-lyrics-editor.c:351 msgid "Lyrics not found" msgstr "Teksty nie znalezione" #: ../src/widgets/ario-playlist.c:133 msgid "_Clear" msgstr "_Wyczyść" #: ../src/widgets/ario-playlist.c:136 msgid "_Shuffle" msgstr "_Losowo" #: ../src/widgets/ario-playlist.c:139 msgid "Cr_op" msgstr "K_adruj" #: ../src/widgets/ario-playlist.c:142 msgid "_Search in playlist" msgstr "_Wyszukaj w liście odtwarzania" #: ../src/widgets/ario-playlist.c:145 msgid "_Remove" msgstr "_Usuń" #: ../src/widgets/ario-playlist.c:148 msgid "_Save" msgstr "Zapi_sz" #: ../src/widgets/ario-playlist.c:154 msgid "_Go to playing song" msgstr "Przejdź do odtwarzanego utworu" #: ../src/widgets/ario-playlist.c:667 msgid "Filter:" msgstr "Filtr:" #. Create the widgets #: ../src/widgets/ario-playlist.c:1700 msgid "Save playlist" msgstr "Zapisz listę odtwarzania" #: ../src/widgets/ario-playlist.c:1710 msgid "Playlist name :" msgstr "Nazwa listy odtwarzania :" #: ../src/widgets/ario-playlist.c:1746 msgid "Playlist already exists. Do you want to overwrite it?" msgstr "Lista odtwarzania już istnieje. Czy chcesz ją nadpisać?" #. Format status bar message #: ../src/widgets/ario-status-bar.c:96 msgid "Songs" msgstr "Utwory" #: ../src/widgets/ario-tray-icon.c:102 msgid "_Play" msgstr "_Odtwarzaj" #: ../src/widgets/ario-tray-icon.c:105 msgid "_Pause" msgstr "_Pauza" #: ../src/widgets/ario-tray-icon.c:108 msgid "_Stop" msgstr "_Stop" #: ../src/widgets/ario-tray-icon.c:111 msgid "_Next" msgstr "_Następny" #: ../src/widgets/ario-tray-icon.c:114 msgid "P_revious" msgstr "Pop_rzedni" #: ../src/widgets/ario-tray-icon.h:41 msgid "Not playing" msgstr "Nie odtwarza" #. Translators: "friendly time" string for the current day, strftime format. like "Today 12:34 am" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1179 msgid "Today %I:%M %p" msgstr "Dzisiaj %I:%M %p" #. Translators: "friendly time" string for the previous day, #. * strftime format. e.g. "Yesterday 12:34 am" #. #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1192 msgid "Yesterday %I:%M %p" msgstr "Wczoraj %I:%M %p" #. Translators: "friendly time" string for a day in the current week, #. * strftime format. e.g. "Wed 12:34 am" #. #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1208 msgid "%a %I:%M %p" msgstr "%a %I:%M %p" #. Translators: "friendly time" string for a day in the current year, #. * strftime format. e.g. "Feb 12 12:34 am" #. #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1220 msgid "%b %d %I:%M %p" msgstr "%d %b %I:%M %p" #. Translators: "friendly time" string for a day in a different year, #. * strftime format. e.g. "Feb 12 1997" #. #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1225 msgid "%b %d %Y" msgstr "%d %b %Y" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1311 #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:4 msgid "Never" msgstr "Nigdy" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1335 msgid "OK" msgstr "OK" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1338 msgid "Logging in" msgstr "Logowanie się" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1341 msgid "Request failed" msgstr "Żądanie nieudane" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1344 msgid "Incorrect username" msgstr "Nieprawidłowa nazwa użytkownika" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1347 msgid "Incorrect password" msgstr "Nieprawidłowe hasło" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1350 msgid "Handshake failed" msgstr "Wymiana porozumień nieudana" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1353 msgid "Client update required" msgstr "Wymagana aktualizacja klienta" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1356 msgid "Track submission failed" msgstr "Wysłanie informacji o ścieżkach nieudane" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1359 msgid "Queue is too long" msgstr "Kolejka jest za długa" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1362 msgid "Track submission failed too many times" msgstr "Wysłanie informacji o ścieżkach nie powiodło się zbyt wiele razy" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1417 msgid "Audioscrobbler preferences" msgstr "Preferencje Audioscrobblera" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:1 msgid "Disabled" msgstr "Wyłączony" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:2 msgid "Last submission time:" msgstr "Czas ostatniej wysyłki:" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:3 msgid "Last.fm Profile" msgstr "Profil Last.fm" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:6 msgid "Queued tracks:" msgstr "Ścieżki w kolejce:" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:7 msgid "Status:" msgstr "Status:" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:8 msgid "Tracks submitted:" msgstr "Wysłanych ścieżek:" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:9 #: ../plugins/radios/ario-radio.c:168 msgid "Username :" msgstr "Nazwa użytkownika :" #: ../plugins/audioscrobbler/audioscrobbler.ario-plugin.desktop.in.h:1 msgid "Last.fm" msgstr "Last.fm" #: ../plugins/audioscrobbler/audioscrobbler.ario-plugin.desktop.in.h:2 msgid "Submits song information to last.fm" msgstr "Wysyła informacje o utworach do Last.fm" #: ../plugins/filesystem/ario-filesystem.c:158 msgid "File System" msgstr "System plików" #: ../plugins/filesystem/ario-filesystem.c:422 msgid "Music" msgstr "Muzyka" #: ../plugins/filesystem/filesystem.ario-plugin.desktop.in.h:1 msgid "A File System Browser" msgstr "Przeglądarka systemu plików" #: ../plugins/filesystem/filesystem.ario-plugin.desktop.in.h:2 msgid "File System Browser" msgstr "Przeglądarka systemu plików" #: ../plugins/information/ario-information.c:114 msgid "Information" msgstr "Informacje" #: ../plugins/information/information.ario-plugin.desktop.in.h:1 msgid "Display various information about the playing song" msgstr "Pokazuj różne informacje o odtwarzanym utworze" #: ../plugins/information/information.ario-plugin.desktop.in.h:2 msgid "Song Information" msgstr "Informacje o utworze" #: ../plugins/information/information.ui.h:2 msgid "Albums from this artist:" msgstr "Albumy tego artysty:" #: ../plugins/information/information.ui.h:5 msgid "Lyrics:" msgstr "Tekst:" #: ../plugins/libnotify/libnotify.ario-plugin.desktop.in.h:1 msgid "Add libnotify support" msgstr "Dodaj wsparcie biblioteki libnotify" #: ../plugins/libnotify/libnotify.ario-plugin.desktop.in.h:2 msgid "Libnotify" msgstr "biblioteka libnotify" #: ../plugins/mmkeys/mmkeys.ario-plugin.desktop.in.h:1 msgid "Add multimedia keys support" msgstr "Dodaj obsługę klawiszy multimedialnych" #: ../plugins/mmkeys/mmkeys.ario-plugin.desktop.in.h:2 msgid "Multimedia Keys" msgstr "Klawisze multimedialne" #: ../plugins/radios/ario-radio.c:125 msgid "Add a _new radio" msgstr "Dodaj _nową stację radiową" #: ../plugins/radios/ario-radio.c:128 msgid "_Delete this radios" msgstr "Usuń te stacje" #: ../plugins/radios/ario-radio.c:166 msgid "Last.fm: Radio of similar artists" msgstr "Last.fm: Radio Podobni Wykonawcy" #: ../plugins/radios/ario-radio.c:167 msgid "Last.fm: Radio of group" msgstr "Last.fm: Radio grupowe" #: ../plugins/radios/ario-radio.c:167 msgid "Group :" msgstr "Grupa :" #: ../plugins/radios/ario-radio.c:168 msgid "Last.fm: Personal radio" msgstr "Last.fm: Radio użytkownika" #: ../plugins/radios/ario-radio.c:169 msgid "Last.fm: Radio of genre" msgstr "Last.fm: Radio gatunku" #: ../plugins/radios/ario-radio.c:184 #: ../plugins/radios/radios.ario-plugin.desktop.in.h:2 msgid "Web Radios" msgstr "Internetowe stacje radiowe" #: ../plugins/radios/ario-radio.c:246 msgid "Internet Radios" msgstr "Internetowe stacje radiowe" #. Create dialog window #: ../plugins/radios/ario-radio.c:774 msgid "Edit a WebRadio" msgstr "Edytuj stację radiową" #: ../plugins/radios/ario-radio.c:787 ../plugins/radios/ario-radio.c:923 msgid "URL :" msgstr "URL :" #: ../plugins/radios/ario-radio.c:853 ../plugins/radios/ario-radio.c:997 msgid "Bad parameters. You must specify a name and a URL for the radio." msgstr "Niepoprawne parametry. Musisz podać nazwę i adres URL stacji radiowej." #. Create dialog window #: ../plugins/radios/ario-radio.c:883 msgid "Add a WebRadio" msgstr "Dodaj stację radiową" #: ../plugins/radios/ario-radio.c:1083 msgid "Are you sure you want to delete all the selected radios?" msgstr "Czy jesteś pewny że chcesz usunąć wszyskie zaznaczone stacje radiowe?" #: ../plugins/radios/radios.ario-plugin.desktop.in.h:1 msgid "Listen to webradios" msgstr "Słuchaj internetowych stacji radiowych" #: ../plugins/wikipedia/ario-wikipedia-plugin.c:49 #: ../plugins/wikipedia/ario-wikipedia-plugin.c:50 msgid "Find artist on Wikipedia" msgstr "Znajdź artystę na Wikipedii" #: ../plugins/wikipedia/ario-wikipedia-plugin.c:172 msgid "Wikipedia Plugin - Configuration" msgstr "Wtyczka Wikipedii - Ustawienie" #: ../plugins/wikipedia/ario-wikipedia-plugin.c:181 msgid "Wikipedia language :" msgstr "Język Wikipedii :" #: ../plugins/wikipedia/wikipedia.ario-plugin.desktop.in.h:1 msgid "A plugin to search current artist on wikipedia" msgstr "Wtyczka umożliwiająca wyszukiwanie artystów na Wikipedii" #: ../plugins/wikipedia/wikipedia.ario-plugin.desktop.in.h:2 msgid "Wikipedia" msgstr "Wikipedia" #~ msgid "Remove a search criteria" #~ msgstr "Usuń kryterium wyszukiwania" #~ msgid "Search songs in the library" #~ msgstr "Szukaj utworów w kolekcji" #~ msgid "Add a search criteria" #~ msgstr "Dodaj kryteria wyszukiwania" ario-1.6/po/fi.po0000644000175000017500000010371113226723436010622 00000000000000# translation of ario_ario-fi.po to Finnish # Finnish translation for ario # Copyright (c) 2008 Rosetta Contributors and Canonical Ltd 2008 # This file is distributed under the same license as the ario package. # # FIRST AUTHOR , 2008. # Mats Rauhala , 2008. msgid "" msgstr "" "Project-Id-Version: ario_ario-fi\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2011-06-13 18:15+0200\n" "PO-Revision-Date: 2011-05-17 10:13+0000\n" "Last-Translator: Jaro Larnos \n" "Language-Team: Finnish \n" "Language: fi\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2011-06-13 16:32+0000\n" "X-Generator: Launchpad (build 13175)\n" #: ../data/ario.desktop.in.in.h:1 msgid "Ario music player" msgstr "Ario-musiikkisoitin" #: ../data/ario.desktop.in.in.h:2 msgid "Client application to mpd" msgstr "MPD-asiakassovellus" #: ../data/ui/browser-prefs.ui.h:1 msgid "Alphabetically" msgstr "Aakkosittain" #: ../data/ui/browser-prefs.ui.h:2 msgid "By year" msgstr "Vuoden mukaan" #: ../data/ui/browser-prefs.ui.h:3 msgid "Library Options" msgstr "Kokoelmavaihtoehdot" #: ../data/ui/browser-prefs.ui.h:4 msgid "Library Organisation" msgstr "Kokoelman järjestäminen" #: ../data/ui/browser-prefs.ui.h:5 msgid "Sort albums: " msgstr "Järjestele albumit: " #: ../data/ui/connection-autodetect.ui.h:1 msgid "" "If you don't see your MPD server thanks to the automatic detection, you " "should check that zeroconf is activated in your MPD configuration or use the " "manual configuration." msgstr "" "Mikäli et näe automaattisesta tunnistuksesta huolimatta MPD palvelinta, " "kannattaa sinun tarkistaa, että zeroconf on aktivoitu MPD kokoonpanossasi, " "tai tee asetukset käsin." #: ../data/ui/connection-autodetect.ui.h:2 msgid "Server autodetection" msgstr "Palvelimen automaattinen tunnistus" #: ../data/ui/connection-widget.ui.h:1 msgid "Auto detect" msgstr "Automaattitunnistus" #: ../data/ui/connection-widget.ui.h:2 msgid "Default" msgstr "Oletus" #: ../data/ui/connection-widget.ui.h:3 ../src/widgets/ario-firstlaunch.c:83 msgid "Host :" msgstr "Verkkoasema :" #: ../data/ui/connection-widget.ui.h:4 msgid "Music directory :" msgstr "Musiikkihakemisto :" #: ../data/ui/connection-widget.ui.h:5 msgid "Music server is on the same computer as Ario" msgstr "Musiikkipalvelin on samalla tietokoneella kuin Ario" #. Create the widgets #: ../data/ui/connection-widget.ui.h:6 ../plugins/radios/ario-radio.c:786 #: ../plugins/radios/ario-radio.c:922 msgid "Name :" msgstr "Nimi :" #: ../data/ui/connection-widget.ui.h:7 #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:5 msgid "Password :" msgstr "Salasana :" #: ../data/ui/connection-widget.ui.h:8 ../src/widgets/ario-firstlaunch.c:85 msgid "Port :" msgstr "Portti :" #: ../data/ui/connection-widget.ui.h:9 msgid "Server type :" msgstr "Palvelimen tyyppi :" #: ../data/ui/connection-widget.ui.h:10 msgid "Timeout :" msgstr "" #: ../data/ui/connection-widget.ui.h:11 msgid "XMMS 2 (Experimental)" msgstr "XMMS 2 (Kokeellinen)" #: ../data/ui/cover-prefs.ui.h:1 msgid "Automatically download the album cover of the playing song" msgstr "Lataa soivan kappaleen albumikansikuvat automaattisesti" #: ../data/ui/cover-prefs.ui.h:2 ../src/shell/ario-shell-preferences.c:128 msgid "Covers" msgstr "Kansikuvat" #: ../data/ui/cover-prefs.ui.h:3 msgid "Covers Sources" msgstr "Kansikuvien lähteet" #: ../data/ui/cover-prefs.ui.h:4 msgid "Show the covers in the albums list" msgstr "Näytä kansikuvat albumilistauksessa" #: ../data/ui/cover-prefs.ui.h:5 msgid "Use Amazon." msgstr "Käytä Amazon-palvelua." #: ../data/ui/connection-prefs.ui.h:1 #: ../src/shell/ario-shell-preferences.c:108 msgid "Connection" msgstr "Yhteys" #: ../data/ui/connection-prefs.ui.h:2 msgid "_Autoconnect on startup" msgstr "Yhdistä _automaattisesti käynnistettäessä" #: ../data/ui/connection-prefs.ui.h:3 ../src/shell/ario-shell.c:167 msgid "_Connect" msgstr "_Yhdistä" #: ../data/ui/connection-prefs.ui.h:4 ../src/shell/ario-shell.c:170 msgid "_Disconnect" msgstr "_Katkaise yhteys" #: ../data/ui/connection-assistant.ui.h:1 msgid "" "You need to specify a server to connect to. If you don't see your server " "thanks to the autodetection, you should check that zeroconf/avahi is " "activated in your server or use the manual configuration." msgstr "" "Kirjoita MPD-palvelimen tiedot, johon otetaan yhteys. Jos " "automaattitunnistus ei löydä palvelintasi, tarkista, että zeroconf/avahi on " "aktivoituna palvelimessasi tai konfiguroi yhteyden tiedot manuaalisesti." #: ../data/ui/cover-progress.ui.h:1 ../data/ui/cover-select.ui.h:1 #: ../data/ui/song-infos.ui.h:1 ../plugins/information/information.ui.h:1 msgid "Album :" msgstr "Albumi:" #: ../data/ui/cover-progress.ui.h:2 ../data/ui/cover-select.ui.h:2 #: ../data/ui/lyrics-select.ui.h:1 ../data/ui/song-infos.ui.h:3 #: ../plugins/information/information.ui.h:3 #: ../plugins/radios/ario-radio.c:166 msgid "Artist :" msgstr "Artisti:" #: ../data/ui/cover-progress.ui.h:3 msgid "Downloading cover" msgstr "Ladataan kansikuvaa" #: ../data/ui/cover-select.ui.h:3 msgid "Local search" msgstr "Paikallinen haku" #: ../data/ui/cover-select.ui.h:4 ../src/sources/ario-search.c:108 msgid "Search" msgstr "Hae" #: ../data/ui/others-prefs.ui.h:1 msgid "Allow only one instance of Ario" msgstr "Salli vain yksi Ario-instanssi" #: ../data/ui/others-prefs.ui.h:2 msgid "Hide window when close button is pressed" msgstr "Piilota ikkuna painettaessa sulje-painiketta" #: ../data/ui/others-prefs.ui.h:3 msgid "Interface" msgstr "Käyttöliitymä" #: ../data/ui/others-prefs.ui.h:4 msgid "Playlist at the right of tabs" msgstr "" #: ../data/ui/others-prefs.ui.h:5 msgid "Playlist below tabs" msgstr "" #: ../data/ui/others-prefs.ui.h:6 msgid "Playlist within tabs" msgstr "" #: ../data/ui/others-prefs.ui.h:7 msgid "Proxy" msgstr "Välityspalvelin" #: ../data/ui/others-prefs.ui.h:8 msgid "Proxy Address :" msgstr "Välityspalvelimen osoite:" #: ../data/ui/others-prefs.ui.h:9 msgid "Proxy Port :" msgstr "Välityspalvelimen portti:" #: ../data/ui/others-prefs.ui.h:10 msgid "Show tabs" msgstr "Näytä välilehdet" #: ../data/ui/others-prefs.ui.h:11 msgid "Use a proxy" msgstr "Käytä välityspalvelinta" #: ../data/ui/lyrics-prefs.ui.h:1 msgid "Lyrics Sources" msgstr "Sanoituslähteet" #: ../data/ui/lyrics-select.ui.h:2 ../data/ui/song-infos.ui.h:13 #: ../plugins/information/information.ui.h:6 msgid "Title :" msgstr "Nimi :" #: ../data/ui/playlist-prefs.ui.h:1 msgid "Add after playing song" msgstr "Lisää soivan kappaleen jälkeen" #: ../data/ui/playlist-prefs.ui.h:2 msgid "Add and play" msgstr "Lisää ja soita" #: ../data/ui/playlist-prefs.ui.h:3 ../data/ui/similar-artists.ui.h:2 msgid "Add to playlist" msgstr "Lisää soittolistalle" #. ARIO_TAG_ARTIST #: ../data/ui/playlist-prefs.ui.h:4 ../src/servers/ario-server.c:46 #: ../src/sources/ario-tree-albums.c:213 ../src/widgets/ario-playlist.c:541 #: ../src/widgets/ario-songlist.c:228 ../src/widgets/ario-tray-icon.c:565 msgid "Album" msgstr "Albumi" #: ../data/ui/playlist-prefs.ui.h:5 ../src/servers/ario-server.c:45 #: ../src/widgets/ario-playlist.c:541 ../src/widgets/ario-songlist.c:213 #: ../src/widgets/ario-tray-icon.c:563 msgid "Artist" msgstr "Artisti" #. ARIO_TAG_GENRE #: ../data/ui/playlist-prefs.ui.h:6 ../src/servers/ario-server.c:52 #: ../src/widgets/ario-playlist.c:541 msgid "Date" msgstr "Päivämäärä" #: ../data/ui/playlist-prefs.ui.h:7 ../src/widgets/ario-playlist.c:541 msgid "Disc" msgstr "Levy" #: ../data/ui/playlist-prefs.ui.h:8 msgid "Double click" msgstr "Kaksoisnapsautus" #: ../data/ui/playlist-prefs.ui.h:9 ../src/widgets/ario-playlist.c:541 msgid "Duration" msgstr "Kesto" #: ../data/ui/playlist-prefs.ui.h:10 ../src/widgets/ario-playlist.c:541 msgid "File" msgstr "Tiedosto" #. ARIO_TAG_TRACK #. ARIO_TAG_NAME #: ../data/ui/playlist-prefs.ui.h:11 ../src/servers/ario-server.c:51 #: ../src/widgets/ario-playlist.c:541 msgid "Genre" msgstr "Tyylilaji" #: ../data/ui/playlist-prefs.ui.h:12 msgid "Go to current song when a new song is played" msgstr "Siirry kappaleen vaihtuessa nykyiseen" #: ../data/ui/playlist-prefs.ui.h:13 msgid "Mode" msgstr "Tila" #: ../data/ui/playlist-prefs.ui.h:14 msgid "On double click:" msgstr "Kaksoisnapsautuksella:" #: ../data/ui/playlist-prefs.ui.h:15 ../src/sources/ario-storedplaylists.c:229 #: ../src/shell/ario-shell.c:222 ../src/shell/ario-shell-preferences.c:123 #: ../src/widgets/ario-playlist.c:272 msgid "Playlist" msgstr "Soittolista" #: ../data/ui/playlist-prefs.ui.h:16 msgid "Playlist mode:" msgstr "Soittolista tila:" #: ../data/ui/playlist-prefs.ui.h:17 msgid "Replace in playlist" msgstr "Korvaa soittolistalla" #: ../data/ui/playlist-prefs.ui.h:18 msgid "Show rows:" msgstr "Näytä rivit" #. ARIO_TAG_ALBUM_ARTIST #: ../data/ui/playlist-prefs.ui.h:19 ../src/servers/ario-server.c:48 #: ../src/sources/ario-tree-songs.c:145 ../src/widgets/ario-playlist.c:541 #: ../src/widgets/ario-songlist.c:198 ../src/widgets/ario-tray-icon.c:567 msgid "Title" msgstr "Nimi" #. ARIO_TAG_TITLE #: ../data/ui/playlist-prefs.ui.h:20 ../src/servers/ario-server.c:49 #: ../src/sources/ario-tree-songs.c:138 ../src/widgets/ario-playlist.c:541 msgid "Track" msgstr "Kappale" #: ../data/ui/server-prefs.ui.h:1 msgid "Audio outputs" msgstr "Ääniulostulot" #: ../data/ui/server-prefs.ui.h:2 msgid "Crossfade" msgstr "Ristiinhäivytys" #: ../data/ui/server-prefs.ui.h:3 msgid "Database" msgstr "Tietokanta" #: ../data/ui/server-prefs.ui.h:4 msgid "Last updated:" msgstr "Viimeksi päivitetty:" #: ../data/ui/server-prefs.ui.h:5 msgid "Stop music on exit" msgstr "Lopeta musiikin toisto poistuttaessa" #: ../data/ui/server-prefs.ui.h:6 msgid "Update on startup" msgstr "Päivitä käynnistettäessä" #: ../data/ui/server-prefs.ui.h:7 msgid "_Update" msgstr "_Päivitä" #: ../data/ui/server-prefs.ui.h:8 msgid "enable crossfade" msgstr "Salli ristiinhäivytys" #: ../data/ui/server-prefs.ui.h:9 msgid "fade time (s):" msgstr "häivytysaika" #: ../data/ui/server-prefs.ui.h:10 ../src/ario-util.c:50 ../src/ario-util.c:71 #: ../src/ario-util.c:93 ../plugins/information/information.ui.h:7 #, c-format msgid "n/a" msgstr "-" #: ../data/ui/similar-artists.ui.h:1 msgid "Add all to playlist" msgstr "Lisää kaikkiin soittolistoihin" #: ../data/ui/similar-artists.ui.h:3 msgid "Find on Last.fm" msgstr "Etsi Last.fm:stä" #: ../data/ui/stats-prefs.ui.h:1 msgid "Database play time :" msgstr "Tietokannan soittoaika" #: ../data/ui/stats-prefs.ui.h:2 msgid "Number of albums :" msgstr "Albumien lukumäärä" #: ../data/ui/stats-prefs.ui.h:3 msgid "Number of artists :" msgstr "Artistien määrä :" #: ../data/ui/stats-prefs.ui.h:4 msgid "Number of songs :" msgstr "Kappaleiden määrä :" #: ../data/ui/stats-prefs.ui.h:5 msgid "Play time :" msgstr "Soittoaika :" #: ../data/ui/stats-prefs.ui.h:6 ../src/shell/ario-shell-preferences.c:148 msgid "Statistics" msgstr "Tilastot" #: ../data/ui/stats-prefs.ui.h:7 msgid "Uptime :" msgstr "Jatkuva toiminta-aika :" #: ../data/ui/song-infos.ui.h:2 msgid "Album Artist :" msgstr "Albumin artisti:" #: ../data/ui/song-infos.ui.h:4 msgid "Comment :" msgstr "Kommentti :" #: ../data/ui/song-infos.ui.h:5 msgid "Composer :" msgstr "Säveltäjä :" #: ../data/ui/song-infos.ui.h:6 msgid "Date :" msgstr "Päivämäärä" #: ../data/ui/song-infos.ui.h:7 msgid "Disc :" msgstr "Levy" #: ../data/ui/song-infos.ui.h:8 msgid "Filename :" msgstr "Tiedoston nimi :" #: ../data/ui/song-infos.ui.h:9 ../plugins/radios/ario-radio.c:169 msgid "Genre :" msgstr "Tyylilaji :" #: ../data/ui/song-infos.ui.h:10 ../plugins/information/information.ui.h:4 msgid "Length :" msgstr "Kesto :" #: ../data/ui/song-infos.ui.h:11 msgid "Performer :" msgstr "Esittäjä :" #: ../data/ui/song-infos.ui.h:12 msgid "Song" msgstr "Kappale" #: ../data/ui/song-infos.ui.h:14 msgid "Track :" msgstr "Raita :" #: ../data/ui/trayicon-prefs.ui.h:1 msgid "Do nothing" msgstr "Älä tee mitään" #: ../data/ui/trayicon-prefs.ui.h:2 msgid "Mute" msgstr "Vaimenna" #: ../data/ui/trayicon-prefs.ui.h:3 ../src/shell/ario-shell-preferences.c:138 msgid "Notification" msgstr "Ilmoitus" #: ../data/ui/trayicon-prefs.ui.h:4 msgid "Notification on song change" msgstr "Kappaleen vaihdon ilmoitus" #: ../data/ui/trayicon-prefs.ui.h:5 msgid "Notification time: " msgstr "Ilmoituksen kesto " #: ../data/ui/trayicon-prefs.ui.h:6 msgid "On middle button click on tray icon :" msgstr "Painettaessa ilmoitusalueen kuvaketta keskinapilla:" #: ../data/ui/trayicon-prefs.ui.h:7 ../src/widgets/ario-header.c:241 msgid "Play next song" msgstr "Soita seuraava kappale" #: ../data/ui/trayicon-prefs.ui.h:8 msgid "Play/Pause" msgstr "Toista/Pysäytä" #: ../data/ui/trayicon-prefs.ui.h:9 msgid "Tray icon" msgstr "Ilmoitusalueen kuvake" #: ../src/ario-main.c:67 msgid "Start minimized window" msgstr "Aloita piennetystä ikkunasta" #: ../src/ario-main.c:68 msgid "Start with specific profile" msgstr "" #. Format result string #: ../src/ario-util.c:110 msgid "seconds" msgstr "Sekuntia" #: ../src/ario-util.c:112 msgid "minutes" msgstr "minuuttia" #: ../src/ario-util.c:118 msgid "hours" msgstr "tuntia" #: ../src/ario-util.c:124 msgid "days" msgstr "päivää" #: ../src/covers/ario-cover.c:149 msgid "The cover already exists. Do you want to replace it?" msgstr "Kansikuva on jo olemassa. Haluatko korvata sen?" #: ../src/covers/ario-cover-local.c:48 msgid "Music Directory" msgstr "Musiikkihakemisto" #: ../src/playlist/ario-playlist-dynamic.c:49 msgid "songs of same artist" msgstr "Artistin kaikki kappaleet" #: ../src/playlist/ario-playlist-dynamic.c:50 msgid "songs of same album" msgstr "Albumin kaikki kappaleet" #: ../src/playlist/ario-playlist-dynamic.c:51 msgid "songs of similar artists" msgstr "Samankaltaisten artistien kappaleet" #: ../src/playlist/ario-playlist-dynamic.c:52 msgid "albums of same artists" msgstr "Artistin kaikki albumit" #: ../src/playlist/ario-playlist-dynamic.c:53 msgid "albums of similar artists" msgstr "Samankaltaisten artistien albumit" #: ../src/playlist/ario-playlist-dynamic.c:69 msgid "Dynamic Playlist" msgstr "Dynaaminen soittolista" #: ../src/playlist/ario-playlist-queue.c:49 msgid "Queue Mode" msgstr "Jonotus tila" #: ../src/playlist/ario-playlist-normal.c:47 msgid "Normal" msgstr "Tavallinen" #: ../src/plugins/ario-plugin-manager.c:45 msgid "Plugin" msgstr "Lisäosa" #: ../src/plugins/ario-plugin-manager.c:46 msgid "Enabled" msgstr "Otettu käyttöön" #: ../src/plugins/ario-plugin-manager.c:480 ../src/shell/ario-shell.c:206 msgid "_About" msgstr "_Tietoja ohjelmasta" #: ../src/plugins/ario-plugin-manager.c:488 msgid "C_onfigure" msgstr "_Asetukset" #: ../src/plugins/ario-plugin-manager.c:497 msgid "A_ctivate" msgstr "Ota _käyttöön" #: ../src/plugins/ario-plugin-manager.c:508 msgid "Ac_tivate All" msgstr "Ota k_aikki käyttöön" #: ../src/plugins/ario-plugin-manager.c:513 msgid "_Deactivate All" msgstr "_Poista kaikki käytöstä" #: ../src/plugins/ario-plugin-manager.c:722 msgid "Active plugins" msgstr "Käytössä olevat liitännäiset" #: ../src/preferences/ario-server-preferences.c:182 #: ../src/preferences/ario-stats-preferences.c:151 #: ../src/preferences/ario-stats-preferences.c:152 #: ../src/preferences/ario-stats-preferences.c:153 #: ../src/preferences/ario-stats-preferences.c:154 #: ../src/preferences/ario-stats-preferences.c:155 #: ../src/preferences/ario-stats-preferences.c:156 msgid "Not connected" msgstr "Ei yhteyttä" #: ../src/preferences/ario-server-preferences.c:187 #: ../src/preferences/ario-server-preferences.c:278 #: ../src/widgets/ario-status-bar.c:100 msgid "Updating..." msgstr "Päivitetään..." #: ../src/servers/ario-mpd.c:410 ../src/servers/ario-mpd2.c:522 msgid "Connecting to server..." msgstr "Yhdistetään palvelimeen..." #: ../src/servers/ario-mpd.c:438 ../src/servers/ario-mpd2.c:550 msgid "Impossible to connect to server. Check the connection options." msgstr "Palvelimeen ei saada yhteyttä. Tarkasta yhteys vaihtoehdot." #. ARIO_TAG_ALBUM #: ../src/servers/ario-server.c:47 msgid "Album Artist" msgstr "Albumin artisti" #. ARIO_TAG_DATE #: ../src/servers/ario-server.c:53 msgid "Composer" msgstr "Säveltäjä" #. ARIO_TAG_COMPOSER #: ../src/servers/ario-server.c:54 msgid "Performer" msgstr "Esittäjä" #. ARIO_TAG_PERFORMER #. ARIO_TAG_COMMENT #. ARIO_TAG_DISC #: ../src/servers/ario-server.c:57 msgid "Filename" msgstr "Tiedoston nimi" #. ARIO_TAG_FILENAME #: ../src/servers/ario-server.c:58 msgid "Any" msgstr "Mikä tahansa" #. impossible time or broken locale settings #: ../src/servers/ario-server.h:27 #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1235 msgid "Unknown" msgstr "Tuntematon" #: ../src/sources/ario-browser.c:82 ../src/sources/ario-search.c:70 #: ../src/sources/ario-storedplaylists.c:88 #: ../src/sources/ario-storedplaylists.c:106 #: ../plugins/filesystem/ario-filesystem.c:94 #: ../plugins/filesystem/ario-filesystem.c:109 #: ../plugins/radios/ario-radio.c:116 msgid "_Add to playlist" msgstr "_Lisää soittolistaan" #: ../src/sources/ario-browser.c:85 ../src/sources/ario-search.c:73 #: ../src/sources/ario-storedplaylists.c:91 #: ../src/sources/ario-storedplaylists.c:109 #: ../plugins/filesystem/ario-filesystem.c:97 #: ../plugins/filesystem/ario-filesystem.c:112 #: ../plugins/radios/ario-radio.c:119 msgid "Add and _play" msgstr "Lisää ja _toista" #: ../src/sources/ario-browser.c:88 ../src/sources/ario-search.c:76 #: ../src/sources/ario-storedplaylists.c:94 #: ../src/sources/ario-storedplaylists.c:112 #: ../plugins/filesystem/ario-filesystem.c:100 #: ../plugins/filesystem/ario-filesystem.c:115 #: ../plugins/radios/ario-radio.c:122 msgid "_Replace in playlist" msgstr "_Korvaa soittolistassa" #: ../src/sources/ario-browser.c:91 msgid "Get the covers" msgstr "Hae kansikuvat" #: ../src/sources/ario-browser.c:94 msgid "_Delete the covers" msgstr "_Poista kansikuvat" #: ../src/sources/ario-browser.c:97 ../src/sources/ario-browser.c:100 #: ../src/sources/ario-search.c:79 ../src/sources/ario-storedplaylists.c:115 #: ../src/widgets/ario-playlist.c:151 #: ../plugins/filesystem/ario-filesystem.c:118 #: ../plugins/radios/ario-radio.c:131 msgid "_Properties" msgstr "_Ominaisuudet" #: ../src/sources/ario-browser.c:125 ../src/shell/ario-shell-preferences.c:118 msgid "Library" msgstr "Kokoelma" #: ../src/sources/ario-storedplaylists.c:97 msgid "_Delete" msgstr "_Poista" #: ../src/sources/ario-storedplaylists.c:151 msgid "Playlists" msgstr "Soittolistat" #: ../src/sources/ario-storedplaylists.c:592 msgid "Are you sure that you want to delete all the selected playlists?" msgstr "Poistetaanko kaikki valitut soittolistat?" #: ../src/sources/ario-tree.c:856 msgid "Are you sure that you want to remove all the selected covers?" msgstr "Oletko varma että haluat poistaa kaikki valitut kansikuvat?" #. Translators - This "Cover" refers to an album cover art #: ../src/sources/ario-tree-albums.c:199 msgid "Cover" msgstr "Kansikuva" #: ../src/shell/ario-shell.c:160 msgid "_File" msgstr "_Tiedosto" #: ../src/shell/ario-shell.c:161 msgid "_Edit" msgstr "_Muokkaa" #: ../src/shell/ario-shell.c:162 msgid "_View" msgstr "_Näytä" #: ../src/shell/ario-shell.c:163 msgid "_Control" msgstr "_Ohjaus" #: ../src/shell/ario-shell.c:164 msgid "_Tool" msgstr "_Työkalu" #: ../src/shell/ario-shell.c:165 msgid "_Help" msgstr "_Ohje" #: ../src/shell/ario-shell.c:173 msgid "_Update database" msgstr "" #: ../src/shell/ario-shell.c:176 msgid "_Quit" msgstr "_Poistu" #: ../src/shell/ario-shell.c:179 msgid "Plu_gins" msgstr "Liitä_nnäiset" #: ../src/shell/ario-shell.c:182 msgid "Prefere_nces" msgstr "" #: ../src/shell/ario-shell.c:185 msgid "_Change current album cover" msgstr "_Vaihda nykyinen albumin kansikuva" #: ../src/shell/ario-shell.c:188 msgid "Download album _covers" msgstr "Lataa albumin_kansikuvia" #: ../src/shell/ario-shell.c:191 msgid "Find similar artists" msgstr "Etsi vastaavia artisteja" #: ../src/shell/ario-shell.c:194 msgid "Add similar songs to playlist" msgstr "Lisää vastaavia kappaleita soittolistalle" #: ../src/shell/ario-shell.c:197 msgid "Go to _previous tab" msgstr "Siirry edelliseen välilehteen" #: ../src/shell/ario-shell.c:200 msgid "Go to _next tab" msgstr "Siirry seuraavaan välilehteen" #: ../src/shell/ario-shell.c:203 msgid "Show _lyrics" msgstr "Näytä _lyriikat" #: ../src/shell/ario-shell.c:209 msgid "_Translate this application..." msgstr "_Käännä tämä sovellus..." #: ../src/shell/ario-shell.c:216 msgid "S_tatusbar" msgstr "T_ilarivi" #: ../src/shell/ario-shell.c:219 msgid "Upper part" msgstr "" #: ../src/shell/ario-shell.c:825 msgid "GTK client for MPD" msgstr "GTK-asiakas MPD:lle" #: ../src/shell/ario-shell.c:826 msgid "translator-credits" msgstr "" "Launchpad Contributions:\n" " Anne Sorsa https://launchpad.net/~angeni101\n" " Ari Niemi https://launchpad.net/~ari-niemi\n" " Ari Takalo https://launchpad.net/~ajtaka\n" " Jaro Larnos https://launchpad.net/~ambyr00\n" " Marc Pavot https://launchpad.net/~marc-pavot\n" " Mats Rauhala https://launchpad.net/~mats-rauhala\n" " Miia Ranta https://launchpad.net/~myrtti\n" " Päivi Pasi https://launchpad.net/~pap26" #. Create plugins configuration dialog window #: ../src/shell/ario-shell.c:1278 msgid "Configure Plugins" msgstr "Määrittele liitännäisiä" #. Set window properties #: ../src/shell/ario-shell-coverdownloader.c:187 msgid "Music Player Cover Download" msgstr "Musiikkisoittimen kansien lataus" #: ../src/shell/ario-shell-coverdownloader.c:332 msgid "Download Finished!" msgstr "Lataukset valmistuneet!" #. We show the numbers of covers found and not found #: ../src/shell/ario-shell-coverdownloader.c:335 #, c-format msgid "" "%i covers found\n" "%i covers not found\n" "%i covers already exist" msgstr "" "%i kansikuvaa löydetty\n" "%i kansikuvaa ei löydetty\n" "%i kansikuvaa jo olemassa" #. Set window properties #: ../src/shell/ario-shell-coverselect.c:242 msgid "Cover Download" msgstr "Kansien lataus" #: ../src/shell/ario-shell-coverselect.c:559 msgid "Error reading file" msgstr "Virhe luettaessa tiedostoa" #: ../src/shell/ario-shell-coverselect.c:584 msgid "Error saving file" msgstr "Virhe tallennettaessa tiedostoa" #: ../src/shell/ario-shell-lyrics.c:43 #: ../src/shell/ario-shell-preferences.c:133 #: ../src/shell/ario-shell-songinfos.c:272 msgid "Lyrics" msgstr "Sanoitukset" #: ../src/shell/ario-shell-lyricsselect.c:152 msgid "Lyrics Download" msgstr "Sanoituksien lataus" #: ../src/shell/ario-shell-preferences.c:81 msgid "Ario Preferences" msgstr "Arion asetukset" #: ../src/shell/ario-shell-preferences.c:113 msgid "Server" msgstr "Palvelin" #: ../src/shell/ario-shell-preferences.c:143 msgid "Others" msgstr "Muut" #: ../src/shell/ario-shell-similarartists.c:318 #, c-format msgid "%d songs" msgstr "%d kappaletta" #. Set window properties #. Set window title #: ../src/shell/ario-shell-songinfos.c:249 #: ../src/shell/ario-shell-songinfos.c:266 #: ../src/shell/ario-shell-songinfos.c:544 msgid "Song Properties" msgstr "Kappaleen ominaisuudet" #: ../src/shell/ario-shell-songinfos.c:455 msgid "Error saving tags of file:" msgstr "Virhe tallennettaessa tiedoston tageja:" #: ../src/widgets/ario-connection-widget.c:652 msgid "You must select a server." msgstr "Sinun täytyy valita palvelin." #: ../src/widgets/ario-connection-widget.c:702 msgid "New Profile" msgstr "Uusi profiili" #: ../src/widgets/ario-firstlaunch.c:82 msgid "The following configuration will be used:" msgstr "Seuraavia asetuksia käytetään:" #: ../src/widgets/ario-firstlaunch.c:106 msgid "" "It is the first time you launch Ario.\n" "This assistant will help you to configure it." msgstr "" "Tämä on ensimmäinen kerta kun käynnistät Arion.\n" "Tämä apulainen auttaa sinut konfiguroimaan sen." #: ../src/widgets/ario-firstlaunch.c:111 msgid "Welcome to Ario" msgstr "Tervetuloa Arioon" #: ../src/widgets/ario-firstlaunch.c:129 msgid "Configuration" msgstr "Asetukset" #: ../src/widgets/ario-firstlaunch.c:141 msgid "Confirmation" msgstr "Vahvistus" #: ../src/widgets/ario-header.c:66 ../src/widgets/ario-tray-icon.h:42 #, c-format msgid "from %s by %s" msgstr "" #: ../src/widgets/ario-header.c:199 msgid "Play previous song" msgstr "Soita edellinen kappale" #: ../src/widgets/ario-header.c:217 msgid "Play/Pause the music" msgstr "Toista/Pysäytä musiikki" #: ../src/widgets/ario-header.c:229 msgid "Stop the music" msgstr "Pysäytä musiikki" #. Translators - This " of " is used to count the elapsed time #. of a song like in "00:59 of 03:24" #: ../src/widgets/ario-header.c:310 ../src/widgets/ario-tooltip.c:321 msgid " of " msgstr " / " #: ../src/widgets/ario-header.c:323 msgid "Toggle random on/off" msgstr "Laita satunnaisuus päälle/pois" #: ../src/widgets/ario-header.c:335 msgid "Toggle repeat on/off" msgstr "Laita toisto päälle/pois" #: ../src/widgets/ario-header.c:340 msgid "Change the music volume" msgstr "Muuta äänenvoimakkuutta" #: ../src/widgets/ario-lyrics-editor.c:323 msgid "Downloading lyrics..." msgstr "Ladataan sanoituksia..." #: ../src/widgets/ario-lyrics-editor.c:351 msgid "Lyrics not found" msgstr "Sanoituksia ei löytynyt" #: ../src/widgets/ario-playlist.c:133 msgid "_Clear" msgstr "_Tyhjennä" #: ../src/widgets/ario-playlist.c:136 msgid "_Shuffle" msgstr "" #: ../src/widgets/ario-playlist.c:139 msgid "Cr_op" msgstr "" #: ../src/widgets/ario-playlist.c:142 msgid "_Search in playlist" msgstr "" #: ../src/widgets/ario-playlist.c:145 msgid "_Remove" msgstr "_Poista" #: ../src/widgets/ario-playlist.c:148 msgid "_Save" msgstr "_Tallenna" #: ../src/widgets/ario-playlist.c:154 msgid "_Go to playing song" msgstr "_Siirry parhaillaan soitettavaan kappaleeseen" #: ../src/widgets/ario-playlist.c:667 msgid "Filter:" msgstr "Suodatus:" #. Create the widgets #: ../src/widgets/ario-playlist.c:1700 msgid "Save playlist" msgstr "Tallenna soittolista" #: ../src/widgets/ario-playlist.c:1710 msgid "Playlist name :" msgstr "Soittolistan nimi :" #: ../src/widgets/ario-playlist.c:1746 msgid "Playlist already exists. Do you want to overwrite it?" msgstr "Soittolista on jo olemassa. Haluatko korvata sen?" #. Format status bar message #: ../src/widgets/ario-status-bar.c:96 msgid "Songs" msgstr "Kappaleet" #: ../src/widgets/ario-tray-icon.c:102 msgid "_Play" msgstr "_Toista" #: ../src/widgets/ario-tray-icon.c:105 msgid "_Pause" msgstr "_Tauko" #: ../src/widgets/ario-tray-icon.c:108 msgid "_Stop" msgstr "_Pysäytä" #: ../src/widgets/ario-tray-icon.c:111 msgid "_Next" msgstr "_Seuraava" #: ../src/widgets/ario-tray-icon.c:114 msgid "P_revious" msgstr "E_dellinen" #: ../src/widgets/ario-tray-icon.h:41 msgid "Not playing" msgstr "Soitto pysäytetty" #. Translators: "friendly time" string for the current day, strftime format. like "Today 12:34 am" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1179 msgid "Today %I:%M %p" msgstr "Tänään %I:%M %p" #. Translators: "friendly time" string for the previous day, #. * strftime format. e.g. "Yesterday 12:34 am" #. #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1192 msgid "Yesterday %I:%M %p" msgstr "Eilen %I:%M %p" #. Translators: "friendly time" string for a day in the current week, #. * strftime format. e.g. "Wed 12:34 am" #. #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1208 msgid "%a %I:%M %p" msgstr "%a %I:%M %p" #. Translators: "friendly time" string for a day in the current year, #. * strftime format. e.g. "Feb 12 12:34 am" #. #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1220 msgid "%b %d %I:%M %p" msgstr "%b %d %I:%M %p" #. Translators: "friendly time" string for a day in a different year, #. * strftime format. e.g. "Feb 12 1997" #. #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1225 msgid "%b %d %Y" msgstr "%b %d %Y" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1311 #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:4 msgid "Never" msgstr "Ei koskaan" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1335 msgid "OK" msgstr "OK" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1338 msgid "Logging in" msgstr "Kirjaudutaan sisään" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1341 msgid "Request failed" msgstr "Pyyntö epäonnistui" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1344 msgid "Incorrect username" msgstr "Virheellinen käyttäjätunnus" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1347 msgid "Incorrect password" msgstr "Virheellinen salasana" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1350 msgid "Handshake failed" msgstr "Kättely epäonnistui" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1353 msgid "Client update required" msgstr "Asiakasohjelman päivitys tarvitaan" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1356 msgid "Track submission failed" msgstr "Kappaletietojen lähetys epäonnistui" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1359 msgid "Queue is too long" msgstr "Jono on liian pitkä" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1362 msgid "Track submission failed too many times" msgstr "Kappaletietojen lähetys epäonnistui liian monta kertaa" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1417 msgid "Audioscrobbler preferences" msgstr "Audioscrobblerin asetukset" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:1 msgid "Disabled" msgstr "Ei käytössä" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:2 msgid "Last submission time:" msgstr "Viimeisimmän päivityksen aika:" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:3 msgid "Last.fm Profile" msgstr "Last.fm -profiili" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:6 msgid "Queued tracks:" msgstr "Jonoon laitetut kappaleet:" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:7 msgid "Status:" msgstr "Tila:" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:8 msgid "Tracks submitted:" msgstr "Lähetetyt kappaleet:" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:9 #: ../plugins/radios/ario-radio.c:168 msgid "Username :" msgstr "Käyttäjätunnus :" #: ../plugins/audioscrobbler/audioscrobbler.ario-plugin.desktop.in.h:1 msgid "Last.fm" msgstr "Last.fm" #: ../plugins/audioscrobbler/audioscrobbler.ario-plugin.desktop.in.h:2 msgid "Submits song information to last.fm" msgstr "Lähettää kappaletiedot last.fm -palveluun." #: ../plugins/filesystem/ario-filesystem.c:158 msgid "File System" msgstr "Tiedostojärjestelmä" #: ../plugins/filesystem/ario-filesystem.c:422 msgid "Music" msgstr "Musiikki" #: ../plugins/filesystem/filesystem.ario-plugin.desktop.in.h:1 msgid "A File System Browser" msgstr "Tiedostoselain" #: ../plugins/filesystem/filesystem.ario-plugin.desktop.in.h:2 msgid "File System Browser" msgstr "Tiedostoselain" #: ../plugins/information/ario-information.c:114 msgid "Information" msgstr "Tietoja" #: ../plugins/information/information.ario-plugin.desktop.in.h:1 msgid "Display various information about the playing song" msgstr "Näytä kaikenlaista tietoa parhaillaan soitettavasta kappaleesta" #: ../plugins/information/information.ario-plugin.desktop.in.h:2 msgid "Song Information" msgstr "Tietoa kappaleesta" #: ../plugins/information/information.ui.h:2 msgid "Albums from this artist:" msgstr "Muita albumeja samalta artistilta:" #: ../plugins/information/information.ui.h:5 msgid "Lyrics:" msgstr "Sanoitukset:" #: ../plugins/libnotify/libnotify.ario-plugin.desktop.in.h:1 msgid "Add libnotify support" msgstr "Lisää tuki libnotifylle" #: ../plugins/libnotify/libnotify.ario-plugin.desktop.in.h:2 msgid "Libnotify" msgstr "Libnotify" #: ../plugins/mmkeys/mmkeys.ario-plugin.desktop.in.h:1 msgid "Add multimedia keys support" msgstr "Lisää tuki multimedianäppäimille" #: ../plugins/mmkeys/mmkeys.ario-plugin.desktop.in.h:2 msgid "Multimedia Keys" msgstr "Multimedianäppäimet" #: ../plugins/radios/ario-radio.c:125 msgid "Add a _new radio" msgstr "Lisää _uusi radio" #: ../plugins/radios/ario-radio.c:128 msgid "_Delete this radios" msgstr "_Poista nämä radiot" #: ../plugins/radios/ario-radio.c:166 msgid "Last.fm: Radio of similar artists" msgstr "Last.fm: Samankaltaisten artistien radio" #: ../plugins/radios/ario-radio.c:167 msgid "Last.fm: Radio of group" msgstr "Last.fm: Ryhmäradio" #: ../plugins/radios/ario-radio.c:167 msgid "Group :" msgstr "Ryhmä :" #: ../plugins/radios/ario-radio.c:168 msgid "Last.fm: Personal radio" msgstr "Last.fm: Henkilökohtainen radio" #: ../plugins/radios/ario-radio.c:169 msgid "Last.fm: Radio of genre" msgstr "Last.fm: Genre kohtainen radio" #: ../plugins/radios/ario-radio.c:184 #: ../plugins/radios/radios.ario-plugin.desktop.in.h:2 msgid "Web Radios" msgstr "Verkkoradiot" #: ../plugins/radios/ario-radio.c:246 msgid "Internet Radios" msgstr "Internet-radiot" #. Create dialog window #: ../plugins/radios/ario-radio.c:774 msgid "Edit a WebRadio" msgstr "Muokkaa verkkoradiota" #: ../plugins/radios/ario-radio.c:787 ../plugins/radios/ario-radio.c:923 msgid "URL :" msgstr "URL :" #: ../plugins/radios/ario-radio.c:853 ../plugins/radios/ario-radio.c:997 msgid "Bad parameters. You must specify a name and a URL for the radio." msgstr "Huonot arvot. Sinun täytyy määritellä nimi ja URL radiolle." #. Create dialog window #: ../plugins/radios/ario-radio.c:883 msgid "Add a WebRadio" msgstr "Lisää verkkoradio" #: ../plugins/radios/ario-radio.c:1083 msgid "Are you sure you want to delete all the selected radios?" msgstr "Oletko varma että haluat poistaa kaikki valitut radiot?" #: ../plugins/radios/radios.ario-plugin.desktop.in.h:1 msgid "Listen to webradios" msgstr "Kuuntele verkkoradioita" #: ../plugins/wikipedia/ario-wikipedia-plugin.c:49 #: ../plugins/wikipedia/ario-wikipedia-plugin.c:50 msgid "Find artist on Wikipedia" msgstr "Hae artistia Wikipediasta" #: ../plugins/wikipedia/ario-wikipedia-plugin.c:172 msgid "Wikipedia Plugin - Configuration" msgstr "Wikipedia liitännäinen - Asetukset" #: ../plugins/wikipedia/ario-wikipedia-plugin.c:181 msgid "Wikipedia language :" msgstr "Wikipedia-kieli :" #: ../plugins/wikipedia/wikipedia.ario-plugin.desktop.in.h:1 msgid "A plugin to search current artist on wikipedia" msgstr "Liitännäinen kyseisen artistin hakemiseen wikipediasta" #: ../plugins/wikipedia/wikipedia.ario-plugin.desktop.in.h:2 msgid "Wikipedia" msgstr "Wikipedia" #~ msgid "Add a search criteria" #~ msgstr "Lisää hakuehto" #~ msgid "Search songs in the library" #~ msgstr "Hae kappaleita kirjastosta" #~ msgid "Remove a search criteria" #~ msgstr "Poista hakuehto" ario-1.6/po/en_AU.po0000644000175000017500000010132713226723442011211 00000000000000# English (Australia) translation for ario # Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 # This file is distributed under the same license as the ario package. # FIRST AUTHOR , 2010. # msgid "" msgstr "" "Project-Id-Version: ario\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2011-06-13 18:15+0200\n" "PO-Revision-Date: 2010-08-10 20:16+0000\n" "Last-Translator: Jesse Bye \n" "Language-Team: English (Australia) \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2011-06-13 16:32+0000\n" "X-Generator: Launchpad (build 13175)\n" #: ../data/ario.desktop.in.in.h:1 msgid "Ario music player" msgstr "Ario music player" #: ../data/ario.desktop.in.in.h:2 msgid "Client application to mpd" msgstr "Client application to mpd" #: ../data/ui/browser-prefs.ui.h:1 msgid "Alphabetically" msgstr "Alphabetically" #: ../data/ui/browser-prefs.ui.h:2 msgid "By year" msgstr "By year" #: ../data/ui/browser-prefs.ui.h:3 msgid "Library Options" msgstr "Libary Options" #: ../data/ui/browser-prefs.ui.h:4 msgid "Library Organisation" msgstr "Library Organisation" #: ../data/ui/browser-prefs.ui.h:5 msgid "Sort albums: " msgstr "Sort albums: " #: ../data/ui/connection-autodetect.ui.h:1 msgid "" "If you don't see your MPD server thanks to the automatic detection, you " "should check that zeroconf is activated in your MPD configuration or use the " "manual configuration." msgstr "" "If you don't see your MPD server thanks to the automatic detection, you " "should check that zeroconf is activated in your MPD configuration or use the " "manual configuration." #: ../data/ui/connection-autodetect.ui.h:2 msgid "Server autodetection" msgstr "Server autodetection" #: ../data/ui/connection-widget.ui.h:1 msgid "Auto detect" msgstr "Auto detect" #: ../data/ui/connection-widget.ui.h:2 msgid "Default" msgstr "Default" #: ../data/ui/connection-widget.ui.h:3 ../src/widgets/ario-firstlaunch.c:83 msgid "Host :" msgstr "Host :" #: ../data/ui/connection-widget.ui.h:4 msgid "Music directory :" msgstr "Music directory :" #: ../data/ui/connection-widget.ui.h:5 msgid "Music server is on the same computer as Ario" msgstr "Music server is on the same computer as Ario" #. Create the widgets #: ../data/ui/connection-widget.ui.h:6 ../plugins/radios/ario-radio.c:786 #: ../plugins/radios/ario-radio.c:922 msgid "Name :" msgstr "Name :" #: ../data/ui/connection-widget.ui.h:7 #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:5 msgid "Password :" msgstr "Password :" #: ../data/ui/connection-widget.ui.h:8 ../src/widgets/ario-firstlaunch.c:85 msgid "Port :" msgstr "Port :" #: ../data/ui/connection-widget.ui.h:9 msgid "Server type :" msgstr "Server type :" #: ../data/ui/connection-widget.ui.h:10 msgid "Timeout :" msgstr "" #: ../data/ui/connection-widget.ui.h:11 msgid "XMMS 2 (Experimental)" msgstr "XMMS 2 (Experimental)" #: ../data/ui/cover-prefs.ui.h:1 msgid "Automatically download the album cover of the playing song" msgstr "Automatically download the album cover of the playing song" #: ../data/ui/cover-prefs.ui.h:2 ../src/shell/ario-shell-preferences.c:128 msgid "Covers" msgstr "Covers" #: ../data/ui/cover-prefs.ui.h:3 msgid "Covers Sources" msgstr "Covers Sources" #: ../data/ui/cover-prefs.ui.h:4 msgid "Show the covers in the albums list" msgstr "Show the covers in the albums list" #: ../data/ui/cover-prefs.ui.h:5 msgid "Use Amazon." msgstr "Use Amazon." #: ../data/ui/connection-prefs.ui.h:1 #: ../src/shell/ario-shell-preferences.c:108 msgid "Connection" msgstr "Connection" #: ../data/ui/connection-prefs.ui.h:2 msgid "_Autoconnect on startup" msgstr "_Autoconnect on startup" #: ../data/ui/connection-prefs.ui.h:3 ../src/shell/ario-shell.c:167 msgid "_Connect" msgstr "_Connect" #: ../data/ui/connection-prefs.ui.h:4 ../src/shell/ario-shell.c:170 msgid "_Disconnect" msgstr "_Disconnect" #: ../data/ui/connection-assistant.ui.h:1 msgid "" "You need to specify a server to connect to. If you don't see your server " "thanks to the autodetection, you should check that zeroconf/avahi is " "activated in your server or use the manual configuration." msgstr "" "You need to specify a server to connect to. If you don't see your server " "thanks to the autodetection, you should check that zeroconf/avahi is " "activated in your server or use the manual configuration." #: ../data/ui/cover-progress.ui.h:1 ../data/ui/cover-select.ui.h:1 #: ../data/ui/song-infos.ui.h:1 ../plugins/information/information.ui.h:1 msgid "Album :" msgstr "Album :" #: ../data/ui/cover-progress.ui.h:2 ../data/ui/cover-select.ui.h:2 #: ../data/ui/lyrics-select.ui.h:1 ../data/ui/song-infos.ui.h:3 #: ../plugins/information/information.ui.h:3 #: ../plugins/radios/ario-radio.c:166 msgid "Artist :" msgstr "Artist :" #: ../data/ui/cover-progress.ui.h:3 msgid "Downloading cover" msgstr "Downloading cover" #: ../data/ui/cover-select.ui.h:3 msgid "Local search" msgstr "Local search" #: ../data/ui/cover-select.ui.h:4 ../src/sources/ario-search.c:108 msgid "Search" msgstr "Search" #: ../data/ui/others-prefs.ui.h:1 msgid "Allow only one instance of Ario" msgstr "Allow only one instance of Ario" #: ../data/ui/others-prefs.ui.h:2 msgid "Hide window when close button is pressed" msgstr "Hide window when close button is pressed" #: ../data/ui/others-prefs.ui.h:3 msgid "Interface" msgstr "Interface" #: ../data/ui/others-prefs.ui.h:4 msgid "Playlist at the right of tabs" msgstr "Playlist at the right of tabs" #: ../data/ui/others-prefs.ui.h:5 msgid "Playlist below tabs" msgstr "Playlist below tabs" #: ../data/ui/others-prefs.ui.h:6 msgid "Playlist within tabs" msgstr "Playlist within tabs" #: ../data/ui/others-prefs.ui.h:7 msgid "Proxy" msgstr "Proxy" #: ../data/ui/others-prefs.ui.h:8 msgid "Proxy Address :" msgstr "Proxy Address :" #: ../data/ui/others-prefs.ui.h:9 msgid "Proxy Port :" msgstr "Proxy Port :" #: ../data/ui/others-prefs.ui.h:10 msgid "Show tabs" msgstr "Show tabs" #: ../data/ui/others-prefs.ui.h:11 msgid "Use a proxy" msgstr "Use a proxy" #: ../data/ui/lyrics-prefs.ui.h:1 msgid "Lyrics Sources" msgstr "Lyrics Sources" #: ../data/ui/lyrics-select.ui.h:2 ../data/ui/song-infos.ui.h:13 #: ../plugins/information/information.ui.h:6 msgid "Title :" msgstr "Title :" #: ../data/ui/playlist-prefs.ui.h:1 msgid "Add after playing song" msgstr "Add after playing song" #: ../data/ui/playlist-prefs.ui.h:2 msgid "Add and play" msgstr "Add and play" #: ../data/ui/playlist-prefs.ui.h:3 ../data/ui/similar-artists.ui.h:2 msgid "Add to playlist" msgstr "Add to playlist" #. ARIO_TAG_ARTIST #: ../data/ui/playlist-prefs.ui.h:4 ../src/servers/ario-server.c:46 #: ../src/sources/ario-tree-albums.c:213 ../src/widgets/ario-playlist.c:541 #: ../src/widgets/ario-songlist.c:228 ../src/widgets/ario-tray-icon.c:565 msgid "Album" msgstr "Album" #: ../data/ui/playlist-prefs.ui.h:5 ../src/servers/ario-server.c:45 #: ../src/widgets/ario-playlist.c:541 ../src/widgets/ario-songlist.c:213 #: ../src/widgets/ario-tray-icon.c:563 msgid "Artist" msgstr "Artist" #. ARIO_TAG_GENRE #: ../data/ui/playlist-prefs.ui.h:6 ../src/servers/ario-server.c:52 #: ../src/widgets/ario-playlist.c:541 msgid "Date" msgstr "Date" #: ../data/ui/playlist-prefs.ui.h:7 ../src/widgets/ario-playlist.c:541 msgid "Disc" msgstr "Disc" #: ../data/ui/playlist-prefs.ui.h:8 msgid "Double click" msgstr "Double click" #: ../data/ui/playlist-prefs.ui.h:9 ../src/widgets/ario-playlist.c:541 msgid "Duration" msgstr "Duration" #: ../data/ui/playlist-prefs.ui.h:10 ../src/widgets/ario-playlist.c:541 msgid "File" msgstr "File" #. ARIO_TAG_TRACK #. ARIO_TAG_NAME #: ../data/ui/playlist-prefs.ui.h:11 ../src/servers/ario-server.c:51 #: ../src/widgets/ario-playlist.c:541 msgid "Genre" msgstr "Genre" #: ../data/ui/playlist-prefs.ui.h:12 msgid "Go to current song when a new song is played" msgstr "Go to current song when a new song is played" #: ../data/ui/playlist-prefs.ui.h:13 msgid "Mode" msgstr "Mode" #: ../data/ui/playlist-prefs.ui.h:14 msgid "On double click:" msgstr "On double click:" #: ../data/ui/playlist-prefs.ui.h:15 ../src/sources/ario-storedplaylists.c:229 #: ../src/shell/ario-shell.c:222 ../src/shell/ario-shell-preferences.c:123 #: ../src/widgets/ario-playlist.c:272 msgid "Playlist" msgstr "Playlist" #: ../data/ui/playlist-prefs.ui.h:16 msgid "Playlist mode:" msgstr "Playlist mode:" #: ../data/ui/playlist-prefs.ui.h:17 msgid "Replace in playlist" msgstr "Replace in playlist" #: ../data/ui/playlist-prefs.ui.h:18 msgid "Show rows:" msgstr "Show rows:" #. ARIO_TAG_ALBUM_ARTIST #: ../data/ui/playlist-prefs.ui.h:19 ../src/servers/ario-server.c:48 #: ../src/sources/ario-tree-songs.c:145 ../src/widgets/ario-playlist.c:541 #: ../src/widgets/ario-songlist.c:198 ../src/widgets/ario-tray-icon.c:567 msgid "Title" msgstr "Title" #. ARIO_TAG_TITLE #: ../data/ui/playlist-prefs.ui.h:20 ../src/servers/ario-server.c:49 #: ../src/sources/ario-tree-songs.c:138 ../src/widgets/ario-playlist.c:541 msgid "Track" msgstr "Track" #: ../data/ui/server-prefs.ui.h:1 msgid "Audio outputs" msgstr "Audio outputs" #: ../data/ui/server-prefs.ui.h:2 msgid "Crossfade" msgstr "Crossfade" #: ../data/ui/server-prefs.ui.h:3 msgid "Database" msgstr "Database" #: ../data/ui/server-prefs.ui.h:4 msgid "Last updated:" msgstr "Last updated:" #: ../data/ui/server-prefs.ui.h:5 msgid "Stop music on exit" msgstr "Stop music on exit" #: ../data/ui/server-prefs.ui.h:6 msgid "Update on startup" msgstr "Update on startup" #: ../data/ui/server-prefs.ui.h:7 msgid "_Update" msgstr "_Update" #: ../data/ui/server-prefs.ui.h:8 msgid "enable crossfade" msgstr "enable crossfade" #: ../data/ui/server-prefs.ui.h:9 msgid "fade time (s):" msgstr "fade time (s):" #: ../data/ui/server-prefs.ui.h:10 ../src/ario-util.c:50 ../src/ario-util.c:71 #: ../src/ario-util.c:93 ../plugins/information/information.ui.h:7 #, c-format msgid "n/a" msgstr "n/a" #: ../data/ui/similar-artists.ui.h:1 msgid "Add all to playlist" msgstr "Add all to playlist" #: ../data/ui/similar-artists.ui.h:3 msgid "Find on Last.fm" msgstr "Find on Last.fm" #: ../data/ui/stats-prefs.ui.h:1 msgid "Database play time :" msgstr "Database play time :" #: ../data/ui/stats-prefs.ui.h:2 msgid "Number of albums :" msgstr "Number of albums :" #: ../data/ui/stats-prefs.ui.h:3 msgid "Number of artists :" msgstr "Number of artists :" #: ../data/ui/stats-prefs.ui.h:4 msgid "Number of songs :" msgstr "Number of songs :" #: ../data/ui/stats-prefs.ui.h:5 msgid "Play time :" msgstr "Play time :" #: ../data/ui/stats-prefs.ui.h:6 ../src/shell/ario-shell-preferences.c:148 msgid "Statistics" msgstr "Statistics" #: ../data/ui/stats-prefs.ui.h:7 msgid "Uptime :" msgstr "Uptime :" #: ../data/ui/song-infos.ui.h:2 msgid "Album Artist :" msgstr "Album Artist :" #: ../data/ui/song-infos.ui.h:4 msgid "Comment :" msgstr "Comment :" #: ../data/ui/song-infos.ui.h:5 msgid "Composer :" msgstr "Composer :" #: ../data/ui/song-infos.ui.h:6 msgid "Date :" msgstr "Date :" #: ../data/ui/song-infos.ui.h:7 msgid "Disc :" msgstr "Disc :" #: ../data/ui/song-infos.ui.h:8 msgid "Filename :" msgstr "Filename :" #: ../data/ui/song-infos.ui.h:9 ../plugins/radios/ario-radio.c:169 msgid "Genre :" msgstr "Genre :" #: ../data/ui/song-infos.ui.h:10 ../plugins/information/information.ui.h:4 msgid "Length :" msgstr "Length :" #: ../data/ui/song-infos.ui.h:11 msgid "Performer :" msgstr "Performer :" #: ../data/ui/song-infos.ui.h:12 msgid "Song" msgstr "Song" #: ../data/ui/song-infos.ui.h:14 msgid "Track :" msgstr "Track :" #: ../data/ui/trayicon-prefs.ui.h:1 msgid "Do nothing" msgstr "Do nothing" #: ../data/ui/trayicon-prefs.ui.h:2 msgid "Mute" msgstr "Mute" #: ../data/ui/trayicon-prefs.ui.h:3 ../src/shell/ario-shell-preferences.c:138 msgid "Notification" msgstr "Notification" #: ../data/ui/trayicon-prefs.ui.h:4 msgid "Notification on song change" msgstr "Notification on song change" #: ../data/ui/trayicon-prefs.ui.h:5 msgid "Notification time: " msgstr "Notification time: " #: ../data/ui/trayicon-prefs.ui.h:6 msgid "On middle button click on tray icon :" msgstr "On middle button click on tray icon :" #: ../data/ui/trayicon-prefs.ui.h:7 ../src/widgets/ario-header.c:241 msgid "Play next song" msgstr "Play next song" #: ../data/ui/trayicon-prefs.ui.h:8 msgid "Play/Pause" msgstr "Play/Pause" #: ../data/ui/trayicon-prefs.ui.h:9 msgid "Tray icon" msgstr "Tray icon" #: ../src/ario-main.c:67 msgid "Start minimized window" msgstr "Start minimised window" #: ../src/ario-main.c:68 msgid "Start with specific profile" msgstr "" #. Format result string #: ../src/ario-util.c:110 msgid "seconds" msgstr "seconds" #: ../src/ario-util.c:112 msgid "minutes" msgstr "minutes" #: ../src/ario-util.c:118 msgid "hours" msgstr "hours" #: ../src/ario-util.c:124 msgid "days" msgstr "days" #: ../src/covers/ario-cover.c:149 msgid "The cover already exists. Do you want to replace it?" msgstr "The cover already exists. Do you want to replace it?" #: ../src/covers/ario-cover-local.c:48 msgid "Music Directory" msgstr "Music Directory" #: ../src/playlist/ario-playlist-dynamic.c:49 msgid "songs of same artist" msgstr "songs of same artist" #: ../src/playlist/ario-playlist-dynamic.c:50 msgid "songs of same album" msgstr "songs of same album" #: ../src/playlist/ario-playlist-dynamic.c:51 msgid "songs of similar artists" msgstr "songs of similar artists" #: ../src/playlist/ario-playlist-dynamic.c:52 msgid "albums of same artists" msgstr "albums of same artists" #: ../src/playlist/ario-playlist-dynamic.c:53 msgid "albums of similar artists" msgstr "albums of similar artists" #: ../src/playlist/ario-playlist-dynamic.c:69 msgid "Dynamic Playlist" msgstr "Dynamic Playlist" #: ../src/playlist/ario-playlist-queue.c:49 msgid "Queue Mode" msgstr "Queue Mode" #: ../src/playlist/ario-playlist-normal.c:47 msgid "Normal" msgstr "Normal" #: ../src/plugins/ario-plugin-manager.c:45 msgid "Plugin" msgstr "Plug-in" #: ../src/plugins/ario-plugin-manager.c:46 msgid "Enabled" msgstr "Enabled" #: ../src/plugins/ario-plugin-manager.c:480 ../src/shell/ario-shell.c:206 msgid "_About" msgstr "_About" #: ../src/plugins/ario-plugin-manager.c:488 msgid "C_onfigure" msgstr "C_onfigure" #: ../src/plugins/ario-plugin-manager.c:497 msgid "A_ctivate" msgstr "A_ctivate" #: ../src/plugins/ario-plugin-manager.c:508 msgid "Ac_tivate All" msgstr "Ac_tivate All" #: ../src/plugins/ario-plugin-manager.c:513 msgid "_Deactivate All" msgstr "_Deactivate All" #: ../src/plugins/ario-plugin-manager.c:722 msgid "Active plugins" msgstr "Active plug-ins" #: ../src/preferences/ario-server-preferences.c:182 #: ../src/preferences/ario-stats-preferences.c:151 #: ../src/preferences/ario-stats-preferences.c:152 #: ../src/preferences/ario-stats-preferences.c:153 #: ../src/preferences/ario-stats-preferences.c:154 #: ../src/preferences/ario-stats-preferences.c:155 #: ../src/preferences/ario-stats-preferences.c:156 msgid "Not connected" msgstr "Not connected" #: ../src/preferences/ario-server-preferences.c:187 #: ../src/preferences/ario-server-preferences.c:278 #: ../src/widgets/ario-status-bar.c:100 msgid "Updating..." msgstr "Updating..." #: ../src/servers/ario-mpd.c:410 ../src/servers/ario-mpd2.c:522 msgid "Connecting to server..." msgstr "Connecting to server..." #: ../src/servers/ario-mpd.c:438 ../src/servers/ario-mpd2.c:550 msgid "Impossible to connect to server. Check the connection options." msgstr "Impossible to connect to server. Check the connection options." #. ARIO_TAG_ALBUM #: ../src/servers/ario-server.c:47 msgid "Album Artist" msgstr "Album Artist" #. ARIO_TAG_DATE #: ../src/servers/ario-server.c:53 msgid "Composer" msgstr "Composer" #. ARIO_TAG_COMPOSER #: ../src/servers/ario-server.c:54 msgid "Performer" msgstr "Performer" #. ARIO_TAG_PERFORMER #. ARIO_TAG_COMMENT #. ARIO_TAG_DISC #: ../src/servers/ario-server.c:57 msgid "Filename" msgstr "Filename" #. ARIO_TAG_FILENAME #: ../src/servers/ario-server.c:58 msgid "Any" msgstr "Any" #. impossible time or broken locale settings #: ../src/servers/ario-server.h:27 #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1235 msgid "Unknown" msgstr "Unknown" #: ../src/sources/ario-browser.c:82 ../src/sources/ario-search.c:70 #: ../src/sources/ario-storedplaylists.c:88 #: ../src/sources/ario-storedplaylists.c:106 #: ../plugins/filesystem/ario-filesystem.c:94 #: ../plugins/filesystem/ario-filesystem.c:109 #: ../plugins/radios/ario-radio.c:116 msgid "_Add to playlist" msgstr "_Add to playlist" #: ../src/sources/ario-browser.c:85 ../src/sources/ario-search.c:73 #: ../src/sources/ario-storedplaylists.c:91 #: ../src/sources/ario-storedplaylists.c:109 #: ../plugins/filesystem/ario-filesystem.c:97 #: ../plugins/filesystem/ario-filesystem.c:112 #: ../plugins/radios/ario-radio.c:119 msgid "Add and _play" msgstr "Add and _play" #: ../src/sources/ario-browser.c:88 ../src/sources/ario-search.c:76 #: ../src/sources/ario-storedplaylists.c:94 #: ../src/sources/ario-storedplaylists.c:112 #: ../plugins/filesystem/ario-filesystem.c:100 #: ../plugins/filesystem/ario-filesystem.c:115 #: ../plugins/radios/ario-radio.c:122 msgid "_Replace in playlist" msgstr "_Replace in playlist" #: ../src/sources/ario-browser.c:91 msgid "Get the covers" msgstr "Get the covers" #: ../src/sources/ario-browser.c:94 msgid "_Delete the covers" msgstr "_Delete the covers" #: ../src/sources/ario-browser.c:97 ../src/sources/ario-browser.c:100 #: ../src/sources/ario-search.c:79 ../src/sources/ario-storedplaylists.c:115 #: ../src/widgets/ario-playlist.c:151 #: ../plugins/filesystem/ario-filesystem.c:118 #: ../plugins/radios/ario-radio.c:131 msgid "_Properties" msgstr "_Properties" #: ../src/sources/ario-browser.c:125 ../src/shell/ario-shell-preferences.c:118 msgid "Library" msgstr "Library" #: ../src/sources/ario-storedplaylists.c:97 msgid "_Delete" msgstr "_Delete" #: ../src/sources/ario-storedplaylists.c:151 msgid "Playlists" msgstr "Playlists" #: ../src/sources/ario-storedplaylists.c:592 msgid "Are you sure that you want to delete all the selected playlists?" msgstr "Are you sure that you want to delete all the selected playlists?" #: ../src/sources/ario-tree.c:856 msgid "Are you sure that you want to remove all the selected covers?" msgstr "Are you sure that you want to remove all the selected covers?" #. Translators - This "Cover" refers to an album cover art #: ../src/sources/ario-tree-albums.c:199 msgid "Cover" msgstr "Cover" #: ../src/shell/ario-shell.c:160 msgid "_File" msgstr "_File" #: ../src/shell/ario-shell.c:161 msgid "_Edit" msgstr "_Edit" #: ../src/shell/ario-shell.c:162 msgid "_View" msgstr "_View" #: ../src/shell/ario-shell.c:163 msgid "_Control" msgstr "_Control" #: ../src/shell/ario-shell.c:164 msgid "_Tool" msgstr "_Tool" #: ../src/shell/ario-shell.c:165 msgid "_Help" msgstr "_Help" #: ../src/shell/ario-shell.c:173 msgid "_Update database" msgstr "_Update database" #: ../src/shell/ario-shell.c:176 msgid "_Quit" msgstr "_Quit" #: ../src/shell/ario-shell.c:179 msgid "Plu_gins" msgstr "Plu_gins" #: ../src/shell/ario-shell.c:182 msgid "Prefere_nces" msgstr "Prefere_nces" #: ../src/shell/ario-shell.c:185 msgid "_Change current album cover" msgstr "_Change current album cover" #: ../src/shell/ario-shell.c:188 msgid "Download album _covers" msgstr "Download album _covers" #: ../src/shell/ario-shell.c:191 msgid "Find similar artists" msgstr "Find similar artists" #: ../src/shell/ario-shell.c:194 msgid "Add similar songs to playlist" msgstr "Add similar songs to playlist" #: ../src/shell/ario-shell.c:197 msgid "Go to _previous tab" msgstr "Go to _previous tab" #: ../src/shell/ario-shell.c:200 msgid "Go to _next tab" msgstr "Go to _next tab" #: ../src/shell/ario-shell.c:203 msgid "Show _lyrics" msgstr "Show _lyrics" #: ../src/shell/ario-shell.c:209 msgid "_Translate this application..." msgstr "_Translate this application..." #: ../src/shell/ario-shell.c:216 msgid "S_tatusbar" msgstr "S_tatusbar" #: ../src/shell/ario-shell.c:219 msgid "Upper part" msgstr "Upper part" #: ../src/shell/ario-shell.c:825 msgid "GTK client for MPD" msgstr "GTK client for MPD" #: ../src/shell/ario-shell.c:826 msgid "translator-credits" msgstr "" "Launchpad Contributions:\n" " Jesse Bye https://launchpad.net/~jesse-bye\n" " Ken Sharp https://launchpad.net/~kennybobs\n" " Marc Pavot https://launchpad.net/~marc-pavot" #. Create plugins configuration dialog window #: ../src/shell/ario-shell.c:1278 msgid "Configure Plugins" msgstr "Configure Plug-ins" #. Set window properties #: ../src/shell/ario-shell-coverdownloader.c:187 msgid "Music Player Cover Download" msgstr "Music Player Cover Download" #: ../src/shell/ario-shell-coverdownloader.c:332 msgid "Download Finished!" msgstr "Download Finished!" #. We show the numbers of covers found and not found #: ../src/shell/ario-shell-coverdownloader.c:335 #, c-format msgid "" "%i covers found\n" "%i covers not found\n" "%i covers already exist" msgstr "" "%i covers found\n" "%i covers not found\n" "%i covers already exist" #. Set window properties #: ../src/shell/ario-shell-coverselect.c:242 msgid "Cover Download" msgstr "Cover Download" #: ../src/shell/ario-shell-coverselect.c:559 msgid "Error reading file" msgstr "Error reading file" #: ../src/shell/ario-shell-coverselect.c:584 msgid "Error saving file" msgstr "Error saving file" #: ../src/shell/ario-shell-lyrics.c:43 #: ../src/shell/ario-shell-preferences.c:133 #: ../src/shell/ario-shell-songinfos.c:272 msgid "Lyrics" msgstr "Lyrics" #: ../src/shell/ario-shell-lyricsselect.c:152 msgid "Lyrics Download" msgstr "Lyrics Download" #: ../src/shell/ario-shell-preferences.c:81 msgid "Ario Preferences" msgstr "Ario Preferences" #: ../src/shell/ario-shell-preferences.c:113 msgid "Server" msgstr "Server" #: ../src/shell/ario-shell-preferences.c:143 msgid "Others" msgstr "Others" #: ../src/shell/ario-shell-similarartists.c:318 #, c-format msgid "%d songs" msgstr "%d songs" #. Set window properties #. Set window title #: ../src/shell/ario-shell-songinfos.c:249 #: ../src/shell/ario-shell-songinfos.c:266 #: ../src/shell/ario-shell-songinfos.c:544 msgid "Song Properties" msgstr "Song Properties" #: ../src/shell/ario-shell-songinfos.c:455 msgid "Error saving tags of file:" msgstr "Error saving tags of file:" #: ../src/widgets/ario-connection-widget.c:652 msgid "You must select a server." msgstr "You must select a server." #: ../src/widgets/ario-connection-widget.c:702 msgid "New Profile" msgstr "New Profile" #: ../src/widgets/ario-firstlaunch.c:82 msgid "The following configuration will be used:" msgstr "The following configuration will be used:" #: ../src/widgets/ario-firstlaunch.c:106 msgid "" "It is the first time you launch Ario.\n" "This assistant will help you to configure it." msgstr "" "It is the first time you launch Ario.\n" "This assistant will help you to configure it." #: ../src/widgets/ario-firstlaunch.c:111 msgid "Welcome to Ario" msgstr "Welcome to Ario" #: ../src/widgets/ario-firstlaunch.c:129 msgid "Configuration" msgstr "Configuration" #: ../src/widgets/ario-firstlaunch.c:141 msgid "Confirmation" msgstr "Confirmation" #: ../src/widgets/ario-header.c:66 ../src/widgets/ario-tray-icon.h:42 #, c-format msgid "from %s by %s" msgstr "from %s by %s" #: ../src/widgets/ario-header.c:199 msgid "Play previous song" msgstr "Play previous song" #: ../src/widgets/ario-header.c:217 msgid "Play/Pause the music" msgstr "Play/Pause the music" #: ../src/widgets/ario-header.c:229 msgid "Stop the music" msgstr "Stop the music" #. Translators - This " of " is used to count the elapsed time #. of a song like in "00:59 of 03:24" #: ../src/widgets/ario-header.c:310 ../src/widgets/ario-tooltip.c:321 msgid " of " msgstr " of " #: ../src/widgets/ario-header.c:323 msgid "Toggle random on/off" msgstr "Toggle random on/off" #: ../src/widgets/ario-header.c:335 msgid "Toggle repeat on/off" msgstr "Toggle repeat on/off" #: ../src/widgets/ario-header.c:340 msgid "Change the music volume" msgstr "Change the music volume" #: ../src/widgets/ario-lyrics-editor.c:323 msgid "Downloading lyrics..." msgstr "Downloading lyrics..." #: ../src/widgets/ario-lyrics-editor.c:351 msgid "Lyrics not found" msgstr "Lyrics not found" #: ../src/widgets/ario-playlist.c:133 msgid "_Clear" msgstr "_Clear" #: ../src/widgets/ario-playlist.c:136 msgid "_Shuffle" msgstr "_Shuffle" #: ../src/widgets/ario-playlist.c:139 msgid "Cr_op" msgstr "Cr_op" #: ../src/widgets/ario-playlist.c:142 msgid "_Search in playlist" msgstr "_Search in playlist" #: ../src/widgets/ario-playlist.c:145 msgid "_Remove" msgstr "_Remove" #: ../src/widgets/ario-playlist.c:148 msgid "_Save" msgstr "_Save" #: ../src/widgets/ario-playlist.c:154 msgid "_Go to playing song" msgstr "_Go to playing song" #: ../src/widgets/ario-playlist.c:667 msgid "Filter:" msgstr "Filter:" #. Create the widgets #: ../src/widgets/ario-playlist.c:1700 msgid "Save playlist" msgstr "Save playlist" #: ../src/widgets/ario-playlist.c:1710 msgid "Playlist name :" msgstr "Playlist name :" #: ../src/widgets/ario-playlist.c:1746 msgid "Playlist already exists. Do you want to overwrite it?" msgstr "Playlist already exists. Do you want to overwrite it?" #. Format status bar message #: ../src/widgets/ario-status-bar.c:96 msgid "Songs" msgstr "Songs" #: ../src/widgets/ario-tray-icon.c:102 msgid "_Play" msgstr "_Play" #: ../src/widgets/ario-tray-icon.c:105 msgid "_Pause" msgstr "_Pause" #: ../src/widgets/ario-tray-icon.c:108 msgid "_Stop" msgstr "_Stop" #: ../src/widgets/ario-tray-icon.c:111 msgid "_Next" msgstr "_Next" #: ../src/widgets/ario-tray-icon.c:114 msgid "P_revious" msgstr "P_revious" #: ../src/widgets/ario-tray-icon.h:41 msgid "Not playing" msgstr "Not playing" #. Translators: "friendly time" string for the current day, strftime format. like "Today 12:34 am" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1179 msgid "Today %I:%M %p" msgstr "Today %I:%M %p" #. Translators: "friendly time" string for the previous day, #. * strftime format. e.g. "Yesterday 12:34 am" #. #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1192 msgid "Yesterday %I:%M %p" msgstr "Yesterday %I:%M %p" #. Translators: "friendly time" string for a day in the current week, #. * strftime format. e.g. "Wed 12:34 am" #. #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1208 msgid "%a %I:%M %p" msgstr "%a %I:%M %p" #. Translators: "friendly time" string for a day in the current year, #. * strftime format. e.g. "Feb 12 12:34 am" #. #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1220 msgid "%b %d %I:%M %p" msgstr "%b %d %I:%M %p" #. Translators: "friendly time" string for a day in a different year, #. * strftime format. e.g. "Feb 12 1997" #. #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1225 msgid "%b %d %Y" msgstr "%b %d %Y" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1311 #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:4 msgid "Never" msgstr "Never" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1335 msgid "OK" msgstr "OK" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1338 msgid "Logging in" msgstr "Logging in" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1341 msgid "Request failed" msgstr "Request failed" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1344 msgid "Incorrect username" msgstr "Incorrect username" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1347 msgid "Incorrect password" msgstr "Incorrect password" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1350 msgid "Handshake failed" msgstr "Handshake failed" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1353 msgid "Client update required" msgstr "Client update required" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1356 msgid "Track submission failed" msgstr "Track submission failed" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1359 msgid "Queue is too long" msgstr "Queue is too long" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1362 msgid "Track submission failed too many times" msgstr "Track submission failed too many times" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1417 msgid "Audioscrobbler preferences" msgstr "Audioscrobbler preferences" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:1 msgid "Disabled" msgstr "Disabled" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:2 msgid "Last submission time:" msgstr "Last submission time:" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:3 msgid "Last.fm Profile" msgstr "Last.fm Profile" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:6 msgid "Queued tracks:" msgstr "Queued tracks:" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:7 msgid "Status:" msgstr "Status:" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:8 msgid "Tracks submitted:" msgstr "Tracks submitted:" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:9 #: ../plugins/radios/ario-radio.c:168 msgid "Username :" msgstr "Username :" #: ../plugins/audioscrobbler/audioscrobbler.ario-plugin.desktop.in.h:1 msgid "Last.fm" msgstr "Last.fm" #: ../plugins/audioscrobbler/audioscrobbler.ario-plugin.desktop.in.h:2 msgid "Submits song information to last.fm" msgstr "Submits song information to last.fm" #: ../plugins/filesystem/ario-filesystem.c:158 msgid "File System" msgstr "File System" #: ../plugins/filesystem/ario-filesystem.c:422 msgid "Music" msgstr "Music" #: ../plugins/filesystem/filesystem.ario-plugin.desktop.in.h:1 msgid "A File System Browser" msgstr "A File System Browser" #: ../plugins/filesystem/filesystem.ario-plugin.desktop.in.h:2 msgid "File System Browser" msgstr "File System Browser" #: ../plugins/information/ario-information.c:114 msgid "Information" msgstr "Information" #: ../plugins/information/information.ario-plugin.desktop.in.h:1 msgid "Display various information about the playing song" msgstr "Display various information about the playing song" #: ../plugins/information/information.ario-plugin.desktop.in.h:2 msgid "Song Information" msgstr "Song Information" #: ../plugins/information/information.ui.h:2 msgid "Albums from this artist:" msgstr "Albums from this artist:" #: ../plugins/information/information.ui.h:5 msgid "Lyrics:" msgstr "Lyrics:" #: ../plugins/libnotify/libnotify.ario-plugin.desktop.in.h:1 msgid "Add libnotify support" msgstr "Add libnotify support" #: ../plugins/libnotify/libnotify.ario-plugin.desktop.in.h:2 msgid "Libnotify" msgstr "Libnotify" #: ../plugins/mmkeys/mmkeys.ario-plugin.desktop.in.h:1 msgid "Add multimedia keys support" msgstr "Add multimedia keys support" #: ../plugins/mmkeys/mmkeys.ario-plugin.desktop.in.h:2 msgid "Multimedia Keys" msgstr "Multimedia Keys" #: ../plugins/radios/ario-radio.c:125 msgid "Add a _new radio" msgstr "Add a _new radio" #: ../plugins/radios/ario-radio.c:128 msgid "_Delete this radios" msgstr "_Delete this radios" #: ../plugins/radios/ario-radio.c:166 msgid "Last.fm: Radio of similar artists" msgstr "Last.fm: Radio of similar artists" #: ../plugins/radios/ario-radio.c:167 msgid "Last.fm: Radio of group" msgstr "Last.fm: Radio of group" #: ../plugins/radios/ario-radio.c:167 msgid "Group :" msgstr "Group :" #: ../plugins/radios/ario-radio.c:168 msgid "Last.fm: Personal radio" msgstr "Last.fm: Personal radio" #: ../plugins/radios/ario-radio.c:169 msgid "Last.fm: Radio of genre" msgstr "Last.fm: Radio of genre" #: ../plugins/radios/ario-radio.c:184 #: ../plugins/radios/radios.ario-plugin.desktop.in.h:2 msgid "Web Radios" msgstr "Web Radios" #: ../plugins/radios/ario-radio.c:246 msgid "Internet Radios" msgstr "Internet Radios" #. Create dialog window #: ../plugins/radios/ario-radio.c:774 msgid "Edit a WebRadio" msgstr "Edit a WebRadio" #: ../plugins/radios/ario-radio.c:787 ../plugins/radios/ario-radio.c:923 msgid "URL :" msgstr "URL :" #: ../plugins/radios/ario-radio.c:853 ../plugins/radios/ario-radio.c:997 msgid "Bad parameters. You must specify a name and a URL for the radio." msgstr "Bad parameters. You must specify a name and a URL for the radio." #. Create dialog window #: ../plugins/radios/ario-radio.c:883 msgid "Add a WebRadio" msgstr "Add a WebRadio" #: ../plugins/radios/ario-radio.c:1083 msgid "Are you sure you want to delete all the selected radios?" msgstr "Are you sure you want to delete all the selected radios?" #: ../plugins/radios/radios.ario-plugin.desktop.in.h:1 msgid "Listen to webradios" msgstr "Listen to webradios" #: ../plugins/wikipedia/ario-wikipedia-plugin.c:49 #: ../plugins/wikipedia/ario-wikipedia-plugin.c:50 msgid "Find artist on Wikipedia" msgstr "Find artist on Wikipedia" #: ../plugins/wikipedia/ario-wikipedia-plugin.c:172 msgid "Wikipedia Plugin - Configuration" msgstr "Wikipedia Plug-in - Configuration" #: ../plugins/wikipedia/ario-wikipedia-plugin.c:181 msgid "Wikipedia language :" msgstr "Wikipedia language :" #: ../plugins/wikipedia/wikipedia.ario-plugin.desktop.in.h:1 msgid "A plugin to search current artist on wikipedia" msgstr "A plug-in to search current artist on Wikipedia" #: ../plugins/wikipedia/wikipedia.ario-plugin.desktop.in.h:2 msgid "Wikipedia" msgstr "Wikipedia" #~ msgid "Add a search criteria" #~ msgstr "Add a search criteria" #~ msgid "Remove a search criteria" #~ msgstr "Remove a search criteria" #~ msgid "Search songs in the library" #~ msgstr "Search songs in the library" ario-1.6/po/ja.po0000644000175000017500000010623613226723435010622 00000000000000# Japanese translation for ario # Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009 # This file is distributed under the same license as the ario package. # FIRST AUTHOR , 2009. # msgid "" msgstr "" "Project-Id-Version: ario\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2011-06-13 18:15+0200\n" "PO-Revision-Date: 2010-08-10 20:18+0000\n" "Last-Translator: Jesse Bye \n" "Language-Team: Japanese \n" "Language: ja\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2011-06-13 16:32+0000\n" "X-Generator: Launchpad (build 13175)\n" #: ../data/ario.desktop.in.in.h:1 msgid "Ario music player" msgstr "Ario ミュージックプレイヤ" #: ../data/ario.desktop.in.in.h:2 msgid "Client application to mpd" msgstr "MPD クライアントアプリケーション" #: ../data/ui/browser-prefs.ui.h:1 msgid "Alphabetically" msgstr "アルファベット順" #: ../data/ui/browser-prefs.ui.h:2 msgid "By year" msgstr "年順" #: ../data/ui/browser-prefs.ui.h:3 msgid "Library Options" msgstr "ライブラリオプション" #: ../data/ui/browser-prefs.ui.h:4 msgid "Library Organisation" msgstr "ライブラリ表示構成" #: ../data/ui/browser-prefs.ui.h:5 msgid "Sort albums: " msgstr "アルバムの表示順: " #: ../data/ui/connection-autodetect.ui.h:1 msgid "" "If you don't see your MPD server thanks to the automatic detection, you " "should check that zeroconf is activated in your MPD configuration or use the " "manual configuration." msgstr "" "自動検出で MPD サーバが見つからない場合は、MPD の設定で zeroconf が有効になっ" "ているかチェックしてください。または手動で設定してください。" #: ../data/ui/connection-autodetect.ui.h:2 msgid "Server autodetection" msgstr "サーバの自動検出" #: ../data/ui/connection-widget.ui.h:1 msgid "Auto detect" msgstr "自動検出" #: ../data/ui/connection-widget.ui.h:2 msgid "Default" msgstr "デフォルト" #: ../data/ui/connection-widget.ui.h:3 ../src/widgets/ario-firstlaunch.c:83 msgid "Host :" msgstr "ホスト :" #: ../data/ui/connection-widget.ui.h:4 msgid "Music directory :" msgstr "音楽ディレクトリ :" #: ../data/ui/connection-widget.ui.h:5 msgid "Music server is on the same computer as Ario" msgstr "音楽サーバは Ario と同じコンピュータで動作する" #. Create the widgets #: ../data/ui/connection-widget.ui.h:6 ../plugins/radios/ario-radio.c:786 #: ../plugins/radios/ario-radio.c:922 msgid "Name :" msgstr "名前 :" #: ../data/ui/connection-widget.ui.h:7 #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:5 msgid "Password :" msgstr "パスワード :" #: ../data/ui/connection-widget.ui.h:8 ../src/widgets/ario-firstlaunch.c:85 msgid "Port :" msgstr "ポート :" #: ../data/ui/connection-widget.ui.h:9 msgid "Server type :" msgstr "サーバタイプ :" #: ../data/ui/connection-widget.ui.h:10 msgid "Timeout :" msgstr "" #: ../data/ui/connection-widget.ui.h:11 msgid "XMMS 2 (Experimental)" msgstr "XMMS 2 (試験用)" #: ../data/ui/cover-prefs.ui.h:1 msgid "Automatically download the album cover of the playing song" msgstr "再生中の曲のアルバムカバーを自動的にダウンロードする" #: ../data/ui/cover-prefs.ui.h:2 ../src/shell/ario-shell-preferences.c:128 msgid "Covers" msgstr "カバー" #: ../data/ui/cover-prefs.ui.h:3 msgid "Covers Sources" msgstr "カバーのソース" #: ../data/ui/cover-prefs.ui.h:4 msgid "Show the covers in the albums list" msgstr "アルバムリストにカバーアートを表示する" #: ../data/ui/cover-prefs.ui.h:5 msgid "Use Amazon." msgstr "Amazon からのダウンロード: www.amazon(.co)." #: ../data/ui/connection-prefs.ui.h:1 #: ../src/shell/ario-shell-preferences.c:108 msgid "Connection" msgstr "接続" #: ../data/ui/connection-prefs.ui.h:2 msgid "_Autoconnect on startup" msgstr "起動時に自動接続する(_A)" #: ../data/ui/connection-prefs.ui.h:3 ../src/shell/ario-shell.c:167 msgid "_Connect" msgstr "接続(_C)" #: ../data/ui/connection-prefs.ui.h:4 ../src/shell/ario-shell.c:170 msgid "_Disconnect" msgstr "切断(_D)" #: ../data/ui/connection-assistant.ui.h:1 msgid "" "You need to specify a server to connect to. If you don't see your server " "thanks to the autodetection, you should check that zeroconf/avahi is " "activated in your server or use the manual configuration." msgstr "" "接続するサーバを設定してください。自動検出でサーバが見つからない場合は、" "zeroconf または avahi がサーバで有効になっているか確認してください。または手" "動で設定してください。" #: ../data/ui/cover-progress.ui.h:1 ../data/ui/cover-select.ui.h:1 #: ../data/ui/song-infos.ui.h:1 ../plugins/information/information.ui.h:1 msgid "Album :" msgstr "アルバム :" #: ../data/ui/cover-progress.ui.h:2 ../data/ui/cover-select.ui.h:2 #: ../data/ui/lyrics-select.ui.h:1 ../data/ui/song-infos.ui.h:3 #: ../plugins/information/information.ui.h:3 #: ../plugins/radios/ario-radio.c:166 msgid "Artist :" msgstr "アーティスト :" #: ../data/ui/cover-progress.ui.h:3 msgid "Downloading cover" msgstr "カバーアートをダウンロードしています" #: ../data/ui/cover-select.ui.h:3 msgid "Local search" msgstr "ローカル検索" #: ../data/ui/cover-select.ui.h:4 ../src/sources/ario-search.c:108 msgid "Search" msgstr "検索" #: ../data/ui/others-prefs.ui.h:1 msgid "Allow only one instance of Ario" msgstr "Ario のインスタンスは一つだけ許可する" #: ../data/ui/others-prefs.ui.h:2 msgid "Hide window when close button is pressed" msgstr "「閉じる」ボタンが押されたときにウィンドウを隠す" #: ../data/ui/others-prefs.ui.h:3 msgid "Interface" msgstr "インターフェイス" #: ../data/ui/others-prefs.ui.h:4 msgid "Playlist at the right of tabs" msgstr "プレイリストはタブの右" #: ../data/ui/others-prefs.ui.h:5 msgid "Playlist below tabs" msgstr "プレイリストはタブの下" #: ../data/ui/others-prefs.ui.h:6 msgid "Playlist within tabs" msgstr "プレイリストをタブに含める" #: ../data/ui/others-prefs.ui.h:7 msgid "Proxy" msgstr "プロキシ" #: ../data/ui/others-prefs.ui.h:8 msgid "Proxy Address :" msgstr "プロキシのアドレス :" #: ../data/ui/others-prefs.ui.h:9 msgid "Proxy Port :" msgstr "プロキシのポート :" #: ../data/ui/others-prefs.ui.h:10 msgid "Show tabs" msgstr "タブを表示する" #: ../data/ui/others-prefs.ui.h:11 msgid "Use a proxy" msgstr "プロキシを使用する" #: ../data/ui/lyrics-prefs.ui.h:1 msgid "Lyrics Sources" msgstr "歌詞のソース" #: ../data/ui/lyrics-select.ui.h:2 ../data/ui/song-infos.ui.h:13 #: ../plugins/information/information.ui.h:6 msgid "Title :" msgstr "タイトル :" #: ../data/ui/playlist-prefs.ui.h:1 msgid "Add after playing song" msgstr "再生中の曲の次に追加" #: ../data/ui/playlist-prefs.ui.h:2 msgid "Add and play" msgstr "追加して再生" #: ../data/ui/playlist-prefs.ui.h:3 ../data/ui/similar-artists.ui.h:2 msgid "Add to playlist" msgstr "プレイリストに追加" #. ARIO_TAG_ARTIST #: ../data/ui/playlist-prefs.ui.h:4 ../src/servers/ario-server.c:46 #: ../src/sources/ario-tree-albums.c:213 ../src/widgets/ario-playlist.c:541 #: ../src/widgets/ario-songlist.c:228 ../src/widgets/ario-tray-icon.c:565 msgid "Album" msgstr "アルバム" #: ../data/ui/playlist-prefs.ui.h:5 ../src/servers/ario-server.c:45 #: ../src/widgets/ario-playlist.c:541 ../src/widgets/ario-songlist.c:213 #: ../src/widgets/ario-tray-icon.c:563 msgid "Artist" msgstr "アーティスト" #. ARIO_TAG_GENRE #: ../data/ui/playlist-prefs.ui.h:6 ../src/servers/ario-server.c:52 #: ../src/widgets/ario-playlist.c:541 msgid "Date" msgstr "日付" #: ../data/ui/playlist-prefs.ui.h:7 ../src/widgets/ario-playlist.c:541 msgid "Disc" msgstr "ディスク" #: ../data/ui/playlist-prefs.ui.h:8 msgid "Double click" msgstr "ダブルクリック" #: ../data/ui/playlist-prefs.ui.h:9 ../src/widgets/ario-playlist.c:541 msgid "Duration" msgstr "時間" #: ../data/ui/playlist-prefs.ui.h:10 ../src/widgets/ario-playlist.c:541 msgid "File" msgstr "ファイル" #. ARIO_TAG_TRACK #. ARIO_TAG_NAME #: ../data/ui/playlist-prefs.ui.h:11 ../src/servers/ario-server.c:51 #: ../src/widgets/ario-playlist.c:541 msgid "Genre" msgstr "ジャンル" #: ../data/ui/playlist-prefs.ui.h:12 msgid "Go to current song when a new song is played" msgstr "新しい曲が再生されたらその曲に移動する" #: ../data/ui/playlist-prefs.ui.h:13 msgid "Mode" msgstr "モード" #: ../data/ui/playlist-prefs.ui.h:14 msgid "On double click:" msgstr "ダブルクリック時の動作:" #: ../data/ui/playlist-prefs.ui.h:15 ../src/sources/ario-storedplaylists.c:229 #: ../src/shell/ario-shell.c:222 ../src/shell/ario-shell-preferences.c:123 #: ../src/widgets/ario-playlist.c:272 msgid "Playlist" msgstr "プレイリスト" #: ../data/ui/playlist-prefs.ui.h:16 msgid "Playlist mode:" msgstr "プレイリストモード:" #: ../data/ui/playlist-prefs.ui.h:17 msgid "Replace in playlist" msgstr "プレイリストを置換" #: ../data/ui/playlist-prefs.ui.h:18 msgid "Show rows:" msgstr "表示するカラム:" #. ARIO_TAG_ALBUM_ARTIST #: ../data/ui/playlist-prefs.ui.h:19 ../src/servers/ario-server.c:48 #: ../src/sources/ario-tree-songs.c:145 ../src/widgets/ario-playlist.c:541 #: ../src/widgets/ario-songlist.c:198 ../src/widgets/ario-tray-icon.c:567 msgid "Title" msgstr "タイトル" #. ARIO_TAG_TITLE #: ../data/ui/playlist-prefs.ui.h:20 ../src/servers/ario-server.c:49 #: ../src/sources/ario-tree-songs.c:138 ../src/widgets/ario-playlist.c:541 msgid "Track" msgstr "トラック" #: ../data/ui/server-prefs.ui.h:1 msgid "Audio outputs" msgstr "オーディオ出力" #: ../data/ui/server-prefs.ui.h:2 msgid "Crossfade" msgstr "クロスフェード" #: ../data/ui/server-prefs.ui.h:3 msgid "Database" msgstr "データベース" #: ../data/ui/server-prefs.ui.h:4 msgid "Last updated:" msgstr "最終更新:" #: ../data/ui/server-prefs.ui.h:5 msgid "Stop music on exit" msgstr "終了時に再生を停止する" #: ../data/ui/server-prefs.ui.h:6 msgid "Update on startup" msgstr "起動時に更新する" #: ../data/ui/server-prefs.ui.h:7 msgid "_Update" msgstr "更新(_U)" #: ../data/ui/server-prefs.ui.h:8 msgid "enable crossfade" msgstr "クロスフェードを有効にする" #: ../data/ui/server-prefs.ui.h:9 msgid "fade time (s):" msgstr "フェード時間 (秒):" #: ../data/ui/server-prefs.ui.h:10 ../src/ario-util.c:50 ../src/ario-util.c:71 #: ../src/ario-util.c:93 ../plugins/information/information.ui.h:7 #, c-format msgid "n/a" msgstr "n/a" #: ../data/ui/similar-artists.ui.h:1 msgid "Add all to playlist" msgstr "全てプレイリストに追加" #: ../data/ui/similar-artists.ui.h:3 msgid "Find on Last.fm" msgstr "Last.fm で検索" #: ../data/ui/stats-prefs.ui.h:1 msgid "Database play time :" msgstr "データベース再生時間 :" #: ../data/ui/stats-prefs.ui.h:2 msgid "Number of albums :" msgstr "アルバム数 :" #: ../data/ui/stats-prefs.ui.h:3 msgid "Number of artists :" msgstr "アーティスト数 :" #: ../data/ui/stats-prefs.ui.h:4 msgid "Number of songs :" msgstr "曲数 :" #: ../data/ui/stats-prefs.ui.h:5 msgid "Play time :" msgstr "再生時間 :" #: ../data/ui/stats-prefs.ui.h:6 ../src/shell/ario-shell-preferences.c:148 msgid "Statistics" msgstr "統計" #: ../data/ui/stats-prefs.ui.h:7 msgid "Uptime :" msgstr "動作時間 :" #: ../data/ui/song-infos.ui.h:2 msgid "Album Artist :" msgstr "アルバムアーティスト :" #: ../data/ui/song-infos.ui.h:4 msgid "Comment :" msgstr "コメント :" #: ../data/ui/song-infos.ui.h:5 msgid "Composer :" msgstr "指揮 :" #: ../data/ui/song-infos.ui.h:6 msgid "Date :" msgstr "日付 :" #: ../data/ui/song-infos.ui.h:7 msgid "Disc :" msgstr "ディスク :" #: ../data/ui/song-infos.ui.h:8 msgid "Filename :" msgstr "ファイル名 :" #: ../data/ui/song-infos.ui.h:9 ../plugins/radios/ario-radio.c:169 msgid "Genre :" msgstr "ジャンル :" #: ../data/ui/song-infos.ui.h:10 ../plugins/information/information.ui.h:4 msgid "Length :" msgstr "時間 :" #: ../data/ui/song-infos.ui.h:11 msgid "Performer :" msgstr "演奏 :" #: ../data/ui/song-infos.ui.h:12 msgid "Song" msgstr "楽曲" #: ../data/ui/song-infos.ui.h:14 msgid "Track :" msgstr "トラック :" #: ../data/ui/trayicon-prefs.ui.h:1 msgid "Do nothing" msgstr "なにもしない" #: ../data/ui/trayicon-prefs.ui.h:2 msgid "Mute" msgstr "ミュート" #: ../data/ui/trayicon-prefs.ui.h:3 ../src/shell/ario-shell-preferences.c:138 msgid "Notification" msgstr "通知" #: ../data/ui/trayicon-prefs.ui.h:4 msgid "Notification on song change" msgstr "曲の変更時に通知する" #: ../data/ui/trayicon-prefs.ui.h:5 msgid "Notification time: " msgstr "通知時間: " #: ../data/ui/trayicon-prefs.ui.h:6 msgid "On middle button click on tray icon :" msgstr "トレイアイコンを中央クリックしたとき :" #: ../data/ui/trayicon-prefs.ui.h:7 ../src/widgets/ario-header.c:241 msgid "Play next song" msgstr "次の曲を再生" #: ../data/ui/trayicon-prefs.ui.h:8 msgid "Play/Pause" msgstr "再生/一時停止" #: ../data/ui/trayicon-prefs.ui.h:9 msgid "Tray icon" msgstr "トレイアイコン" #: ../src/ario-main.c:67 msgid "Start minimized window" msgstr "最小化して起動する" #: ../src/ario-main.c:68 msgid "Start with specific profile" msgstr "" #. Format result string #: ../src/ario-util.c:110 msgid "seconds" msgstr "秒" #: ../src/ario-util.c:112 msgid "minutes" msgstr "分" #: ../src/ario-util.c:118 msgid "hours" msgstr "時間" #: ../src/ario-util.c:124 msgid "days" msgstr "日" #: ../src/covers/ario-cover.c:149 msgid "The cover already exists. Do you want to replace it?" msgstr "カバーアートはすでに存在します。置き換えますか?" #: ../src/covers/ario-cover-local.c:48 msgid "Music Directory" msgstr "音楽ディレクトリ" #: ../src/playlist/ario-playlist-dynamic.c:49 msgid "songs of same artist" msgstr "同じアーティストの曲" #: ../src/playlist/ario-playlist-dynamic.c:50 msgid "songs of same album" msgstr "同じアルバムの曲" #: ../src/playlist/ario-playlist-dynamic.c:51 msgid "songs of similar artists" msgstr "同種のアーティストの曲" #: ../src/playlist/ario-playlist-dynamic.c:52 msgid "albums of same artists" msgstr "同じアーティストのアルバム" #: ../src/playlist/ario-playlist-dynamic.c:53 msgid "albums of similar artists" msgstr "同種のアーティストのアルバム" #: ../src/playlist/ario-playlist-dynamic.c:69 msgid "Dynamic Playlist" msgstr "ダイナミックプレイリスト" #: ../src/playlist/ario-playlist-queue.c:49 msgid "Queue Mode" msgstr "キューモード" #: ../src/playlist/ario-playlist-normal.c:47 msgid "Normal" msgstr "通常" #: ../src/plugins/ario-plugin-manager.c:45 msgid "Plugin" msgstr "プラグイン" #: ../src/plugins/ario-plugin-manager.c:46 msgid "Enabled" msgstr "有効" #: ../src/plugins/ario-plugin-manager.c:480 ../src/shell/ario-shell.c:206 msgid "_About" msgstr "情報(_A)" #: ../src/plugins/ario-plugin-manager.c:488 msgid "C_onfigure" msgstr "設定(_O)" #: ../src/plugins/ario-plugin-manager.c:497 msgid "A_ctivate" msgstr "有効(_C)" #: ../src/plugins/ario-plugin-manager.c:508 msgid "Ac_tivate All" msgstr "すべて有効(_T)" #: ../src/plugins/ario-plugin-manager.c:513 msgid "_Deactivate All" msgstr "すべて無効(_D)" #: ../src/plugins/ario-plugin-manager.c:722 msgid "Active plugins" msgstr "有効なプラグイン" #: ../src/preferences/ario-server-preferences.c:182 #: ../src/preferences/ario-stats-preferences.c:151 #: ../src/preferences/ario-stats-preferences.c:152 #: ../src/preferences/ario-stats-preferences.c:153 #: ../src/preferences/ario-stats-preferences.c:154 #: ../src/preferences/ario-stats-preferences.c:155 #: ../src/preferences/ario-stats-preferences.c:156 msgid "Not connected" msgstr "接続していません" #: ../src/preferences/ario-server-preferences.c:187 #: ../src/preferences/ario-server-preferences.c:278 #: ../src/widgets/ario-status-bar.c:100 msgid "Updating..." msgstr "更新しています..." #: ../src/servers/ario-mpd.c:410 ../src/servers/ario-mpd2.c:522 msgid "Connecting to server..." msgstr "サーバに接続しています..." #: ../src/servers/ario-mpd.c:438 ../src/servers/ario-mpd2.c:550 msgid "Impossible to connect to server. Check the connection options." msgstr "サーバに接続できませんでした。接続オプションをチェックしてください。" #. ARIO_TAG_ALBUM #: ../src/servers/ario-server.c:47 msgid "Album Artist" msgstr "アルバムアーティスト" #. ARIO_TAG_DATE #: ../src/servers/ario-server.c:53 msgid "Composer" msgstr "指揮" #. ARIO_TAG_COMPOSER #: ../src/servers/ario-server.c:54 msgid "Performer" msgstr "演奏" #. ARIO_TAG_PERFORMER #. ARIO_TAG_COMMENT #. ARIO_TAG_DISC #: ../src/servers/ario-server.c:57 msgid "Filename" msgstr "ファイル名" #. ARIO_TAG_FILENAME #: ../src/servers/ario-server.c:58 msgid "Any" msgstr "すべて" #. impossible time or broken locale settings #: ../src/servers/ario-server.h:27 #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1235 msgid "Unknown" msgstr "不明" #: ../src/sources/ario-browser.c:82 ../src/sources/ario-search.c:70 #: ../src/sources/ario-storedplaylists.c:88 #: ../src/sources/ario-storedplaylists.c:106 #: ../plugins/filesystem/ario-filesystem.c:94 #: ../plugins/filesystem/ario-filesystem.c:109 #: ../plugins/radios/ario-radio.c:116 msgid "_Add to playlist" msgstr "プレイリストへ追加(_A)" #: ../src/sources/ario-browser.c:85 ../src/sources/ario-search.c:73 #: ../src/sources/ario-storedplaylists.c:91 #: ../src/sources/ario-storedplaylists.c:109 #: ../plugins/filesystem/ario-filesystem.c:97 #: ../plugins/filesystem/ario-filesystem.c:112 #: ../plugins/radios/ario-radio.c:119 msgid "Add and _play" msgstr "追加して再生(_P)" #: ../src/sources/ario-browser.c:88 ../src/sources/ario-search.c:76 #: ../src/sources/ario-storedplaylists.c:94 #: ../src/sources/ario-storedplaylists.c:112 #: ../plugins/filesystem/ario-filesystem.c:100 #: ../plugins/filesystem/ario-filesystem.c:115 #: ../plugins/radios/ario-radio.c:122 msgid "_Replace in playlist" msgstr "プレイリストを置換(_R)" #: ../src/sources/ario-browser.c:91 msgid "Get the covers" msgstr "カバーの取得" #: ../src/sources/ario-browser.c:94 msgid "_Delete the covers" msgstr "カバーの削除(_D)" #: ../src/sources/ario-browser.c:97 ../src/sources/ario-browser.c:100 #: ../src/sources/ario-search.c:79 ../src/sources/ario-storedplaylists.c:115 #: ../src/widgets/ario-playlist.c:151 #: ../plugins/filesystem/ario-filesystem.c:118 #: ../plugins/radios/ario-radio.c:131 msgid "_Properties" msgstr "プロパティ(_P)" #: ../src/sources/ario-browser.c:125 ../src/shell/ario-shell-preferences.c:118 msgid "Library" msgstr "ライブラリ" #: ../src/sources/ario-storedplaylists.c:97 msgid "_Delete" msgstr "削除(_D)" #: ../src/sources/ario-storedplaylists.c:151 msgid "Playlists" msgstr "プレイリスト" #: ../src/sources/ario-storedplaylists.c:592 msgid "Are you sure that you want to delete all the selected playlists?" msgstr "選択した全てのプレイリストを削除してもよろしいですか?" #: ../src/sources/ario-tree.c:856 msgid "Are you sure that you want to remove all the selected covers?" msgstr "選択したすべてのカバーアートを削除してもよろしいですか?" #. Translators - This "Cover" refers to an album cover art #: ../src/sources/ario-tree-albums.c:199 msgid "Cover" msgstr "カバー" #: ../src/shell/ario-shell.c:160 msgid "_File" msgstr "ファイル(_F)" #: ../src/shell/ario-shell.c:161 msgid "_Edit" msgstr "編集(_E)" #: ../src/shell/ario-shell.c:162 msgid "_View" msgstr "表示(_V)" #: ../src/shell/ario-shell.c:163 msgid "_Control" msgstr "操作(_C)" #: ../src/shell/ario-shell.c:164 msgid "_Tool" msgstr "ツール(_T)" #: ../src/shell/ario-shell.c:165 msgid "_Help" msgstr "ヘルプ(_H)" #: ../src/shell/ario-shell.c:173 msgid "_Update database" msgstr "データベースの更新(_U)" #: ../src/shell/ario-shell.c:176 msgid "_Quit" msgstr "終了(_Q)" #: ../src/shell/ario-shell.c:179 msgid "Plu_gins" msgstr "プラグイン(_G)" #: ../src/shell/ario-shell.c:182 msgid "Prefere_nces" msgstr "設定(_N)" #: ../src/shell/ario-shell.c:185 msgid "_Change current album cover" msgstr "現在のアルバムカバーの変更(_C)" #: ../src/shell/ario-shell.c:188 msgid "Download album _covers" msgstr "アルバムカバーのダウンロード(_C)" #: ../src/shell/ario-shell.c:191 msgid "Find similar artists" msgstr "同種のアーティストの検索" #: ../src/shell/ario-shell.c:194 msgid "Add similar songs to playlist" msgstr "同種の曲をプレイリストに追加" #: ../src/shell/ario-shell.c:197 msgid "Go to _previous tab" msgstr "前のタブへ(_P)" #: ../src/shell/ario-shell.c:200 msgid "Go to _next tab" msgstr "次のタブへ(_N)" #: ../src/shell/ario-shell.c:203 msgid "Show _lyrics" msgstr "歌詞の表示(_L)" #: ../src/shell/ario-shell.c:209 msgid "_Translate this application..." msgstr "このアプリケーションを翻訳する(_T)..." #: ../src/shell/ario-shell.c:216 msgid "S_tatusbar" msgstr "ステータスバー(_T)" #: ../src/shell/ario-shell.c:219 msgid "Upper part" msgstr "上のペイン" #: ../src/shell/ario-shell.c:825 msgid "GTK client for MPD" msgstr "MPD 用 GTK クライアント" #: ../src/shell/ario-shell.c:826 msgid "translator-credits" msgstr "" "Launchpad Contributions:\n" " Masato HASHIMOTO https://launchpad.net/~hashimo" #. Create plugins configuration dialog window #: ../src/shell/ario-shell.c:1278 msgid "Configure Plugins" msgstr "プラグインの設定" #. Set window properties #: ../src/shell/ario-shell-coverdownloader.c:187 msgid "Music Player Cover Download" msgstr "Music Player Cover Download" #: ../src/shell/ario-shell-coverdownloader.c:332 msgid "Download Finished!" msgstr "ダウンロードが完了しました!" #. We show the numbers of covers found and not found #: ../src/shell/ario-shell-coverdownloader.c:335 #, c-format msgid "" "%i covers found\n" "%i covers not found\n" "%i covers already exist" msgstr "" "%i 個のカバーアートが見つかりました\n" "%i 個のカバーアートが見つかりませんでした\n" "%i 個のカバーアートがすでに存在します" #. Set window properties #: ../src/shell/ario-shell-coverselect.c:242 msgid "Cover Download" msgstr "カバーアートのダウンロード" #: ../src/shell/ario-shell-coverselect.c:559 msgid "Error reading file" msgstr "ファイルの読み込みエラーです" #: ../src/shell/ario-shell-coverselect.c:584 msgid "Error saving file" msgstr "ファイルの保存エラーです" #: ../src/shell/ario-shell-lyrics.c:43 #: ../src/shell/ario-shell-preferences.c:133 #: ../src/shell/ario-shell-songinfos.c:272 msgid "Lyrics" msgstr "歌詞" #: ../src/shell/ario-shell-lyricsselect.c:152 msgid "Lyrics Download" msgstr "歌詞のダウンロード" #: ../src/shell/ario-shell-preferences.c:81 msgid "Ario Preferences" msgstr "Ario の設定" #: ../src/shell/ario-shell-preferences.c:113 msgid "Server" msgstr "サーバ" #: ../src/shell/ario-shell-preferences.c:143 msgid "Others" msgstr "その他" #: ../src/shell/ario-shell-similarartists.c:318 #, c-format msgid "%d songs" msgstr "%d 曲" #. Set window properties #. Set window title #: ../src/shell/ario-shell-songinfos.c:249 #: ../src/shell/ario-shell-songinfos.c:266 #: ../src/shell/ario-shell-songinfos.c:544 msgid "Song Properties" msgstr "曲のプロパティ" #: ../src/shell/ario-shell-songinfos.c:455 msgid "Error saving tags of file:" msgstr "ファイルのタグ保存エラー:" #: ../src/widgets/ario-connection-widget.c:652 msgid "You must select a server." msgstr "サーバを選択してください。" #: ../src/widgets/ario-connection-widget.c:702 msgid "New Profile" msgstr "新しいプロファイル" #: ../src/widgets/ario-firstlaunch.c:82 msgid "The following configuration will be used:" msgstr "次の設定が使用されます:" #: ../src/widgets/ario-firstlaunch.c:106 msgid "" "It is the first time you launch Ario.\n" "This assistant will help you to configure it." msgstr "" "初めて Ario が起動されました。\n" "このアシスタントが設定をお手伝いさせていただきます。" #: ../src/widgets/ario-firstlaunch.c:111 msgid "Welcome to Ario" msgstr "ようこそ Ario へ" #: ../src/widgets/ario-firstlaunch.c:129 msgid "Configuration" msgstr "設定" #: ../src/widgets/ario-firstlaunch.c:141 msgid "Confirmation" msgstr "確認" #: ../src/widgets/ario-header.c:66 ../src/widgets/ario-tray-icon.h:42 #, c-format msgid "from %s by %s" msgstr "from %s by %s" #: ../src/widgets/ario-header.c:199 msgid "Play previous song" msgstr "前の曲を再生" #: ../src/widgets/ario-header.c:217 msgid "Play/Pause the music" msgstr "再生/一時停止" #: ../src/widgets/ario-header.c:229 msgid "Stop the music" msgstr "停止" #. Translators - This " of " is used to count the elapsed time #. of a song like in "00:59 of 03:24" #: ../src/widgets/ario-header.c:310 ../src/widgets/ario-tooltip.c:321 msgid " of " msgstr " of " #: ../src/widgets/ario-header.c:323 msgid "Toggle random on/off" msgstr "ランダムモードのオン/オフ" #: ../src/widgets/ario-header.c:335 msgid "Toggle repeat on/off" msgstr "繰り返しモードのオン/オフ" #: ../src/widgets/ario-header.c:340 msgid "Change the music volume" msgstr "ボリュームの調整" #: ../src/widgets/ario-lyrics-editor.c:323 msgid "Downloading lyrics..." msgstr "歌詞をダウンロードしています..." #: ../src/widgets/ario-lyrics-editor.c:351 msgid "Lyrics not found" msgstr "歌詞が見つかりませんでした" #: ../src/widgets/ario-playlist.c:133 msgid "_Clear" msgstr "クリア(_C)" #: ../src/widgets/ario-playlist.c:136 msgid "_Shuffle" msgstr "シャッフル(_S)" #: ../src/widgets/ario-playlist.c:139 msgid "Cr_op" msgstr "切り抜き(_O)" #: ../src/widgets/ario-playlist.c:142 msgid "_Search in playlist" msgstr "プレイリスト内を検索(_S)" #: ../src/widgets/ario-playlist.c:145 msgid "_Remove" msgstr "除去(_R)" #: ../src/widgets/ario-playlist.c:148 msgid "_Save" msgstr "保存(_S)" #: ../src/widgets/ario-playlist.c:154 msgid "_Go to playing song" msgstr "再生中の曲へ(_G)" #: ../src/widgets/ario-playlist.c:667 msgid "Filter:" msgstr "フィルタ:" #. Create the widgets #: ../src/widgets/ario-playlist.c:1700 msgid "Save playlist" msgstr "プレイリストの保存" #: ../src/widgets/ario-playlist.c:1710 msgid "Playlist name :" msgstr "プレイリスト名 :" #: ../src/widgets/ario-playlist.c:1746 msgid "Playlist already exists. Do you want to overwrite it?" msgstr "プレイリストはすでに存在します。上書きしますか?" #. Format status bar message #: ../src/widgets/ario-status-bar.c:96 msgid "Songs" msgstr "曲" #: ../src/widgets/ario-tray-icon.c:102 msgid "_Play" msgstr "再生(_P)" #: ../src/widgets/ario-tray-icon.c:105 msgid "_Pause" msgstr "一時停止(_P)" #: ../src/widgets/ario-tray-icon.c:108 msgid "_Stop" msgstr "停止(_S)" #: ../src/widgets/ario-tray-icon.c:111 msgid "_Next" msgstr "次(_N)" #: ../src/widgets/ario-tray-icon.c:114 msgid "P_revious" msgstr "前(_R)" #: ../src/widgets/ario-tray-icon.h:41 msgid "Not playing" msgstr "再生していません" #. Translators: "friendly time" string for the current day, strftime format. like "Today 12:34 am" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1179 msgid "Today %I:%M %p" msgstr "今日の %p %I:%M" #. Translators: "friendly time" string for the previous day, #. * strftime format. e.g. "Yesterday 12:34 am" #. #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1192 msgid "Yesterday %I:%M %p" msgstr "昨日の %p %I:%M" #. Translators: "friendly time" string for a day in the current week, #. * strftime format. e.g. "Wed 12:34 am" #. #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1208 msgid "%a %I:%M %p" msgstr "%a の %p %I:%M" #. Translators: "friendly time" string for a day in the current year, #. * strftime format. e.g. "Feb 12 12:34 am" #. #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1220 msgid "%b %d %I:%M %p" msgstr "%b %d %p %I:%M" #. Translators: "friendly time" string for a day in a different year, #. * strftime format. e.g. "Feb 12 1997" #. #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1225 msgid "%b %d %Y" msgstr "%Y %b %d" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1311 #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:4 msgid "Never" msgstr "なし" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1335 msgid "OK" msgstr "OK" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1338 msgid "Logging in" msgstr "ログイン中" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1341 msgid "Request failed" msgstr "要求は失敗しました" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1344 msgid "Incorrect username" msgstr "ユーザ名が正しくありません" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1347 msgid "Incorrect password" msgstr "パスワードが正しくありません" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1350 msgid "Handshake failed" msgstr "ハンドシェイクに失敗しました" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1353 msgid "Client update required" msgstr "クライアントのアップデートが要求されました" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1356 msgid "Track submission failed" msgstr "トラックの送信に失敗しました" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1359 msgid "Queue is too long" msgstr "キューが長すぎます" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1362 msgid "Track submission failed too many times" msgstr "トラックの送信に失敗しました。送りすぎです。" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1417 msgid "Audioscrobbler preferences" msgstr "Audioscrobbler 設定" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:1 msgid "Disabled" msgstr "無効" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:2 msgid "Last submission time:" msgstr "最終送信:" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:3 msgid "Last.fm Profile" msgstr "Last.fm プロファイル" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:6 msgid "Queued tracks:" msgstr "送信待ちのトラック:" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:7 msgid "Status:" msgstr "状態:" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:8 msgid "Tracks submitted:" msgstr "送信したトラック:" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:9 #: ../plugins/radios/ario-radio.c:168 msgid "Username :" msgstr "ユーザ名 :" #: ../plugins/audioscrobbler/audioscrobbler.ario-plugin.desktop.in.h:1 msgid "Last.fm" msgstr "Last.fm" #: ../plugins/audioscrobbler/audioscrobbler.ario-plugin.desktop.in.h:2 msgid "Submits song information to last.fm" msgstr "楽曲情報を Last.fm に送信します" #: ../plugins/filesystem/ario-filesystem.c:158 msgid "File System" msgstr "ファイルシステム" #: ../plugins/filesystem/ario-filesystem.c:422 msgid "Music" msgstr "Music" #: ../plugins/filesystem/filesystem.ario-plugin.desktop.in.h:1 msgid "A File System Browser" msgstr "ファイルシステムのブラウザです" #: ../plugins/filesystem/filesystem.ario-plugin.desktop.in.h:2 msgid "File System Browser" msgstr "ファイルシステムブラウザ" #: ../plugins/information/ario-information.c:114 msgid "Information" msgstr "情報" #: ../plugins/information/information.ario-plugin.desktop.in.h:1 msgid "Display various information about the playing song" msgstr "再生中の曲のいろいろな情報を表示します" #: ../plugins/information/information.ario-plugin.desktop.in.h:2 msgid "Song Information" msgstr "楽曲情報" #: ../plugins/information/information.ui.h:2 msgid "Albums from this artist:" msgstr "このアーティストのアルバム:" #: ../plugins/information/information.ui.h:5 msgid "Lyrics:" msgstr "歌詞:" #: ../plugins/libnotify/libnotify.ario-plugin.desktop.in.h:1 msgid "Add libnotify support" msgstr "libnotify サポートを追加します" #: ../plugins/libnotify/libnotify.ario-plugin.desktop.in.h:2 msgid "Libnotify" msgstr "Libnotify" #: ../plugins/mmkeys/mmkeys.ario-plugin.desktop.in.h:1 msgid "Add multimedia keys support" msgstr "マルチメディアキーサポートを追加します" #: ../plugins/mmkeys/mmkeys.ario-plugin.desktop.in.h:2 msgid "Multimedia Keys" msgstr "マルチメディアキー" #: ../plugins/radios/ario-radio.c:125 msgid "Add a _new radio" msgstr "新しいラジオの追加(_N)" #: ../plugins/radios/ario-radio.c:128 msgid "_Delete this radios" msgstr "このラジオの削除(_D)" #: ../plugins/radios/ario-radio.c:166 msgid "Last.fm: Radio of similar artists" msgstr "Last.fm: 同種のアーティストのラジオ" #: ../plugins/radios/ario-radio.c:167 msgid "Last.fm: Radio of group" msgstr "Last.fm: グループのラジオ" #: ../plugins/radios/ario-radio.c:167 msgid "Group :" msgstr "グループ :" #: ../plugins/radios/ario-radio.c:168 msgid "Last.fm: Personal radio" msgstr "Last.fm: パーソナルラジオ" #: ../plugins/radios/ario-radio.c:169 msgid "Last.fm: Radio of genre" msgstr "Last.fm: ジャンルのラジオ" #: ../plugins/radios/ario-radio.c:184 #: ../plugins/radios/radios.ario-plugin.desktop.in.h:2 msgid "Web Radios" msgstr "ウェブラジオ" #: ../plugins/radios/ario-radio.c:246 msgid "Internet Radios" msgstr "インターネットラジオ" #. Create dialog window #: ../plugins/radios/ario-radio.c:774 msgid "Edit a WebRadio" msgstr "ウェブラジオの編集" #: ../plugins/radios/ario-radio.c:787 ../plugins/radios/ario-radio.c:923 msgid "URL :" msgstr "URL :" #: ../plugins/radios/ario-radio.c:853 ../plugins/radios/ario-radio.c:997 msgid "Bad parameters. You must specify a name and a URL for the radio." msgstr "パラメタが正しくありません。ラジオの名前と URL を指定してください。" #. Create dialog window #: ../plugins/radios/ario-radio.c:883 msgid "Add a WebRadio" msgstr "ウェブラジオの追加" #: ../plugins/radios/ario-radio.c:1083 msgid "Are you sure you want to delete all the selected radios?" msgstr "選択したラジオをすべて削除してよろしいですか?" #: ../plugins/radios/radios.ario-plugin.desktop.in.h:1 msgid "Listen to webradios" msgstr "ウェブラジオを聴きます" #: ../plugins/wikipedia/ario-wikipedia-plugin.c:49 #: ../plugins/wikipedia/ario-wikipedia-plugin.c:50 msgid "Find artist on Wikipedia" msgstr "アーティストを Wikipedia で検索" #: ../plugins/wikipedia/ario-wikipedia-plugin.c:172 msgid "Wikipedia Plugin - Configuration" msgstr "Wikipedia プラグイン - 設定" #: ../plugins/wikipedia/ario-wikipedia-plugin.c:181 msgid "Wikipedia language :" msgstr "Wikipedia の言語 :" #: ../plugins/wikipedia/wikipedia.ario-plugin.desktop.in.h:1 msgid "A plugin to search current artist on wikipedia" msgstr "現在のアーティストを Wikipedia で検索するプラグインです" #: ../plugins/wikipedia/wikipedia.ario-plugin.desktop.in.h:2 msgid "Wikipedia" msgstr "Wikipedia" #~ msgid "Add a search criteria" #~ msgstr "検索基準を追加します" #~ msgid "Search songs in the library" #~ msgstr "ライブラリから曲を検索します" #~ msgid "Remove a search criteria" #~ msgstr "検索基準を削除します" ario-1.6/po/ar.po0000644000175000017500000007421513226723435010633 00000000000000# Arabic translation for ario # Copyright (c) 2008 Rosetta Contributors and Canonical Ltd 2008 # This file is distributed under the same license as the ario package. # FIRST AUTHOR , 2008. # msgid "" msgstr "" "Project-Id-Version: ario\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2011-06-13 18:15+0200\n" "PO-Revision-Date: 2009-11-28 23:25+0000\n" "Last-Translator: AtomCell \n" "Language-Team: Arabic \n" "Language: ar\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2010-07-24 21:12+0000\n" "X-Generator: Launchpad (build Unknown)\n" #: ../data/ario.desktop.in.in.h:1 msgid "Ario music player" msgstr "عازف الموسيقى" #: ../data/ario.desktop.in.in.h:2 msgid "Client application to mpd" msgstr "تطبيق عميل لـmpd" #: ../data/ui/browser-prefs.ui.h:1 msgid "Alphabetically" msgstr "بالترتيب الهجائي" #: ../data/ui/browser-prefs.ui.h:2 msgid "By year" msgstr "بالترتيب السنوي" #: ../data/ui/browser-prefs.ui.h:3 msgid "Library Options" msgstr "خيارات المكتبة" #: ../data/ui/browser-prefs.ui.h:4 msgid "Library Organisation" msgstr "تنظيم المكتبة" #: ../data/ui/browser-prefs.ui.h:5 msgid "Sort albums: " msgstr "ترتيب الألبومات: " #: ../data/ui/connection-autodetect.ui.h:1 msgid "" "If you don't see your MPD server thanks to the automatic detection, you " "should check that zeroconf is activated in your MPD configuration or use the " "manual configuration." msgstr "" #: ../data/ui/connection-autodetect.ui.h:2 msgid "Server autodetection" msgstr "" #: ../data/ui/connection-widget.ui.h:1 msgid "Auto detect" msgstr "تعرف أوتوماتيكي" #: ../data/ui/connection-widget.ui.h:2 msgid "Default" msgstr "المبدئي" #: ../data/ui/connection-widget.ui.h:3 ../src/widgets/ario-firstlaunch.c:83 msgid "Host :" msgstr "مضيف :" #: ../data/ui/connection-widget.ui.h:4 msgid "Music directory :" msgstr "دليل الموسيقا :" #: ../data/ui/connection-widget.ui.h:5 msgid "Music server is on the same computer as Ario" msgstr "" #. Create the widgets #: ../data/ui/connection-widget.ui.h:6 ../plugins/radios/ario-radio.c:786 #: ../plugins/radios/ario-radio.c:922 msgid "Name :" msgstr "اسم :" #: ../data/ui/connection-widget.ui.h:7 #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:5 msgid "Password :" msgstr "كلمة السرّ :" #: ../data/ui/connection-widget.ui.h:8 ../src/widgets/ario-firstlaunch.c:85 msgid "Port :" msgstr "منفذ :" #: ../data/ui/connection-widget.ui.h:9 msgid "Server type :" msgstr "نوع الخادم :" #: ../data/ui/connection-widget.ui.h:10 msgid "Timeout :" msgstr "" #: ../data/ui/connection-widget.ui.h:11 msgid "XMMS 2 (Experimental)" msgstr "XMMS 2" #: ../data/ui/cover-prefs.ui.h:1 msgid "Automatically download the album cover of the playing song" msgstr "تحميل غلاف الألبوم تلقائياً عند تشغيل الملف" #: ../data/ui/cover-prefs.ui.h:2 ../src/shell/ario-shell-preferences.c:128 msgid "Covers" msgstr "الأغلفة" #: ../data/ui/cover-prefs.ui.h:3 msgid "Covers Sources" msgstr "مصدر الأغلفة" #: ../data/ui/cover-prefs.ui.h:4 msgid "Show the covers in the albums list" msgstr "إظهار الأغلفة في قائمة الألبومات" #: ../data/ui/cover-prefs.ui.h:5 msgid "Use Amazon." msgstr "استخدم Amazon." #: ../data/ui/connection-prefs.ui.h:1 #: ../src/shell/ario-shell-preferences.c:108 msgid "Connection" msgstr "الاتصال" #: ../data/ui/connection-prefs.ui.h:2 msgid "_Autoconnect on startup" msgstr "" #: ../data/ui/connection-prefs.ui.h:3 ../src/shell/ario-shell.c:167 msgid "_Connect" msgstr "_اتصل" #: ../data/ui/connection-prefs.ui.h:4 ../src/shell/ario-shell.c:170 msgid "_Disconnect" msgstr "_قطع الاتصال" #: ../data/ui/connection-assistant.ui.h:1 msgid "" "You need to specify a server to connect to. If you don't see your server " "thanks to the autodetection, you should check that zeroconf/avahi is " "activated in your server or use the manual configuration." msgstr "" #: ../data/ui/cover-progress.ui.h:1 ../data/ui/cover-select.ui.h:1 #: ../data/ui/song-infos.ui.h:1 ../plugins/information/information.ui.h:1 msgid "Album :" msgstr "ألبوم :" #: ../data/ui/cover-progress.ui.h:2 ../data/ui/cover-select.ui.h:2 #: ../data/ui/lyrics-select.ui.h:1 ../data/ui/song-infos.ui.h:3 #: ../plugins/information/information.ui.h:3 #: ../plugins/radios/ario-radio.c:166 msgid "Artist :" msgstr "فنّان :" #: ../data/ui/cover-progress.ui.h:3 msgid "Downloading cover" msgstr "جارِ تنزيل الغلاف" #: ../data/ui/cover-select.ui.h:3 msgid "Local search" msgstr "بحث محلّيّ" #: ../data/ui/cover-select.ui.h:4 ../src/sources/ario-search.c:108 msgid "Search" msgstr "بحث" #: ../data/ui/others-prefs.ui.h:1 msgid "Allow only one instance of Ario" msgstr "" #: ../data/ui/others-prefs.ui.h:2 msgid "Hide window when close button is pressed" msgstr "" #: ../data/ui/others-prefs.ui.h:3 msgid "Interface" msgstr "واجهة" #: ../data/ui/others-prefs.ui.h:4 msgid "Playlist at the right of tabs" msgstr "" #: ../data/ui/others-prefs.ui.h:5 #, fuzzy msgid "Playlist below tabs" msgstr "قوائم التشغيل" #: ../data/ui/others-prefs.ui.h:6 #, fuzzy msgid "Playlist within tabs" msgstr "قوائم التشغيل" #: ../data/ui/others-prefs.ui.h:7 msgid "Proxy" msgstr "الوسيط" #: ../data/ui/others-prefs.ui.h:8 msgid "Proxy Address :" msgstr "عنوان الوسيط :" #: ../data/ui/others-prefs.ui.h:9 msgid "Proxy Port :" msgstr "منفذ الوسيط :" #: ../data/ui/others-prefs.ui.h:10 msgid "Show tabs" msgstr "إظهار الألسنة" #: ../data/ui/others-prefs.ui.h:11 msgid "Use a proxy" msgstr "استخدم وسيطاً" #: ../data/ui/lyrics-prefs.ui.h:1 msgid "Lyrics Sources" msgstr "مصدر الكلمات" #: ../data/ui/lyrics-select.ui.h:2 ../data/ui/song-infos.ui.h:13 #: ../plugins/information/information.ui.h:6 msgid "Title :" msgstr "عنوان :" #: ../data/ui/playlist-prefs.ui.h:1 msgid "Add after playing song" msgstr "" #: ../data/ui/playlist-prefs.ui.h:2 msgid "Add and play" msgstr "" #: ../data/ui/playlist-prefs.ui.h:3 ../data/ui/similar-artists.ui.h:2 msgid "Add to playlist" msgstr "إضافة لقائمة التشغيل" #. ARIO_TAG_ARTIST #: ../data/ui/playlist-prefs.ui.h:4 ../src/servers/ario-server.c:46 #: ../src/sources/ario-tree-albums.c:213 ../src/widgets/ario-playlist.c:541 #: ../src/widgets/ario-songlist.c:228 ../src/widgets/ario-tray-icon.c:565 msgid "Album" msgstr "ألبوم" #: ../data/ui/playlist-prefs.ui.h:5 ../src/servers/ario-server.c:45 #: ../src/widgets/ario-playlist.c:541 ../src/widgets/ario-songlist.c:213 #: ../src/widgets/ario-tray-icon.c:563 msgid "Artist" msgstr "فنّان" #. ARIO_TAG_GENRE #: ../data/ui/playlist-prefs.ui.h:6 ../src/servers/ario-server.c:52 #: ../src/widgets/ario-playlist.c:541 msgid "Date" msgstr "تاريخ" #: ../data/ui/playlist-prefs.ui.h:7 ../src/widgets/ario-playlist.c:541 msgid "Disc" msgstr "" #: ../data/ui/playlist-prefs.ui.h:8 msgid "Double click" msgstr "" #: ../data/ui/playlist-prefs.ui.h:9 ../src/widgets/ario-playlist.c:541 msgid "Duration" msgstr "المدّة" #: ../data/ui/playlist-prefs.ui.h:10 ../src/widgets/ario-playlist.c:541 msgid "File" msgstr "الملف" #. ARIO_TAG_TRACK #. ARIO_TAG_NAME #: ../data/ui/playlist-prefs.ui.h:11 ../src/servers/ario-server.c:51 #: ../src/widgets/ario-playlist.c:541 msgid "Genre" msgstr "نوع" #: ../data/ui/playlist-prefs.ui.h:12 msgid "Go to current song when a new song is played" msgstr "" #: ../data/ui/playlist-prefs.ui.h:13 msgid "Mode" msgstr "" #: ../data/ui/playlist-prefs.ui.h:14 msgid "On double click:" msgstr "" #: ../data/ui/playlist-prefs.ui.h:15 ../src/sources/ario-storedplaylists.c:229 #: ../src/shell/ario-shell.c:222 ../src/shell/ario-shell-preferences.c:123 #: ../src/widgets/ario-playlist.c:272 msgid "Playlist" msgstr "قائمة التشغيل" #: ../data/ui/playlist-prefs.ui.h:16 msgid "Playlist mode:" msgstr "" #: ../data/ui/playlist-prefs.ui.h:17 msgid "Replace in playlist" msgstr "" #: ../data/ui/playlist-prefs.ui.h:18 msgid "Show rows:" msgstr "" #. ARIO_TAG_ALBUM_ARTIST #: ../data/ui/playlist-prefs.ui.h:19 ../src/servers/ario-server.c:48 #: ../src/sources/ario-tree-songs.c:145 ../src/widgets/ario-playlist.c:541 #: ../src/widgets/ario-songlist.c:198 ../src/widgets/ario-tray-icon.c:567 msgid "Title" msgstr "عنوان" #. ARIO_TAG_TITLE #: ../data/ui/playlist-prefs.ui.h:20 ../src/servers/ario-server.c:49 #: ../src/sources/ario-tree-songs.c:138 ../src/widgets/ario-playlist.c:541 msgid "Track" msgstr "قطعة" #: ../data/ui/server-prefs.ui.h:1 msgid "Audio outputs" msgstr "خرج سمعيّ" #: ../data/ui/server-prefs.ui.h:2 msgid "Crossfade" msgstr "" #: ../data/ui/server-prefs.ui.h:3 msgid "Database" msgstr "قاعدة البيانات" #: ../data/ui/server-prefs.ui.h:4 msgid "Last updated:" msgstr "آخر تحديث:" #: ../data/ui/server-prefs.ui.h:5 msgid "Stop music on exit" msgstr "" #: ../data/ui/server-prefs.ui.h:6 msgid "Update on startup" msgstr "" #: ../data/ui/server-prefs.ui.h:7 msgid "_Update" msgstr "_تحديث" #: ../data/ui/server-prefs.ui.h:8 msgid "enable crossfade" msgstr "" #: ../data/ui/server-prefs.ui.h:9 msgid "fade time (s):" msgstr "" #: ../data/ui/server-prefs.ui.h:10 ../src/ario-util.c:50 ../src/ario-util.c:71 #: ../src/ario-util.c:93 ../plugins/information/information.ui.h:7 #, c-format msgid "n/a" msgstr "غير موجود" #: ../data/ui/similar-artists.ui.h:1 msgid "Add all to playlist" msgstr "إضافة الكل لقائمة التشغيل" #: ../data/ui/similar-artists.ui.h:3 msgid "Find on Last.fm" msgstr "بحث على Last.fm" #: ../data/ui/stats-prefs.ui.h:1 msgid "Database play time :" msgstr "" #: ../data/ui/stats-prefs.ui.h:2 msgid "Number of albums :" msgstr "عدد الألبومات :" #: ../data/ui/stats-prefs.ui.h:3 msgid "Number of artists :" msgstr "عدد الفنّانين :" #: ../data/ui/stats-prefs.ui.h:4 msgid "Number of songs :" msgstr "عدد الأغاني :" #: ../data/ui/stats-prefs.ui.h:5 msgid "Play time :" msgstr "مدّة العزف :" #: ../data/ui/stats-prefs.ui.h:6 ../src/shell/ario-shell-preferences.c:148 msgid "Statistics" msgstr "الإحصائيات" #: ../data/ui/stats-prefs.ui.h:7 msgid "Uptime :" msgstr "" #: ../data/ui/song-infos.ui.h:2 msgid "Album Artist :" msgstr "" #: ../data/ui/song-infos.ui.h:4 msgid "Comment :" msgstr "تعليق :" #: ../data/ui/song-infos.ui.h:5 msgid "Composer :" msgstr "" #: ../data/ui/song-infos.ui.h:6 msgid "Date :" msgstr "تاريخ :" #: ../data/ui/song-infos.ui.h:7 msgid "Disc :" msgstr "قرص :" #: ../data/ui/song-infos.ui.h:8 msgid "Filename :" msgstr "اسم الملف :" #: ../data/ui/song-infos.ui.h:9 ../plugins/radios/ario-radio.c:169 msgid "Genre :" msgstr "نوع :" #: ../data/ui/song-infos.ui.h:10 ../plugins/information/information.ui.h:4 msgid "Length :" msgstr "مدّة :" #: ../data/ui/song-infos.ui.h:11 msgid "Performer :" msgstr "" #: ../data/ui/song-infos.ui.h:12 msgid "Song" msgstr "أغنية" #: ../data/ui/song-infos.ui.h:14 msgid "Track :" msgstr "قطعة :" #: ../data/ui/trayicon-prefs.ui.h:1 msgid "Do nothing" msgstr "لا تفعل أي شيء" #: ../data/ui/trayicon-prefs.ui.h:2 msgid "Mute" msgstr "" #: ../data/ui/trayicon-prefs.ui.h:3 ../src/shell/ario-shell-preferences.c:138 msgid "Notification" msgstr "" #: ../data/ui/trayicon-prefs.ui.h:4 msgid "Notification on song change" msgstr "" #: ../data/ui/trayicon-prefs.ui.h:5 msgid "Notification time: " msgstr "" #: ../data/ui/trayicon-prefs.ui.h:6 msgid "On middle button click on tray icon :" msgstr "" #: ../data/ui/trayicon-prefs.ui.h:7 ../src/widgets/ario-header.c:241 msgid "Play next song" msgstr "عزف الاغنية التالية" #: ../data/ui/trayicon-prefs.ui.h:8 msgid "Play/Pause" msgstr "شغّل/قِف مؤقتاً" #: ../data/ui/trayicon-prefs.ui.h:9 msgid "Tray icon" msgstr "" #: ../src/ario-main.c:67 msgid "Start minimized window" msgstr "" #: ../src/ario-main.c:68 msgid "Start with specific profile" msgstr "" #. Format result string #: ../src/ario-util.c:110 msgid "seconds" msgstr "ثانية" #: ../src/ario-util.c:112 msgid "minutes" msgstr "دقيقة" #: ../src/ario-util.c:118 msgid "hours" msgstr "ساعة" #: ../src/ario-util.c:124 msgid "days" msgstr "يوم" #: ../src/covers/ario-cover.c:149 msgid "The cover already exists. Do you want to replace it?" msgstr "" #: ../src/covers/ario-cover-local.c:48 msgid "Music Directory" msgstr "دليل الموسيقا" #: ../src/playlist/ario-playlist-dynamic.c:49 msgid "songs of same artist" msgstr "" #: ../src/playlist/ario-playlist-dynamic.c:50 msgid "songs of same album" msgstr "" #: ../src/playlist/ario-playlist-dynamic.c:51 msgid "songs of similar artists" msgstr "" #: ../src/playlist/ario-playlist-dynamic.c:52 msgid "albums of same artists" msgstr "" #: ../src/playlist/ario-playlist-dynamic.c:53 msgid "albums of similar artists" msgstr "" #: ../src/playlist/ario-playlist-dynamic.c:69 msgid "Dynamic Playlist" msgstr "" #: ../src/playlist/ario-playlist-queue.c:49 msgid "Queue Mode" msgstr "" #: ../src/playlist/ario-playlist-normal.c:47 msgid "Normal" msgstr "" #: ../src/plugins/ario-plugin-manager.c:45 msgid "Plugin" msgstr "ملحق" #: ../src/plugins/ario-plugin-manager.c:46 msgid "Enabled" msgstr "مفعّل" #: ../src/plugins/ario-plugin-manager.c:480 ../src/shell/ario-shell.c:206 msgid "_About" msgstr "_عن" #: ../src/plugins/ario-plugin-manager.c:488 msgid "C_onfigure" msgstr "ا_ضبط" #: ../src/plugins/ario-plugin-manager.c:497 msgid "A_ctivate" msgstr "ن_شّط" #: ../src/plugins/ario-plugin-manager.c:508 msgid "Ac_tivate All" msgstr "ن_شّط الكل" #: ../src/plugins/ario-plugin-manager.c:513 msgid "_Deactivate All" msgstr "أ_خمِد الكل" #: ../src/plugins/ario-plugin-manager.c:722 msgid "Active plugins" msgstr "الملحقات النشِطة" #: ../src/preferences/ario-server-preferences.c:182 #: ../src/preferences/ario-stats-preferences.c:151 #: ../src/preferences/ario-stats-preferences.c:152 #: ../src/preferences/ario-stats-preferences.c:153 #: ../src/preferences/ario-stats-preferences.c:154 #: ../src/preferences/ario-stats-preferences.c:155 #: ../src/preferences/ario-stats-preferences.c:156 msgid "Not connected" msgstr "غير متصل" #: ../src/preferences/ario-server-preferences.c:187 #: ../src/preferences/ario-server-preferences.c:278 #: ../src/widgets/ario-status-bar.c:100 msgid "Updating..." msgstr "جارِ التحديث..." #: ../src/servers/ario-mpd.c:410 ../src/servers/ario-mpd2.c:522 msgid "Connecting to server..." msgstr "" #: ../src/servers/ario-mpd.c:438 ../src/servers/ario-mpd2.c:550 msgid "Impossible to connect to server. Check the connection options." msgstr "" #. ARIO_TAG_ALBUM #: ../src/servers/ario-server.c:47 msgid "Album Artist" msgstr "" #. ARIO_TAG_DATE #: ../src/servers/ario-server.c:53 msgid "Composer" msgstr "" #. ARIO_TAG_COMPOSER #: ../src/servers/ario-server.c:54 msgid "Performer" msgstr "" #. ARIO_TAG_PERFORMER #. ARIO_TAG_COMMENT #. ARIO_TAG_DISC #: ../src/servers/ario-server.c:57 msgid "Filename" msgstr "اسم الملف" #. ARIO_TAG_FILENAME #: ../src/servers/ario-server.c:58 msgid "Any" msgstr "أيّ" #. impossible time or broken locale settings #: ../src/servers/ario-server.h:27 #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1235 msgid "Unknown" msgstr "مجهول" #: ../src/sources/ario-browser.c:82 ../src/sources/ario-search.c:70 #: ../src/sources/ario-storedplaylists.c:88 #: ../src/sources/ario-storedplaylists.c:106 #: ../plugins/filesystem/ario-filesystem.c:94 #: ../plugins/filesystem/ario-filesystem.c:109 #: ../plugins/radios/ario-radio.c:116 msgid "_Add to playlist" msgstr "_إضافة لقائمة التشغيل" #: ../src/sources/ario-browser.c:85 ../src/sources/ario-search.c:73 #: ../src/sources/ario-storedplaylists.c:91 #: ../src/sources/ario-storedplaylists.c:109 #: ../plugins/filesystem/ario-filesystem.c:97 #: ../plugins/filesystem/ario-filesystem.c:112 #: ../plugins/radios/ario-radio.c:119 msgid "Add and _play" msgstr "إضافة و_عزف" #: ../src/sources/ario-browser.c:88 ../src/sources/ario-search.c:76 #: ../src/sources/ario-storedplaylists.c:94 #: ../src/sources/ario-storedplaylists.c:112 #: ../plugins/filesystem/ario-filesystem.c:100 #: ../plugins/filesystem/ario-filesystem.c:115 #: ../plugins/radios/ario-radio.c:122 msgid "_Replace in playlist" msgstr "" #: ../src/sources/ario-browser.c:91 msgid "Get the covers" msgstr "" #: ../src/sources/ario-browser.c:94 msgid "_Delete the covers" msgstr "" #: ../src/sources/ario-browser.c:97 ../src/sources/ario-browser.c:100 #: ../src/sources/ario-search.c:79 ../src/sources/ario-storedplaylists.c:115 #: ../src/widgets/ario-playlist.c:151 #: ../plugins/filesystem/ario-filesystem.c:118 #: ../plugins/radios/ario-radio.c:131 msgid "_Properties" msgstr "ال_خصائص" #: ../src/sources/ario-browser.c:125 ../src/shell/ario-shell-preferences.c:118 msgid "Library" msgstr "مكتبة" #: ../src/sources/ario-storedplaylists.c:97 msgid "_Delete" msgstr "_حذف" #: ../src/sources/ario-storedplaylists.c:151 msgid "Playlists" msgstr "قوائم التشغيل" #: ../src/sources/ario-storedplaylists.c:592 msgid "Are you sure that you want to delete all the selected playlists?" msgstr "" #: ../src/sources/ario-tree.c:856 msgid "Are you sure that you want to remove all the selected covers?" msgstr "" #. Translators - This "Cover" refers to an album cover art #: ../src/sources/ario-tree-albums.c:199 msgid "Cover" msgstr "غلاف" #: ../src/shell/ario-shell.c:160 msgid "_File" msgstr "_ملف" #: ../src/shell/ario-shell.c:161 msgid "_Edit" msgstr "ت_حرير" #: ../src/shell/ario-shell.c:162 msgid "_View" msgstr "_عرِض" #: ../src/shell/ario-shell.c:163 msgid "_Control" msgstr "" #: ../src/shell/ario-shell.c:164 msgid "_Tool" msgstr "الأ_داة" #: ../src/shell/ario-shell.c:165 msgid "_Help" msgstr "_مساعدة" #: ../src/shell/ario-shell.c:173 msgid "_Update database" msgstr "" #: ../src/shell/ario-shell.c:176 msgid "_Quit" msgstr "_مغادرة" #: ../src/shell/ario-shell.c:179 msgid "Plu_gins" msgstr "ملا_حق" #: ../src/shell/ario-shell.c:182 msgid "Prefere_nces" msgstr "التف_ضيلات" #: ../src/shell/ario-shell.c:185 msgid "_Change current album cover" msgstr "" #: ../src/shell/ario-shell.c:188 msgid "Download album _covers" msgstr "" #: ../src/shell/ario-shell.c:191 msgid "Find similar artists" msgstr "بحث عن فنّانين مثلهم" #: ../src/shell/ario-shell.c:194 msgid "Add similar songs to playlist" msgstr "" #: ../src/shell/ario-shell.c:197 msgid "Go to _previous tab" msgstr "" #: ../src/shell/ario-shell.c:200 msgid "Go to _next tab" msgstr "" #: ../src/shell/ario-shell.c:203 msgid "Show _lyrics" msgstr "إظهار ال_كلمات" #: ../src/shell/ario-shell.c:209 msgid "_Translate this application..." msgstr "_ترجمة هذا التطبيق..." #: ../src/shell/ario-shell.c:216 msgid "S_tatusbar" msgstr "شريط ال_حالة" #: ../src/shell/ario-shell.c:219 msgid "Upper part" msgstr "" #: ../src/shell/ario-shell.c:825 msgid "GTK client for MPD" msgstr "" #: ../src/shell/ario-shell.c:826 msgid "translator-credits" msgstr "" "Launchpad Contributions:\n" " AtomCell https://launchpad.net/~shelhatem\n" " MaXeR https://launchpad.net/~themaxer\n" " Marc Pavot https://launchpad.net/~marc-pavot\n" " صقر بن عبدالله https://launchpad.net/~agari" #. Create plugins configuration dialog window #: ../src/shell/ario-shell.c:1278 msgid "Configure Plugins" msgstr "ضبط الملاحق" #. Set window properties #: ../src/shell/ario-shell-coverdownloader.c:187 msgid "Music Player Cover Download" msgstr "" #: ../src/shell/ario-shell-coverdownloader.c:332 msgid "Download Finished!" msgstr "تم التنزيل!" #. We show the numbers of covers found and not found #: ../src/shell/ario-shell-coverdownloader.c:335 #, c-format msgid "" "%i covers found\n" "%i covers not found\n" "%i covers already exist" msgstr "" #. Set window properties #: ../src/shell/ario-shell-coverselect.c:242 msgid "Cover Download" msgstr "" #: ../src/shell/ario-shell-coverselect.c:559 msgid "Error reading file" msgstr "خطأ أثناء قراءة الملفّ" #: ../src/shell/ario-shell-coverselect.c:584 msgid "Error saving file" msgstr "" #: ../src/shell/ario-shell-lyrics.c:43 #: ../src/shell/ario-shell-preferences.c:133 #: ../src/shell/ario-shell-songinfos.c:272 msgid "Lyrics" msgstr "الكلمات" #: ../src/shell/ario-shell-lyricsselect.c:152 msgid "Lyrics Download" msgstr "تنزيل الكلمات" #: ../src/shell/ario-shell-preferences.c:81 msgid "Ario Preferences" msgstr "تفضيلات Ario" #: ../src/shell/ario-shell-preferences.c:113 msgid "Server" msgstr "الخادوم" #: ../src/shell/ario-shell-preferences.c:143 msgid "Others" msgstr "" #: ../src/shell/ario-shell-similarartists.c:318 #, c-format msgid "%d songs" msgstr "%d أغنية" #. Set window properties #. Set window title #: ../src/shell/ario-shell-songinfos.c:249 #: ../src/shell/ario-shell-songinfos.c:266 #: ../src/shell/ario-shell-songinfos.c:544 msgid "Song Properties" msgstr "" #: ../src/shell/ario-shell-songinfos.c:455 msgid "Error saving tags of file:" msgstr "" #: ../src/widgets/ario-connection-widget.c:652 msgid "You must select a server." msgstr "يجب أن تنتقِ خادوم." #: ../src/widgets/ario-connection-widget.c:702 msgid "New Profile" msgstr "سيرة جديدة" #: ../src/widgets/ario-firstlaunch.c:82 msgid "The following configuration will be used:" msgstr "" #: ../src/widgets/ario-firstlaunch.c:106 msgid "" "It is the first time you launch Ario.\n" "This assistant will help you to configure it." msgstr "" #: ../src/widgets/ario-firstlaunch.c:111 msgid "Welcome to Ario" msgstr "" #: ../src/widgets/ario-firstlaunch.c:129 msgid "Configuration" msgstr "" #: ../src/widgets/ario-firstlaunch.c:141 msgid "Confirmation" msgstr "" #: ../src/widgets/ario-header.c:66 ../src/widgets/ario-tray-icon.h:42 #, c-format msgid "from %s by %s" msgstr "" #: ../src/widgets/ario-header.c:199 msgid "Play previous song" msgstr "" #: ../src/widgets/ario-header.c:217 msgid "Play/Pause the music" msgstr "" #: ../src/widgets/ario-header.c:229 msgid "Stop the music" msgstr "" #. Translators - This " of " is used to count the elapsed time #. of a song like in "00:59 of 03:24" #: ../src/widgets/ario-header.c:310 ../src/widgets/ario-tooltip.c:321 msgid " of " msgstr "" #: ../src/widgets/ario-header.c:323 msgid "Toggle random on/off" msgstr "" #: ../src/widgets/ario-header.c:335 msgid "Toggle repeat on/off" msgstr "" #: ../src/widgets/ario-header.c:340 msgid "Change the music volume" msgstr "" #: ../src/widgets/ario-lyrics-editor.c:323 msgid "Downloading lyrics..." msgstr "" #: ../src/widgets/ario-lyrics-editor.c:351 msgid "Lyrics not found" msgstr "" #: ../src/widgets/ario-playlist.c:133 msgid "_Clear" msgstr "" #: ../src/widgets/ario-playlist.c:136 msgid "_Shuffle" msgstr "" #: ../src/widgets/ario-playlist.c:139 msgid "Cr_op" msgstr "" #: ../src/widgets/ario-playlist.c:142 msgid "_Search in playlist" msgstr "" #: ../src/widgets/ario-playlist.c:145 msgid "_Remove" msgstr "" #: ../src/widgets/ario-playlist.c:148 msgid "_Save" msgstr "" #: ../src/widgets/ario-playlist.c:154 msgid "_Go to playing song" msgstr "" #: ../src/widgets/ario-playlist.c:667 msgid "Filter:" msgstr "" #. Create the widgets #: ../src/widgets/ario-playlist.c:1700 msgid "Save playlist" msgstr "" #: ../src/widgets/ario-playlist.c:1710 msgid "Playlist name :" msgstr "" #: ../src/widgets/ario-playlist.c:1746 msgid "Playlist already exists. Do you want to overwrite it?" msgstr "" #. Format status bar message #: ../src/widgets/ario-status-bar.c:96 msgid "Songs" msgstr "أغاني" #: ../src/widgets/ario-tray-icon.c:102 msgid "_Play" msgstr "" #: ../src/widgets/ario-tray-icon.c:105 msgid "_Pause" msgstr "" #: ../src/widgets/ario-tray-icon.c:108 msgid "_Stop" msgstr "" #: ../src/widgets/ario-tray-icon.c:111 msgid "_Next" msgstr "" #: ../src/widgets/ario-tray-icon.c:114 msgid "P_revious" msgstr "" #: ../src/widgets/ario-tray-icon.h:41 msgid "Not playing" msgstr "" #. Translators: "friendly time" string for the current day, strftime format. like "Today 12:34 am" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1179 msgid "Today %I:%M %p" msgstr "" #. Translators: "friendly time" string for the previous day, #. * strftime format. e.g. "Yesterday 12:34 am" #. #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1192 msgid "Yesterday %I:%M %p" msgstr "" #. Translators: "friendly time" string for a day in the current week, #. * strftime format. e.g. "Wed 12:34 am" #. #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1208 msgid "%a %I:%M %p" msgstr "" #. Translators: "friendly time" string for a day in the current year, #. * strftime format. e.g. "Feb 12 12:34 am" #. #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1220 msgid "%b %d %I:%M %p" msgstr "" #. Translators: "friendly time" string for a day in a different year, #. * strftime format. e.g. "Feb 12 1997" #. #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1225 msgid "%b %d %Y" msgstr "" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1311 #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:4 msgid "Never" msgstr "" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1335 msgid "OK" msgstr "" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1338 msgid "Logging in" msgstr "" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1341 msgid "Request failed" msgstr "" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1344 msgid "Incorrect username" msgstr "" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1347 msgid "Incorrect password" msgstr "" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1350 msgid "Handshake failed" msgstr "" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1353 msgid "Client update required" msgstr "" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1356 msgid "Track submission failed" msgstr "" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1359 msgid "Queue is too long" msgstr "" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1362 msgid "Track submission failed too many times" msgstr "" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1417 msgid "Audioscrobbler preferences" msgstr "" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:1 msgid "Disabled" msgstr "" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:2 msgid "Last submission time:" msgstr "" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:3 msgid "Last.fm Profile" msgstr "" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:6 msgid "Queued tracks:" msgstr "" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:7 msgid "Status:" msgstr "" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:8 msgid "Tracks submitted:" msgstr "" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:9 #: ../plugins/radios/ario-radio.c:168 msgid "Username :" msgstr "" #: ../plugins/audioscrobbler/audioscrobbler.ario-plugin.desktop.in.h:1 msgid "Last.fm" msgstr "" #: ../plugins/audioscrobbler/audioscrobbler.ario-plugin.desktop.in.h:2 msgid "Submits song information to last.fm" msgstr "" #: ../plugins/filesystem/ario-filesystem.c:158 msgid "File System" msgstr "" #: ../plugins/filesystem/ario-filesystem.c:422 msgid "Music" msgstr "" #: ../plugins/filesystem/filesystem.ario-plugin.desktop.in.h:1 msgid "A File System Browser" msgstr "" #: ../plugins/filesystem/filesystem.ario-plugin.desktop.in.h:2 msgid "File System Browser" msgstr "" #: ../plugins/information/ario-information.c:114 msgid "Information" msgstr "" #: ../plugins/information/information.ario-plugin.desktop.in.h:1 msgid "Display various information about the playing song" msgstr "" #: ../plugins/information/information.ario-plugin.desktop.in.h:2 msgid "Song Information" msgstr "" #: ../plugins/information/information.ui.h:2 msgid "Albums from this artist:" msgstr "" #: ../plugins/information/information.ui.h:5 msgid "Lyrics:" msgstr "" #: ../plugins/libnotify/libnotify.ario-plugin.desktop.in.h:1 msgid "Add libnotify support" msgstr "" #: ../plugins/libnotify/libnotify.ario-plugin.desktop.in.h:2 msgid "Libnotify" msgstr "" #: ../plugins/mmkeys/mmkeys.ario-plugin.desktop.in.h:1 msgid "Add multimedia keys support" msgstr "" #: ../plugins/mmkeys/mmkeys.ario-plugin.desktop.in.h:2 msgid "Multimedia Keys" msgstr "" #: ../plugins/radios/ario-radio.c:125 msgid "Add a _new radio" msgstr "" #: ../plugins/radios/ario-radio.c:128 msgid "_Delete this radios" msgstr "" #: ../plugins/radios/ario-radio.c:166 msgid "Last.fm: Radio of similar artists" msgstr "" #: ../plugins/radios/ario-radio.c:167 msgid "Last.fm: Radio of group" msgstr "" #: ../plugins/radios/ario-radio.c:167 msgid "Group :" msgstr "" #: ../plugins/radios/ario-radio.c:168 msgid "Last.fm: Personal radio" msgstr "" #: ../plugins/radios/ario-radio.c:169 msgid "Last.fm: Radio of genre" msgstr "" #: ../plugins/radios/ario-radio.c:184 #: ../plugins/radios/radios.ario-plugin.desktop.in.h:2 msgid "Web Radios" msgstr "" #: ../plugins/radios/ario-radio.c:246 msgid "Internet Radios" msgstr "" #. Create dialog window #: ../plugins/radios/ario-radio.c:774 msgid "Edit a WebRadio" msgstr "" #: ../plugins/radios/ario-radio.c:787 ../plugins/radios/ario-radio.c:923 msgid "URL :" msgstr "" #: ../plugins/radios/ario-radio.c:853 ../plugins/radios/ario-radio.c:997 msgid "Bad parameters. You must specify a name and a URL for the radio." msgstr "" #. Create dialog window #: ../plugins/radios/ario-radio.c:883 msgid "Add a WebRadio" msgstr "" #: ../plugins/radios/ario-radio.c:1083 msgid "Are you sure you want to delete all the selected radios?" msgstr "" #: ../plugins/radios/radios.ario-plugin.desktop.in.h:1 msgid "Listen to webradios" msgstr "" #: ../plugins/wikipedia/ario-wikipedia-plugin.c:49 #: ../plugins/wikipedia/ario-wikipedia-plugin.c:50 msgid "Find artist on Wikipedia" msgstr "" #: ../plugins/wikipedia/ario-wikipedia-plugin.c:172 msgid "Wikipedia Plugin - Configuration" msgstr "" #: ../plugins/wikipedia/ario-wikipedia-plugin.c:181 msgid "Wikipedia language :" msgstr "" #: ../plugins/wikipedia/wikipedia.ario-plugin.desktop.in.h:1 msgid "A plugin to search current artist on wikipedia" msgstr "" #: ../plugins/wikipedia/wikipedia.ario-plugin.desktop.in.h:2 msgid "Wikipedia" msgstr "" #~ msgid "Search songs in the library" #~ msgstr "بحث الأغاني في المكتبة" ario-1.6/po/de.po0000644000175000017500000010606413226723435010617 00000000000000# German translation for ario # Copyright (c) 2008 Rosetta Contributors and Canonical Ltd 2008 # This file is distributed under the same license as the ario package. # Claudius Henrichs , 2010. # Fabian Nowak , 2010. # FIRST AUTHOR , 2008. # msgid "" msgstr "" "Project-Id-Version: ario\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2011-06-13 18:15+0200\n" "PO-Revision-Date: 2011-01-02 20:18+0000\n" "Last-Translator: Fabian Nowak \n" "Language-Team: German \n" "Language: de\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2011-06-13 16:32+0000\n" "X-Generator: Launchpad (build 13175)\n" #: ../data/ario.desktop.in.in.h:1 msgid "Ario music player" msgstr "Ario Musikspieler" #: ../data/ario.desktop.in.in.h:2 msgid "Client application to mpd" msgstr "Client-Anwendung für MPD" #: ../data/ui/browser-prefs.ui.h:1 msgid "Alphabetically" msgstr "Alphabetisch" #: ../data/ui/browser-prefs.ui.h:2 msgid "By year" msgstr "Nach Jahr" #: ../data/ui/browser-prefs.ui.h:3 msgid "Library Options" msgstr "Bibliotheksoptionen" #: ../data/ui/browser-prefs.ui.h:4 msgid "Library Organisation" msgstr "Organisation der Sammlung" #: ../data/ui/browser-prefs.ui.h:5 msgid "Sort albums: " msgstr "Alben sortieren: " #: ../data/ui/connection-autodetect.ui.h:1 msgid "" "If you don't see your MPD server thanks to the automatic detection, you " "should check that zeroconf is activated in your MPD configuration or use the " "manual configuration." msgstr "" "Falls Sie den MPD-Server aufgrund der automatischen Ermittlung nicht sehen " "sollten, überprüfen Sie, ob zeroconf in Ihrer MPD-Konfiguration aktiviert " "ist, oder versuchen Sie eine manuelle Konfiguration." #: ../data/ui/connection-autodetect.ui.h:2 msgid "Server autodetection" msgstr "Server automatisch ermitteln" #: ../data/ui/connection-widget.ui.h:1 msgid "Auto detect" msgstr "Automatische Erkennung" #: ../data/ui/connection-widget.ui.h:2 msgid "Default" msgstr "Standard" #: ../data/ui/connection-widget.ui.h:3 ../src/widgets/ario-firstlaunch.c:83 msgid "Host :" msgstr "Host:" #: ../data/ui/connection-widget.ui.h:4 msgid "Music directory :" msgstr "Musikverzeichnis:" #: ../data/ui/connection-widget.ui.h:5 msgid "Music server is on the same computer as Ario" msgstr "Musikserver ist auf demselben Computer wie Ario" #. Create the widgets #: ../data/ui/connection-widget.ui.h:6 ../plugins/radios/ario-radio.c:786 #: ../plugins/radios/ario-radio.c:922 msgid "Name :" msgstr "Name:" #: ../data/ui/connection-widget.ui.h:7 #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:5 msgid "Password :" msgstr "Passwort:" #: ../data/ui/connection-widget.ui.h:8 ../src/widgets/ario-firstlaunch.c:85 msgid "Port :" msgstr "Port:" #: ../data/ui/connection-widget.ui.h:9 msgid "Server type :" msgstr "Servertyp :" #: ../data/ui/connection-widget.ui.h:10 msgid "Timeout :" msgstr "" #: ../data/ui/connection-widget.ui.h:11 msgid "XMMS 2 (Experimental)" msgstr "XMMS 2 (experimentell)" #: ../data/ui/cover-prefs.ui.h:1 msgid "Automatically download the album cover of the playing song" msgstr "Albumcover während des Abspielens automatisch herunterladen" #: ../data/ui/cover-prefs.ui.h:2 ../src/shell/ario-shell-preferences.c:128 msgid "Covers" msgstr "Cover" #: ../data/ui/cover-prefs.ui.h:3 msgid "Covers Sources" msgstr "Cover-Quellen" #: ../data/ui/cover-prefs.ui.h:4 msgid "Show the covers in the albums list" msgstr "Cover in der Albumliste anzeigen" #: ../data/ui/cover-prefs.ui.h:5 msgid "Use Amazon." msgstr "Verwenden von www.amazon." #: ../data/ui/connection-prefs.ui.h:1 #: ../src/shell/ario-shell-preferences.c:108 msgid "Connection" msgstr "Verbindung" #: ../data/ui/connection-prefs.ui.h:2 msgid "_Autoconnect on startup" msgstr "_Beim Start automatisch verbinden" #: ../data/ui/connection-prefs.ui.h:3 ../src/shell/ario-shell.c:167 msgid "_Connect" msgstr "_Verbinden" #: ../data/ui/connection-prefs.ui.h:4 ../src/shell/ario-shell.c:170 msgid "_Disconnect" msgstr "Verbindung _trennen" #: ../data/ui/connection-assistant.ui.h:1 msgid "" "You need to specify a server to connect to. If you don't see your server " "thanks to the autodetection, you should check that zeroconf/avahi is " "activated in your server or use the manual configuration." msgstr "" "Sie müssen einen Server angeben, zu dem verbunden werden soll. Wenn die " "automatische Erkennung den Server nicht finden konnte, sollten Sie " "überprüfen, ob zeroconf/avahi in Ihrem Server aktiviert ist, oder verwenden " "Sie die manuelle Konfiguration." #: ../data/ui/cover-progress.ui.h:1 ../data/ui/cover-select.ui.h:1 #: ../data/ui/song-infos.ui.h:1 ../plugins/information/information.ui.h:1 msgid "Album :" msgstr "Album:" #: ../data/ui/cover-progress.ui.h:2 ../data/ui/cover-select.ui.h:2 #: ../data/ui/lyrics-select.ui.h:1 ../data/ui/song-infos.ui.h:3 #: ../plugins/information/information.ui.h:3 #: ../plugins/radios/ario-radio.c:166 msgid "Artist :" msgstr "Künstler:" #: ../data/ui/cover-progress.ui.h:3 msgid "Downloading cover" msgstr "Cover wird heruntergeladen" #: ../data/ui/cover-select.ui.h:3 msgid "Local search" msgstr "Lokale Suche" #: ../data/ui/cover-select.ui.h:4 ../src/sources/ario-search.c:108 msgid "Search" msgstr "Suche" #: ../data/ui/others-prefs.ui.h:1 msgid "Allow only one instance of Ario" msgstr "Nur eine Instanz von Ario zulassen" #: ../data/ui/others-prefs.ui.h:2 msgid "Hide window when close button is pressed" msgstr "Fenster beim Schließen verstecken" #: ../data/ui/others-prefs.ui.h:3 msgid "Interface" msgstr "Oberfläche" #: ../data/ui/others-prefs.ui.h:4 msgid "Playlist at the right of tabs" msgstr "Wiedergabeliste rechts der Reiter" #: ../data/ui/others-prefs.ui.h:5 msgid "Playlist below tabs" msgstr "Wiedergabeliste unterhalb der Reiter" #: ../data/ui/others-prefs.ui.h:6 msgid "Playlist within tabs" msgstr "Wiedergabeliste innerhalb der Reiter" #: ../data/ui/others-prefs.ui.h:7 msgid "Proxy" msgstr "Proxy" #: ../data/ui/others-prefs.ui.h:8 msgid "Proxy Address :" msgstr "Proxy-Adresse:" #: ../data/ui/others-prefs.ui.h:9 msgid "Proxy Port :" msgstr "Proxy-Port:" #: ../data/ui/others-prefs.ui.h:10 msgid "Show tabs" msgstr "Reiter zeigen" #: ../data/ui/others-prefs.ui.h:11 msgid "Use a proxy" msgstr "Proxy verwenden" #: ../data/ui/lyrics-prefs.ui.h:1 msgid "Lyrics Sources" msgstr "Liedtext-Quellen" #: ../data/ui/lyrics-select.ui.h:2 ../data/ui/song-infos.ui.h:13 #: ../plugins/information/information.ui.h:6 msgid "Title :" msgstr "Titel:" #: ../data/ui/playlist-prefs.ui.h:1 msgid "Add after playing song" msgstr "Hinter aktuellem Titel einreihen" #: ../data/ui/playlist-prefs.ui.h:2 msgid "Add and play" msgstr "Hinzufügen und abspielen" #: ../data/ui/playlist-prefs.ui.h:3 ../data/ui/similar-artists.ui.h:2 msgid "Add to playlist" msgstr "Zur Wiedergabeliste hinzufügen" #. ARIO_TAG_ARTIST #: ../data/ui/playlist-prefs.ui.h:4 ../src/servers/ario-server.c:46 #: ../src/sources/ario-tree-albums.c:213 ../src/widgets/ario-playlist.c:541 #: ../src/widgets/ario-songlist.c:228 ../src/widgets/ario-tray-icon.c:565 msgid "Album" msgstr "Album" #: ../data/ui/playlist-prefs.ui.h:5 ../src/servers/ario-server.c:45 #: ../src/widgets/ario-playlist.c:541 ../src/widgets/ario-songlist.c:213 #: ../src/widgets/ario-tray-icon.c:563 msgid "Artist" msgstr "Künstler" #. ARIO_TAG_GENRE #: ../data/ui/playlist-prefs.ui.h:6 ../src/servers/ario-server.c:52 #: ../src/widgets/ario-playlist.c:541 msgid "Date" msgstr "Datum" #: ../data/ui/playlist-prefs.ui.h:7 ../src/widgets/ario-playlist.c:541 msgid "Disc" msgstr "CD/DVD" #: ../data/ui/playlist-prefs.ui.h:8 msgid "Double click" msgstr "Doppelklick" #: ../data/ui/playlist-prefs.ui.h:9 ../src/widgets/ario-playlist.c:541 msgid "Duration" msgstr "Laufzeit" #: ../data/ui/playlist-prefs.ui.h:10 ../src/widgets/ario-playlist.c:541 msgid "File" msgstr "Datei" #. ARIO_TAG_TRACK #. ARIO_TAG_NAME #: ../data/ui/playlist-prefs.ui.h:11 ../src/servers/ario-server.c:51 #: ../src/widgets/ario-playlist.c:541 msgid "Genre" msgstr "Genre" #: ../data/ui/playlist-prefs.ui.h:12 msgid "Go to current song when a new song is played" msgstr "Zum aktuellen Lied springen, wenn ein neues Lied abgespielt wird" #: ../data/ui/playlist-prefs.ui.h:13 msgid "Mode" msgstr "Modus" #: ../data/ui/playlist-prefs.ui.h:14 msgid "On double click:" msgstr "Bei Doppelklick:" #: ../data/ui/playlist-prefs.ui.h:15 ../src/sources/ario-storedplaylists.c:229 #: ../src/shell/ario-shell.c:222 ../src/shell/ario-shell-preferences.c:123 #: ../src/widgets/ario-playlist.c:272 msgid "Playlist" msgstr "Wiedergabeliste" #: ../data/ui/playlist-prefs.ui.h:16 msgid "Playlist mode:" msgstr "Wiedergabelisten-Modus:" #: ../data/ui/playlist-prefs.ui.h:17 msgid "Replace in playlist" msgstr "In der Wiedergabeliste ersetzen" #: ../data/ui/playlist-prefs.ui.h:18 msgid "Show rows:" msgstr "Zeilen zeigen:" #. ARIO_TAG_ALBUM_ARTIST #: ../data/ui/playlist-prefs.ui.h:19 ../src/servers/ario-server.c:48 #: ../src/sources/ario-tree-songs.c:145 ../src/widgets/ario-playlist.c:541 #: ../src/widgets/ario-songlist.c:198 ../src/widgets/ario-tray-icon.c:567 msgid "Title" msgstr "Titel" #. ARIO_TAG_TITLE #: ../data/ui/playlist-prefs.ui.h:20 ../src/servers/ario-server.c:49 #: ../src/sources/ario-tree-songs.c:138 ../src/widgets/ario-playlist.c:541 msgid "Track" msgstr "Nr." #: ../data/ui/server-prefs.ui.h:1 msgid "Audio outputs" msgstr "Audio-Ausgänge" #: ../data/ui/server-prefs.ui.h:2 msgid "Crossfade" msgstr "Überblendeffekt" #: ../data/ui/server-prefs.ui.h:3 msgid "Database" msgstr "Datenbank" #: ../data/ui/server-prefs.ui.h:4 msgid "Last updated:" msgstr "Letzte Aktualisierung:" #: ../data/ui/server-prefs.ui.h:5 msgid "Stop music on exit" msgstr "Wiedergabe beim Beenden stoppen" #: ../data/ui/server-prefs.ui.h:6 msgid "Update on startup" msgstr "Beim Starten aktualisieren" #: ../data/ui/server-prefs.ui.h:7 msgid "_Update" msgstr "_Aktualisieren" #: ../data/ui/server-prefs.ui.h:8 msgid "enable crossfade" msgstr "Überblendeffekt aktivieren" #: ../data/ui/server-prefs.ui.h:9 msgid "fade time (s):" msgstr "Überblendzeit (s):" #: ../data/ui/server-prefs.ui.h:10 ../src/ario-util.c:50 ../src/ario-util.c:71 #: ../src/ario-util.c:93 ../plugins/information/information.ui.h:7 #, c-format msgid "n/a" msgstr "Nicht verfügbar" #: ../data/ui/similar-artists.ui.h:1 msgid "Add all to playlist" msgstr "Alle zur Wiedergabeliste hinzufügen" #: ../data/ui/similar-artists.ui.h:3 msgid "Find on Last.fm" msgstr "Bei Last.fm finden" #: ../data/ui/stats-prefs.ui.h:1 msgid "Database play time :" msgstr "Gesamtspielzeit der Datenbank:" #: ../data/ui/stats-prefs.ui.h:2 msgid "Number of albums :" msgstr "Anzahl der Alben:" #: ../data/ui/stats-prefs.ui.h:3 msgid "Number of artists :" msgstr "Anzahl der Künstler:" #: ../data/ui/stats-prefs.ui.h:4 msgid "Number of songs :" msgstr "Anzahl der Lieder:" #: ../data/ui/stats-prefs.ui.h:5 msgid "Play time :" msgstr "Spielzeit:" #: ../data/ui/stats-prefs.ui.h:6 ../src/shell/ario-shell-preferences.c:148 msgid "Statistics" msgstr "Statistiken" #: ../data/ui/stats-prefs.ui.h:7 msgid "Uptime :" msgstr "Laufzeit:" #: ../data/ui/song-infos.ui.h:2 msgid "Album Artist :" msgstr "Albumkünstler:" #: ../data/ui/song-infos.ui.h:4 msgid "Comment :" msgstr "Kommentar:" #: ../data/ui/song-infos.ui.h:5 msgid "Composer :" msgstr "Komponist" #: ../data/ui/song-infos.ui.h:6 msgid "Date :" msgstr "Datum:" #: ../data/ui/song-infos.ui.h:7 msgid "Disc :" msgstr "CD:" #: ../data/ui/song-infos.ui.h:8 msgid "Filename :" msgstr "Dateiname:" #: ../data/ui/song-infos.ui.h:9 ../plugins/radios/ario-radio.c:169 msgid "Genre :" msgstr "Genre:" #: ../data/ui/song-infos.ui.h:10 ../plugins/information/information.ui.h:4 msgid "Length :" msgstr "Länge:" #: ../data/ui/song-infos.ui.h:11 msgid "Performer :" msgstr "Interpret:" #: ../data/ui/song-infos.ui.h:12 msgid "Song" msgstr "Lied" #: ../data/ui/song-infos.ui.h:14 msgid "Track :" msgstr "Titel:" #: ../data/ui/trayicon-prefs.ui.h:1 msgid "Do nothing" msgstr "Keine Aktion" #: ../data/ui/trayicon-prefs.ui.h:2 msgid "Mute" msgstr "Stummschalten" #: ../data/ui/trayicon-prefs.ui.h:3 ../src/shell/ario-shell-preferences.c:138 msgid "Notification" msgstr "Benachrichtigung" #: ../data/ui/trayicon-prefs.ui.h:4 msgid "Notification on song change" msgstr "Benachrichtigung bei Liedwechsel" #: ../data/ui/trayicon-prefs.ui.h:5 msgid "Notification time: " msgstr "Dauer der Benachrichtigung: " #: ../data/ui/trayicon-prefs.ui.h:6 msgid "On middle button click on tray icon :" msgstr "Beim Klick auf das Systemleistensymbol mit der mittleren Maustaste:" #: ../data/ui/trayicon-prefs.ui.h:7 ../src/widgets/ario-header.c:241 msgid "Play next song" msgstr "Nächsten Titel abspielen" #: ../data/ui/trayicon-prefs.ui.h:8 msgid "Play/Pause" msgstr "Abspielen/Pausieren" #: ../data/ui/trayicon-prefs.ui.h:9 msgid "Tray icon" msgstr "Systemleistensymbol" #: ../src/ario-main.c:67 msgid "Start minimized window" msgstr "Als minimiertes Fenster starten" #: ../src/ario-main.c:68 msgid "Start with specific profile" msgstr "" #. Format result string #: ../src/ario-util.c:110 msgid "seconds" msgstr "Sekunden" #: ../src/ario-util.c:112 msgid "minutes" msgstr "Minuten" #: ../src/ario-util.c:118 msgid "hours" msgstr "Stunden" #: ../src/ario-util.c:124 msgid "days" msgstr "Tage" #: ../src/covers/ario-cover.c:149 msgid "The cover already exists. Do you want to replace it?" msgstr "Das Cover ist bereits vorhanden. Möchten Sie es ersetzen?" #: ../src/covers/ario-cover-local.c:48 msgid "Music Directory" msgstr "Musikverzeichnis" #: ../src/playlist/ario-playlist-dynamic.c:49 msgid "songs of same artist" msgstr "Lieder desselben Künstlers" #: ../src/playlist/ario-playlist-dynamic.c:50 msgid "songs of same album" msgstr "Lieder desselben Albums" #: ../src/playlist/ario-playlist-dynamic.c:51 msgid "songs of similar artists" msgstr "Lieder eines ähnlichen Künstlers" #: ../src/playlist/ario-playlist-dynamic.c:52 msgid "albums of same artists" msgstr "Alben desselben Künstlers" #: ../src/playlist/ario-playlist-dynamic.c:53 msgid "albums of similar artists" msgstr "Alben von ähnlichen Künstlern" #: ../src/playlist/ario-playlist-dynamic.c:69 msgid "Dynamic Playlist" msgstr "Dynamische Wiedergabeliste" #: ../src/playlist/ario-playlist-queue.c:49 msgid "Queue Mode" msgstr "Abarbeitungsmodus" #: ../src/playlist/ario-playlist-normal.c:47 msgid "Normal" msgstr "Normal" #: ../src/plugins/ario-plugin-manager.c:45 msgid "Plugin" msgstr "Erweiterung" #: ../src/plugins/ario-plugin-manager.c:46 msgid "Enabled" msgstr "Aktiviert" #: ../src/plugins/ario-plugin-manager.c:480 ../src/shell/ario-shell.c:206 msgid "_About" msgstr "_Über" #: ../src/plugins/ario-plugin-manager.c:488 msgid "C_onfigure" msgstr "_Einrichten" #: ../src/plugins/ario-plugin-manager.c:497 msgid "A_ctivate" msgstr "A_ktivieren" #: ../src/plugins/ario-plugin-manager.c:508 msgid "Ac_tivate All" msgstr "Alle ak_tivieren" #: ../src/plugins/ario-plugin-manager.c:513 msgid "_Deactivate All" msgstr "Alle _deaktivieren" #: ../src/plugins/ario-plugin-manager.c:722 msgid "Active plugins" msgstr "Aktive Erweiterungen" #: ../src/preferences/ario-server-preferences.c:182 #: ../src/preferences/ario-stats-preferences.c:151 #: ../src/preferences/ario-stats-preferences.c:152 #: ../src/preferences/ario-stats-preferences.c:153 #: ../src/preferences/ario-stats-preferences.c:154 #: ../src/preferences/ario-stats-preferences.c:155 #: ../src/preferences/ario-stats-preferences.c:156 msgid "Not connected" msgstr "Nicht verbunden" #: ../src/preferences/ario-server-preferences.c:187 #: ../src/preferences/ario-server-preferences.c:278 #: ../src/widgets/ario-status-bar.c:100 msgid "Updating..." msgstr "Aktualisieren…" #: ../src/servers/ario-mpd.c:410 ../src/servers/ario-mpd2.c:522 msgid "Connecting to server..." msgstr "Verbindungsaufbau zum Server …" #: ../src/servers/ario-mpd.c:438 ../src/servers/ario-mpd2.c:550 msgid "Impossible to connect to server. Check the connection options." msgstr "" "Es ist nicht möglich, eine Verbindung zum Server herzustellen. Überprüfen " "Sie die Verbindungsoptionen." #. ARIO_TAG_ALBUM #: ../src/servers/ario-server.c:47 msgid "Album Artist" msgstr "Albumkünstler" #. ARIO_TAG_DATE #: ../src/servers/ario-server.c:53 msgid "Composer" msgstr "Komponist" #. ARIO_TAG_COMPOSER #: ../src/servers/ario-server.c:54 msgid "Performer" msgstr "Interpret" #. ARIO_TAG_PERFORMER #. ARIO_TAG_COMMENT #. ARIO_TAG_DISC #: ../src/servers/ario-server.c:57 msgid "Filename" msgstr "Dateiname" #. ARIO_TAG_FILENAME #: ../src/servers/ario-server.c:58 msgid "Any" msgstr "Beliebig" #. impossible time or broken locale settings #: ../src/servers/ario-server.h:27 #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1235 msgid "Unknown" msgstr "Unbekannt" #: ../src/sources/ario-browser.c:82 ../src/sources/ario-search.c:70 #: ../src/sources/ario-storedplaylists.c:88 #: ../src/sources/ario-storedplaylists.c:106 #: ../plugins/filesystem/ario-filesystem.c:94 #: ../plugins/filesystem/ario-filesystem.c:109 #: ../plugins/radios/ario-radio.c:116 msgid "_Add to playlist" msgstr "Zur Wiederg_abeliste hinzufügen" #: ../src/sources/ario-browser.c:85 ../src/sources/ario-search.c:73 #: ../src/sources/ario-storedplaylists.c:91 #: ../src/sources/ario-storedplaylists.c:109 #: ../plugins/filesystem/ario-filesystem.c:97 #: ../plugins/filesystem/ario-filesystem.c:112 #: ../plugins/radios/ario-radio.c:119 msgid "Add and _play" msgstr "_Hinzufügen und wiedergeben" #: ../src/sources/ario-browser.c:88 ../src/sources/ario-search.c:76 #: ../src/sources/ario-storedplaylists.c:94 #: ../src/sources/ario-storedplaylists.c:112 #: ../plugins/filesystem/ario-filesystem.c:100 #: ../plugins/filesystem/ario-filesystem.c:115 #: ../plugins/radios/ario-radio.c:122 msgid "_Replace in playlist" msgstr "_In der Wiedergabeliste ersetzen" #: ../src/sources/ario-browser.c:91 msgid "Get the covers" msgstr "Cover beziehen" #: ../src/sources/ario-browser.c:94 msgid "_Delete the covers" msgstr "_Alle Cover löschen" #: ../src/sources/ario-browser.c:97 ../src/sources/ario-browser.c:100 #: ../src/sources/ario-search.c:79 ../src/sources/ario-storedplaylists.c:115 #: ../src/widgets/ario-playlist.c:151 #: ../plugins/filesystem/ario-filesystem.c:118 #: ../plugins/radios/ario-radio.c:131 msgid "_Properties" msgstr "_Eigenschaften" #: ../src/sources/ario-browser.c:125 ../src/shell/ario-shell-preferences.c:118 msgid "Library" msgstr "Musiksammlung" #: ../src/sources/ario-storedplaylists.c:97 msgid "_Delete" msgstr "_Löschen" #: ../src/sources/ario-storedplaylists.c:151 msgid "Playlists" msgstr "Wiedergabelisten" #: ../src/sources/ario-storedplaylists.c:592 msgid "Are you sure that you want to delete all the selected playlists?" msgstr "" "Sind Sie sicher, dass Sie alle ausgewählten Wiedergabelisten entfernen " "möchten?" #: ../src/sources/ario-tree.c:856 msgid "Are you sure that you want to remove all the selected covers?" msgstr "Sind Sie sicher, dass Sie alle ausgewählten Cover löschen wollen?" #. Translators - This "Cover" refers to an album cover art #: ../src/sources/ario-tree-albums.c:199 msgid "Cover" msgstr "Cover" #: ../src/shell/ario-shell.c:160 msgid "_File" msgstr "_Datei" #: ../src/shell/ario-shell.c:161 msgid "_Edit" msgstr "_Bearbeiten" #: ../src/shell/ario-shell.c:162 msgid "_View" msgstr "_Ansicht" #: ../src/shell/ario-shell.c:163 msgid "_Control" msgstr "_Steuerung" #: ../src/shell/ario-shell.c:164 msgid "_Tool" msgstr "_Werkzeug" #: ../src/shell/ario-shell.c:165 msgid "_Help" msgstr "_Hilfe" #: ../src/shell/ario-shell.c:173 msgid "_Update database" msgstr "_Datenbank aktualisieren" #: ../src/shell/ario-shell.c:176 msgid "_Quit" msgstr "_Beenden" #: ../src/shell/ario-shell.c:179 msgid "Plu_gins" msgstr "E_rweiterungen" #: ../src/shell/ario-shell.c:182 msgid "Prefere_nces" msgstr "E_instellungen" #: ../src/shell/ario-shell.c:185 msgid "_Change current album cover" msgstr "_Aktuelles Albumcover ändern" #: ../src/shell/ario-shell.c:188 msgid "Download album _covers" msgstr "Albumcover _herunterladen" #: ../src/shell/ario-shell.c:191 msgid "Find similar artists" msgstr "Ähnliche Künstler finden" #: ../src/shell/ario-shell.c:194 msgid "Add similar songs to playlist" msgstr "Ähnliche Lieder zur Wiedergabeliste hinzufügen" #: ../src/shell/ario-shell.c:197 msgid "Go to _previous tab" msgstr "Zum _vorherigen Tab wechseln" #: ../src/shell/ario-shell.c:200 msgid "Go to _next tab" msgstr "Zum _nächsten Tab wechseln" #: ../src/shell/ario-shell.c:203 msgid "Show _lyrics" msgstr "_Liedtexte anzeigen" #: ../src/shell/ario-shell.c:209 msgid "_Translate this application..." msgstr "_Diese Anwendung übersetzen…" #: ../src/shell/ario-shell.c:216 msgid "S_tatusbar" msgstr "S_tatusleiste" #: ../src/shell/ario-shell.c:219 msgid "Upper part" msgstr "Oberer Teil" #: ../src/shell/ario-shell.c:825 msgid "GTK client for MPD" msgstr "GTK-Client für MPD" #: ../src/shell/ario-shell.c:826 msgid "translator-credits" msgstr "" "Launchpad Contributions:\n" " Christian Siegert https://launchpad.net/~christian-siegert\n" " Claudius Henrichs https://launchpad.net/~claudius-h\n" " Dion Timmermann https://launchpad.net/~mail-dion-timmermann\n" " Fabian Nowak https://launchpad.net/~timystery\n" " Henning H https://launchpad.net/~hennegwath\n" " Johann Klähn https://launchpad.net/~kljohann\n" " Jonathan Rauprich https://launchpad.net/~joni-noplu\n" " Keruskerfuerst https://launchpad.net/~arminmohring\n" " Marc Pavot https://launchpad.net/~marc-pavot\n" " Marcel Schmücker https://launchpad.net/~versus666-deactivatedaccount\n" " MartinK https://launchpad.net/~goretekz\n" " Oliver Laub https://launchpad.net/~oliver-laub\n" " Phillip T. https://launchpad.net/~viirus92\n" " Vinzenz Vietzke https://launchpad.net/~vinzv\n" " blobbybigwig https://launchpad.net/~wepmaschda-gmx\n" " diego! https://launchpad.net/~sirdiego\n" " izzystradlin https://launchpad.net/~fabianviehmann\n" " matsahm https://launchpad.net/~mathias-sahm\n" " mogli https://launchpad.net/~patrick-kohan\n" " tnc https://launchpad.net/~ahs-tnc" #. Create plugins configuration dialog window #: ../src/shell/ario-shell.c:1278 msgid "Configure Plugins" msgstr "Erweiterungen einrichten" #. Set window properties #: ../src/shell/ario-shell-coverdownloader.c:187 msgid "Music Player Cover Download" msgstr "Albencover herunterladen" #: ../src/shell/ario-shell-coverdownloader.c:332 msgid "Download Finished!" msgstr "Herunterladen beendet!" #. We show the numbers of covers found and not found #: ../src/shell/ario-shell-coverdownloader.c:335 #, c-format msgid "" "%i covers found\n" "%i covers not found\n" "%i covers already exist" msgstr "" "%i Cover gefunden\n" "%i Cover nicht gefunden\n" "%i Cover bereits vorhanden" #. Set window properties #: ../src/shell/ario-shell-coverselect.c:242 msgid "Cover Download" msgstr "Herunterladen des Covers" #: ../src/shell/ario-shell-coverselect.c:559 msgid "Error reading file" msgstr "Fehler beim Lesen der Datei" #: ../src/shell/ario-shell-coverselect.c:584 msgid "Error saving file" msgstr "Fehler beim Speichern der Datei" #: ../src/shell/ario-shell-lyrics.c:43 #: ../src/shell/ario-shell-preferences.c:133 #: ../src/shell/ario-shell-songinfos.c:272 msgid "Lyrics" msgstr "Liedtext" #: ../src/shell/ario-shell-lyricsselect.c:152 msgid "Lyrics Download" msgstr "Liedtext herunterladen" #: ../src/shell/ario-shell-preferences.c:81 msgid "Ario Preferences" msgstr "Einstellungen" #: ../src/shell/ario-shell-preferences.c:113 msgid "Server" msgstr "Server" #: ../src/shell/ario-shell-preferences.c:143 msgid "Others" msgstr "Andere" #: ../src/shell/ario-shell-similarartists.c:318 #, c-format msgid "%d songs" msgstr "%d Lieder" #. Set window properties #. Set window title #: ../src/shell/ario-shell-songinfos.c:249 #: ../src/shell/ario-shell-songinfos.c:266 #: ../src/shell/ario-shell-songinfos.c:544 msgid "Song Properties" msgstr "Lied-Eigenschaften" #: ../src/shell/ario-shell-songinfos.c:455 msgid "Error saving tags of file:" msgstr "Fehler beim Speichern der Tags in der Datei:" #: ../src/widgets/ario-connection-widget.c:652 msgid "You must select a server." msgstr "Bitte wählen Sie einen Server aus." #: ../src/widgets/ario-connection-widget.c:702 msgid "New Profile" msgstr "Neues Profil" #: ../src/widgets/ario-firstlaunch.c:82 msgid "The following configuration will be used:" msgstr "Diese Konfiguration verwenden:" #: ../src/widgets/ario-firstlaunch.c:106 msgid "" "It is the first time you launch Ario.\n" "This assistant will help you to configure it." msgstr "" "Sie starten Ario zum ersten Mal.\n" "Dieser Assistent wird Ihnen beim Einrichten helfen." #: ../src/widgets/ario-firstlaunch.c:111 msgid "Welcome to Ario" msgstr "Willkommen bei Ario" #: ../src/widgets/ario-firstlaunch.c:129 msgid "Configuration" msgstr "Konfiguration" #: ../src/widgets/ario-firstlaunch.c:141 msgid "Confirmation" msgstr "Bestätigung" #: ../src/widgets/ario-header.c:66 ../src/widgets/ario-tray-icon.h:42 #, c-format msgid "from %s by %s" msgstr "aus %s von %s" #: ../src/widgets/ario-header.c:199 msgid "Play previous song" msgstr "Vorheriges Lied wiedergeben" #: ../src/widgets/ario-header.c:217 msgid "Play/Pause the music" msgstr "Musik wiedergeben/pausieren" #: ../src/widgets/ario-header.c:229 msgid "Stop the music" msgstr "Musik anhalten" #. Translators - This " of " is used to count the elapsed time #. of a song like in "00:59 of 03:24" #: ../src/widgets/ario-header.c:310 ../src/widgets/ario-tooltip.c:321 msgid " of " msgstr " von " #: ../src/widgets/ario-header.c:323 msgid "Toggle random on/off" msgstr "Zufällige Wiedergabe an/aus" #: ../src/widgets/ario-header.c:335 msgid "Toggle repeat on/off" msgstr "Wiederholung an/aus" #: ../src/widgets/ario-header.c:340 msgid "Change the music volume" msgstr "Wiedergabelautstärke ändern" #: ../src/widgets/ario-lyrics-editor.c:323 msgid "Downloading lyrics..." msgstr "Liedtext herunterladen…" #: ../src/widgets/ario-lyrics-editor.c:351 msgid "Lyrics not found" msgstr "Liedtext nicht gefunden" #: ../src/widgets/ario-playlist.c:133 msgid "_Clear" msgstr "_Leeren" #: ../src/widgets/ario-playlist.c:136 msgid "_Shuffle" msgstr "_Mischen" #: ../src/widgets/ario-playlist.c:139 msgid "Cr_op" msgstr "_Zuschneiden" #: ../src/widgets/ario-playlist.c:142 msgid "_Search in playlist" msgstr "_Wiedergabeliste durchsuchen" #: ../src/widgets/ario-playlist.c:145 msgid "_Remove" msgstr "_Entfernen" #: ../src/widgets/ario-playlist.c:148 msgid "_Save" msgstr "_Speichern" #: ../src/widgets/ario-playlist.c:154 msgid "_Go to playing song" msgstr "_Zum laufenden Lied springen" #: ../src/widgets/ario-playlist.c:667 msgid "Filter:" msgstr "Filter" #. Create the widgets #: ../src/widgets/ario-playlist.c:1700 msgid "Save playlist" msgstr "Wiedergabeliste speichern" #: ../src/widgets/ario-playlist.c:1710 msgid "Playlist name :" msgstr "Name der Wiedergabeliste:" #: ../src/widgets/ario-playlist.c:1746 msgid "Playlist already exists. Do you want to overwrite it?" msgstr "Eine solche Wiedergabeliste ist bereits vorhanden. Überschreiben?" #. Format status bar message #: ../src/widgets/ario-status-bar.c:96 msgid "Songs" msgstr "Lieder" #: ../src/widgets/ario-tray-icon.c:102 msgid "_Play" msgstr "_Wiedergeben" #: ../src/widgets/ario-tray-icon.c:105 msgid "_Pause" msgstr "_Pausieren" #: ../src/widgets/ario-tray-icon.c:108 msgid "_Stop" msgstr "_Anhalten" #: ../src/widgets/ario-tray-icon.c:111 msgid "_Next" msgstr "_Nächstes" #: ../src/widgets/ario-tray-icon.c:114 msgid "P_revious" msgstr "_Vorheriges" #: ../src/widgets/ario-tray-icon.h:41 msgid "Not playing" msgstr "Keine Wiedergabe" #. Translators: "friendly time" string for the current day, strftime format. like "Today 12:34 am" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1179 msgid "Today %I:%M %p" msgstr "Heute %I:%M %p" #. Translators: "friendly time" string for the previous day, #. * strftime format. e.g. "Yesterday 12:34 am" #. #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1192 msgid "Yesterday %I:%M %p" msgstr "Gestern %I:%M %p" #. Translators: "friendly time" string for a day in the current week, #. * strftime format. e.g. "Wed 12:34 am" #. #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1208 msgid "%a %I:%M %p" msgstr "%a %I:%M %p" #. Translators: "friendly time" string for a day in the current year, #. * strftime format. e.g. "Feb 12 12:34 am" #. #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1220 msgid "%b %d %I:%M %p" msgstr "%b %d %I:%M %p" #. Translators: "friendly time" string for a day in a different year, #. * strftime format. e.g. "Feb 12 1997" #. #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1225 msgid "%b %d %Y" msgstr "%b %d %Y" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1311 #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:4 msgid "Never" msgstr "Niemals" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1335 msgid "OK" msgstr "In Ordnung" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1338 msgid "Logging in" msgstr "Anmeldung" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1341 msgid "Request failed" msgstr "Anfrage ist fehlgeschlagen" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1344 msgid "Incorrect username" msgstr "Ungültiger Benutzername" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1347 msgid "Incorrect password" msgstr "Falsches Passwort" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1350 msgid "Handshake failed" msgstr "Fehler beim Abgleich" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1353 msgid "Client update required" msgstr "Aktualisierung des Clients erforderlich" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1356 msgid "Track submission failed" msgstr "Übermittlung der Titel ist fehlgeschlagen" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1359 msgid "Queue is too long" msgstr "Warteschlange ist zu lang" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1362 msgid "Track submission failed too many times" msgstr "Übermittlung der Titel ist zu oft fehlgeschlagen" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1417 msgid "Audioscrobbler preferences" msgstr "Audioscrobbler-Einstellungen" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:1 msgid "Disabled" msgstr "Deaktiviert" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:2 msgid "Last submission time:" msgstr "Letzte Übermittlung:" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:3 msgid "Last.fm Profile" msgstr "Last.fm-Profil" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:6 msgid "Queued tracks:" msgstr "Stücke in Warteschlange:" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:7 msgid "Status:" msgstr "Status:" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:8 msgid "Tracks submitted:" msgstr "Stücke übermittelt:" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:9 #: ../plugins/radios/ario-radio.c:168 msgid "Username :" msgstr "Benutzername:" #: ../plugins/audioscrobbler/audioscrobbler.ario-plugin.desktop.in.h:1 msgid "Last.fm" msgstr "Last.fm" #: ../plugins/audioscrobbler/audioscrobbler.ario-plugin.desktop.in.h:2 msgid "Submits song information to last.fm" msgstr "Liedinformationen an Last.fm übermitteln" #: ../plugins/filesystem/ario-filesystem.c:158 msgid "File System" msgstr "Dateisystem" #: ../plugins/filesystem/ario-filesystem.c:422 msgid "Music" msgstr "Musik" #: ../plugins/filesystem/filesystem.ario-plugin.desktop.in.h:1 msgid "A File System Browser" msgstr "Ein Dateisystem-Browser" #: ../plugins/filesystem/filesystem.ario-plugin.desktop.in.h:2 msgid "File System Browser" msgstr "Dateisystem-Browser" #: ../plugins/information/ario-information.c:114 msgid "Information" msgstr "Informationen" #: ../plugins/information/information.ario-plugin.desktop.in.h:1 msgid "Display various information about the playing song" msgstr "Zeigt erschiedene Informationen über das gerade gespielte Lied an" #: ../plugins/information/information.ario-plugin.desktop.in.h:2 msgid "Song Information" msgstr "Titelinformationen" #: ../plugins/information/information.ui.h:2 msgid "Albums from this artist:" msgstr "Alben von diesem Interpreten:" #: ../plugins/information/information.ui.h:5 msgid "Lyrics:" msgstr "Liedtexte:" #: ../plugins/libnotify/libnotify.ario-plugin.desktop.in.h:1 msgid "Add libnotify support" msgstr "Unterstützung für libnotify hinzufügen" #: ../plugins/libnotify/libnotify.ario-plugin.desktop.in.h:2 msgid "Libnotify" msgstr "Libnotify" #: ../plugins/mmkeys/mmkeys.ario-plugin.desktop.in.h:1 msgid "Add multimedia keys support" msgstr "Unterstützung für Multimediatasten hinzufügen" #: ../plugins/mmkeys/mmkeys.ario-plugin.desktop.in.h:2 msgid "Multimedia Keys" msgstr "Multimediatasten" #: ../plugins/radios/ario-radio.c:125 msgid "Add a _new radio" msgstr "_Neuen Radiosender hinzufügen" #: ../plugins/radios/ario-radio.c:128 msgid "_Delete this radios" msgstr "_Diesen Radiosender löschen" #: ../plugins/radios/ario-radio.c:166 msgid "Last.fm: Radio of similar artists" msgstr "Last.fm: Radio ähnlicher Künstler" #: ../plugins/radios/ario-radio.c:167 msgid "Last.fm: Radio of group" msgstr "Last.fm: Radio der Gruppe" #: ../plugins/radios/ario-radio.c:167 msgid "Group :" msgstr "Gruppe:" #: ../plugins/radios/ario-radio.c:168 msgid "Last.fm: Personal radio" msgstr "Last.fm: Persönliches Radio" #: ../plugins/radios/ario-radio.c:169 msgid "Last.fm: Radio of genre" msgstr "Last.fm: Internetradio des Genres" #: ../plugins/radios/ario-radio.c:184 #: ../plugins/radios/radios.ario-plugin.desktop.in.h:2 msgid "Web Radios" msgstr "Internet-Radiosender" #: ../plugins/radios/ario-radio.c:246 msgid "Internet Radios" msgstr "Internet-Radiosender" #. Create dialog window #: ../plugins/radios/ario-radio.c:774 msgid "Edit a WebRadio" msgstr "Internet-Radiosender bearbeiten" #: ../plugins/radios/ario-radio.c:787 ../plugins/radios/ario-radio.c:923 msgid "URL :" msgstr "URL:" #: ../plugins/radios/ario-radio.c:853 ../plugins/radios/ario-radio.c:997 msgid "Bad parameters. You must specify a name and a URL for the radio." msgstr "" "Falsche Parameter. Sie müssen den Namen und die URL des Radiosenders angeben." #. Create dialog window #: ../plugins/radios/ario-radio.c:883 msgid "Add a WebRadio" msgstr "Internet-Radiosender hinzufügen" #: ../plugins/radios/ario-radio.c:1083 msgid "Are you sure you want to delete all the selected radios?" msgstr "" "Sind Sie sicher, dass Sie alle ausgewählten Radiosender löschen möchten?" #: ../plugins/radios/radios.ario-plugin.desktop.in.h:1 msgid "Listen to webradios" msgstr "Internet-Radio hören" #: ../plugins/wikipedia/ario-wikipedia-plugin.c:49 #: ../plugins/wikipedia/ario-wikipedia-plugin.c:50 msgid "Find artist on Wikipedia" msgstr "Künstler bei Wikipedia finden" #: ../plugins/wikipedia/ario-wikipedia-plugin.c:172 msgid "Wikipedia Plugin - Configuration" msgstr "Wikipedia-Plugin-Einstellungen" #: ../plugins/wikipedia/ario-wikipedia-plugin.c:181 msgid "Wikipedia language :" msgstr "Wikipedia-Sprache:" #: ../plugins/wikipedia/wikipedia.ario-plugin.desktop.in.h:1 msgid "A plugin to search current artist on wikipedia" msgstr "Plugin zum Finden des aktuellen Künstlers bei Wikipedia" #: ../plugins/wikipedia/wikipedia.ario-plugin.desktop.in.h:2 msgid "Wikipedia" msgstr "Wikipedia" #~ msgid "Remove a search criteria" #~ msgstr "Suchkriterium entfernen" #~ msgid "Search songs in the library" #~ msgstr "Suche Lieder in der Musiksammlung" #~ msgid "Add a search criteria" #~ msgstr "Suchkriterium hinzufügen" ario-1.6/po/cs.po0000644000175000017500000010331113226723435010624 00000000000000# Czech translation for ario # Copyright (c) 2008 Rosetta Contributors and Canonical Ltd 2008 # This file is distributed under the same license as the ario package. # FIRST AUTHOR , 2008. # msgid "" msgstr "" "Project-Id-Version: ario\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2011-06-13 18:15+0200\n" "PO-Revision-Date: 2010-07-26 13:48+0000\n" "Last-Translator: Konki \n" "Language-Team: Czech \n" "Language: cs\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2011-06-13 16:32+0000\n" "X-Generator: Launchpad (build 13175)\n" #: ../data/ario.desktop.in.in.h:1 msgid "Ario music player" msgstr "Ario hudební přehrávač" #: ../data/ario.desktop.in.in.h:2 msgid "Client application to mpd" msgstr "Klientská aplikace k mpd" #: ../data/ui/browser-prefs.ui.h:1 msgid "Alphabetically" msgstr "Podle abecedy" #: ../data/ui/browser-prefs.ui.h:2 msgid "By year" msgstr "Podle roku" #: ../data/ui/browser-prefs.ui.h:3 msgid "Library Options" msgstr "Volby knihovny" #: ../data/ui/browser-prefs.ui.h:4 msgid "Library Organisation" msgstr "Uspořádání knihovny" #: ../data/ui/browser-prefs.ui.h:5 msgid "Sort albums: " msgstr "Třídit alba: " #: ../data/ui/connection-autodetect.ui.h:1 msgid "" "If you don't see your MPD server thanks to the automatic detection, you " "should check that zeroconf is activated in your MPD configuration or use the " "manual configuration." msgstr "" "Pokud nevidíte svůj MPD server, poděkujte automatické detekci, můžete ověřit " "zda je aktivovaná základní konfigurace ve vašem MPD nebo můžete použít " "manuální konfiguraci." #: ../data/ui/connection-autodetect.ui.h:2 msgid "Server autodetection" msgstr "Automatická detekce serveru" #: ../data/ui/connection-widget.ui.h:1 msgid "Auto detect" msgstr "Automatická detekce" #: ../data/ui/connection-widget.ui.h:2 msgid "Default" msgstr "Výchozí" #: ../data/ui/connection-widget.ui.h:3 ../src/widgets/ario-firstlaunch.c:83 msgid "Host :" msgstr "Host :" #: ../data/ui/connection-widget.ui.h:4 msgid "Music directory :" msgstr "Adresář hudby :" #: ../data/ui/connection-widget.ui.h:5 msgid "Music server is on the same computer as Ario" msgstr "Hudební server je na tom samém počítači jako Ario." #. Create the widgets #: ../data/ui/connection-widget.ui.h:6 ../plugins/radios/ario-radio.c:786 #: ../plugins/radios/ario-radio.c:922 msgid "Name :" msgstr "Název :" #: ../data/ui/connection-widget.ui.h:7 #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:5 msgid "Password :" msgstr "Heslo :" #: ../data/ui/connection-widget.ui.h:8 ../src/widgets/ario-firstlaunch.c:85 msgid "Port :" msgstr "Port :" #: ../data/ui/connection-widget.ui.h:9 msgid "Server type :" msgstr "Typ serveru :" #: ../data/ui/connection-widget.ui.h:10 msgid "Timeout :" msgstr "" #: ../data/ui/connection-widget.ui.h:11 msgid "XMMS 2 (Experimental)" msgstr "XMMS 2 (Zkušební)" #: ../data/ui/cover-prefs.ui.h:1 msgid "Automatically download the album cover of the playing song" msgstr "Automaticky stáhnout obrázek právě hrajícího alba" #: ../data/ui/cover-prefs.ui.h:2 ../src/shell/ario-shell-preferences.c:128 msgid "Covers" msgstr "Obrázky alb" #: ../data/ui/cover-prefs.ui.h:3 msgid "Covers Sources" msgstr "Zdroje obrázků pro alba" #: ../data/ui/cover-prefs.ui.h:4 msgid "Show the covers in the albums list" msgstr "Zobrazit obrázky alb v seznamu alb" #: ../data/ui/cover-prefs.ui.h:5 msgid "Use Amazon." msgstr "Použít Amazon" #: ../data/ui/connection-prefs.ui.h:1 #: ../src/shell/ario-shell-preferences.c:108 msgid "Connection" msgstr "Spojení" #: ../data/ui/connection-prefs.ui.h:2 msgid "_Autoconnect on startup" msgstr "_Automaticky připojit při startu" #: ../data/ui/connection-prefs.ui.h:3 ../src/shell/ario-shell.c:167 msgid "_Connect" msgstr "_Připojit" #: ../data/ui/connection-prefs.ui.h:4 ../src/shell/ario-shell.c:170 msgid "_Disconnect" msgstr "O_dpojit" #: ../data/ui/connection-assistant.ui.h:1 msgid "" "You need to specify a server to connect to. If you don't see your server " "thanks to the autodetection, you should check that zeroconf/avahi is " "activated in your server or use the manual configuration." msgstr "" "Musíte specifikovat server ke kterému se chcete připojit. Pokud nevidíte " "svůj server, poděkujte autodetekci, můžete zkontrolovat zda je základní " "konfigurace aktivována nebo použijte ruční konfiguraci." #: ../data/ui/cover-progress.ui.h:1 ../data/ui/cover-select.ui.h:1 #: ../data/ui/song-infos.ui.h:1 ../plugins/information/information.ui.h:1 msgid "Album :" msgstr "Album :" #: ../data/ui/cover-progress.ui.h:2 ../data/ui/cover-select.ui.h:2 #: ../data/ui/lyrics-select.ui.h:1 ../data/ui/song-infos.ui.h:3 #: ../plugins/information/information.ui.h:3 #: ../plugins/radios/ario-radio.c:166 msgid "Artist :" msgstr "Interpret :" #: ../data/ui/cover-progress.ui.h:3 msgid "Downloading cover" msgstr "Stahování obrázku alba" #: ../data/ui/cover-select.ui.h:3 msgid "Local search" msgstr "Lokální vyhledávání" #: ../data/ui/cover-select.ui.h:4 ../src/sources/ario-search.c:108 msgid "Search" msgstr "Vyhledávání" #: ../data/ui/others-prefs.ui.h:1 msgid "Allow only one instance of Ario" msgstr "Povolit pouze jednu instanci Aria" #: ../data/ui/others-prefs.ui.h:2 msgid "Hide window when close button is pressed" msgstr "Skrýt okno pokud je stisknuto tlačítko zavření" #: ../data/ui/others-prefs.ui.h:3 msgid "Interface" msgstr "Uživatelské prostředí" #: ../data/ui/others-prefs.ui.h:4 msgid "Playlist at the right of tabs" msgstr "Seznam skladeb na pravé straně záložek" #: ../data/ui/others-prefs.ui.h:5 msgid "Playlist below tabs" msgstr "Seznam skladeb pod záložkami" #: ../data/ui/others-prefs.ui.h:6 msgid "Playlist within tabs" msgstr "Seznam skladeb v záložkách" #: ../data/ui/others-prefs.ui.h:7 msgid "Proxy" msgstr "Proxy" #: ../data/ui/others-prefs.ui.h:8 msgid "Proxy Address :" msgstr "Adresa proxy :" #: ../data/ui/others-prefs.ui.h:9 msgid "Proxy Port :" msgstr "Proxy port :" #: ../data/ui/others-prefs.ui.h:10 msgid "Show tabs" msgstr "Zobrazit záložky" #: ../data/ui/others-prefs.ui.h:11 msgid "Use a proxy" msgstr "Použít proxy" #: ../data/ui/lyrics-prefs.ui.h:1 msgid "Lyrics Sources" msgstr "Zdroje textů k písním" #: ../data/ui/lyrics-select.ui.h:2 ../data/ui/song-infos.ui.h:13 #: ../plugins/information/information.ui.h:6 msgid "Title :" msgstr "Titul:" #: ../data/ui/playlist-prefs.ui.h:1 msgid "Add after playing song" msgstr "Přidat po přehrávané skladbě" #: ../data/ui/playlist-prefs.ui.h:2 msgid "Add and play" msgstr "Přidat a přehrát" #: ../data/ui/playlist-prefs.ui.h:3 ../data/ui/similar-artists.ui.h:2 msgid "Add to playlist" msgstr "Přidat do playlistu" #. ARIO_TAG_ARTIST #: ../data/ui/playlist-prefs.ui.h:4 ../src/servers/ario-server.c:46 #: ../src/sources/ario-tree-albums.c:213 ../src/widgets/ario-playlist.c:541 #: ../src/widgets/ario-songlist.c:228 ../src/widgets/ario-tray-icon.c:565 msgid "Album" msgstr "Album" #: ../data/ui/playlist-prefs.ui.h:5 ../src/servers/ario-server.c:45 #: ../src/widgets/ario-playlist.c:541 ../src/widgets/ario-songlist.c:213 #: ../src/widgets/ario-tray-icon.c:563 msgid "Artist" msgstr "Interpret" #. ARIO_TAG_GENRE #: ../data/ui/playlist-prefs.ui.h:6 ../src/servers/ario-server.c:52 #: ../src/widgets/ario-playlist.c:541 msgid "Date" msgstr "Datum" #: ../data/ui/playlist-prefs.ui.h:7 ../src/widgets/ario-playlist.c:541 msgid "Disc" msgstr "Disk" #: ../data/ui/playlist-prefs.ui.h:8 msgid "Double click" msgstr "Dvojklik" #: ../data/ui/playlist-prefs.ui.h:9 ../src/widgets/ario-playlist.c:541 msgid "Duration" msgstr "Délka" #: ../data/ui/playlist-prefs.ui.h:10 ../src/widgets/ario-playlist.c:541 msgid "File" msgstr "Soubor" #. ARIO_TAG_TRACK #. ARIO_TAG_NAME #: ../data/ui/playlist-prefs.ui.h:11 ../src/servers/ario-server.c:51 #: ../src/widgets/ario-playlist.c:541 msgid "Genre" msgstr "Žánr" #: ../data/ui/playlist-prefs.ui.h:12 msgid "Go to current song when a new song is played" msgstr "Jít na aktuální skladbu pokud se nová přehrává" #: ../data/ui/playlist-prefs.ui.h:13 msgid "Mode" msgstr "Mód" #: ../data/ui/playlist-prefs.ui.h:14 msgid "On double click:" msgstr "Bez dvojkliku:" #: ../data/ui/playlist-prefs.ui.h:15 ../src/sources/ario-storedplaylists.c:229 #: ../src/shell/ario-shell.c:222 ../src/shell/ario-shell-preferences.c:123 #: ../src/widgets/ario-playlist.c:272 msgid "Playlist" msgstr "Seznam skladeb" #: ../data/ui/playlist-prefs.ui.h:16 msgid "Playlist mode:" msgstr "Mód seznamu skladeb" #: ../data/ui/playlist-prefs.ui.h:17 msgid "Replace in playlist" msgstr "Přemístit v seznamu stop" #: ../data/ui/playlist-prefs.ui.h:18 msgid "Show rows:" msgstr "Zobrazit sloupce" #. ARIO_TAG_ALBUM_ARTIST #: ../data/ui/playlist-prefs.ui.h:19 ../src/servers/ario-server.c:48 #: ../src/sources/ario-tree-songs.c:145 ../src/widgets/ario-playlist.c:541 #: ../src/widgets/ario-songlist.c:198 ../src/widgets/ario-tray-icon.c:567 msgid "Title" msgstr "Název" #. ARIO_TAG_TITLE #: ../data/ui/playlist-prefs.ui.h:20 ../src/servers/ario-server.c:49 #: ../src/sources/ario-tree-songs.c:138 ../src/widgets/ario-playlist.c:541 msgid "Track" msgstr "Stopa" #: ../data/ui/server-prefs.ui.h:1 msgid "Audio outputs" msgstr "Audio výstupy" #: ../data/ui/server-prefs.ui.h:2 msgid "Crossfade" msgstr "Prolínání" #: ../data/ui/server-prefs.ui.h:3 msgid "Database" msgstr "Databáze" #: ../data/ui/server-prefs.ui.h:4 msgid "Last updated:" msgstr "Naposledy aktualizováno:" #: ../data/ui/server-prefs.ui.h:5 msgid "Stop music on exit" msgstr "Zastavit hudbu při ukončení" #: ../data/ui/server-prefs.ui.h:6 msgid "Update on startup" msgstr "Aktualizovat při startu" #: ../data/ui/server-prefs.ui.h:7 msgid "_Update" msgstr "_Aktualizace" #: ../data/ui/server-prefs.ui.h:8 msgid "enable crossfade" msgstr "Zapnout prolínání" #: ../data/ui/server-prefs.ui.h:9 msgid "fade time (s):" msgstr "čas prolínání" #: ../data/ui/server-prefs.ui.h:10 ../src/ario-util.c:50 ../src/ario-util.c:71 #: ../src/ario-util.c:93 ../plugins/information/information.ui.h:7 #, c-format msgid "n/a" msgstr "n/a" #: ../data/ui/similar-artists.ui.h:1 msgid "Add all to playlist" msgstr "Přidat vše do playlistu" #: ../data/ui/similar-artists.ui.h:3 msgid "Find on Last.fm" msgstr "Najdi na Last.fm" #: ../data/ui/stats-prefs.ui.h:1 msgid "Database play time :" msgstr "Celkový čas databáze :" #: ../data/ui/stats-prefs.ui.h:2 msgid "Number of albums :" msgstr "Počet alb :" #: ../data/ui/stats-prefs.ui.h:3 msgid "Number of artists :" msgstr "Počet interpretů :" #: ../data/ui/stats-prefs.ui.h:4 msgid "Number of songs :" msgstr "Počet skladeb :" #: ../data/ui/stats-prefs.ui.h:5 msgid "Play time :" msgstr "Doba hraní :" #: ../data/ui/stats-prefs.ui.h:6 ../src/shell/ario-shell-preferences.c:148 msgid "Statistics" msgstr "Statistiky" #: ../data/ui/stats-prefs.ui.h:7 msgid "Uptime :" msgstr "Scházející čas:" #: ../data/ui/song-infos.ui.h:2 msgid "Album Artist :" msgstr "Interpret alba :" #: ../data/ui/song-infos.ui.h:4 msgid "Comment :" msgstr "Komentář :" #: ../data/ui/song-infos.ui.h:5 msgid "Composer :" msgstr "Skladatel :" #: ../data/ui/song-infos.ui.h:6 msgid "Date :" msgstr "Datum:" #: ../data/ui/song-infos.ui.h:7 msgid "Disc :" msgstr "Disk :" #: ../data/ui/song-infos.ui.h:8 msgid "Filename :" msgstr "Název souboru :" #: ../data/ui/song-infos.ui.h:9 ../plugins/radios/ario-radio.c:169 msgid "Genre :" msgstr "Žánr :" #: ../data/ui/song-infos.ui.h:10 ../plugins/information/information.ui.h:4 msgid "Length :" msgstr "Délka :" #: ../data/ui/song-infos.ui.h:11 msgid "Performer :" msgstr "Umělec :" #: ../data/ui/song-infos.ui.h:12 msgid "Song" msgstr "Skladba :" #: ../data/ui/song-infos.ui.h:14 msgid "Track :" msgstr "Stopa :" #: ../data/ui/trayicon-prefs.ui.h:1 msgid "Do nothing" msgstr "Nedělat nic" #: ../data/ui/trayicon-prefs.ui.h:2 msgid "Mute" msgstr "Ztlumit" #: ../data/ui/trayicon-prefs.ui.h:3 ../src/shell/ario-shell-preferences.c:138 msgid "Notification" msgstr "Oznámení" #: ../data/ui/trayicon-prefs.ui.h:4 msgid "Notification on song change" msgstr "Oznámení při změně skladby" #: ../data/ui/trayicon-prefs.ui.h:5 msgid "Notification time: " msgstr "Doba zobrazení oznámení " #: ../data/ui/trayicon-prefs.ui.h:6 msgid "On middle button click on tray icon :" msgstr "Kliknutím středním tlačítkem na ikonu v hlavním panelu :" #: ../data/ui/trayicon-prefs.ui.h:7 ../src/widgets/ario-header.c:241 msgid "Play next song" msgstr "Přehrát následující skladbu" #: ../data/ui/trayicon-prefs.ui.h:8 msgid "Play/Pause" msgstr "Hrát/Pozastavit" #: ../data/ui/trayicon-prefs.ui.h:9 msgid "Tray icon" msgstr "Ikona v panelu na ploše" #: ../src/ario-main.c:67 msgid "Start minimized window" msgstr "Spusť minimalizované okno" #: ../src/ario-main.c:68 msgid "Start with specific profile" msgstr "" #. Format result string #: ../src/ario-util.c:110 msgid "seconds" msgstr "sekund" #: ../src/ario-util.c:112 msgid "minutes" msgstr "minut" #: ../src/ario-util.c:118 msgid "hours" msgstr "hodin" #: ../src/ario-util.c:124 msgid "days" msgstr "dny/dní" #: ../src/covers/ario-cover.c:149 msgid "The cover already exists. Do you want to replace it?" msgstr "Obrázek alba již existuje. Chcete ho přepsat?" #: ../src/covers/ario-cover-local.c:48 msgid "Music Directory" msgstr "Adresář hudby" #: ../src/playlist/ario-playlist-dynamic.c:49 msgid "songs of same artist" msgstr "skladby stejných umělců" #: ../src/playlist/ario-playlist-dynamic.c:50 msgid "songs of same album" msgstr "skladby stejných alb" #: ../src/playlist/ario-playlist-dynamic.c:51 msgid "songs of similar artists" msgstr "skladby podobných umělců" #: ../src/playlist/ario-playlist-dynamic.c:52 msgid "albums of same artists" msgstr "alba stejných umělců" #: ../src/playlist/ario-playlist-dynamic.c:53 msgid "albums of similar artists" msgstr "alba podobných umělců" #: ../src/playlist/ario-playlist-dynamic.c:69 msgid "Dynamic Playlist" msgstr "Dynamický seznam skladeb" #: ../src/playlist/ario-playlist-queue.c:49 msgid "Queue Mode" msgstr "Mód fronty" #: ../src/playlist/ario-playlist-normal.c:47 msgid "Normal" msgstr "Normální" #: ../src/plugins/ario-plugin-manager.c:45 msgid "Plugin" msgstr "Zásuvný modul" #: ../src/plugins/ario-plugin-manager.c:46 msgid "Enabled" msgstr "Povoleno" #: ../src/plugins/ario-plugin-manager.c:480 ../src/shell/ario-shell.c:206 msgid "_About" msgstr "O _aplikaci" #: ../src/plugins/ario-plugin-manager.c:488 msgid "C_onfigure" msgstr "Nastav_it" #: ../src/plugins/ario-plugin-manager.c:497 msgid "A_ctivate" msgstr "A_ktivovat" #: ../src/plugins/ario-plugin-manager.c:508 msgid "Ac_tivate All" msgstr "Ak_tivovat vše" #: ../src/plugins/ario-plugin-manager.c:513 msgid "_Deactivate All" msgstr "_Deaktivovat vše" #: ../src/plugins/ario-plugin-manager.c:722 msgid "Active plugins" msgstr "Aktivní moduly" #: ../src/preferences/ario-server-preferences.c:182 #: ../src/preferences/ario-stats-preferences.c:151 #: ../src/preferences/ario-stats-preferences.c:152 #: ../src/preferences/ario-stats-preferences.c:153 #: ../src/preferences/ario-stats-preferences.c:154 #: ../src/preferences/ario-stats-preferences.c:155 #: ../src/preferences/ario-stats-preferences.c:156 msgid "Not connected" msgstr "Nepřipojeno" #: ../src/preferences/ario-server-preferences.c:187 #: ../src/preferences/ario-server-preferences.c:278 #: ../src/widgets/ario-status-bar.c:100 msgid "Updating..." msgstr "Aktualizuji..." #: ../src/servers/ario-mpd.c:410 ../src/servers/ario-mpd2.c:522 msgid "Connecting to server..." msgstr "Připojování k serveru..." #: ../src/servers/ario-mpd.c:438 ../src/servers/ario-mpd2.c:550 msgid "Impossible to connect to server. Check the connection options." msgstr "Není možné se připojit k serveru. Zkontrolujte nastavení připojení." #. ARIO_TAG_ALBUM #: ../src/servers/ario-server.c:47 msgid "Album Artist" msgstr "Interpret alba" #. ARIO_TAG_DATE #: ../src/servers/ario-server.c:53 msgid "Composer" msgstr "Skladatel" #. ARIO_TAG_COMPOSER #: ../src/servers/ario-server.c:54 msgid "Performer" msgstr "Umělec" #. ARIO_TAG_PERFORMER #. ARIO_TAG_COMMENT #. ARIO_TAG_DISC #: ../src/servers/ario-server.c:57 msgid "Filename" msgstr "Název souboru" #. ARIO_TAG_FILENAME #: ../src/servers/ario-server.c:58 msgid "Any" msgstr "Libovolné" #. impossible time or broken locale settings #: ../src/servers/ario-server.h:27 #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1235 msgid "Unknown" msgstr "Neznámá" #: ../src/sources/ario-browser.c:82 ../src/sources/ario-search.c:70 #: ../src/sources/ario-storedplaylists.c:88 #: ../src/sources/ario-storedplaylists.c:106 #: ../plugins/filesystem/ario-filesystem.c:94 #: ../plugins/filesystem/ario-filesystem.c:109 #: ../plugins/radios/ario-radio.c:116 msgid "_Add to playlist" msgstr "_Přidat do playlistu" #: ../src/sources/ario-browser.c:85 ../src/sources/ario-search.c:73 #: ../src/sources/ario-storedplaylists.c:91 #: ../src/sources/ario-storedplaylists.c:109 #: ../plugins/filesystem/ario-filesystem.c:97 #: ../plugins/filesystem/ario-filesystem.c:112 #: ../plugins/radios/ario-radio.c:119 msgid "Add and _play" msgstr "Přidat a _přehrát" #: ../src/sources/ario-browser.c:88 ../src/sources/ario-search.c:76 #: ../src/sources/ario-storedplaylists.c:94 #: ../src/sources/ario-storedplaylists.c:112 #: ../plugins/filesystem/ario-filesystem.c:100 #: ../plugins/filesystem/ario-filesystem.c:115 #: ../plugins/radios/ario-radio.c:122 msgid "_Replace in playlist" msgstr "_Nahradit v seznamu skladeb" #: ../src/sources/ario-browser.c:91 msgid "Get the covers" msgstr "Získat obrázky alb" #: ../src/sources/ario-browser.c:94 msgid "_Delete the covers" msgstr "_Smazat obrázky alb" #: ../src/sources/ario-browser.c:97 ../src/sources/ario-browser.c:100 #: ../src/sources/ario-search.c:79 ../src/sources/ario-storedplaylists.c:115 #: ../src/widgets/ario-playlist.c:151 #: ../plugins/filesystem/ario-filesystem.c:118 #: ../plugins/radios/ario-radio.c:131 msgid "_Properties" msgstr "Vlast_nosti" #: ../src/sources/ario-browser.c:125 ../src/shell/ario-shell-preferences.c:118 msgid "Library" msgstr "Knihovna" #: ../src/sources/ario-storedplaylists.c:97 msgid "_Delete" msgstr "_Smazat" #: ../src/sources/ario-storedplaylists.c:151 msgid "Playlists" msgstr "Seznamy skladeb" #: ../src/sources/ario-storedplaylists.c:592 msgid "Are you sure that you want to delete all the selected playlists?" msgstr "Opravdu chcete odstranit všechny zvolené seznamy skladeb ?" #: ../src/sources/ario-tree.c:856 msgid "Are you sure that you want to remove all the selected covers?" msgstr "Opravdu si přejete odstranit všechny vybrané obrázky alb?" #. Translators - This "Cover" refers to an album cover art #: ../src/sources/ario-tree-albums.c:199 msgid "Cover" msgstr "Obal" #: ../src/shell/ario-shell.c:160 msgid "_File" msgstr "_Soubor" #: ../src/shell/ario-shell.c:161 msgid "_Edit" msgstr "_Upravit" #: ../src/shell/ario-shell.c:162 msgid "_View" msgstr "_Zobrazení" #: ../src/shell/ario-shell.c:163 msgid "_Control" msgstr "_Ovládání" #: ../src/shell/ario-shell.c:164 msgid "_Tool" msgstr "_Nástroj" #: ../src/shell/ario-shell.c:165 msgid "_Help" msgstr "_Nápověda" #: ../src/shell/ario-shell.c:173 msgid "_Update database" msgstr "_Aktualizovat databázi" #: ../src/shell/ario-shell.c:176 msgid "_Quit" msgstr "_Ukončit" #: ../src/shell/ario-shell.c:179 msgid "Plu_gins" msgstr "Zásuvné mo_duly" #: ../src/shell/ario-shell.c:182 msgid "Prefere_nces" msgstr "Vlast_nosti" #: ../src/shell/ario-shell.c:185 msgid "_Change current album cover" msgstr "_Změnit aktuální obal alba" #: ../src/shell/ario-shell.c:188 msgid "Download album _covers" msgstr "Stáhnout _obaly alb" #: ../src/shell/ario-shell.c:191 msgid "Find similar artists" msgstr "Najít podobné autory" #: ../src/shell/ario-shell.c:194 msgid "Add similar songs to playlist" msgstr "Přidat podobné skladby do playlistu" #: ../src/shell/ario-shell.c:197 msgid "Go to _previous tab" msgstr "Jít na _předchozí záložku" #: ../src/shell/ario-shell.c:200 msgid "Go to _next tab" msgstr "Jít na _další záložku" #: ../src/shell/ario-shell.c:203 msgid "Show _lyrics" msgstr "Ukázat _texty skladeb" #: ../src/shell/ario-shell.c:209 msgid "_Translate this application..." msgstr "_Přeložit tuto aplikaci..." #: ../src/shell/ario-shell.c:216 msgid "S_tatusbar" msgstr "S_tavový řádek" #: ../src/shell/ario-shell.c:219 msgid "Upper part" msgstr "Horní část" #: ../src/shell/ario-shell.c:825 msgid "GTK client for MPD" msgstr "GTK klient pro MPD" #: ../src/shell/ario-shell.c:826 msgid "translator-credits" msgstr "" "Launchpad Contributions:\n" " Jaroslav Lichtblau https://launchpad.net/~dragonlord\n" " Konki https://launchpad.net/~pavel-konkol\n" " Marc Pavot https://launchpad.net/~marc-pavot\n" " Václav Lešek https://launchpad.net/~vaclav-lesek" #. Create plugins configuration dialog window #: ../src/shell/ario-shell.c:1278 msgid "Configure Plugins" msgstr "Konfigurovat zásuvné moduly" #. Set window properties #: ../src/shell/ario-shell-coverdownloader.c:187 msgid "Music Player Cover Download" msgstr "Stažení obalů alb" #: ../src/shell/ario-shell-coverdownloader.c:332 msgid "Download Finished!" msgstr "Stahování dokončeno!" #. We show the numbers of covers found and not found #: ../src/shell/ario-shell-coverdownloader.c:335 #, c-format msgid "" "%i covers found\n" "%i covers not found\n" "%i covers already exist" msgstr "" "%i obalů nalezeno\n" "%i obalů schází\n" "%i obalů již existuje" #. Set window properties #: ../src/shell/ario-shell-coverselect.c:242 msgid "Cover Download" msgstr "Stažení obalu alba" #: ../src/shell/ario-shell-coverselect.c:559 msgid "Error reading file" msgstr "Chyba při čtení souboru" #: ../src/shell/ario-shell-coverselect.c:584 msgid "Error saving file" msgstr "Chyba při ukládání souboru" #: ../src/shell/ario-shell-lyrics.c:43 #: ../src/shell/ario-shell-preferences.c:133 #: ../src/shell/ario-shell-songinfos.c:272 msgid "Lyrics" msgstr "Text skladby" #: ../src/shell/ario-shell-lyricsselect.c:152 msgid "Lyrics Download" msgstr "Stažení textů skladeb" #: ../src/shell/ario-shell-preferences.c:81 msgid "Ario Preferences" msgstr "Vlastnosti Aria" #: ../src/shell/ario-shell-preferences.c:113 msgid "Server" msgstr "Server" #: ../src/shell/ario-shell-preferences.c:143 msgid "Others" msgstr "Jiní" #: ../src/shell/ario-shell-similarartists.c:318 #, c-format msgid "%d songs" msgstr "%d skladeb" #. Set window properties #. Set window title #: ../src/shell/ario-shell-songinfos.c:249 #: ../src/shell/ario-shell-songinfos.c:266 #: ../src/shell/ario-shell-songinfos.c:544 msgid "Song Properties" msgstr "Vlastnosti skladby" #: ../src/shell/ario-shell-songinfos.c:455 msgid "Error saving tags of file:" msgstr "Chyba při ukládání souboru:" #: ../src/widgets/ario-connection-widget.c:652 msgid "You must select a server." msgstr "Musíte vybrat server." #: ../src/widgets/ario-connection-widget.c:702 msgid "New Profile" msgstr "Nový profil" #: ../src/widgets/ario-firstlaunch.c:82 msgid "The following configuration will be used:" msgstr "Následující konfigurace bude použita:" #: ../src/widgets/ario-firstlaunch.c:106 msgid "" "It is the first time you launch Ario.\n" "This assistant will help you to configure it." msgstr "" "Toto je poprvé, co spouštíte Ario\n" "Tento asistent vám pomůže s konfigurací" #: ../src/widgets/ario-firstlaunch.c:111 msgid "Welcome to Ario" msgstr "Vítejte v Ariu" #: ../src/widgets/ario-firstlaunch.c:129 msgid "Configuration" msgstr "Konfigurace" #: ../src/widgets/ario-firstlaunch.c:141 msgid "Confirmation" msgstr "Potvrzení" #: ../src/widgets/ario-header.c:66 ../src/widgets/ario-tray-icon.h:42 #, c-format msgid "from %s by %s" msgstr "z %s od %s" #: ../src/widgets/ario-header.c:199 msgid "Play previous song" msgstr "Přehrávat předchozí skladbu" #: ../src/widgets/ario-header.c:217 msgid "Play/Pause the music" msgstr "Přehrát/Zastavit hudbu" #: ../src/widgets/ario-header.c:229 msgid "Stop the music" msgstr "Zastavit hudbu" #. Translators - This " of " is used to count the elapsed time #. of a song like in "00:59 of 03:24" #: ../src/widgets/ario-header.c:310 ../src/widgets/ario-tooltip.c:321 msgid " of " msgstr " z " #: ../src/widgets/ario-header.c:323 msgid "Toggle random on/off" msgstr "vlastní přepínač on/off" #: ../src/widgets/ario-header.c:335 msgid "Toggle repeat on/off" msgstr "Přepínač opakování on/off" #: ../src/widgets/ario-header.c:340 msgid "Change the music volume" msgstr "Změnit hlasitost hudby" #: ../src/widgets/ario-lyrics-editor.c:323 msgid "Downloading lyrics..." msgstr "Stahuji texty ..." #: ../src/widgets/ario-lyrics-editor.c:351 msgid "Lyrics not found" msgstr "Texty nejsou dostupné" #: ../src/widgets/ario-playlist.c:133 msgid "_Clear" msgstr "_Vyprázdnit" #: ../src/widgets/ario-playlist.c:136 msgid "_Shuffle" msgstr "_Promíchat" #: ../src/widgets/ario-playlist.c:139 msgid "Cr_op" msgstr "_Oříznout" #: ../src/widgets/ario-playlist.c:142 msgid "_Search in playlist" msgstr "_Hledat v seznamu stop" #: ../src/widgets/ario-playlist.c:145 msgid "_Remove" msgstr "_Smazat" #: ../src/widgets/ario-playlist.c:148 msgid "_Save" msgstr "_Uložit" #: ../src/widgets/ario-playlist.c:154 msgid "_Go to playing song" msgstr "_ Jít na přehrávanou skladbu" #: ../src/widgets/ario-playlist.c:667 msgid "Filter:" msgstr "Filtr:" #. Create the widgets #: ../src/widgets/ario-playlist.c:1700 msgid "Save playlist" msgstr "Uložit seznam skladeb" #: ../src/widgets/ario-playlist.c:1710 msgid "Playlist name :" msgstr "Název seznamu stop :" #: ../src/widgets/ario-playlist.c:1746 msgid "Playlist already exists. Do you want to overwrite it?" msgstr "Seznam stop již existuje. Chcete ho přepsat ?" #. Format status bar message #: ../src/widgets/ario-status-bar.c:96 msgid "Songs" msgstr "Skladby" #: ../src/widgets/ario-tray-icon.c:102 msgid "_Play" msgstr "_Přehrávat" #: ../src/widgets/ario-tray-icon.c:105 msgid "_Pause" msgstr "_Pozastavit" #: ../src/widgets/ario-tray-icon.c:108 msgid "_Stop" msgstr "Za_stavit" #: ../src/widgets/ario-tray-icon.c:111 msgid "_Next" msgstr "_Následující" #: ../src/widgets/ario-tray-icon.c:114 msgid "P_revious" msgstr "_Předchozí" #: ../src/widgets/ario-tray-icon.h:41 msgid "Not playing" msgstr "Nepřehrávám" #. Translators: "friendly time" string for the current day, strftime format. like "Today 12:34 am" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1179 msgid "Today %I:%M %p" msgstr "Dnes %I:%M %p" #. Translators: "friendly time" string for the previous day, #. * strftime format. e.g. "Yesterday 12:34 am" #. #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1192 msgid "Yesterday %I:%M %p" msgstr "Včera %I:%M %p" #. Translators: "friendly time" string for a day in the current week, #. * strftime format. e.g. "Wed 12:34 am" #. #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1208 msgid "%a %I:%M %p" msgstr "%a %I:%M %p" #. Translators: "friendly time" string for a day in the current year, #. * strftime format. e.g. "Feb 12 12:34 am" #. #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1220 msgid "%b %d %I:%M %p" msgstr "%b %d %I:%M %p" #. Translators: "friendly time" string for a day in a different year, #. * strftime format. e.g. "Feb 12 1997" #. #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1225 msgid "%b %d %Y" msgstr "%b %d %Y" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1311 #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:4 msgid "Never" msgstr "Nikdy" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1335 msgid "OK" msgstr "OK" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1338 msgid "Logging in" msgstr "Probíhá přihlášení" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1341 msgid "Request failed" msgstr "Požadavek selhal" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1344 msgid "Incorrect username" msgstr "Nesprávné uživatelské jméno" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1347 msgid "Incorrect password" msgstr "Nesprávné heslo" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1350 msgid "Handshake failed" msgstr "Komunikace selhala" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1353 msgid "Client update required" msgstr "Vyžadována aktualizace klienta" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1356 msgid "Track submission failed" msgstr "Odeslání stop selhalo" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1359 msgid "Queue is too long" msgstr "Fronta je příliš dlouhá" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1362 msgid "Track submission failed too many times" msgstr "Odesílání skladeb selhalo příliš mnohokrát" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1417 msgid "Audioscrobbler preferences" msgstr "Audioscrobbler nastavení" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:1 msgid "Disabled" msgstr "Zakázáno" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:2 msgid "Last submission time:" msgstr "Poslední čas odeslání:" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:3 msgid "Last.fm Profile" msgstr "Profil Last.fm" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:6 msgid "Queued tracks:" msgstr "Stopy ve frontě:" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:7 msgid "Status:" msgstr "Stav:" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:8 msgid "Tracks submitted:" msgstr "Odeslané stopy:" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:9 #: ../plugins/radios/ario-radio.c:168 msgid "Username :" msgstr "Uživatel:" #: ../plugins/audioscrobbler/audioscrobbler.ario-plugin.desktop.in.h:1 msgid "Last.fm" msgstr "Last.fm" #: ../plugins/audioscrobbler/audioscrobbler.ario-plugin.desktop.in.h:2 msgid "Submits song information to last.fm" msgstr "Zaslat informace o skladbě na last.fm" #: ../plugins/filesystem/ario-filesystem.c:158 msgid "File System" msgstr "Souborový systém" #: ../plugins/filesystem/ario-filesystem.c:422 msgid "Music" msgstr "Hudba" #: ../plugins/filesystem/filesystem.ario-plugin.desktop.in.h:1 msgid "A File System Browser" msgstr "Prohlížeč souborů" #: ../plugins/filesystem/filesystem.ario-plugin.desktop.in.h:2 msgid "File System Browser" msgstr "Prohlížeč systému souborů" #: ../plugins/information/ario-information.c:114 msgid "Information" msgstr "Informace" #: ../plugins/information/information.ario-plugin.desktop.in.h:1 msgid "Display various information about the playing song" msgstr "Zobrazit různé informace o hrající skladbě" #: ../plugins/information/information.ario-plugin.desktop.in.h:2 msgid "Song Information" msgstr "Informace o skladbě" #: ../plugins/information/information.ui.h:2 msgid "Albums from this artist:" msgstr "Alba od tohoto umělce:" #: ../plugins/information/information.ui.h:5 msgid "Lyrics:" msgstr "Texty písní:" #: ../plugins/libnotify/libnotify.ario-plugin.desktop.in.h:1 msgid "Add libnotify support" msgstr "Přidat podporu libnotify" #: ../plugins/libnotify/libnotify.ario-plugin.desktop.in.h:2 msgid "Libnotify" msgstr "Libnotify" #: ../plugins/mmkeys/mmkeys.ario-plugin.desktop.in.h:1 msgid "Add multimedia keys support" msgstr "Přidat podporu multimediálních kláves" #: ../plugins/mmkeys/mmkeys.ario-plugin.desktop.in.h:2 msgid "Multimedia Keys" msgstr "Multimediální klávesy" #: ../plugins/radios/ario-radio.c:125 msgid "Add a _new radio" msgstr "Přidat _nové rádio" #: ../plugins/radios/ario-radio.c:128 msgid "_Delete this radios" msgstr "_ Smazat tato rádia" #: ../plugins/radios/ario-radio.c:166 msgid "Last.fm: Radio of similar artists" msgstr "Last.fm: Rádio podobnách umělců" #: ../plugins/radios/ario-radio.c:167 msgid "Last.fm: Radio of group" msgstr "Last.fm: Rádio skupiny" #: ../plugins/radios/ario-radio.c:167 msgid "Group :" msgstr "Skupina :" #: ../plugins/radios/ario-radio.c:168 msgid "Last.fm: Personal radio" msgstr "Last.fm: Osobní rádio" #: ../plugins/radios/ario-radio.c:169 msgid "Last.fm: Radio of genre" msgstr "Last.fm: Rádio žánru" #: ../plugins/radios/ario-radio.c:184 #: ../plugins/radios/radios.ario-plugin.desktop.in.h:2 msgid "Web Radios" msgstr "Webová rádia" #: ../plugins/radios/ario-radio.c:246 msgid "Internet Radios" msgstr "Internetová rádia" #. Create dialog window #: ../plugins/radios/ario-radio.c:774 msgid "Edit a WebRadio" msgstr "Upravit webové rádio" #: ../plugins/radios/ario-radio.c:787 ../plugins/radios/ario-radio.c:923 msgid "URL :" msgstr "URL :" #: ../plugins/radios/ario-radio.c:853 ../plugins/radios/ario-radio.c:997 msgid "Bad parameters. You must specify a name and a URL for the radio." msgstr "Špatné parametry. Musíte zadat jméno a URL pro rádio." #. Create dialog window #: ../plugins/radios/ario-radio.c:883 msgid "Add a WebRadio" msgstr "Přidat Webové rádio" #: ../plugins/radios/ario-radio.c:1083 msgid "Are you sure you want to delete all the selected radios?" msgstr "Opravdu chcete smazat všechna vybraná rádia?" #: ../plugins/radios/radios.ario-plugin.desktop.in.h:1 msgid "Listen to webradios" msgstr "Poslechnout webrádia" #: ../plugins/wikipedia/ario-wikipedia-plugin.c:49 #: ../plugins/wikipedia/ario-wikipedia-plugin.c:50 msgid "Find artist on Wikipedia" msgstr "Najít umělce na Wikipedii" #: ../plugins/wikipedia/ario-wikipedia-plugin.c:172 msgid "Wikipedia Plugin - Configuration" msgstr "Zásuvný modul Wikipedie - Konfigurace" #: ../plugins/wikipedia/ario-wikipedia-plugin.c:181 msgid "Wikipedia language :" msgstr "Jazyk Wikipedie :" #: ../plugins/wikipedia/wikipedia.ario-plugin.desktop.in.h:1 msgid "A plugin to search current artist on wikipedia" msgstr "Zásuvný modul pro vyhledání aktuálního umělce na wikipedii" #: ../plugins/wikipedia/wikipedia.ario-plugin.desktop.in.h:2 msgid "Wikipedia" msgstr "Wikipedia" #~ msgid "Remove a search criteria" #~ msgstr "Smazat vyhledávaná kritéria" #~ msgid "Search songs in the library" #~ msgstr "Vyhledat skladby v knihovně" #~ msgid "Add a search criteria" #~ msgstr "Přidat kritéria vyhledávání" ario-1.6/po/zh_TW.po0000644000175000017500000010012313226723442011246 00000000000000# Traditional Chinese translation for ario # Copyright (c) 2008 Rosetta Contributors and Canonical Ltd 2008 # This file is distributed under the same license as the ario package. # FIRST AUTHOR , 2008. # msgid "" msgstr "" "Project-Id-Version: ario\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2011-06-13 18:15+0200\n" "PO-Revision-Date: 2009-11-29 00:33+0000\n" "Last-Translator: Marc Pavot \n" "Language-Team: Traditional Chinese \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2011-06-13 16:32+0000\n" "X-Generator: Launchpad (build 13175)\n" #: ../data/ario.desktop.in.in.h:1 msgid "Ario music player" msgstr "Ario 音樂撥放器" #: ../data/ario.desktop.in.in.h:2 msgid "Client application to mpd" msgstr "mpd 用戶端" #: ../data/ui/browser-prefs.ui.h:1 msgid "Alphabetically" msgstr "依照字母" #: ../data/ui/browser-prefs.ui.h:2 msgid "By year" msgstr "依照年份" #: ../data/ui/browser-prefs.ui.h:3 msgid "Library Options" msgstr "收藏選項" #: ../data/ui/browser-prefs.ui.h:4 msgid "Library Organisation" msgstr "組織收藏" #: ../data/ui/browser-prefs.ui.h:5 msgid "Sort albums: " msgstr "排序專輯: " #: ../data/ui/connection-autodetect.ui.h:1 msgid "" "If you don't see your MPD server thanks to the automatic detection, you " "should check that zeroconf is activated in your MPD configuration or use the " "manual configuration." msgstr "" #: ../data/ui/connection-autodetect.ui.h:2 msgid "Server autodetection" msgstr "自動尋找伺服器" #: ../data/ui/connection-widget.ui.h:1 msgid "Auto detect" msgstr "自動刪除" #: ../data/ui/connection-widget.ui.h:2 msgid "Default" msgstr "預設" #: ../data/ui/connection-widget.ui.h:3 ../src/widgets/ario-firstlaunch.c:83 msgid "Host :" msgstr "主機:" #: ../data/ui/connection-widget.ui.h:4 msgid "Music directory :" msgstr "音樂資料夾" #: ../data/ui/connection-widget.ui.h:5 msgid "Music server is on the same computer as Ario" msgstr "" #. Create the widgets #: ../data/ui/connection-widget.ui.h:6 ../plugins/radios/ario-radio.c:786 #: ../plugins/radios/ario-radio.c:922 msgid "Name :" msgstr "名稱:" #: ../data/ui/connection-widget.ui.h:7 #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:5 msgid "Password :" msgstr "密碼:" #: ../data/ui/connection-widget.ui.h:8 ../src/widgets/ario-firstlaunch.c:85 msgid "Port :" msgstr "埠號:" #: ../data/ui/connection-widget.ui.h:9 #, fuzzy msgid "Server type :" msgstr "伺服器" #: ../data/ui/connection-widget.ui.h:10 msgid "Timeout :" msgstr "" #: ../data/ui/connection-widget.ui.h:11 msgid "XMMS 2 (Experimental)" msgstr "" #: ../data/ui/cover-prefs.ui.h:1 msgid "Automatically download the album cover of the playing song" msgstr "在播放時自動下載專輯封面" #: ../data/ui/cover-prefs.ui.h:2 ../src/shell/ario-shell-preferences.c:128 msgid "Covers" msgstr "專輯封面" #: ../data/ui/cover-prefs.ui.h:3 msgid "Covers Sources" msgstr "專輯封面來源" #: ../data/ui/cover-prefs.ui.h:4 msgid "Show the covers in the albums list" msgstr "在專輯清單中顯示封面" #: ../data/ui/cover-prefs.ui.h:5 msgid "Use Amazon." msgstr "使用 Amazon。" #: ../data/ui/connection-prefs.ui.h:1 #: ../src/shell/ario-shell-preferences.c:108 msgid "Connection" msgstr "連線" #: ../data/ui/connection-prefs.ui.h:2 msgid "_Autoconnect on startup" msgstr "啟動時自動連線(_A)" #: ../data/ui/connection-prefs.ui.h:3 ../src/shell/ario-shell.c:167 msgid "_Connect" msgstr "連線(_C)" #: ../data/ui/connection-prefs.ui.h:4 ../src/shell/ario-shell.c:170 msgid "_Disconnect" msgstr "斷線(_D)" #: ../data/ui/connection-assistant.ui.h:1 msgid "" "You need to specify a server to connect to. If you don't see your server " "thanks to the autodetection, you should check that zeroconf/avahi is " "activated in your server or use the manual configuration." msgstr "" "您必須告訴我要連去哪個伺服器。若自動偵測的清單中沒有您的伺服器,請檢查伺服器" "上的 Zeroconf 與 Avahi 是否啟動,或是手動設定伺服器。" #: ../data/ui/cover-progress.ui.h:1 ../data/ui/cover-select.ui.h:1 #: ../data/ui/song-infos.ui.h:1 ../plugins/information/information.ui.h:1 msgid "Album :" msgstr "專輯:" #: ../data/ui/cover-progress.ui.h:2 ../data/ui/cover-select.ui.h:2 #: ../data/ui/lyrics-select.ui.h:1 ../data/ui/song-infos.ui.h:3 #: ../plugins/information/information.ui.h:3 #: ../plugins/radios/ario-radio.c:166 msgid "Artist :" msgstr "演出者:" #: ../data/ui/cover-progress.ui.h:3 msgid "Downloading cover" msgstr "下載專輯封面" #: ../data/ui/cover-select.ui.h:3 msgid "Local search" msgstr "本地搜尋" #: ../data/ui/cover-select.ui.h:4 ../src/sources/ario-search.c:108 msgid "Search" msgstr "搜尋" #: ../data/ui/others-prefs.ui.h:1 msgid "Allow only one instance of Ario" msgstr "不允許開啟多個 Ario" #: ../data/ui/others-prefs.ui.h:2 msgid "Hide window when close button is pressed" msgstr "按下關閉按鈕時隱藏視窗" #: ../data/ui/others-prefs.ui.h:3 msgid "Interface" msgstr "界面" #: ../data/ui/others-prefs.ui.h:4 msgid "Playlist at the right of tabs" msgstr "" #: ../data/ui/others-prefs.ui.h:5 msgid "Playlist below tabs" msgstr "" #: ../data/ui/others-prefs.ui.h:6 msgid "Playlist within tabs" msgstr "" #: ../data/ui/others-prefs.ui.h:7 msgid "Proxy" msgstr "代理伺服器" #: ../data/ui/others-prefs.ui.h:8 msgid "Proxy Address :" msgstr "代理伺服器位置:" #: ../data/ui/others-prefs.ui.h:9 msgid "Proxy Port :" msgstr "代理伺服器埠號:" #: ../data/ui/others-prefs.ui.h:10 msgid "Show tabs" msgstr "顯示標籤" #: ../data/ui/others-prefs.ui.h:11 msgid "Use a proxy" msgstr "使用代理伺服器" #: ../data/ui/lyrics-prefs.ui.h:1 msgid "Lyrics Sources" msgstr "歌詞來源" #: ../data/ui/lyrics-select.ui.h:2 ../data/ui/song-infos.ui.h:13 #: ../plugins/information/information.ui.h:6 msgid "Title :" msgstr "標題:" #: ../data/ui/playlist-prefs.ui.h:1 msgid "Add after playing song" msgstr "" #: ../data/ui/playlist-prefs.ui.h:2 msgid "Add and play" msgstr "" #: ../data/ui/playlist-prefs.ui.h:3 ../data/ui/similar-artists.ui.h:2 msgid "Add to playlist" msgstr "加入播放清單" #. ARIO_TAG_ARTIST #: ../data/ui/playlist-prefs.ui.h:4 ../src/servers/ario-server.c:46 #: ../src/sources/ario-tree-albums.c:213 ../src/widgets/ario-playlist.c:541 #: ../src/widgets/ario-songlist.c:228 ../src/widgets/ario-tray-icon.c:565 msgid "Album" msgstr "專輯" #: ../data/ui/playlist-prefs.ui.h:5 ../src/servers/ario-server.c:45 #: ../src/widgets/ario-playlist.c:541 ../src/widgets/ario-songlist.c:213 #: ../src/widgets/ario-tray-icon.c:563 msgid "Artist" msgstr "演出者" #. ARIO_TAG_GENRE #: ../data/ui/playlist-prefs.ui.h:6 ../src/servers/ario-server.c:52 #: ../src/widgets/ario-playlist.c:541 msgid "Date" msgstr "日期" #: ../data/ui/playlist-prefs.ui.h:7 ../src/widgets/ario-playlist.c:541 msgid "Disc" msgstr "" #: ../data/ui/playlist-prefs.ui.h:8 msgid "Double click" msgstr "" #: ../data/ui/playlist-prefs.ui.h:9 ../src/widgets/ario-playlist.c:541 msgid "Duration" msgstr "經過時間" #: ../data/ui/playlist-prefs.ui.h:10 ../src/widgets/ario-playlist.c:541 msgid "File" msgstr "檔案" #. ARIO_TAG_TRACK #. ARIO_TAG_NAME #: ../data/ui/playlist-prefs.ui.h:11 ../src/servers/ario-server.c:51 #: ../src/widgets/ario-playlist.c:541 msgid "Genre" msgstr "風格" #: ../data/ui/playlist-prefs.ui.h:12 msgid "Go to current song when a new song is played" msgstr "撥放時跳至該曲目" #: ../data/ui/playlist-prefs.ui.h:13 msgid "Mode" msgstr "" #: ../data/ui/playlist-prefs.ui.h:14 msgid "On double click:" msgstr "" #: ../data/ui/playlist-prefs.ui.h:15 ../src/sources/ario-storedplaylists.c:229 #: ../src/shell/ario-shell.c:222 ../src/shell/ario-shell-preferences.c:123 #: ../src/widgets/ario-playlist.c:272 msgid "Playlist" msgstr "播放清單" #: ../data/ui/playlist-prefs.ui.h:16 msgid "Playlist mode:" msgstr "" #: ../data/ui/playlist-prefs.ui.h:17 msgid "Replace in playlist" msgstr "" #: ../data/ui/playlist-prefs.ui.h:18 msgid "Show rows:" msgstr "" #. ARIO_TAG_ALBUM_ARTIST #: ../data/ui/playlist-prefs.ui.h:19 ../src/servers/ario-server.c:48 #: ../src/sources/ario-tree-songs.c:145 ../src/widgets/ario-playlist.c:541 #: ../src/widgets/ario-songlist.c:198 ../src/widgets/ario-tray-icon.c:567 msgid "Title" msgstr "標題" #. ARIO_TAG_TITLE #: ../data/ui/playlist-prefs.ui.h:20 ../src/servers/ario-server.c:49 #: ../src/sources/ario-tree-songs.c:138 ../src/widgets/ario-playlist.c:541 msgid "Track" msgstr "音軌" #: ../data/ui/server-prefs.ui.h:1 msgid "Audio outputs" msgstr "音源輸出" #: ../data/ui/server-prefs.ui.h:2 msgid "Crossfade" msgstr "淡出淡入" #: ../data/ui/server-prefs.ui.h:3 msgid "Database" msgstr "資料庫" #: ../data/ui/server-prefs.ui.h:4 msgid "Last updated:" msgstr "最後更新:" #: ../data/ui/server-prefs.ui.h:5 msgid "Stop music on exit" msgstr "離開時停止播放" #: ../data/ui/server-prefs.ui.h:6 msgid "Update on startup" msgstr "啟動時更新" #: ../data/ui/server-prefs.ui.h:7 msgid "_Update" msgstr "更新(_U)" #: ../data/ui/server-prefs.ui.h:8 msgid "enable crossfade" msgstr "啟用音效淡出淡入" #: ../data/ui/server-prefs.ui.h:9 msgid "fade time (s):" msgstr "淡出時間(秒):" #: ../data/ui/server-prefs.ui.h:10 ../src/ario-util.c:50 ../src/ario-util.c:71 #: ../src/ario-util.c:93 ../plugins/information/information.ui.h:7 #, c-format msgid "n/a" msgstr "無" #: ../data/ui/similar-artists.ui.h:1 msgid "Add all to playlist" msgstr "全部加入播放清單" #: ../data/ui/similar-artists.ui.h:3 msgid "Find on Last.fm" msgstr "在 Last.fm 上尋找" #: ../data/ui/stats-prefs.ui.h:1 msgid "Database play time :" msgstr "" #: ../data/ui/stats-prefs.ui.h:2 msgid "Number of albums :" msgstr "專輯數量:" #: ../data/ui/stats-prefs.ui.h:3 msgid "Number of artists :" msgstr "演出者數量:" #: ../data/ui/stats-prefs.ui.h:4 msgid "Number of songs :" msgstr "歌曲數量:" #: ../data/ui/stats-prefs.ui.h:5 msgid "Play time :" msgstr "撥放時間:" #: ../data/ui/stats-prefs.ui.h:6 ../src/shell/ario-shell-preferences.c:148 msgid "Statistics" msgstr "統計資料" #: ../data/ui/stats-prefs.ui.h:7 msgid "Uptime :" msgstr "啟動時間:" #: ../data/ui/song-infos.ui.h:2 msgid "Album Artist :" msgstr "" #: ../data/ui/song-infos.ui.h:4 msgid "Comment :" msgstr "註解:" #: ../data/ui/song-infos.ui.h:5 msgid "Composer :" msgstr "作曲者:" #: ../data/ui/song-infos.ui.h:6 msgid "Date :" msgstr "日期:" #: ../data/ui/song-infos.ui.h:7 msgid "Disc :" msgstr "" #: ../data/ui/song-infos.ui.h:8 msgid "Filename :" msgstr "檔案名稱:" #: ../data/ui/song-infos.ui.h:9 ../plugins/radios/ario-radio.c:169 msgid "Genre :" msgstr "風格:" #: ../data/ui/song-infos.ui.h:10 ../plugins/information/information.ui.h:4 msgid "Length :" msgstr "長度:" #: ../data/ui/song-infos.ui.h:11 msgid "Performer :" msgstr "表演者:" #: ../data/ui/song-infos.ui.h:12 msgid "Song" msgstr "歌曲" #: ../data/ui/song-infos.ui.h:14 msgid "Track :" msgstr "音軌:" #: ../data/ui/trayicon-prefs.ui.h:1 msgid "Do nothing" msgstr "不做任何事" #: ../data/ui/trayicon-prefs.ui.h:2 msgid "Mute" msgstr "" #: ../data/ui/trayicon-prefs.ui.h:3 ../src/shell/ario-shell-preferences.c:138 msgid "Notification" msgstr "通知" #: ../data/ui/trayicon-prefs.ui.h:4 msgid "Notification on song change" msgstr "於歌曲更換時通知" #: ../data/ui/trayicon-prefs.ui.h:5 msgid "Notification time: " msgstr "通知視窗顯示時間: " #: ../data/ui/trayicon-prefs.ui.h:6 msgid "On middle button click on tray icon :" msgstr "中鍵於小圖示按下時:" #: ../data/ui/trayicon-prefs.ui.h:7 ../src/widgets/ario-header.c:241 msgid "Play next song" msgstr "播下一首樂曲" #: ../data/ui/trayicon-prefs.ui.h:8 msgid "Play/Pause" msgstr "播放/暫停" #: ../data/ui/trayicon-prefs.ui.h:9 msgid "Tray icon" msgstr "小圖示" #: ../src/ario-main.c:67 msgid "Start minimized window" msgstr "啟動時最小化" #: ../src/ario-main.c:68 msgid "Start with specific profile" msgstr "" #. Format result string #: ../src/ario-util.c:110 msgid "seconds" msgstr "秒" #: ../src/ario-util.c:112 msgid "minutes" msgstr "分" #: ../src/ario-util.c:118 msgid "hours" msgstr "時" #: ../src/ario-util.c:124 msgid "days" msgstr "日" #: ../src/covers/ario-cover.c:149 msgid "The cover already exists. Do you want to replace it?" msgstr "專輯封面已經存在,您是否想取代它?" #: ../src/covers/ario-cover-local.c:48 msgid "Music Directory" msgstr "音樂目錄" #: ../src/playlist/ario-playlist-dynamic.c:49 msgid "songs of same artist" msgstr "" #: ../src/playlist/ario-playlist-dynamic.c:50 msgid "songs of same album" msgstr "" #: ../src/playlist/ario-playlist-dynamic.c:51 msgid "songs of similar artists" msgstr "" #: ../src/playlist/ario-playlist-dynamic.c:52 msgid "albums of same artists" msgstr "" #: ../src/playlist/ario-playlist-dynamic.c:53 msgid "albums of similar artists" msgstr "" #: ../src/playlist/ario-playlist-dynamic.c:69 msgid "Dynamic Playlist" msgstr "" #: ../src/playlist/ario-playlist-queue.c:49 msgid "Queue Mode" msgstr "" #: ../src/playlist/ario-playlist-normal.c:47 msgid "Normal" msgstr "" #: ../src/plugins/ario-plugin-manager.c:45 msgid "Plugin" msgstr "外掛模組" #: ../src/plugins/ario-plugin-manager.c:46 msgid "Enabled" msgstr "啟用" #: ../src/plugins/ario-plugin-manager.c:480 ../src/shell/ario-shell.c:206 msgid "_About" msgstr "關於(_A)" #: ../src/plugins/ario-plugin-manager.c:488 msgid "C_onfigure" msgstr "設定(_o)" #: ../src/plugins/ario-plugin-manager.c:497 msgid "A_ctivate" msgstr "啟用(_C)" #: ../src/plugins/ario-plugin-manager.c:508 msgid "Ac_tivate All" msgstr "全部啟用(_t)" #: ../src/plugins/ario-plugin-manager.c:513 msgid "_Deactivate All" msgstr "全部停用(_D)" #: ../src/plugins/ario-plugin-manager.c:722 msgid "Active plugins" msgstr "使用中的外掛程式" #: ../src/preferences/ario-server-preferences.c:182 #: ../src/preferences/ario-stats-preferences.c:151 #: ../src/preferences/ario-stats-preferences.c:152 #: ../src/preferences/ario-stats-preferences.c:153 #: ../src/preferences/ario-stats-preferences.c:154 #: ../src/preferences/ario-stats-preferences.c:155 #: ../src/preferences/ario-stats-preferences.c:156 msgid "Not connected" msgstr "沒有連線" #: ../src/preferences/ario-server-preferences.c:187 #: ../src/preferences/ario-server-preferences.c:278 #: ../src/widgets/ario-status-bar.c:100 msgid "Updating..." msgstr "正在更新..." #: ../src/servers/ario-mpd.c:410 ../src/servers/ario-mpd2.c:522 msgid "Connecting to server..." msgstr "正在連線至伺服器..." #: ../src/servers/ario-mpd.c:438 ../src/servers/ario-mpd2.c:550 msgid "Impossible to connect to server. Check the connection options." msgstr "不可能連接到伺服器,請檢查連接設定。" #. ARIO_TAG_ALBUM #: ../src/servers/ario-server.c:47 msgid "Album Artist" msgstr "" #. ARIO_TAG_DATE #: ../src/servers/ario-server.c:53 msgid "Composer" msgstr "作曲家" #. ARIO_TAG_COMPOSER #: ../src/servers/ario-server.c:54 msgid "Performer" msgstr "表演者" #. ARIO_TAG_PERFORMER #. ARIO_TAG_COMMENT #. ARIO_TAG_DISC #: ../src/servers/ario-server.c:57 msgid "Filename" msgstr "檔案名稱" #. ARIO_TAG_FILENAME #: ../src/servers/ario-server.c:58 msgid "Any" msgstr "任何" #. impossible time or broken locale settings #: ../src/servers/ario-server.h:27 #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1235 msgid "Unknown" msgstr "未知的" #: ../src/sources/ario-browser.c:82 ../src/sources/ario-search.c:70 #: ../src/sources/ario-storedplaylists.c:88 #: ../src/sources/ario-storedplaylists.c:106 #: ../plugins/filesystem/ario-filesystem.c:94 #: ../plugins/filesystem/ario-filesystem.c:109 #: ../plugins/radios/ario-radio.c:116 msgid "_Add to playlist" msgstr "加入播放清單(_A)" #: ../src/sources/ario-browser.c:85 ../src/sources/ario-search.c:73 #: ../src/sources/ario-storedplaylists.c:91 #: ../src/sources/ario-storedplaylists.c:109 #: ../plugins/filesystem/ario-filesystem.c:97 #: ../plugins/filesystem/ario-filesystem.c:112 #: ../plugins/radios/ario-radio.c:119 msgid "Add and _play" msgstr "加入並播放(_p)" #: ../src/sources/ario-browser.c:88 ../src/sources/ario-search.c:76 #: ../src/sources/ario-storedplaylists.c:94 #: ../src/sources/ario-storedplaylists.c:112 #: ../plugins/filesystem/ario-filesystem.c:100 #: ../plugins/filesystem/ario-filesystem.c:115 #: ../plugins/radios/ario-radio.c:122 msgid "_Replace in playlist" msgstr "取代播放清單中的項目(_R)" #: ../src/sources/ario-browser.c:91 msgid "Get the covers" msgstr "下載專輯封面" #: ../src/sources/ario-browser.c:94 msgid "_Delete the covers" msgstr "刪除專輯封面(_D)" #: ../src/sources/ario-browser.c:97 ../src/sources/ario-browser.c:100 #: ../src/sources/ario-search.c:79 ../src/sources/ario-storedplaylists.c:115 #: ../src/widgets/ario-playlist.c:151 #: ../plugins/filesystem/ario-filesystem.c:118 #: ../plugins/radios/ario-radio.c:131 msgid "_Properties" msgstr "屬性(_P)" #: ../src/sources/ario-browser.c:125 ../src/shell/ario-shell-preferences.c:118 msgid "Library" msgstr "收藏庫" #: ../src/sources/ario-storedplaylists.c:97 msgid "_Delete" msgstr "刪除(_D)" #: ../src/sources/ario-storedplaylists.c:151 msgid "Playlists" msgstr "播放清單" #: ../src/sources/ario-storedplaylists.c:592 msgid "Are you sure that you want to delete all the selected playlists?" msgstr "您確定要刪除所有選擇的播放清單?" #: ../src/sources/ario-tree.c:856 msgid "Are you sure that you want to remove all the selected covers?" msgstr "您確定要刪除所有選擇的專輯封面?" #. Translators - This "Cover" refers to an album cover art #: ../src/sources/ario-tree-albums.c:199 msgid "Cover" msgstr "專輯封面" #: ../src/shell/ario-shell.c:160 msgid "_File" msgstr "檔案(_F)" #: ../src/shell/ario-shell.c:161 msgid "_Edit" msgstr "編輯(_E)" #: ../src/shell/ario-shell.c:162 msgid "_View" msgstr "檢視(_V)" #: ../src/shell/ario-shell.c:163 msgid "_Control" msgstr "" #: ../src/shell/ario-shell.c:164 msgid "_Tool" msgstr "工具(_T)" #: ../src/shell/ario-shell.c:165 msgid "_Help" msgstr "說明(_H)" #: ../src/shell/ario-shell.c:173 msgid "_Update database" msgstr "" #: ../src/shell/ario-shell.c:176 msgid "_Quit" msgstr "結束程式(_Q)" #: ../src/shell/ario-shell.c:179 msgid "Plu_gins" msgstr "外掛模組(_g)" #: ../src/shell/ario-shell.c:182 msgid "Prefere_nces" msgstr "偏好設定(_n)" #: ../src/shell/ario-shell.c:185 msgid "_Change current album cover" msgstr "更換目前的專輯封面(_C)" #: ../src/shell/ario-shell.c:188 msgid "Download album _covers" msgstr "下載專輯封面(_c)" #: ../src/shell/ario-shell.c:191 msgid "Find similar artists" msgstr "尋找類似的演出者" #: ../src/shell/ario-shell.c:194 msgid "Add similar songs to playlist" msgstr "將類似歌曲加入播放清單" #: ../src/shell/ario-shell.c:197 msgid "Go to _previous tab" msgstr "" #: ../src/shell/ario-shell.c:200 msgid "Go to _next tab" msgstr "" #: ../src/shell/ario-shell.c:203 msgid "Show _lyrics" msgstr "顯示歌詞(_l)" #: ../src/shell/ario-shell.c:209 msgid "_Translate this application..." msgstr "翻譯這個軟體(_T)..." #: ../src/shell/ario-shell.c:216 msgid "S_tatusbar" msgstr "狀態列(_T)" #: ../src/shell/ario-shell.c:219 msgid "Upper part" msgstr "上半部" #: ../src/shell/ario-shell.c:825 msgid "GTK client for MPD" msgstr "" #: ../src/shell/ario-shell.c:826 msgid "translator-credits" msgstr "" "Launchpad Contributions:\n" " Choi https://launchpad.net/~vegetable55\n" " Marc Pavot https://launchpad.net/~marc-pavot\n" " Palatis https://launchpad.net/~palatis\n" " Yuren Ju https://launchpad.net/~yurenju\n" " jey1008 https://launchpad.net/~jey1008" #. Create plugins configuration dialog window #: ../src/shell/ario-shell.c:1278 msgid "Configure Plugins" msgstr "設定外掛模組" #. Set window properties #: ../src/shell/ario-shell-coverdownloader.c:187 msgid "Music Player Cover Download" msgstr "Ario 專輯封面下載器" #: ../src/shell/ario-shell-coverdownloader.c:332 msgid "Download Finished!" msgstr "下載完成!" #. We show the numbers of covers found and not found #: ../src/shell/ario-shell-coverdownloader.c:335 #, c-format msgid "" "%i covers found\n" "%i covers not found\n" "%i covers already exist" msgstr "" "找到了 %i 個專輯封面\n" "沒找到 %i 個專輯封面\n" "%i 個專輯已經有封面" #. Set window properties #: ../src/shell/ario-shell-coverselect.c:242 msgid "Cover Download" msgstr "下載專輯封面" #: ../src/shell/ario-shell-coverselect.c:559 msgid "Error reading file" msgstr "讀取檔案時發生錯誤" #: ../src/shell/ario-shell-coverselect.c:584 msgid "Error saving file" msgstr "儲存檔案錯誤" #: ../src/shell/ario-shell-lyrics.c:43 #: ../src/shell/ario-shell-preferences.c:133 #: ../src/shell/ario-shell-songinfos.c:272 msgid "Lyrics" msgstr "歌詞" #: ../src/shell/ario-shell-lyricsselect.c:152 msgid "Lyrics Download" msgstr "歌詞下載" #: ../src/shell/ario-shell-preferences.c:81 msgid "Ario Preferences" msgstr "Ario 偏好設定" #: ../src/shell/ario-shell-preferences.c:113 msgid "Server" msgstr "伺服器" #: ../src/shell/ario-shell-preferences.c:143 msgid "Others" msgstr "" #: ../src/shell/ario-shell-similarartists.c:318 #, c-format msgid "%d songs" msgstr "%d 首歌曲" #. Set window properties #. Set window title #: ../src/shell/ario-shell-songinfos.c:249 #: ../src/shell/ario-shell-songinfos.c:266 #: ../src/shell/ario-shell-songinfos.c:544 msgid "Song Properties" msgstr "歌曲屬性" #: ../src/shell/ario-shell-songinfos.c:455 msgid "Error saving tags of file:" msgstr "" #: ../src/widgets/ario-connection-widget.c:652 msgid "You must select a server." msgstr "你必須選擇一個伺服器" #: ../src/widgets/ario-connection-widget.c:702 msgid "New Profile" msgstr "" #: ../src/widgets/ario-firstlaunch.c:82 msgid "The following configuration will be used:" msgstr "將使用下列設定:" #: ../src/widgets/ario-firstlaunch.c:106 msgid "" "It is the first time you launch Ario.\n" "This assistant will help you to configure it." msgstr "" "這是您初次啟動 Ario。\n" "這個精靈將帶領您設定它。" #: ../src/widgets/ario-firstlaunch.c:111 msgid "Welcome to Ario" msgstr "歡迎來到 Ario" #: ../src/widgets/ario-firstlaunch.c:129 msgid "Configuration" msgstr "設定" #: ../src/widgets/ario-firstlaunch.c:141 msgid "Confirmation" msgstr "確認" #: ../src/widgets/ario-header.c:66 ../src/widgets/ario-tray-icon.h:42 #, c-format msgid "from %s by %s" msgstr "來自 %s %s 演出" #: ../src/widgets/ario-header.c:199 msgid "Play previous song" msgstr "播上一首樂曲" #: ../src/widgets/ario-header.c:217 msgid "Play/Pause the music" msgstr "播放/暫停音樂" #: ../src/widgets/ario-header.c:229 msgid "Stop the music" msgstr "停止播放音樂" #. Translators - This " of " is used to count the elapsed time #. of a song like in "00:59 of 03:24" #: ../src/widgets/ario-header.c:310 ../src/widgets/ario-tooltip.c:321 msgid " of " msgstr " 的 " #: ../src/widgets/ario-header.c:323 msgid "Toggle random on/off" msgstr "開關隨機播放" #: ../src/widgets/ario-header.c:335 msgid "Toggle repeat on/off" msgstr "開關重複播放" #: ../src/widgets/ario-header.c:340 msgid "Change the music volume" msgstr "改變音量" #: ../src/widgets/ario-lyrics-editor.c:323 msgid "Downloading lyrics..." msgstr "歌詞下載中..." #: ../src/widgets/ario-lyrics-editor.c:351 msgid "Lyrics not found" msgstr "沒有找到歌詞" #: ../src/widgets/ario-playlist.c:133 msgid "_Clear" msgstr "清除(_C)" #: ../src/widgets/ario-playlist.c:136 msgid "_Shuffle" msgstr "隨機播放(_S)" #: ../src/widgets/ario-playlist.c:139 msgid "Cr_op" msgstr "" #: ../src/widgets/ario-playlist.c:142 msgid "_Search in playlist" msgstr "" #: ../src/widgets/ario-playlist.c:145 msgid "_Remove" msgstr "移除(_R)" #: ../src/widgets/ario-playlist.c:148 msgid "_Save" msgstr "儲存(_S)" #: ../src/widgets/ario-playlist.c:154 msgid "_Go to playing song" msgstr "移至正在播放的歌曲(_G)" #: ../src/widgets/ario-playlist.c:667 msgid "Filter:" msgstr "" #. Create the widgets #: ../src/widgets/ario-playlist.c:1700 msgid "Save playlist" msgstr "儲存播放清單" #: ../src/widgets/ario-playlist.c:1710 msgid "Playlist name :" msgstr "播放清單名稱:" #: ../src/widgets/ario-playlist.c:1746 msgid "Playlist already exists. Do you want to overwrite it?" msgstr "播放清單已經存在,是否覆蓋?" #. Format status bar message #: ../src/widgets/ario-status-bar.c:96 msgid "Songs" msgstr "曲目" #: ../src/widgets/ario-tray-icon.c:102 msgid "_Play" msgstr "播放(_P)" #: ../src/widgets/ario-tray-icon.c:105 msgid "_Pause" msgstr "暫停(_P)" #: ../src/widgets/ario-tray-icon.c:108 msgid "_Stop" msgstr "停止(_S)" #: ../src/widgets/ario-tray-icon.c:111 msgid "_Next" msgstr "下一首(_N)" #: ../src/widgets/ario-tray-icon.c:114 msgid "P_revious" msgstr "上一首(_R)" #: ../src/widgets/ario-tray-icon.h:41 msgid "Not playing" msgstr "沒有播放樂曲" #. Translators: "friendly time" string for the current day, strftime format. like "Today 12:34 am" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1179 msgid "Today %I:%M %p" msgstr "今天%p %I:%M" #. Translators: "friendly time" string for the previous day, #. * strftime format. e.g. "Yesterday 12:34 am" #. #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1192 msgid "Yesterday %I:%M %p" msgstr "昨天%p %I:%M" #. Translators: "friendly time" string for a day in the current week, #. * strftime format. e.g. "Wed 12:34 am" #. #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1208 msgid "%a %I:%M %p" msgstr "" #. Translators: "friendly time" string for a day in the current year, #. * strftime format. e.g. "Feb 12 12:34 am" #. #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1220 msgid "%b %d %I:%M %p" msgstr "" #. Translators: "friendly time" string for a day in a different year, #. * strftime format. e.g. "Feb 12 1997" #. #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1225 msgid "%b %d %Y" msgstr "" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1311 #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:4 msgid "Never" msgstr "永不" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1335 msgid "OK" msgstr "確定" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1338 msgid "Logging in" msgstr "登入中" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1341 msgid "Request failed" msgstr "要求失敗" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1344 msgid "Incorrect username" msgstr "帳號錯誤" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1347 msgid "Incorrect password" msgstr "密碼錯誤" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1350 msgid "Handshake failed" msgstr "連線失敗" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1353 msgid "Client update required" msgstr "用戶端需要更新" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1356 msgid "Track submission failed" msgstr "提交樂曲失敗" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1359 msgid "Queue is too long" msgstr "佇列太長" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1362 msgid "Track submission failed too many times" msgstr "提交樂曲失敗次數太多" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1417 msgid "Audioscrobbler preferences" msgstr "Audioscrobbler 偏好設定" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:1 msgid "Disabled" msgstr "停用" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:2 msgid "Last submission time:" msgstr "最後提交時間:" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:3 msgid "Last.fm Profile" msgstr "Last.fm 設定組合" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:6 msgid "Queued tracks:" msgstr "佇列中的樂曲:" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:7 msgid "Status:" msgstr "狀態:" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:8 msgid "Tracks submitted:" msgstr "已提交的樂曲:" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:9 #: ../plugins/radios/ario-radio.c:168 msgid "Username :" msgstr "使用者名稱:" #: ../plugins/audioscrobbler/audioscrobbler.ario-plugin.desktop.in.h:1 msgid "Last.fm" msgstr "Last.fm" #: ../plugins/audioscrobbler/audioscrobbler.ario-plugin.desktop.in.h:2 msgid "Submits song information to last.fm" msgstr "將歌曲資訊傳送至 Last.fm" #: ../plugins/filesystem/ario-filesystem.c:158 msgid "File System" msgstr "檔案系統" #: ../plugins/filesystem/ario-filesystem.c:422 msgid "Music" msgstr "音樂" #: ../plugins/filesystem/filesystem.ario-plugin.desktop.in.h:1 msgid "A File System Browser" msgstr "檔案系統瀏覽器" #: ../plugins/filesystem/filesystem.ario-plugin.desktop.in.h:2 msgid "File System Browser" msgstr "檔案系統瀏覽器" #: ../plugins/information/ario-information.c:114 msgid "Information" msgstr "資訊" #: ../plugins/information/information.ario-plugin.desktop.in.h:1 msgid "Display various information about the playing song" msgstr "顯示播放中歌曲的細目資訊" #: ../plugins/information/information.ario-plugin.desktop.in.h:2 msgid "Song Information" msgstr "歌曲資訊" #: ../plugins/information/information.ui.h:2 msgid "Albums from this artist:" msgstr "演出者的專輯:" #: ../plugins/information/information.ui.h:5 msgid "Lyrics:" msgstr "歌詞:" #: ../plugins/libnotify/libnotify.ario-plugin.desktop.in.h:1 msgid "Add libnotify support" msgstr "加入 libnotify 支援" #: ../plugins/libnotify/libnotify.ario-plugin.desktop.in.h:2 msgid "Libnotify" msgstr "" #: ../plugins/mmkeys/mmkeys.ario-plugin.desktop.in.h:1 msgid "Add multimedia keys support" msgstr "加入多媒體按鍵支援" #: ../plugins/mmkeys/mmkeys.ario-plugin.desktop.in.h:2 msgid "Multimedia Keys" msgstr "多媒體按鍵" #: ../plugins/radios/ario-radio.c:125 msgid "Add a _new radio" msgstr "加入新電台(_n)" #: ../plugins/radios/ario-radio.c:128 msgid "_Delete this radios" msgstr "移除此電台(_D)" #: ../plugins/radios/ario-radio.c:166 msgid "Last.fm: Radio of similar artists" msgstr "" #: ../plugins/radios/ario-radio.c:167 msgid "Last.fm: Radio of group" msgstr "" #: ../plugins/radios/ario-radio.c:167 msgid "Group :" msgstr "" #: ../plugins/radios/ario-radio.c:168 msgid "Last.fm: Personal radio" msgstr "" #: ../plugins/radios/ario-radio.c:169 msgid "Last.fm: Radio of genre" msgstr "" #: ../plugins/radios/ario-radio.c:184 #: ../plugins/radios/radios.ario-plugin.desktop.in.h:2 msgid "Web Radios" msgstr "網路電台" #: ../plugins/radios/ario-radio.c:246 msgid "Internet Radios" msgstr "網際網路電台" #. Create dialog window #: ../plugins/radios/ario-radio.c:774 msgid "Edit a WebRadio" msgstr "編輯網路電台" #: ../plugins/radios/ario-radio.c:787 ../plugins/radios/ario-radio.c:923 msgid "URL :" msgstr "URL:" #: ../plugins/radios/ario-radio.c:853 ../plugins/radios/ario-radio.c:997 msgid "Bad parameters. You must specify a name and a URL for the radio." msgstr "無效的參數,請設定電台的名稱與 URL。" #. Create dialog window #: ../plugins/radios/ario-radio.c:883 msgid "Add a WebRadio" msgstr "加入網路電台" #: ../plugins/radios/ario-radio.c:1083 msgid "Are you sure you want to delete all the selected radios?" msgstr "您確定要刪除所有選取的電台?" #: ../plugins/radios/radios.ario-plugin.desktop.in.h:1 msgid "Listen to webradios" msgstr "聆聽網路電台" #: ../plugins/wikipedia/ario-wikipedia-plugin.c:49 #: ../plugins/wikipedia/ario-wikipedia-plugin.c:50 msgid "Find artist on Wikipedia" msgstr "在維基百科尋找這位演出者" #: ../plugins/wikipedia/ario-wikipedia-plugin.c:172 msgid "Wikipedia Plugin - Configuration" msgstr "維基百科外掛模組 - 設定" #: ../plugins/wikipedia/ario-wikipedia-plugin.c:181 msgid "Wikipedia language :" msgstr "維基百科語言:" #: ../plugins/wikipedia/wikipedia.ario-plugin.desktop.in.h:1 msgid "A plugin to search current artist on wikipedia" msgstr "一個在維基百科尋找目前演出者的插件" #: ../plugins/wikipedia/wikipedia.ario-plugin.desktop.in.h:2 msgid "Wikipedia" msgstr "維基百科" #~ msgid "Remove a search criteria" #~ msgstr "移除搜尋條件" #~ msgid "Search songs in the library" #~ msgstr "在收藏中尋找歌曲" #~ msgid "Add a search criteria" #~ msgstr "加入搜尋條件" ario-1.6/po/Makefile.in.in0000644000175000017500000001536113226723436012341 00000000000000# Makefile for program source directory in GNU NLS utilities package. # Copyright (C) 1995, 1996, 1997 by Ulrich Drepper # Copyright (C) 2004-2008 Rodney Dawes # # This file may be copied and used freely without restrictions. It may # be used in projects which are not available under a GNU Public License, # but which still want to provide support for the GNU gettext functionality. # # - Modified by Owen Taylor to use GETTEXT_PACKAGE # instead of PACKAGE and to look for po2tbl in ./ not in intl/ # # - Modified by jacob berkman to install # Makefile.in.in and po2tbl.sed.in for use with glib-gettextize # # - Modified by Rodney Dawes for use with intltool # # We have the following line for use by intltoolize: # INTLTOOL_MAKEFILE GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ PACKAGE = @PACKAGE@ VERSION = @VERSION@ SHELL = /bin/sh srcdir = @srcdir@ top_srcdir = @top_srcdir@ top_builddir = @top_builddir@ VPATH = @srcdir@ prefix = @prefix@ exec_prefix = @exec_prefix@ datadir = @datadir@ datarootdir = @datarootdir@ libdir = @libdir@ DATADIRNAME = @DATADIRNAME@ itlocaledir = $(prefix)/$(DATADIRNAME)/locale subdir = po install_sh = @install_sh@ # Automake >= 1.8 provides @mkdir_p@. # Until it can be supposed, use the safe fallback: mkdir_p = $(install_sh) -d INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ GMSGFMT = @GMSGFMT@ MSGFMT = @MSGFMT@ XGETTEXT = @XGETTEXT@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ MSGMERGE = INTLTOOL_EXTRACT=$(INTLTOOL_EXTRACT) srcdir=$(srcdir) $(INTLTOOL_UPDATE) --gettext-package $(GETTEXT_PACKAGE) --dist GENPOT = INTLTOOL_EXTRACT=$(INTLTOOL_EXTRACT) srcdir=$(srcdir) $(INTLTOOL_UPDATE) --gettext-package $(GETTEXT_PACKAGE) --pot ALL_LINGUAS = @ALL_LINGUAS@ PO_LINGUAS=$(shell if test -r $(srcdir)/LINGUAS; then grep -v "^\#" $(srcdir)/LINGUAS; else echo "$(ALL_LINGUAS)"; fi) USER_LINGUAS=$(shell if test -n "$(LINGUAS)"; then LLINGUAS="$(LINGUAS)"; ALINGUAS="$(ALL_LINGUAS)"; for lang in $$LLINGUAS; do if test -n "`grep ^$$lang$$ $(srcdir)/LINGUAS 2>/dev/null`" -o -n "`echo $$ALINGUAS|tr ' ' '\n'|grep ^$$lang$$`"; then printf "$$lang "; fi; done; fi) USE_LINGUAS=$(shell if test -n "$(USER_LINGUAS)" -o -n "$(LINGUAS)"; then LLINGUAS="$(USER_LINGUAS)"; else if test -n "$(PO_LINGUAS)"; then LLINGUAS="$(PO_LINGUAS)"; else LLINGUAS="$(ALL_LINGUAS)"; fi; fi; for lang in $$LLINGUAS; do printf "$$lang "; done) POFILES=$(shell LINGUAS="$(PO_LINGUAS)"; for lang in $$LINGUAS; do printf "$$lang.po "; done) DISTFILES = Makefile.in.in POTFILES.in $(POFILES) EXTRA_DISTFILES = ChangeLog POTFILES.skip Makevars LINGUAS POTFILES = \ # This comment gets stripped out CATALOGS=$(shell LINGUAS="$(USE_LINGUAS)"; for lang in $$LINGUAS; do printf "$$lang.gmo "; done) .SUFFIXES: .SUFFIXES: .po .pox .gmo .mo .msg .cat .po.pox: $(MAKE) $(GETTEXT_PACKAGE).pot $(MSGMERGE) $< $(GETTEXT_PACKAGE).pot -o $*.pox .po.mo: $(MSGFMT) -o $@ $< .po.gmo: file=`echo $* | sed 's,.*/,,'`.gmo \ && rm -f $$file && $(GMSGFMT) -o $$file $< .po.cat: sed -f ../intl/po2msg.sed < $< > $*.msg \ && rm -f $@ && gencat $@ $*.msg all: all-@USE_NLS@ all-yes: $(CATALOGS) all-no: $(GETTEXT_PACKAGE).pot: $(POTFILES) $(GENPOT) install: install-data install-data: install-data-@USE_NLS@ install-data-no: all install-data-yes: all linguas="$(USE_LINGUAS)"; \ for lang in $$linguas; do \ dir=$(DESTDIR)$(itlocaledir)/$$lang/LC_MESSAGES; \ $(mkdir_p) $$dir; \ if test -r $$lang.gmo; then \ $(INSTALL_DATA) $$lang.gmo $$dir/$(GETTEXT_PACKAGE).mo; \ echo "installing $$lang.gmo as $$dir/$(GETTEXT_PACKAGE).mo"; \ else \ $(INSTALL_DATA) $(srcdir)/$$lang.gmo $$dir/$(GETTEXT_PACKAGE).mo; \ echo "installing $(srcdir)/$$lang.gmo as" \ "$$dir/$(GETTEXT_PACKAGE).mo"; \ fi; \ if test -r $$lang.gmo.m; then \ $(INSTALL_DATA) $$lang.gmo.m $$dir/$(GETTEXT_PACKAGE).mo.m; \ echo "installing $$lang.gmo.m as $$dir/$(GETTEXT_PACKAGE).mo.m"; \ else \ if test -r $(srcdir)/$$lang.gmo.m ; then \ $(INSTALL_DATA) $(srcdir)/$$lang.gmo.m \ $$dir/$(GETTEXT_PACKAGE).mo.m; \ echo "installing $(srcdir)/$$lang.gmo.m as" \ "$$dir/$(GETTEXT_PACKAGE).mo.m"; \ else \ true; \ fi; \ fi; \ done # Empty stubs to satisfy archaic automake needs dvi info tags TAGS ID: # Define this as empty until I found a useful application. install-exec installcheck: uninstall: linguas="$(USE_LINGUAS)"; \ for lang in $$linguas; do \ rm -f $(DESTDIR)$(itlocaledir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE).mo; \ rm -f $(DESTDIR)$(itlocaledir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE).mo.m; \ done check: all $(GETTEXT_PACKAGE).pot rm -f missing notexist srcdir=$(srcdir) $(INTLTOOL_UPDATE) -m if [ -r missing -o -r notexist ]; then \ exit 1; \ fi mostlyclean: rm -f *.pox $(GETTEXT_PACKAGE).pot *.old.po cat-id-tbl.tmp rm -f .intltool-merge-cache clean: mostlyclean distclean: clean rm -f Makefile Makefile.in POTFILES stamp-it rm -f *.mo *.msg *.cat *.cat.m *.gmo maintainer-clean: distclean @echo "This command is intended for maintainers to use;" @echo "it deletes files that may require special tools to rebuild." rm -f Makefile.in.in distdir = ../$(PACKAGE)-$(VERSION)/$(subdir) dist distdir: $(DISTFILES) dists="$(DISTFILES)"; \ extra_dists="$(EXTRA_DISTFILES)"; \ for file in $$extra_dists; do \ test -f $(srcdir)/$$file && dists="$$dists $(srcdir)/$$file"; \ done; \ for file in $$dists; do \ test -f $$file || file="$(srcdir)/$$file"; \ ln $$file $(distdir) 2> /dev/null \ || cp -p $$file $(distdir); \ done update-po: Makefile $(MAKE) $(GETTEXT_PACKAGE).pot tmpdir=`pwd`; \ linguas="$(USE_LINGUAS)"; \ for lang in $$linguas; do \ echo "$$lang:"; \ result="`$(MSGMERGE) -o $$tmpdir/$$lang.new.po $$lang`"; \ if $$result; then \ if cmp $(srcdir)/$$lang.po $$tmpdir/$$lang.new.po >/dev/null 2>&1; then \ rm -f $$tmpdir/$$lang.new.po; \ else \ if mv -f $$tmpdir/$$lang.new.po $$lang.po; then \ :; \ else \ echo "msgmerge for $$lang.po failed: cannot move $$tmpdir/$$lang.new.po to $$lang.po" 1>&2; \ rm -f $$tmpdir/$$lang.new.po; \ exit 1; \ fi; \ fi; \ else \ echo "msgmerge for $$lang.gmo failed!"; \ rm -f $$tmpdir/$$lang.new.po; \ fi; \ done Makefile POTFILES: stamp-it @if test ! -f $@; then \ rm -f stamp-it; \ $(MAKE) stamp-it; \ fi stamp-it: Makefile.in.in $(top_builddir)/config.status POTFILES.in cd $(top_builddir) \ && CONFIG_FILES=$(subdir)/Makefile.in CONFIG_HEADERS= CONFIG_LINKS= \ $(SHELL) ./config.status # Tell versions [3.59,3.63) of GNU make not to export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: ario-1.6/po/pt_BR.po0000644000175000017500000010453413226723434011234 00000000000000# Brazilian Portuguese translation for ario # Copyright (c) 2008 Rosetta Contributors and Canonical Ltd 2008 # This file is distributed under the same license as the ario package. # FIRST AUTHOR , 2008. # msgid "" msgstr "" "Project-Id-Version: ario\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2011-06-13 18:15+0200\n" "PO-Revision-Date: 2010-09-26 22:03+0000\n" "Last-Translator: André Gondim \n" "Language-Team: Brazilian Portuguese \n" "Language: pt_BR\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2011-06-13 16:32+0000\n" "X-Generator: Launchpad (build 13175)\n" #: ../data/ario.desktop.in.in.h:1 msgid "Ario music player" msgstr "Player de Música Ario" #: ../data/ario.desktop.in.in.h:2 msgid "Client application to mpd" msgstr "Aplicativo cliente para mpd" #: ../data/ui/browser-prefs.ui.h:1 msgid "Alphabetically" msgstr "Alfabeticamente" #: ../data/ui/browser-prefs.ui.h:2 msgid "By year" msgstr "Por ano" #: ../data/ui/browser-prefs.ui.h:3 msgid "Library Options" msgstr "Opções da Biblioteca" #: ../data/ui/browser-prefs.ui.h:4 msgid "Library Organisation" msgstr "Organização da Biblioteca" #: ../data/ui/browser-prefs.ui.h:5 msgid "Sort albums: " msgstr "Ordenar álbuns: " #: ../data/ui/connection-autodetect.ui.h:1 msgid "" "If you don't see your MPD server thanks to the automatic detection, you " "should check that zeroconf is activated in your MPD configuration or use the " "manual configuration." msgstr "" "Caso você não veja seu servidor MPD usando a configuração automática, check " "se o zeroconf está ativado na configuração do MPD ou use a configuração " "manual." #: ../data/ui/connection-autodetect.ui.h:2 msgid "Server autodetection" msgstr "Auto-detecção do servidor" #: ../data/ui/connection-widget.ui.h:1 msgid "Auto detect" msgstr "Auto detectar" #: ../data/ui/connection-widget.ui.h:2 msgid "Default" msgstr "Padrão" #: ../data/ui/connection-widget.ui.h:3 ../src/widgets/ario-firstlaunch.c:83 msgid "Host :" msgstr "Servidor :" #: ../data/ui/connection-widget.ui.h:4 msgid "Music directory :" msgstr "Diretório de músicas :" #: ../data/ui/connection-widget.ui.h:5 msgid "Music server is on the same computer as Ario" msgstr "O servidor de música está no mesmo computador que o Ario" #. Create the widgets #: ../data/ui/connection-widget.ui.h:6 ../plugins/radios/ario-radio.c:786 #: ../plugins/radios/ario-radio.c:922 msgid "Name :" msgstr "Nome :" #: ../data/ui/connection-widget.ui.h:7 #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:5 msgid "Password :" msgstr "Senha :" #: ../data/ui/connection-widget.ui.h:8 ../src/widgets/ario-firstlaunch.c:85 msgid "Port :" msgstr "Porta :" #: ../data/ui/connection-widget.ui.h:9 msgid "Server type :" msgstr "Tipo de servidor :" #: ../data/ui/connection-widget.ui.h:10 msgid "Timeout :" msgstr "" #: ../data/ui/connection-widget.ui.h:11 msgid "XMMS 2 (Experimental)" msgstr "XMMS 2 (Experimental)" #: ../data/ui/cover-prefs.ui.h:1 msgid "Automatically download the album cover of the playing song" msgstr "Fazer download automático da capa do álbum do som em execução" #: ../data/ui/cover-prefs.ui.h:2 ../src/shell/ario-shell-preferences.c:128 msgid "Covers" msgstr "Capas" #: ../data/ui/cover-prefs.ui.h:3 msgid "Covers Sources" msgstr "Fontes das Capas" #: ../data/ui/cover-prefs.ui.h:4 msgid "Show the covers in the albums list" msgstr "Mostrar as capas na lista de álbuns" #: ../data/ui/cover-prefs.ui.h:5 msgid "Use Amazon." msgstr "Usar Amazon." #: ../data/ui/connection-prefs.ui.h:1 #: ../src/shell/ario-shell-preferences.c:108 msgid "Connection" msgstr "Conexão" #: ../data/ui/connection-prefs.ui.h:2 msgid "_Autoconnect on startup" msgstr "_Auto-conectar ao iniciar" #: ../data/ui/connection-prefs.ui.h:3 ../src/shell/ario-shell.c:167 msgid "_Connect" msgstr "_Conectar" #: ../data/ui/connection-prefs.ui.h:4 ../src/shell/ario-shell.c:170 msgid "_Disconnect" msgstr "_Desconectar" #: ../data/ui/connection-assistant.ui.h:1 msgid "" "You need to specify a server to connect to. If you don't see your server " "thanks to the autodetection, you should check that zeroconf/avahi is " "activated in your server or use the manual configuration." msgstr "" "Você deve especificar um servidor para se conectar. Se você não vê o seu " "servidor graças à detecção automática, você deveria conferir se o zeroconf / " "avahi está ativado no seu servidor ou usar a configuração manual." #: ../data/ui/cover-progress.ui.h:1 ../data/ui/cover-select.ui.h:1 #: ../data/ui/song-infos.ui.h:1 ../plugins/information/information.ui.h:1 msgid "Album :" msgstr "Álbum :" #: ../data/ui/cover-progress.ui.h:2 ../data/ui/cover-select.ui.h:2 #: ../data/ui/lyrics-select.ui.h:1 ../data/ui/song-infos.ui.h:3 #: ../plugins/information/information.ui.h:3 #: ../plugins/radios/ario-radio.c:166 msgid "Artist :" msgstr "Artista :" #: ../data/ui/cover-progress.ui.h:3 msgid "Downloading cover" msgstr "Obtendo capa" #: ../data/ui/cover-select.ui.h:3 msgid "Local search" msgstr "Pesquisa local" #: ../data/ui/cover-select.ui.h:4 ../src/sources/ario-search.c:108 msgid "Search" msgstr "Pesquisar" #: ../data/ui/others-prefs.ui.h:1 msgid "Allow only one instance of Ario" msgstr "Permitir apenas uma instância do Ario" #: ../data/ui/others-prefs.ui.h:2 msgid "Hide window when close button is pressed" msgstr "Ocultar janela quando o botão fechar for pressionado" #: ../data/ui/others-prefs.ui.h:3 msgid "Interface" msgstr "Interface" #: ../data/ui/others-prefs.ui.h:4 msgid "Playlist at the right of tabs" msgstr "Lista de reprodução à direita das abas" #: ../data/ui/others-prefs.ui.h:5 msgid "Playlist below tabs" msgstr "Lista de reprodução abaixo das abas" #: ../data/ui/others-prefs.ui.h:6 msgid "Playlist within tabs" msgstr "Lista de reprodução junto às abas" #: ../data/ui/others-prefs.ui.h:7 msgid "Proxy" msgstr "Proxy" #: ../data/ui/others-prefs.ui.h:8 msgid "Proxy Address :" msgstr "Endereço do proxy :" #: ../data/ui/others-prefs.ui.h:9 msgid "Proxy Port :" msgstr "Porta do proxy :" #: ../data/ui/others-prefs.ui.h:10 msgid "Show tabs" msgstr "Mostrar abas" #: ../data/ui/others-prefs.ui.h:11 msgid "Use a proxy" msgstr "Usar um proxy" #: ../data/ui/lyrics-prefs.ui.h:1 msgid "Lyrics Sources" msgstr "Fontes de Letras" #: ../data/ui/lyrics-select.ui.h:2 ../data/ui/song-infos.ui.h:13 #: ../plugins/information/information.ui.h:6 msgid "Title :" msgstr "Título :" #: ../data/ui/playlist-prefs.ui.h:1 msgid "Add after playing song" msgstr "Adicionar depois de reproduzir" #: ../data/ui/playlist-prefs.ui.h:2 msgid "Add and play" msgstr "Adicionar e reproduzir" #: ../data/ui/playlist-prefs.ui.h:3 ../data/ui/similar-artists.ui.h:2 msgid "Add to playlist" msgstr "Adicionar à lista de reprodução" #. ARIO_TAG_ARTIST #: ../data/ui/playlist-prefs.ui.h:4 ../src/servers/ario-server.c:46 #: ../src/sources/ario-tree-albums.c:213 ../src/widgets/ario-playlist.c:541 #: ../src/widgets/ario-songlist.c:228 ../src/widgets/ario-tray-icon.c:565 msgid "Album" msgstr "Álbum" #: ../data/ui/playlist-prefs.ui.h:5 ../src/servers/ario-server.c:45 #: ../src/widgets/ario-playlist.c:541 ../src/widgets/ario-songlist.c:213 #: ../src/widgets/ario-tray-icon.c:563 msgid "Artist" msgstr "Artista" #. ARIO_TAG_GENRE #: ../data/ui/playlist-prefs.ui.h:6 ../src/servers/ario-server.c:52 #: ../src/widgets/ario-playlist.c:541 msgid "Date" msgstr "Data" #: ../data/ui/playlist-prefs.ui.h:7 ../src/widgets/ario-playlist.c:541 msgid "Disc" msgstr "Disco" #: ../data/ui/playlist-prefs.ui.h:8 msgid "Double click" msgstr "Clique duplo" #: ../data/ui/playlist-prefs.ui.h:9 ../src/widgets/ario-playlist.c:541 msgid "Duration" msgstr "Duração" #: ../data/ui/playlist-prefs.ui.h:10 ../src/widgets/ario-playlist.c:541 msgid "File" msgstr "Arquivo" #. ARIO_TAG_TRACK #. ARIO_TAG_NAME #: ../data/ui/playlist-prefs.ui.h:11 ../src/servers/ario-server.c:51 #: ../src/widgets/ario-playlist.c:541 msgid "Genre" msgstr "Gênero" #: ../data/ui/playlist-prefs.ui.h:12 msgid "Go to current song when a new song is played" msgstr "Ir para música atual quando uma outra é executada" #: ../data/ui/playlist-prefs.ui.h:13 msgid "Mode" msgstr "Modo" #: ../data/ui/playlist-prefs.ui.h:14 msgid "On double click:" msgstr "Ao dar duplo clique" #: ../data/ui/playlist-prefs.ui.h:15 ../src/sources/ario-storedplaylists.c:229 #: ../src/shell/ario-shell.c:222 ../src/shell/ario-shell-preferences.c:123 #: ../src/widgets/ario-playlist.c:272 msgid "Playlist" msgstr "Lista de reprodução" #: ../data/ui/playlist-prefs.ui.h:16 msgid "Playlist mode:" msgstr "Modo da lista de reprodução" #: ../data/ui/playlist-prefs.ui.h:17 msgid "Replace in playlist" msgstr "Substituir na lista de reprodução" #: ../data/ui/playlist-prefs.ui.h:18 msgid "Show rows:" msgstr "Exibir linhas:" #. ARIO_TAG_ALBUM_ARTIST #: ../data/ui/playlist-prefs.ui.h:19 ../src/servers/ario-server.c:48 #: ../src/sources/ario-tree-songs.c:145 ../src/widgets/ario-playlist.c:541 #: ../src/widgets/ario-songlist.c:198 ../src/widgets/ario-tray-icon.c:567 msgid "Title" msgstr "Título" #. ARIO_TAG_TITLE #: ../data/ui/playlist-prefs.ui.h:20 ../src/servers/ario-server.c:49 #: ../src/sources/ario-tree-songs.c:138 ../src/widgets/ario-playlist.c:541 msgid "Track" msgstr "Faixa" #: ../data/ui/server-prefs.ui.h:1 msgid "Audio outputs" msgstr "Saídas de áudio" #: ../data/ui/server-prefs.ui.h:2 msgid "Crossfade" msgstr "Crossfade" #: ../data/ui/server-prefs.ui.h:3 msgid "Database" msgstr "Banco de dados" #: ../data/ui/server-prefs.ui.h:4 msgid "Last updated:" msgstr "Última atualização:" #: ../data/ui/server-prefs.ui.h:5 msgid "Stop music on exit" msgstr "Parar música ao sair" #: ../data/ui/server-prefs.ui.h:6 msgid "Update on startup" msgstr "Atualizar ao iniciar" #: ../data/ui/server-prefs.ui.h:7 msgid "_Update" msgstr "At_ualizar" #: ../data/ui/server-prefs.ui.h:8 msgid "enable crossfade" msgstr "habilitar crossfade" #: ../data/ui/server-prefs.ui.h:9 msgid "fade time (s):" msgstr "tempo(s) de fade:" #: ../data/ui/server-prefs.ui.h:10 ../src/ario-util.c:50 ../src/ario-util.c:71 #: ../src/ario-util.c:93 ../plugins/information/information.ui.h:7 #, c-format msgid "n/a" msgstr "não disponível" #: ../data/ui/similar-artists.ui.h:1 msgid "Add all to playlist" msgstr "Adicionar tudo à lista de reprodução" #: ../data/ui/similar-artists.ui.h:3 msgid "Find on Last.fm" msgstr "Localizar no Last.fm" #: ../data/ui/stats-prefs.ui.h:1 msgid "Database play time :" msgstr "Tempo de execução do banco de dados:" #: ../data/ui/stats-prefs.ui.h:2 msgid "Number of albums :" msgstr "Número de álbuns :" #: ../data/ui/stats-prefs.ui.h:3 msgid "Number of artists :" msgstr "Número de artistas :" #: ../data/ui/stats-prefs.ui.h:4 msgid "Number of songs :" msgstr "Número de músicas :" #: ../data/ui/stats-prefs.ui.h:5 msgid "Play time :" msgstr "Tempo de execução :" #: ../data/ui/stats-prefs.ui.h:6 ../src/shell/ario-shell-preferences.c:148 msgid "Statistics" msgstr "Estatísticas" #: ../data/ui/stats-prefs.ui.h:7 msgid "Uptime :" msgstr "Uptime" #: ../data/ui/song-infos.ui.h:2 msgid "Album Artist :" msgstr "Artista do Álbum :" #: ../data/ui/song-infos.ui.h:4 msgid "Comment :" msgstr "Comentário :" #: ../data/ui/song-infos.ui.h:5 msgid "Composer :" msgstr "Compositor :" #: ../data/ui/song-infos.ui.h:6 msgid "Date :" msgstr "Data :" #: ../data/ui/song-infos.ui.h:7 msgid "Disc :" msgstr "Disco :" #: ../data/ui/song-infos.ui.h:8 msgid "Filename :" msgstr "Nome do arquivo :" #: ../data/ui/song-infos.ui.h:9 ../plugins/radios/ario-radio.c:169 msgid "Genre :" msgstr "Gênero :" #: ../data/ui/song-infos.ui.h:10 ../plugins/information/information.ui.h:4 msgid "Length :" msgstr "Duração :" #: ../data/ui/song-infos.ui.h:11 msgid "Performer :" msgstr "Artista :" #: ../data/ui/song-infos.ui.h:12 msgid "Song" msgstr "Música" #: ../data/ui/song-infos.ui.h:14 msgid "Track :" msgstr "Faixa :" #: ../data/ui/trayicon-prefs.ui.h:1 msgid "Do nothing" msgstr "Não faça nada" #: ../data/ui/trayicon-prefs.ui.h:2 msgid "Mute" msgstr "Mudo" #: ../data/ui/trayicon-prefs.ui.h:3 ../src/shell/ario-shell-preferences.c:138 msgid "Notification" msgstr "Notificação" #: ../data/ui/trayicon-prefs.ui.h:4 msgid "Notification on song change" msgstr "Notificar na escolha de som" #: ../data/ui/trayicon-prefs.ui.h:5 msgid "Notification time: " msgstr "Notificação de tempo: " #: ../data/ui/trayicon-prefs.ui.h:6 msgid "On middle button click on tray icon :" msgstr "Clicar em botão para ir icone ao tray:" #: ../data/ui/trayicon-prefs.ui.h:7 ../src/widgets/ario-header.c:241 msgid "Play next song" msgstr "Reproduzir a próxima música" #: ../data/ui/trayicon-prefs.ui.h:8 msgid "Play/Pause" msgstr "Reproduzir/Pausar" #: ../data/ui/trayicon-prefs.ui.h:9 msgid "Tray icon" msgstr "Icone no Tray" #: ../src/ario-main.c:67 msgid "Start minimized window" msgstr "Iniciar minimizado" #: ../src/ario-main.c:68 msgid "Start with specific profile" msgstr "" #. Format result string #: ../src/ario-util.c:110 msgid "seconds" msgstr "segundos" #: ../src/ario-util.c:112 msgid "minutes" msgstr "minutos" #: ../src/ario-util.c:118 msgid "hours" msgstr "horas" #: ../src/ario-util.c:124 msgid "days" msgstr "dias" #: ../src/covers/ario-cover.c:149 msgid "The cover already exists. Do you want to replace it?" msgstr "A capa do álbum já existe. Você deseja substituí-la?" #: ../src/covers/ario-cover-local.c:48 msgid "Music Directory" msgstr "Diretório de Música" #: ../src/playlist/ario-playlist-dynamic.c:49 msgid "songs of same artist" msgstr "músicas do mesmo artista" #: ../src/playlist/ario-playlist-dynamic.c:50 msgid "songs of same album" msgstr "músicas do mesmo álbum" #: ../src/playlist/ario-playlist-dynamic.c:51 msgid "songs of similar artists" msgstr "músicas de artistas similares" #: ../src/playlist/ario-playlist-dynamic.c:52 msgid "albums of same artists" msgstr "álbuns do mesmo artista" #: ../src/playlist/ario-playlist-dynamic.c:53 msgid "albums of similar artists" msgstr "álbuns de artistas similares" #: ../src/playlist/ario-playlist-dynamic.c:69 msgid "Dynamic Playlist" msgstr "Playlist Dinâmica" #: ../src/playlist/ario-playlist-queue.c:49 msgid "Queue Mode" msgstr "Modo Fila" #: ../src/playlist/ario-playlist-normal.c:47 msgid "Normal" msgstr "Normal" #: ../src/plugins/ario-plugin-manager.c:45 msgid "Plugin" msgstr "Plugin" #: ../src/plugins/ario-plugin-manager.c:46 msgid "Enabled" msgstr "Habilitado" #: ../src/plugins/ario-plugin-manager.c:480 ../src/shell/ario-shell.c:206 msgid "_About" msgstr "_Sobre" #: ../src/plugins/ario-plugin-manager.c:488 msgid "C_onfigure" msgstr "C_onfigurar" #: ../src/plugins/ario-plugin-manager.c:497 msgid "A_ctivate" msgstr "A_tivar" #: ../src/plugins/ario-plugin-manager.c:508 msgid "Ac_tivate All" msgstr "A_tivar todos" #: ../src/plugins/ario-plugin-manager.c:513 msgid "_Deactivate All" msgstr "_Desativar Todos" #: ../src/plugins/ario-plugin-manager.c:722 msgid "Active plugins" msgstr "Ativar plugins" #: ../src/preferences/ario-server-preferences.c:182 #: ../src/preferences/ario-stats-preferences.c:151 #: ../src/preferences/ario-stats-preferences.c:152 #: ../src/preferences/ario-stats-preferences.c:153 #: ../src/preferences/ario-stats-preferences.c:154 #: ../src/preferences/ario-stats-preferences.c:155 #: ../src/preferences/ario-stats-preferences.c:156 msgid "Not connected" msgstr "Desconectado" #: ../src/preferences/ario-server-preferences.c:187 #: ../src/preferences/ario-server-preferences.c:278 #: ../src/widgets/ario-status-bar.c:100 msgid "Updating..." msgstr "Atualizando..." #: ../src/servers/ario-mpd.c:410 ../src/servers/ario-mpd2.c:522 msgid "Connecting to server..." msgstr "Conectando ao servidor..." #: ../src/servers/ario-mpd.c:438 ../src/servers/ario-mpd2.c:550 msgid "Impossible to connect to server. Check the connection options." msgstr "" "Não foi possível conectar-se ao servidor. Verifique as opções de conexão." #. ARIO_TAG_ALBUM #: ../src/servers/ario-server.c:47 msgid "Album Artist" msgstr "Artista do Álbum" #. ARIO_TAG_DATE #: ../src/servers/ario-server.c:53 msgid "Composer" msgstr "Compositor" #. ARIO_TAG_COMPOSER #: ../src/servers/ario-server.c:54 msgid "Performer" msgstr "Intérprete" #. ARIO_TAG_PERFORMER #. ARIO_TAG_COMMENT #. ARIO_TAG_DISC #: ../src/servers/ario-server.c:57 msgid "Filename" msgstr "Nome do arquivo" #. ARIO_TAG_FILENAME #: ../src/servers/ario-server.c:58 msgid "Any" msgstr "Qualquer" #. impossible time or broken locale settings #: ../src/servers/ario-server.h:27 #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1235 msgid "Unknown" msgstr "Desconhecido" #: ../src/sources/ario-browser.c:82 ../src/sources/ario-search.c:70 #: ../src/sources/ario-storedplaylists.c:88 #: ../src/sources/ario-storedplaylists.c:106 #: ../plugins/filesystem/ario-filesystem.c:94 #: ../plugins/filesystem/ario-filesystem.c:109 #: ../plugins/radios/ario-radio.c:116 msgid "_Add to playlist" msgstr "_Adicionar à lista de reprodução" #: ../src/sources/ario-browser.c:85 ../src/sources/ario-search.c:73 #: ../src/sources/ario-storedplaylists.c:91 #: ../src/sources/ario-storedplaylists.c:109 #: ../plugins/filesystem/ario-filesystem.c:97 #: ../plugins/filesystem/ario-filesystem.c:112 #: ../plugins/radios/ario-radio.c:119 msgid "Add and _play" msgstr "Adicionar e _executar" #: ../src/sources/ario-browser.c:88 ../src/sources/ario-search.c:76 #: ../src/sources/ario-storedplaylists.c:94 #: ../src/sources/ario-storedplaylists.c:112 #: ../plugins/filesystem/ario-filesystem.c:100 #: ../plugins/filesystem/ario-filesystem.c:115 #: ../plugins/radios/ario-radio.c:122 msgid "_Replace in playlist" msgstr "_Substituir na playlist" #: ../src/sources/ario-browser.c:91 msgid "Get the covers" msgstr "Obtenha as capas" #: ../src/sources/ario-browser.c:94 msgid "_Delete the covers" msgstr "_Apagar as capas" #: ../src/sources/ario-browser.c:97 ../src/sources/ario-browser.c:100 #: ../src/sources/ario-search.c:79 ../src/sources/ario-storedplaylists.c:115 #: ../src/widgets/ario-playlist.c:151 #: ../plugins/filesystem/ario-filesystem.c:118 #: ../plugins/radios/ario-radio.c:131 msgid "_Properties" msgstr "_Propriedades" #: ../src/sources/ario-browser.c:125 ../src/shell/ario-shell-preferences.c:118 msgid "Library" msgstr "Biblioteca" #: ../src/sources/ario-storedplaylists.c:97 msgid "_Delete" msgstr "_Deletar" #: ../src/sources/ario-storedplaylists.c:151 msgid "Playlists" msgstr "Listas de Reprodução" #: ../src/sources/ario-storedplaylists.c:592 msgid "Are you sure that you want to delete all the selected playlists?" msgstr "" "Você tem certeza que deseja apagar todas as listas de reprodução " "selecionadas?" #: ../src/sources/ario-tree.c:856 msgid "Are you sure that you want to remove all the selected covers?" msgstr "Você tem certeza que quer remover todas as capas selecionadas?" #. Translators - This "Cover" refers to an album cover art #: ../src/sources/ario-tree-albums.c:199 msgid "Cover" msgstr "Capa" #: ../src/shell/ario-shell.c:160 msgid "_File" msgstr "_Arquivo" #: ../src/shell/ario-shell.c:161 msgid "_Edit" msgstr "_Editar" #: ../src/shell/ario-shell.c:162 msgid "_View" msgstr "_Ver" #: ../src/shell/ario-shell.c:163 msgid "_Control" msgstr "_Controle" #: ../src/shell/ario-shell.c:164 msgid "_Tool" msgstr "_Ferramenta" #: ../src/shell/ario-shell.c:165 msgid "_Help" msgstr "_Ajuda" #: ../src/shell/ario-shell.c:173 msgid "_Update database" msgstr "At_ualizar banco de dados" #: ../src/shell/ario-shell.c:176 msgid "_Quit" msgstr "_Sair" #: ../src/shell/ario-shell.c:179 msgid "Plu_gins" msgstr "Plu_gins" #: ../src/shell/ario-shell.c:182 msgid "Prefere_nces" msgstr "Preferê_ncias" #: ../src/shell/ario-shell.c:185 msgid "_Change current album cover" msgstr "_Mudar a capa atual do album" #: ../src/shell/ario-shell.c:188 msgid "Download album _covers" msgstr "Baixar capas de album" #: ../src/shell/ario-shell.c:191 msgid "Find similar artists" msgstr "Procurar artistas similares" #: ../src/shell/ario-shell.c:194 msgid "Add similar songs to playlist" msgstr "Adicionar músicas similares à lista de execução" #: ../src/shell/ario-shell.c:197 msgid "Go to _previous tab" msgstr "Ir _para a aba anterior" #: ../src/shell/ario-shell.c:200 msgid "Go to _next tab" msgstr "Ir para a próxi_ma aba" #: ../src/shell/ario-shell.c:203 msgid "Show _lyrics" msgstr "Mostrar _letras" #: ../src/shell/ario-shell.c:209 msgid "_Translate this application..." msgstr "_Traduza esta aplicação" #: ../src/shell/ario-shell.c:216 msgid "S_tatusbar" msgstr "Barra de _Status" #: ../src/shell/ario-shell.c:219 msgid "Upper part" msgstr "Parte de cima" #: ../src/shell/ario-shell.c:825 msgid "GTK client for MPD" msgstr "Cliente GTK para MPD" #: ../src/shell/ario-shell.c:826 msgid "translator-credits" msgstr "" "Launchpad Contributions:\n" " Acabias https://launchpad.net/~acabiasml\n" " Aluísio Augusto Silva Gonçalves https://launchpad.net/~kalug\n" " André Gondim https://launchpad.net/~andregondim\n" " Enrico Nicoletto https://launchpad.net/~liverig\n" " Karlos Beto https://launchpad.net/~krezeberto\n" " Marc Pavot https://launchpad.net/~marc-pavot\n" " Marcelo Bianchi https://launchpad.net/~m-tchelo\n" " Marcos https://launchpad.net/~marcosfsimon\n" " Mário Júnior https://launchpad.net/~mjr-02\n" " Rafael Porto Rodrigues https://launchpad.net/~rafporto\n" " Rosiney Gomes Pereira https://launchpad.net/~rosiney-gp\n" " Tydor https://launchpad.net/~eduardo-tydor\n" " Wesley Soares https://launchpad.net/~wesley.soares" #. Create plugins configuration dialog window #: ../src/shell/ario-shell.c:1278 msgid "Configure Plugins" msgstr "Configurar Plugins" #. Set window properties #: ../src/shell/ario-shell-coverdownloader.c:187 msgid "Music Player Cover Download" msgstr "Baixador de Capas do Tocador de Musica" #: ../src/shell/ario-shell-coverdownloader.c:332 msgid "Download Finished!" msgstr "Download finalizado!" #. We show the numbers of covers found and not found #: ../src/shell/ario-shell-coverdownloader.c:335 #, c-format msgid "" "%i covers found\n" "%i covers not found\n" "%i covers already exist" msgstr "" "%i capas encontradas\n" "%i capas não encontradas\n" "%i capas já existentes" #. Set window properties #: ../src/shell/ario-shell-coverselect.c:242 msgid "Cover Download" msgstr "Download de Capa" #: ../src/shell/ario-shell-coverselect.c:559 msgid "Error reading file" msgstr "Erro ao ler arquivo" #: ../src/shell/ario-shell-coverselect.c:584 msgid "Error saving file" msgstr "Erro ao salvar o arquivo" #: ../src/shell/ario-shell-lyrics.c:43 #: ../src/shell/ario-shell-preferences.c:133 #: ../src/shell/ario-shell-songinfos.c:272 msgid "Lyrics" msgstr "Letras" #: ../src/shell/ario-shell-lyricsselect.c:152 msgid "Lyrics Download" msgstr "Download de letras" #: ../src/shell/ario-shell-preferences.c:81 msgid "Ario Preferences" msgstr "Preferncias do Ario" #: ../src/shell/ario-shell-preferences.c:113 msgid "Server" msgstr "Servidor" #: ../src/shell/ario-shell-preferences.c:143 msgid "Others" msgstr "Outros" #: ../src/shell/ario-shell-similarartists.c:318 #, c-format msgid "%d songs" msgstr "%d músicas" #. Set window properties #. Set window title #: ../src/shell/ario-shell-songinfos.c:249 #: ../src/shell/ario-shell-songinfos.c:266 #: ../src/shell/ario-shell-songinfos.c:544 msgid "Song Properties" msgstr "Propriedades da Música" #: ../src/shell/ario-shell-songinfos.c:455 msgid "Error saving tags of file:" msgstr "Erro ao salvar aquivos de tags:" #: ../src/widgets/ario-connection-widget.c:652 msgid "You must select a server." msgstr "Você deve selecionar um servidor" #: ../src/widgets/ario-connection-widget.c:702 msgid "New Profile" msgstr "Novo Perfil" #: ../src/widgets/ario-firstlaunch.c:82 msgid "The following configuration will be used:" msgstr "A seguinte configuração será utilizada:" #: ../src/widgets/ario-firstlaunch.c:106 msgid "" "It is the first time you launch Ario.\n" "This assistant will help you to configure it." msgstr "" "Esta é a primeira vez que você usa o Ario.\n" "Este assistente o ajudará a configurá-lo." #: ../src/widgets/ario-firstlaunch.c:111 msgid "Welcome to Ario" msgstr "Bem vindo ao Ario" #: ../src/widgets/ario-firstlaunch.c:129 msgid "Configuration" msgstr "Configuração" #: ../src/widgets/ario-firstlaunch.c:141 msgid "Confirmation" msgstr "Confirmação" #: ../src/widgets/ario-header.c:66 ../src/widgets/ario-tray-icon.h:42 #, c-format msgid "from %s by %s" msgstr "de %s por %s" #: ../src/widgets/ario-header.c:199 msgid "Play previous song" msgstr "Tocar música anterior" #: ../src/widgets/ario-header.c:217 msgid "Play/Pause the music" msgstr "Tocar/Pausar a música" #: ../src/widgets/ario-header.c:229 msgid "Stop the music" msgstr "Parar a musica" #. Translators - This " of " is used to count the elapsed time #. of a song like in "00:59 of 03:24" #: ../src/widgets/ario-header.c:310 ../src/widgets/ario-tooltip.c:321 msgid " of " msgstr " de " #: ../src/widgets/ario-header.c:323 msgid "Toggle random on/off" msgstr "Ligar/Desligar modo aleatório" #: ../src/widgets/ario-header.c:335 msgid "Toggle repeat on/off" msgstr "Ligar/Desligar repetiçao" #: ../src/widgets/ario-header.c:340 msgid "Change the music volume" msgstr "Alterar o volume" #: ../src/widgets/ario-lyrics-editor.c:323 msgid "Downloading lyrics..." msgstr "Baixando letras..." #: ../src/widgets/ario-lyrics-editor.c:351 msgid "Lyrics not found" msgstr "Letras não encontradas" #: ../src/widgets/ario-playlist.c:133 msgid "_Clear" msgstr "_Limpar" #: ../src/widgets/ario-playlist.c:136 msgid "_Shuffle" msgstr "_Embaralhar" #: ../src/widgets/ario-playlist.c:139 msgid "Cr_op" msgstr "C_ortar" #: ../src/widgets/ario-playlist.c:142 msgid "_Search in playlist" msgstr "Procurar a li_sta de reprodução" #: ../src/widgets/ario-playlist.c:145 msgid "_Remove" msgstr "_Remover" #: ../src/widgets/ario-playlist.c:148 msgid "_Save" msgstr "_Salvar" #: ../src/widgets/ario-playlist.c:154 msgid "_Go to playing song" msgstr "_Vá para a canção em execução" #: ../src/widgets/ario-playlist.c:667 msgid "Filter:" msgstr "Filtro:" #. Create the widgets #: ../src/widgets/ario-playlist.c:1700 msgid "Save playlist" msgstr "Salvar lista de execução" #: ../src/widgets/ario-playlist.c:1710 msgid "Playlist name :" msgstr "Nome da lista de execução :" #: ../src/widgets/ario-playlist.c:1746 msgid "Playlist already exists. Do you want to overwrite it?" msgstr "A lista de execução já existe. Deeja sobreescrevê-la?" #. Format status bar message #: ../src/widgets/ario-status-bar.c:96 msgid "Songs" msgstr "Músicas" #: ../src/widgets/ario-tray-icon.c:102 msgid "_Play" msgstr "_Tocar" #: ../src/widgets/ario-tray-icon.c:105 msgid "_Pause" msgstr "_Pausar" #: ../src/widgets/ario-tray-icon.c:108 msgid "_Stop" msgstr "_Parar" #: ../src/widgets/ario-tray-icon.c:111 msgid "_Next" msgstr "_Próxima" #: ../src/widgets/ario-tray-icon.c:114 msgid "P_revious" msgstr "A_nterior" #: ../src/widgets/ario-tray-icon.h:41 msgid "Not playing" msgstr "Parado" #. Translators: "friendly time" string for the current day, strftime format. like "Today 12:34 am" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1179 msgid "Today %I:%M %p" msgstr "Hoje %I:%M %p" #. Translators: "friendly time" string for the previous day, #. * strftime format. e.g. "Yesterday 12:34 am" #. #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1192 msgid "Yesterday %I:%M %p" msgstr "Ontem %I:%M %p" #. Translators: "friendly time" string for a day in the current week, #. * strftime format. e.g. "Wed 12:34 am" #. #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1208 msgid "%a %I:%M %p" msgstr "%a %I:%M %p" #. Translators: "friendly time" string for a day in the current year, #. * strftime format. e.g. "Feb 12 12:34 am" #. #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1220 msgid "%b %d %I:%M %p" msgstr "%b %d %I:%M %p" #. Translators: "friendly time" string for a day in a different year, #. * strftime format. e.g. "Feb 12 1997" #. #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1225 msgid "%b %d %Y" msgstr "%b %d %Y" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1311 #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:4 msgid "Never" msgstr "Nunca" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1335 msgid "OK" msgstr "OK" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1338 msgid "Logging in" msgstr "Logando" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1341 msgid "Request failed" msgstr "Requisição falhou" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1344 msgid "Incorrect username" msgstr "Nome de usuário incorreto" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1347 msgid "Incorrect password" msgstr "Senha incorreta" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1350 msgid "Handshake failed" msgstr "Falha no protocolo de cumprimento (handshake)" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1353 msgid "Client update required" msgstr "Atualização de cliente requerida" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1356 msgid "Track submission failed" msgstr "Envio da faixa falhou" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1359 msgid "Queue is too long" msgstr "A fila é muito grande" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1362 msgid "Track submission failed too many times" msgstr "O envio da música falhou muitas vezes" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1417 msgid "Audioscrobbler preferences" msgstr "Preferências do Audioscrobbler" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:1 msgid "Disabled" msgstr "Desabilitado" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:2 msgid "Last submission time:" msgstr "Último envio em:" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:3 msgid "Last.fm Profile" msgstr "Perfil no Last.fm" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:6 msgid "Queued tracks:" msgstr "Faixas na fila:" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:7 msgid "Status:" msgstr "Status:" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:8 msgid "Tracks submitted:" msgstr "Faixas enviadas:" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:9 #: ../plugins/radios/ario-radio.c:168 msgid "Username :" msgstr "Nome de usuário :" #: ../plugins/audioscrobbler/audioscrobbler.ario-plugin.desktop.in.h:1 msgid "Last.fm" msgstr "Last.fm" #: ../plugins/audioscrobbler/audioscrobbler.ario-plugin.desktop.in.h:2 msgid "Submits song information to last.fm" msgstr "Submeta informações de música para last.fm" #: ../plugins/filesystem/ario-filesystem.c:158 msgid "File System" msgstr "Arquivo: %s" #: ../plugins/filesystem/ario-filesystem.c:422 msgid "Music" msgstr "Música" #: ../plugins/filesystem/filesystem.ario-plugin.desktop.in.h:1 msgid "A File System Browser" msgstr "Um Navegador de Sistema de Arquivo" #: ../plugins/filesystem/filesystem.ario-plugin.desktop.in.h:2 msgid "File System Browser" msgstr "Navegador de Sistema de Arquivo" #: ../plugins/information/ario-information.c:114 msgid "Information" msgstr "Informações" #: ../plugins/information/information.ario-plugin.desktop.in.h:1 msgid "Display various information about the playing song" msgstr "Exibe várias informações sobre a música que está tocando" #: ../plugins/information/information.ario-plugin.desktop.in.h:2 msgid "Song Information" msgstr "Informações da música" #: ../plugins/information/information.ui.h:2 msgid "Albums from this artist:" msgstr "Álbuns deste artista:" #: ../plugins/information/information.ui.h:5 msgid "Lyrics:" msgstr "Letras:" #: ../plugins/libnotify/libnotify.ario-plugin.desktop.in.h:1 msgid "Add libnotify support" msgstr "Adicionar suporte libnotify" #: ../plugins/libnotify/libnotify.ario-plugin.desktop.in.h:2 msgid "Libnotify" msgstr "Libnotify" #: ../plugins/mmkeys/mmkeys.ario-plugin.desktop.in.h:1 msgid "Add multimedia keys support" msgstr "Acrescentar suporte de chave de multimidia" #: ../plugins/mmkeys/mmkeys.ario-plugin.desktop.in.h:2 msgid "Multimedia Keys" msgstr "Chave de Multimidia" #: ../plugins/radios/ario-radio.c:125 msgid "Add a _new radio" msgstr "Acrescente uma nova rádio" #: ../plugins/radios/ario-radio.c:128 msgid "_Delete this radios" msgstr "_Apague esta rádio" #: ../plugins/radios/ario-radio.c:166 msgid "Last.fm: Radio of similar artists" msgstr "Last.fm: Rádios de artistas similares" #: ../plugins/radios/ario-radio.c:167 msgid "Last.fm: Radio of group" msgstr "Last.fm: Grupo de rádios" #: ../plugins/radios/ario-radio.c:167 msgid "Group :" msgstr "Grupo :" #: ../plugins/radios/ario-radio.c:168 msgid "Last.fm: Personal radio" msgstr "Last.fm: Rádio Pessoal" #: ../plugins/radios/ario-radio.c:169 msgid "Last.fm: Radio of genre" msgstr "Last.fm: Rádio de gênero" #: ../plugins/radios/ario-radio.c:184 #: ../plugins/radios/radios.ario-plugin.desktop.in.h:2 msgid "Web Radios" msgstr "Rádios da Web" #: ../plugins/radios/ario-radio.c:246 msgid "Internet Radios" msgstr "Rádios da Internet" #. Create dialog window #: ../plugins/radios/ario-radio.c:774 msgid "Edit a WebRadio" msgstr "Edite uma WebRadio" #: ../plugins/radios/ario-radio.c:787 ../plugins/radios/ario-radio.c:923 msgid "URL :" msgstr "URL :" #: ../plugins/radios/ario-radio.c:853 ../plugins/radios/ario-radio.c:997 msgid "Bad parameters. You must specify a name and a URL for the radio." msgstr "" "Parâmetros incorretos. Você deve informar um nome e uma URL para rádio." #. Create dialog window #: ../plugins/radios/ario-radio.c:883 msgid "Add a WebRadio" msgstr "Acrescente uma WebRadio" #: ../plugins/radios/ario-radio.c:1083 msgid "Are you sure you want to delete all the selected radios?" msgstr "Você tem certeza que deseja apagar as rádios selecionadas?" #: ../plugins/radios/radios.ario-plugin.desktop.in.h:1 msgid "Listen to webradios" msgstr "Ouça as webradios" #: ../plugins/wikipedia/ario-wikipedia-plugin.c:49 #: ../plugins/wikipedia/ario-wikipedia-plugin.c:50 msgid "Find artist on Wikipedia" msgstr "Encontrar artista na Wikipedia" #: ../plugins/wikipedia/ario-wikipedia-plugin.c:172 msgid "Wikipedia Plugin - Configuration" msgstr "Plugin da Wikipedia - Configuração" #: ../plugins/wikipedia/ario-wikipedia-plugin.c:181 msgid "Wikipedia language :" msgstr "Idioma da Wikipedia :" #: ../plugins/wikipedia/wikipedia.ario-plugin.desktop.in.h:1 msgid "A plugin to search current artist on wikipedia" msgstr "Um plugin para encontrar o artista atual na Wikipedia" #: ../plugins/wikipedia/wikipedia.ario-plugin.desktop.in.h:2 msgid "Wikipedia" msgstr "Wikipédia" #~ msgid "Search songs in the library" #~ msgstr "Procurar músicas na biblioteca" #~ msgid "Add a search criteria" #~ msgstr "Adicionar um critério de busca" #~ msgid "Remove a search criteria" #~ msgstr "Remover um critério de busca" ario-1.6/po/hu.po0000644000175000017500000010470413226723435010642 00000000000000# Hungarian translation for ario # Copyright (c) 2008 Rosetta Contributors and Canonical Ltd 2008 # This file is distributed under the same license as the ario package. # FIRST AUTHOR , 2008. # msgid "" msgstr "" "Project-Id-Version: ario\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2011-06-13 18:15+0200\n" "PO-Revision-Date: 2010-07-25 04:04+0000\n" "Last-Translator: Krasznecz Zoltán \n" "Language-Team: Hungarian \n" "Language: hu\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2011-06-13 16:32+0000\n" "X-Generator: Launchpad (build 13175)\n" #: ../data/ario.desktop.in.in.h:1 msgid "Ario music player" msgstr "Ario zenelejátszó" #: ../data/ario.desktop.in.in.h:2 msgid "Client application to mpd" msgstr "Kliens alkalmazás az mpd-hez" #: ../data/ui/browser-prefs.ui.h:1 msgid "Alphabetically" msgstr "ABC sorrend" #: ../data/ui/browser-prefs.ui.h:2 msgid "By year" msgstr "Év szerint" #: ../data/ui/browser-prefs.ui.h:3 msgid "Library Options" msgstr "Gyűjtemény opciók" #: ../data/ui/browser-prefs.ui.h:4 msgid "Library Organisation" msgstr "Gyűjtemény rendezése" #: ../data/ui/browser-prefs.ui.h:5 msgid "Sort albums: " msgstr "Albumok rendezése: " #: ../data/ui/connection-autodetect.ui.h:1 msgid "" "If you don't see your MPD server thanks to the automatic detection, you " "should check that zeroconf is activated in your MPD configuration or use the " "manual configuration." msgstr "" "Ha nem látja az MPD szerverét az automatikus érzékelésnek köszönhetően, " "ellenőrizze, hogy a zeroconf aktív az MPD konfigurációjában, vagy használja " "a kézi beállításokat." #: ../data/ui/connection-autodetect.ui.h:2 msgid "Server autodetection" msgstr "Kiszolgáló automatikus felismerése" #: ../data/ui/connection-widget.ui.h:1 msgid "Auto detect" msgstr "Automatikus felismerés" #: ../data/ui/connection-widget.ui.h:2 msgid "Default" msgstr "Alapértelmezett" #: ../data/ui/connection-widget.ui.h:3 ../src/widgets/ario-firstlaunch.c:83 msgid "Host :" msgstr "Hoszt :" #: ../data/ui/connection-widget.ui.h:4 msgid "Music directory :" msgstr "Zene könyvtár :" #: ../data/ui/connection-widget.ui.h:5 msgid "Music server is on the same computer as Ario" msgstr "A zene kiszolgáló ugyanazon a gépen van, mint az Ario" #. Create the widgets #: ../data/ui/connection-widget.ui.h:6 ../plugins/radios/ario-radio.c:786 #: ../plugins/radios/ario-radio.c:922 msgid "Name :" msgstr "Név :" #: ../data/ui/connection-widget.ui.h:7 #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:5 msgid "Password :" msgstr "Jelszó :" #: ../data/ui/connection-widget.ui.h:8 ../src/widgets/ario-firstlaunch.c:85 msgid "Port :" msgstr "Port :" #: ../data/ui/connection-widget.ui.h:9 msgid "Server type :" msgstr "Szervertípus :" #: ../data/ui/connection-widget.ui.h:10 msgid "Timeout :" msgstr "" #: ../data/ui/connection-widget.ui.h:11 msgid "XMMS 2 (Experimental)" msgstr "XMMS 2 (Kísérleti állapotú)" #: ../data/ui/cover-prefs.ui.h:1 msgid "Automatically download the album cover of the playing song" msgstr "Automatikusan letölti az éppen hallgatott dal CD borítóját" #: ../data/ui/cover-prefs.ui.h:2 ../src/shell/ario-shell-preferences.c:128 msgid "Covers" msgstr "Borítók" #: ../data/ui/cover-prefs.ui.h:3 msgid "Covers Sources" msgstr "Borító források" #: ../data/ui/cover-prefs.ui.h:4 msgid "Show the covers in the albums list" msgstr "Borítók mutatása az album listában" #: ../data/ui/cover-prefs.ui.h:5 msgid "Use Amazon." msgstr "Amazon használata." #: ../data/ui/connection-prefs.ui.h:1 #: ../src/shell/ario-shell-preferences.c:108 msgid "Connection" msgstr "Kapcsolat" #: ../data/ui/connection-prefs.ui.h:2 msgid "_Autoconnect on startup" msgstr "_Kapcsolódás indításkor" #: ../data/ui/connection-prefs.ui.h:3 ../src/shell/ario-shell.c:167 msgid "_Connect" msgstr "Kap_csolódás" #: ../data/ui/connection-prefs.ui.h:4 ../src/shell/ario-shell.c:170 msgid "_Disconnect" msgstr "_Kapcsolat bontása" #: ../data/ui/connection-assistant.ui.h:1 msgid "" "You need to specify a server to connect to. If you don't see your server " "thanks to the autodetection, you should check that zeroconf/avahi is " "activated in your server or use the manual configuration." msgstr "" "Meg kell határozni egy szervert a kapcsolódáshoz. Ha nem látja a kiszolgálót " "az automatikus érzékelésnek köszönhetően, ellenőrizze, hogy a zeroconf/avahi " "aktív-e a kiszolgálón, vagy használjon kézi beállításokat." #: ../data/ui/cover-progress.ui.h:1 ../data/ui/cover-select.ui.h:1 #: ../data/ui/song-infos.ui.h:1 ../plugins/information/information.ui.h:1 msgid "Album :" msgstr "Album :" #: ../data/ui/cover-progress.ui.h:2 ../data/ui/cover-select.ui.h:2 #: ../data/ui/lyrics-select.ui.h:1 ../data/ui/song-infos.ui.h:3 #: ../plugins/information/information.ui.h:3 #: ../plugins/radios/ario-radio.c:166 msgid "Artist :" msgstr "Előadó :" #: ../data/ui/cover-progress.ui.h:3 msgid "Downloading cover" msgstr "Borító letöltése" #: ../data/ui/cover-select.ui.h:3 msgid "Local search" msgstr "Helyi keresés" #: ../data/ui/cover-select.ui.h:4 ../src/sources/ario-search.c:108 msgid "Search" msgstr "Keresés" #: ../data/ui/others-prefs.ui.h:1 msgid "Allow only one instance of Ario" msgstr "Csak egy példány engedélyezése az Ario-ból" #: ../data/ui/others-prefs.ui.h:2 msgid "Hide window when close button is pressed" msgstr "Ablak elrejtése ha a bezárás gombra kattint" #: ../data/ui/others-prefs.ui.h:3 msgid "Interface" msgstr "Kezelőfelület" #: ../data/ui/others-prefs.ui.h:4 msgid "Playlist at the right of tabs" msgstr "" #: ../data/ui/others-prefs.ui.h:5 msgid "Playlist below tabs" msgstr "" #: ../data/ui/others-prefs.ui.h:6 msgid "Playlist within tabs" msgstr "" #: ../data/ui/others-prefs.ui.h:7 msgid "Proxy" msgstr "Proxy" #: ../data/ui/others-prefs.ui.h:8 msgid "Proxy Address :" msgstr "Proxy cím :" #: ../data/ui/others-prefs.ui.h:9 msgid "Proxy Port :" msgstr "Proxy port :" #: ../data/ui/others-prefs.ui.h:10 msgid "Show tabs" msgstr "Fülek megjelenítése" #: ../data/ui/others-prefs.ui.h:11 msgid "Use a proxy" msgstr "Proxy használata" #: ../data/ui/lyrics-prefs.ui.h:1 msgid "Lyrics Sources" msgstr "Dalszöveg források" #: ../data/ui/lyrics-select.ui.h:2 ../data/ui/song-infos.ui.h:13 #: ../plugins/information/information.ui.h:6 msgid "Title :" msgstr "Cím :" #: ../data/ui/playlist-prefs.ui.h:1 msgid "Add after playing song" msgstr "" #: ../data/ui/playlist-prefs.ui.h:2 msgid "Add and play" msgstr "Hozzáadás és lejátszás" #: ../data/ui/playlist-prefs.ui.h:3 ../data/ui/similar-artists.ui.h:2 msgid "Add to playlist" msgstr "Hozzáadás a lejátszólistához" #. ARIO_TAG_ARTIST #: ../data/ui/playlist-prefs.ui.h:4 ../src/servers/ario-server.c:46 #: ../src/sources/ario-tree-albums.c:213 ../src/widgets/ario-playlist.c:541 #: ../src/widgets/ario-songlist.c:228 ../src/widgets/ario-tray-icon.c:565 msgid "Album" msgstr "Album" #: ../data/ui/playlist-prefs.ui.h:5 ../src/servers/ario-server.c:45 #: ../src/widgets/ario-playlist.c:541 ../src/widgets/ario-songlist.c:213 #: ../src/widgets/ario-tray-icon.c:563 msgid "Artist" msgstr "Előadó" #. ARIO_TAG_GENRE #: ../data/ui/playlist-prefs.ui.h:6 ../src/servers/ario-server.c:52 #: ../src/widgets/ario-playlist.c:541 msgid "Date" msgstr "Dátum" #: ../data/ui/playlist-prefs.ui.h:7 ../src/widgets/ario-playlist.c:541 msgid "Disc" msgstr "Lemez" #: ../data/ui/playlist-prefs.ui.h:8 msgid "Double click" msgstr "Dupla kattintás" #: ../data/ui/playlist-prefs.ui.h:9 ../src/widgets/ario-playlist.c:541 msgid "Duration" msgstr "Időtartam" #: ../data/ui/playlist-prefs.ui.h:10 ../src/widgets/ario-playlist.c:541 msgid "File" msgstr "Fájl" #. ARIO_TAG_TRACK #. ARIO_TAG_NAME #: ../data/ui/playlist-prefs.ui.h:11 ../src/servers/ario-server.c:51 #: ../src/widgets/ario-playlist.c:541 msgid "Genre" msgstr "Műfaj" #: ../data/ui/playlist-prefs.ui.h:12 msgid "Go to current song when a new song is played" msgstr "Ugrás a jelenlegi számra ha új szám kerül lejátszásra" #: ../data/ui/playlist-prefs.ui.h:13 msgid "Mode" msgstr "Mód" #: ../data/ui/playlist-prefs.ui.h:14 msgid "On double click:" msgstr "Dupla kattintás esetén" #: ../data/ui/playlist-prefs.ui.h:15 ../src/sources/ario-storedplaylists.c:229 #: ../src/shell/ario-shell.c:222 ../src/shell/ario-shell-preferences.c:123 #: ../src/widgets/ario-playlist.c:272 msgid "Playlist" msgstr "Lejátszólista" #: ../data/ui/playlist-prefs.ui.h:16 msgid "Playlist mode:" msgstr "Lejátszólista mód" #: ../data/ui/playlist-prefs.ui.h:17 msgid "Replace in playlist" msgstr "Helyettesítés a lejátszólistában" #: ../data/ui/playlist-prefs.ui.h:18 msgid "Show rows:" msgstr "Sorok mutatása" #. ARIO_TAG_ALBUM_ARTIST #: ../data/ui/playlist-prefs.ui.h:19 ../src/servers/ario-server.c:48 #: ../src/sources/ario-tree-songs.c:145 ../src/widgets/ario-playlist.c:541 #: ../src/widgets/ario-songlist.c:198 ../src/widgets/ario-tray-icon.c:567 msgid "Title" msgstr "Cím" #. ARIO_TAG_TITLE #: ../data/ui/playlist-prefs.ui.h:20 ../src/servers/ario-server.c:49 #: ../src/sources/ario-tree-songs.c:138 ../src/widgets/ario-playlist.c:541 msgid "Track" msgstr "Szám" #: ../data/ui/server-prefs.ui.h:1 msgid "Audio outputs" msgstr "Audio kimenetek" #: ../data/ui/server-prefs.ui.h:2 msgid "Crossfade" msgstr "Átkeverés" #: ../data/ui/server-prefs.ui.h:3 msgid "Database" msgstr "Adatbázis" #: ../data/ui/server-prefs.ui.h:4 msgid "Last updated:" msgstr "Utolsó frissítés:" #: ../data/ui/server-prefs.ui.h:5 msgid "Stop music on exit" msgstr "Zene leállítása kilépéskor" #: ../data/ui/server-prefs.ui.h:6 msgid "Update on startup" msgstr "Frissítés induláskor" #: ../data/ui/server-prefs.ui.h:7 msgid "_Update" msgstr "_Frissítés" #: ../data/ui/server-prefs.ui.h:8 msgid "enable crossfade" msgstr "átkeverés engedélyezése" #: ../data/ui/server-prefs.ui.h:9 msgid "fade time (s):" msgstr "átkeverési idő" #: ../data/ui/server-prefs.ui.h:10 ../src/ario-util.c:50 ../src/ario-util.c:71 #: ../src/ario-util.c:93 ../plugins/information/information.ui.h:7 #, c-format msgid "n/a" msgstr "n/a" #: ../data/ui/similar-artists.ui.h:1 msgid "Add all to playlist" msgstr "Az összes hozzáadása lejátszólistához" #: ../data/ui/similar-artists.ui.h:3 msgid "Find on Last.fm" msgstr "Keresés a Last.fm -en" #: ../data/ui/stats-prefs.ui.h:1 msgid "Database play time :" msgstr "Adatbázis lejátszási időtartam :" #: ../data/ui/stats-prefs.ui.h:2 msgid "Number of albums :" msgstr "Albumok száma :" #: ../data/ui/stats-prefs.ui.h:3 msgid "Number of artists :" msgstr "Előadók száma :" #: ../data/ui/stats-prefs.ui.h:4 msgid "Number of songs :" msgstr "Dalok száma :" #: ../data/ui/stats-prefs.ui.h:5 msgid "Play time :" msgstr "Lejátszási időtartam :" #: ../data/ui/stats-prefs.ui.h:6 ../src/shell/ario-shell-preferences.c:148 msgid "Statistics" msgstr "Statisztikák" #: ../data/ui/stats-prefs.ui.h:7 msgid "Uptime :" msgstr "Aktív futási idő:" #: ../data/ui/song-infos.ui.h:2 msgid "Album Artist :" msgstr "Album előadó:" #: ../data/ui/song-infos.ui.h:4 msgid "Comment :" msgstr "Megjegyzés :" #: ../data/ui/song-infos.ui.h:5 msgid "Composer :" msgstr "Szerző :" #: ../data/ui/song-infos.ui.h:6 msgid "Date :" msgstr "Dátum :" #: ../data/ui/song-infos.ui.h:7 msgid "Disc :" msgstr "Lemez :" #: ../data/ui/song-infos.ui.h:8 msgid "Filename :" msgstr "Fájlnév :" #: ../data/ui/song-infos.ui.h:9 ../plugins/radios/ario-radio.c:169 msgid "Genre :" msgstr "Év :" #: ../data/ui/song-infos.ui.h:10 ../plugins/information/information.ui.h:4 msgid "Length :" msgstr "Hossz:" #: ../data/ui/song-infos.ui.h:11 msgid "Performer :" msgstr "Előadó :" #: ../data/ui/song-infos.ui.h:12 msgid "Song" msgstr "Dal" #: ../data/ui/song-infos.ui.h:14 msgid "Track :" msgstr "Szám :" #: ../data/ui/trayicon-prefs.ui.h:1 msgid "Do nothing" msgstr "Ne tegyen semmit" #: ../data/ui/trayicon-prefs.ui.h:2 msgid "Mute" msgstr "Némítás" #: ../data/ui/trayicon-prefs.ui.h:3 ../src/shell/ario-shell-preferences.c:138 msgid "Notification" msgstr "Értesítés" #: ../data/ui/trayicon-prefs.ui.h:4 msgid "Notification on song change" msgstr "Jelzés szám váltásakor" #: ../data/ui/trayicon-prefs.ui.h:5 msgid "Notification time: " msgstr "Jelzési idő: " #: ../data/ui/trayicon-prefs.ui.h:6 msgid "On middle button click on tray icon :" msgstr "Közéső gomb ikonja a tálcán :" #: ../data/ui/trayicon-prefs.ui.h:7 ../src/widgets/ario-header.c:241 msgid "Play next song" msgstr "Következő dal lejátszása" #: ../data/ui/trayicon-prefs.ui.h:8 msgid "Play/Pause" msgstr "Lejátszás/szünet" #: ../data/ui/trayicon-prefs.ui.h:9 msgid "Tray icon" msgstr "Tálcaikon" #: ../src/ario-main.c:67 msgid "Start minimized window" msgstr "MInimalizált állapotú ablak indítása" #: ../src/ario-main.c:68 msgid "Start with specific profile" msgstr "" #. Format result string #: ../src/ario-util.c:110 msgid "seconds" msgstr "másodperc" #: ../src/ario-util.c:112 msgid "minutes" msgstr "perc" #: ../src/ario-util.c:118 msgid "hours" msgstr "óra" #: ../src/ario-util.c:124 msgid "days" msgstr "nap" #: ../src/covers/ario-cover.c:149 msgid "The cover already exists. Do you want to replace it?" msgstr "Ez a borító már létezik. Felülírja?" #: ../src/covers/ario-cover-local.c:48 msgid "Music Directory" msgstr "Zene könyvtár" #: ../src/playlist/ario-playlist-dynamic.c:49 msgid "songs of same artist" msgstr "az előadó további számai" #: ../src/playlist/ario-playlist-dynamic.c:50 msgid "songs of same album" msgstr "az album további számai" #: ../src/playlist/ario-playlist-dynamic.c:51 msgid "songs of similar artists" msgstr "hasonló előadók számai" #: ../src/playlist/ario-playlist-dynamic.c:52 msgid "albums of same artists" msgstr "az előadó további albumai" #: ../src/playlist/ario-playlist-dynamic.c:53 msgid "albums of similar artists" msgstr "hasonló előadók albumai" #: ../src/playlist/ario-playlist-dynamic.c:69 msgid "Dynamic Playlist" msgstr "Dinamikus lejátszólista" #: ../src/playlist/ario-playlist-queue.c:49 msgid "Queue Mode" msgstr "Sor Mód" #: ../src/playlist/ario-playlist-normal.c:47 msgid "Normal" msgstr "Normál" #: ../src/plugins/ario-plugin-manager.c:45 msgid "Plugin" msgstr "Bővítmény" #: ../src/plugins/ario-plugin-manager.c:46 msgid "Enabled" msgstr "Engedélyezve" #: ../src/plugins/ario-plugin-manager.c:480 ../src/shell/ario-shell.c:206 msgid "_About" msgstr "_Névjegy" #: ../src/plugins/ario-plugin-manager.c:488 msgid "C_onfigure" msgstr "_Beállítás" #: ../src/plugins/ario-plugin-manager.c:497 msgid "A_ctivate" msgstr "_Aktiválás" #: ../src/plugins/ario-plugin-manager.c:508 msgid "Ac_tivate All" msgstr "Összes a_ktiválása" #: ../src/plugins/ario-plugin-manager.c:513 msgid "_Deactivate All" msgstr "Összes l_etiltása" #: ../src/plugins/ario-plugin-manager.c:722 msgid "Active plugins" msgstr "Aktív bővítmények" #: ../src/preferences/ario-server-preferences.c:182 #: ../src/preferences/ario-stats-preferences.c:151 #: ../src/preferences/ario-stats-preferences.c:152 #: ../src/preferences/ario-stats-preferences.c:153 #: ../src/preferences/ario-stats-preferences.c:154 #: ../src/preferences/ario-stats-preferences.c:155 #: ../src/preferences/ario-stats-preferences.c:156 msgid "Not connected" msgstr "Nincs kapcsolat" #: ../src/preferences/ario-server-preferences.c:187 #: ../src/preferences/ario-server-preferences.c:278 #: ../src/widgets/ario-status-bar.c:100 msgid "Updating..." msgstr "Frissítés..." #: ../src/servers/ario-mpd.c:410 ../src/servers/ario-mpd2.c:522 msgid "Connecting to server..." msgstr "Kapcsolódás a kiszolgálóhoz..." #: ../src/servers/ario-mpd.c:438 ../src/servers/ario-mpd2.c:550 msgid "Impossible to connect to server. Check the connection options." msgstr "" "Kapcsolódás a kiszolgálóhoz nem lehetséges. Ellenőrizze a kapcsolódási " "opciókat." #. ARIO_TAG_ALBUM #: ../src/servers/ario-server.c:47 msgid "Album Artist" msgstr "Előadó" #. ARIO_TAG_DATE #: ../src/servers/ario-server.c:53 msgid "Composer" msgstr "Szerző" #. ARIO_TAG_COMPOSER #: ../src/servers/ario-server.c:54 msgid "Performer" msgstr "Előadó" #. ARIO_TAG_PERFORMER #. ARIO_TAG_COMMENT #. ARIO_TAG_DISC #: ../src/servers/ario-server.c:57 msgid "Filename" msgstr "Fájlnév" #. ARIO_TAG_FILENAME #: ../src/servers/ario-server.c:58 msgid "Any" msgstr "Bármely" #. impossible time or broken locale settings #: ../src/servers/ario-server.h:27 #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1235 msgid "Unknown" msgstr "Ismeretlen" #: ../src/sources/ario-browser.c:82 ../src/sources/ario-search.c:70 #: ../src/sources/ario-storedplaylists.c:88 #: ../src/sources/ario-storedplaylists.c:106 #: ../plugins/filesystem/ario-filesystem.c:94 #: ../plugins/filesystem/ario-filesystem.c:109 #: ../plugins/radios/ario-radio.c:116 msgid "_Add to playlist" msgstr "_Hozzáadás a lejátszási listához" #: ../src/sources/ario-browser.c:85 ../src/sources/ario-search.c:73 #: ../src/sources/ario-storedplaylists.c:91 #: ../src/sources/ario-storedplaylists.c:109 #: ../plugins/filesystem/ario-filesystem.c:97 #: ../plugins/filesystem/ario-filesystem.c:112 #: ../plugins/radios/ario-radio.c:119 msgid "Add and _play" msgstr "Hozzáadás és lejátszás" #: ../src/sources/ario-browser.c:88 ../src/sources/ario-search.c:76 #: ../src/sources/ario-storedplaylists.c:94 #: ../src/sources/ario-storedplaylists.c:112 #: ../plugins/filesystem/ario-filesystem.c:100 #: ../plugins/filesystem/ario-filesystem.c:115 #: ../plugins/radios/ario-radio.c:122 msgid "_Replace in playlist" msgstr "Lecse_rélés a lejátszólistában" #: ../src/sources/ario-browser.c:91 msgid "Get the covers" msgstr "Borítók beszerzése" #: ../src/sources/ario-browser.c:94 msgid "_Delete the covers" msgstr "Borítók _törlése" #: ../src/sources/ario-browser.c:97 ../src/sources/ario-browser.c:100 #: ../src/sources/ario-search.c:79 ../src/sources/ario-storedplaylists.c:115 #: ../src/widgets/ario-playlist.c:151 #: ../plugins/filesystem/ario-filesystem.c:118 #: ../plugins/radios/ario-radio.c:131 msgid "_Properties" msgstr "_Tulajdonságok" #: ../src/sources/ario-browser.c:125 ../src/shell/ario-shell-preferences.c:118 msgid "Library" msgstr "Gyűjtemény" #: ../src/sources/ario-storedplaylists.c:97 msgid "_Delete" msgstr "_Törlés" #: ../src/sources/ario-storedplaylists.c:151 msgid "Playlists" msgstr "Lejátszólisták" #: ../src/sources/ario-storedplaylists.c:592 msgid "Are you sure that you want to delete all the selected playlists?" msgstr "" "Biztos benne, hogy eltávolítja az összes kiválasztott lejátszási listát?" #: ../src/sources/ario-tree.c:856 msgid "Are you sure that you want to remove all the selected covers?" msgstr "Biztos benne, hogy eltávolítja az összes kiválasztott borítót?" #. Translators - This "Cover" refers to an album cover art #: ../src/sources/ario-tree-albums.c:199 msgid "Cover" msgstr "Borító" #: ../src/shell/ario-shell.c:160 msgid "_File" msgstr "_Fájl" #: ../src/shell/ario-shell.c:161 msgid "_Edit" msgstr "Sz_erkesztés" #: ../src/shell/ario-shell.c:162 msgid "_View" msgstr "_Nézet" #: ../src/shell/ario-shell.c:163 msgid "_Control" msgstr "_Irányítás" #: ../src/shell/ario-shell.c:164 msgid "_Tool" msgstr "_Eszköz" #: ../src/shell/ario-shell.c:165 msgid "_Help" msgstr "Segí_tség" #: ../src/shell/ario-shell.c:173 msgid "_Update database" msgstr "Adatbázis _frissítése" #: ../src/shell/ario-shell.c:176 msgid "_Quit" msgstr "_Kilépés" #: ../src/shell/ario-shell.c:179 msgid "Plu_gins" msgstr "Bő_vítmények" #: ../src/shell/ario-shell.c:182 msgid "Prefere_nces" msgstr "_Beállítások" #: ../src/shell/ario-shell.c:185 msgid "_Change current album cover" msgstr "Jelenlegi albumborító _változtatása" #: ../src/shell/ario-shell.c:188 msgid "Download album _covers" msgstr "Albumborítok _letöltése" #: ../src/shell/ario-shell.c:191 msgid "Find similar artists" msgstr "Hasonló előadók keresése" #: ../src/shell/ario-shell.c:194 msgid "Add similar songs to playlist" msgstr "Hasonló számok hozzáadása listához" #: ../src/shell/ario-shell.c:197 msgid "Go to _previous tab" msgstr "Ugrás az _előző fülre" #: ../src/shell/ario-shell.c:200 msgid "Go to _next tab" msgstr "Ugrás a _következő fülre" #: ../src/shell/ario-shell.c:203 msgid "Show _lyrics" msgstr "Dalszövegek _mutatása" #: ../src/shell/ario-shell.c:209 msgid "_Translate this application..." msgstr "Alkalmazás _fordítása" #: ../src/shell/ario-shell.c:216 msgid "S_tatusbar" msgstr "Á_llapotsor" #: ../src/shell/ario-shell.c:219 msgid "Upper part" msgstr "Felső rész" #: ../src/shell/ario-shell.c:825 msgid "GTK client for MPD" msgstr "GTK kliens MPD -hez" #: ../src/shell/ario-shell.c:826 msgid "translator-credits" msgstr "" "Launchpad Contributions:\n" " András Bognár https://launchpad.net/~bognarandras\n" " Desiderius57 https://launchpad.net/~dezso-juhasz\n" " Gergely Szarka https://launchpad.net/~gszarka\n" " Krasznecz Zoltán https://launchpad.net/~krasznecz-zoltan\n" " Marc Pavot https://launchpad.net/~marc-pavot\n" " Mice Teeth https://launchpad.net/~micecrosoft\n" " Muszela Balázs https://launchpad.net/~bazsi86-deactivatedaccount\n" " Pittmann Tamás https://launchpad.net/~zaivaldi\n" " Robert Roth https://launchpad.net/~evfool\n" " Szenográdi Norbert Péter https://launchpad.net/~sevoir\n" " Zoltan Hoppar https://launchpad.net/~hopparz-gmail" #. Create plugins configuration dialog window #: ../src/shell/ario-shell.c:1278 msgid "Configure Plugins" msgstr "Bővítmények beállítása" #. Set window properties #: ../src/shell/ario-shell-coverdownloader.c:187 msgid "Music Player Cover Download" msgstr "Zene lejátszó borító letöltés" #: ../src/shell/ario-shell-coverdownloader.c:332 msgid "Download Finished!" msgstr "Letöltés befejezve!" #. We show the numbers of covers found and not found #: ../src/shell/ario-shell-coverdownloader.c:335 #, c-format msgid "" "%i covers found\n" "%i covers not found\n" "%i covers already exist" msgstr "" "%i borító találat\n" "%i borító nem található\n" "%i borító létezik" #. Set window properties #: ../src/shell/ario-shell-coverselect.c:242 msgid "Cover Download" msgstr "Borító letöltése" #: ../src/shell/ario-shell-coverselect.c:559 msgid "Error reading file" msgstr "Fájl olvasási hiba" #: ../src/shell/ario-shell-coverselect.c:584 msgid "Error saving file" msgstr "Hiba az állomány mentésekor" #: ../src/shell/ario-shell-lyrics.c:43 #: ../src/shell/ario-shell-preferences.c:133 #: ../src/shell/ario-shell-songinfos.c:272 msgid "Lyrics" msgstr "Dalszöveg" #: ../src/shell/ario-shell-lyricsselect.c:152 msgid "Lyrics Download" msgstr "Dalszöveg letöltése" #: ../src/shell/ario-shell-preferences.c:81 msgid "Ario Preferences" msgstr "Ario beállítások" #: ../src/shell/ario-shell-preferences.c:113 msgid "Server" msgstr "Szerver" #: ../src/shell/ario-shell-preferences.c:143 msgid "Others" msgstr "Egyebek" #: ../src/shell/ario-shell-similarartists.c:318 #, c-format msgid "%d songs" msgstr "%d számok" #. Set window properties #. Set window title #: ../src/shell/ario-shell-songinfos.c:249 #: ../src/shell/ario-shell-songinfos.c:266 #: ../src/shell/ario-shell-songinfos.c:544 msgid "Song Properties" msgstr "Dal tulajdonságai" #: ../src/shell/ario-shell-songinfos.c:455 msgid "Error saving tags of file:" msgstr "Hiba a következő fájl cimkéinek mentésekor:" #: ../src/widgets/ario-connection-widget.c:652 msgid "You must select a server." msgstr "Ki kell választania a kiszolgálót." #: ../src/widgets/ario-connection-widget.c:702 msgid "New Profile" msgstr "Új profil" #: ../src/widgets/ario-firstlaunch.c:82 msgid "The following configuration will be used:" msgstr "A következő beállítások lesznek használva:" #: ../src/widgets/ario-firstlaunch.c:106 msgid "" "It is the first time you launch Ario.\n" "This assistant will help you to configure it." msgstr "" "Először futtatja az Airo -t.\n" "Ez a segéd segít beállítani." #: ../src/widgets/ario-firstlaunch.c:111 msgid "Welcome to Ario" msgstr "Üdvözli az Airo!" #: ../src/widgets/ario-firstlaunch.c:129 msgid "Configuration" msgstr "Beállítás" #: ../src/widgets/ario-firstlaunch.c:141 msgid "Confirmation" msgstr "Jóváhagyás" #: ../src/widgets/ario-header.c:66 ../src/widgets/ario-tray-icon.h:42 #, c-format msgid "from %s by %s" msgstr "from %s by %s" #: ../src/widgets/ario-header.c:199 msgid "Play previous song" msgstr "Előző dal lejátszása" #: ../src/widgets/ario-header.c:217 msgid "Play/Pause the music" msgstr "Zene lejátszása/szüneteltetése" #: ../src/widgets/ario-header.c:229 msgid "Stop the music" msgstr "Zene leállítása" #. Translators - This " of " is used to count the elapsed time #. of a song like in "00:59 of 03:24" #: ../src/widgets/ario-header.c:310 ../src/widgets/ario-tooltip.c:321 msgid " of " msgstr " / " #: ../src/widgets/ario-header.c:323 msgid "Toggle random on/off" msgstr "Véletlen lejátszás be/ki" #: ../src/widgets/ario-header.c:335 msgid "Toggle repeat on/off" msgstr "Ismétés be/ki" #: ../src/widgets/ario-header.c:340 msgid "Change the music volume" msgstr "Hangerő módosítása" #: ../src/widgets/ario-lyrics-editor.c:323 msgid "Downloading lyrics..." msgstr "Dalszövegek letöltése..." #: ../src/widgets/ario-lyrics-editor.c:351 msgid "Lyrics not found" msgstr "Dalszöveg nem található" #: ../src/widgets/ario-playlist.c:133 msgid "_Clear" msgstr "_Törlés" #: ../src/widgets/ario-playlist.c:136 msgid "_Shuffle" msgstr "Véletlen_szerű sorrend" #: ../src/widgets/ario-playlist.c:139 msgid "Cr_op" msgstr "Kivágás" #: ../src/widgets/ario-playlist.c:142 msgid "_Search in playlist" msgstr "_Keresés a lejátszólistában" #: ../src/widgets/ario-playlist.c:145 msgid "_Remove" msgstr "_Eltávolítás" #: ../src/widgets/ario-playlist.c:148 msgid "_Save" msgstr "_Mentés" #: ../src/widgets/ario-playlist.c:154 msgid "_Go to playing song" msgstr "Tovább a szám _lejátszásához" #: ../src/widgets/ario-playlist.c:667 msgid "Filter:" msgstr "Szűrő:" #. Create the widgets #: ../src/widgets/ario-playlist.c:1700 msgid "Save playlist" msgstr "Lejátszólista mentése" #: ../src/widgets/ario-playlist.c:1710 msgid "Playlist name :" msgstr "Lejátszási lista neve :" #: ../src/widgets/ario-playlist.c:1746 msgid "Playlist already exists. Do you want to overwrite it?" msgstr "Lejátszási lista létezik. Felül akarja írni?" #. Format status bar message #: ../src/widgets/ario-status-bar.c:96 msgid "Songs" msgstr "Dalok" #: ../src/widgets/ario-tray-icon.c:102 msgid "_Play" msgstr "Le_játszás" #: ../src/widgets/ario-tray-icon.c:105 msgid "_Pause" msgstr "_Szünet" #: ../src/widgets/ario-tray-icon.c:108 msgid "_Stop" msgstr "_Leállítás" #: ../src/widgets/ario-tray-icon.c:111 msgid "_Next" msgstr "_Következő" #: ../src/widgets/ario-tray-icon.c:114 msgid "P_revious" msgstr "_Előző" #: ../src/widgets/ario-tray-icon.h:41 msgid "Not playing" msgstr "Lejátszás áll" #. Translators: "friendly time" string for the current day, strftime format. like "Today 12:34 am" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1179 msgid "Today %I:%M %p" msgstr "Ma %l.%M %p" #. Translators: "friendly time" string for the previous day, #. * strftime format. e.g. "Yesterday 12:34 am" #. #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1192 msgid "Yesterday %I:%M %p" msgstr "Tegnap %l.%M %p" #. Translators: "friendly time" string for a day in the current week, #. * strftime format. e.g. "Wed 12:34 am" #. #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1208 msgid "%a %I:%M %p" msgstr "%a %l.%M %p" #. Translators: "friendly time" string for a day in the current year, #. * strftime format. e.g. "Feb 12 12:34 am" #. #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1220 msgid "%b %d %I:%M %p" msgstr "%b %e %l.%M %p" #. Translators: "friendly time" string for a day in a different year, #. * strftime format. e.g. "Feb 12 1997" #. #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1225 msgid "%b %d %Y" msgstr "%Y %b. %d" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1311 #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:4 msgid "Never" msgstr "Soha" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1335 msgid "OK" msgstr "OK" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1338 msgid "Logging in" msgstr "Bejelentkezés" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1341 msgid "Request failed" msgstr "A kérés meghiúsult" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1344 msgid "Incorrect username" msgstr "Helytelen felhasználói név" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1347 msgid "Incorrect password" msgstr "Hibás jelszó" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1350 msgid "Handshake failed" msgstr "A kézfogás meghiúsult" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1353 msgid "Client update required" msgstr "Az ügyfél frissítése szükséges" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1356 msgid "Track submission failed" msgstr "A szám beküldése meghiúsult" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1359 msgid "Queue is too long" msgstr "A sor túl hosszú" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1362 msgid "Track submission failed too many times" msgstr "A számbeküldés túl sokszor hiúsult meg" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1417 msgid "Audioscrobbler preferences" msgstr "Audioscrobbler beállításai" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:1 msgid "Disabled" msgstr "Kikapcsolva" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:2 msgid "Last submission time:" msgstr "Utolsó beküldés időpontja:" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:3 msgid "Last.fm Profile" msgstr "Last.fm profil" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:6 msgid "Queued tracks:" msgstr "Sorba állított számok:" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:7 msgid "Status:" msgstr "Állapot:" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:8 msgid "Tracks submitted:" msgstr "Beküldött számok:" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:9 #: ../plugins/radios/ario-radio.c:168 msgid "Username :" msgstr "Felhasználói név:" #: ../plugins/audioscrobbler/audioscrobbler.ario-plugin.desktop.in.h:1 msgid "Last.fm" msgstr "Last.fm" #: ../plugins/audioscrobbler/audioscrobbler.ario-plugin.desktop.in.h:2 msgid "Submits song information to last.fm" msgstr "Dal információk elküldése a last.fm -re." #: ../plugins/filesystem/ario-filesystem.c:158 msgid "File System" msgstr "Fájlrendszer" #: ../plugins/filesystem/ario-filesystem.c:422 msgid "Music" msgstr "Zene" #: ../plugins/filesystem/filesystem.ario-plugin.desktop.in.h:1 msgid "A File System Browser" msgstr "Fájlrendszer böngésző" #: ../plugins/filesystem/filesystem.ario-plugin.desktop.in.h:2 msgid "File System Browser" msgstr "Fájlrendszer böngésző" #: ../plugins/information/ario-information.c:114 msgid "Information" msgstr "Információ" #: ../plugins/information/information.ario-plugin.desktop.in.h:1 msgid "Display various information about the playing song" msgstr "Különféle információk megjelenítése a lejátszott számról" #: ../plugins/information/information.ario-plugin.desktop.in.h:2 msgid "Song Information" msgstr "Zene információk" #: ../plugins/information/information.ui.h:2 msgid "Albums from this artist:" msgstr "Albumok ettől az előadótól:" #: ../plugins/information/information.ui.h:5 msgid "Lyrics:" msgstr "Szöveg:" #: ../plugins/libnotify/libnotify.ario-plugin.desktop.in.h:1 msgid "Add libnotify support" msgstr "Libnotify támogatás hozzáadása" #: ../plugins/libnotify/libnotify.ario-plugin.desktop.in.h:2 msgid "Libnotify" msgstr "Libnotify" #: ../plugins/mmkeys/mmkeys.ario-plugin.desktop.in.h:1 msgid "Add multimedia keys support" msgstr "Multimédia billentyűk támogatásának hozzáadása" #: ../plugins/mmkeys/mmkeys.ario-plugin.desktop.in.h:2 msgid "Multimedia Keys" msgstr "Multimédia billentyűk" #: ../plugins/radios/ario-radio.c:125 msgid "Add a _new radio" msgstr "Új rádió _hozzáadása" #: ../plugins/radios/ario-radio.c:128 msgid "_Delete this radios" msgstr "Rádió _törlése" #: ../plugins/radios/ario-radio.c:166 msgid "Last.fm: Radio of similar artists" msgstr "Last.fm: Rádió hasonló előadóktól" #: ../plugins/radios/ario-radio.c:167 msgid "Last.fm: Radio of group" msgstr "Last.fm: Rádió csoport szerint" #: ../plugins/radios/ario-radio.c:167 msgid "Group :" msgstr "Csoport :" #: ../plugins/radios/ario-radio.c:168 msgid "Last.fm: Personal radio" msgstr "Last.fm: Saját rádió" #: ../plugins/radios/ario-radio.c:169 msgid "Last.fm: Radio of genre" msgstr "Last.fm: Rádió műfaj szerint" #: ../plugins/radios/ario-radio.c:184 #: ../plugins/radios/radios.ario-plugin.desktop.in.h:2 msgid "Web Radios" msgstr "Webrádiók" #: ../plugins/radios/ario-radio.c:246 msgid "Internet Radios" msgstr "Internetrádiók" #. Create dialog window #: ../plugins/radios/ario-radio.c:774 msgid "Edit a WebRadio" msgstr "Webrádió szerkesztése" #: ../plugins/radios/ario-radio.c:787 ../plugins/radios/ario-radio.c:923 msgid "URL :" msgstr "URL :" #: ../plugins/radios/ario-radio.c:853 ../plugins/radios/ario-radio.c:997 msgid "Bad parameters. You must specify a name and a URL for the radio." msgstr "Rossz paraméterek. Meg kell adnia egy nevet és egy URL-t a rádióhoz." #. Create dialog window #: ../plugins/radios/ario-radio.c:883 msgid "Add a WebRadio" msgstr "Webrádió hozzáadása" #: ../plugins/radios/ario-radio.c:1083 msgid "Are you sure you want to delete all the selected radios?" msgstr "Biztos benne, hogy törli az összes kiválasztott rádiót?" #: ../plugins/radios/radios.ario-plugin.desktop.in.h:1 msgid "Listen to webradios" msgstr "Webrádiók hallgatása" #: ../plugins/wikipedia/ario-wikipedia-plugin.c:49 #: ../plugins/wikipedia/ario-wikipedia-plugin.c:50 msgid "Find artist on Wikipedia" msgstr "Előadó keresése a Wikipédiában" #: ../plugins/wikipedia/ario-wikipedia-plugin.c:172 msgid "Wikipedia Plugin - Configuration" msgstr "Wikipédia bővítmény - beállítás" #: ../plugins/wikipedia/ario-wikipedia-plugin.c:181 msgid "Wikipedia language :" msgstr "Wikipédia nyelve :" #: ../plugins/wikipedia/wikipedia.ario-plugin.desktop.in.h:1 msgid "A plugin to search current artist on wikipedia" msgstr "Bővítmény a jelenlegi előadó kereséséhez a wikipédián." #: ../plugins/wikipedia/wikipedia.ario-plugin.desktop.in.h:2 msgid "Wikipedia" msgstr "Wikipédia" #~ msgid "Remove a search criteria" #~ msgstr "Keresési kritérium eltávolítása" #~ msgid "Search songs in the library" #~ msgstr "Számok keresése a gyűjteményben" #~ msgid "Add a search criteria" #~ msgstr "Keresési kritérium hozzáadása" ario-1.6/po/ru.po0000644000175000017500000011577613226723442010665 00000000000000# Russian translation for ario # Copyright (c) 2007 Rosetta Contributors and Canonical Ltd 2007 # This file is distributed under the same license as the ario package. # FIRST AUTHOR , 2007. # msgid "" msgstr "" "Project-Id-Version: ario\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2011-06-13 18:15+0200\n" "PO-Revision-Date: 2010-09-26 22:04+0000\n" "Last-Translator: Alexey Ivanov \n" "Language-Team: Russian \n" "Language: ru\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2011-06-13 16:32+0000\n" "X-Generator: Launchpad (build 13175)\n" #: ../data/ario.desktop.in.in.h:1 msgid "Ario music player" msgstr "Музыкальный проигрыватель Ario" #: ../data/ario.desktop.in.in.h:2 msgid "Client application to mpd" msgstr "Приложение-клиент для mpd" #: ../data/ui/browser-prefs.ui.h:1 msgid "Alphabetically" msgstr "По алфавиту" #: ../data/ui/browser-prefs.ui.h:2 msgid "By year" msgstr "По годам" #: ../data/ui/browser-prefs.ui.h:3 msgid "Library Options" msgstr "Настройки библиотеки" #: ../data/ui/browser-prefs.ui.h:4 msgid "Library Organisation" msgstr "Организация библиотеки" #: ../data/ui/browser-prefs.ui.h:5 msgid "Sort albums: " msgstr "Сортировать альбомы: " #: ../data/ui/connection-autodetect.ui.h:1 msgid "" "If you don't see your MPD server thanks to the automatic detection, you " "should check that zeroconf is activated in your MPD configuration or use the " "manual configuration." msgstr "" "Если Вы не знаете Ваш MPD-сервер, используйте автоматическое определение, " "проверьте активен ли zeroconf в Вашей MPD-конфигурации или используйте " "ручную настройку." #: ../data/ui/connection-autodetect.ui.h:2 msgid "Server autodetection" msgstr "Сервер автоопределения" #: ../data/ui/connection-widget.ui.h:1 msgid "Auto detect" msgstr "Автоопределение" #: ../data/ui/connection-widget.ui.h:2 msgid "Default" msgstr "По умолчанию" #: ../data/ui/connection-widget.ui.h:3 ../src/widgets/ario-firstlaunch.c:83 msgid "Host :" msgstr "Хост :" #: ../data/ui/connection-widget.ui.h:4 msgid "Music directory :" msgstr "Музыкальная директория :" #: ../data/ui/connection-widget.ui.h:5 msgid "Music server is on the same computer as Ario" msgstr "Музыкальный сервер на том же компьютере, что и Ario" #. Create the widgets #: ../data/ui/connection-widget.ui.h:6 ../plugins/radios/ario-radio.c:786 #: ../plugins/radios/ario-radio.c:922 msgid "Name :" msgstr "Название :" #: ../data/ui/connection-widget.ui.h:7 #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:5 msgid "Password :" msgstr "Пароль :" #: ../data/ui/connection-widget.ui.h:8 ../src/widgets/ario-firstlaunch.c:85 msgid "Port :" msgstr "Порт :" #: ../data/ui/connection-widget.ui.h:9 msgid "Server type :" msgstr "Тип сервера :" #: ../data/ui/connection-widget.ui.h:10 msgid "Timeout :" msgstr "" #: ../data/ui/connection-widget.ui.h:11 msgid "XMMS 2 (Experimental)" msgstr "XMMS 2 (Экспериментальное)" #: ../data/ui/cover-prefs.ui.h:1 msgid "Automatically download the album cover of the playing song" msgstr "Автоматически скачивать обложку альбома играющей песни" #: ../data/ui/cover-prefs.ui.h:2 ../src/shell/ario-shell-preferences.c:128 msgid "Covers" msgstr "Обложки" #: ../data/ui/cover-prefs.ui.h:3 msgid "Covers Sources" msgstr "Источники обложек" #: ../data/ui/cover-prefs.ui.h:4 msgid "Show the covers in the albums list" msgstr "Показать обложки в списке альбомов" #: ../data/ui/cover-prefs.ui.h:5 msgid "Use Amazon." msgstr "Использовать Amazon." #: ../data/ui/connection-prefs.ui.h:1 #: ../src/shell/ario-shell-preferences.c:108 msgid "Connection" msgstr "Соединение" #: ../data/ui/connection-prefs.ui.h:2 msgid "_Autoconnect on startup" msgstr "_Автосоединение при запуске" #: ../data/ui/connection-prefs.ui.h:3 ../src/shell/ario-shell.c:167 msgid "_Connect" msgstr "Под_ключиться" #: ../data/ui/connection-prefs.ui.h:4 ../src/shell/ario-shell.c:170 msgid "_Disconnect" msgstr "_Отключить" #: ../data/ui/connection-assistant.ui.h:1 msgid "" "You need to specify a server to connect to. If you don't see your server " "thanks to the autodetection, you should check that zeroconf/avahi is " "activated in your server or use the manual configuration." msgstr "" "Вы должны указать сервер для соединения. Если сервер не был определен " "автоматически, убедитесь что на нем активно zeroconf/avahi или используйте " "ручную настройку." #: ../data/ui/cover-progress.ui.h:1 ../data/ui/cover-select.ui.h:1 #: ../data/ui/song-infos.ui.h:1 ../plugins/information/information.ui.h:1 msgid "Album :" msgstr "Альбом :" #: ../data/ui/cover-progress.ui.h:2 ../data/ui/cover-select.ui.h:2 #: ../data/ui/lyrics-select.ui.h:1 ../data/ui/song-infos.ui.h:3 #: ../plugins/information/information.ui.h:3 #: ../plugins/radios/ario-radio.c:166 msgid "Artist :" msgstr "Исполнитель :" #: ../data/ui/cover-progress.ui.h:3 msgid "Downloading cover" msgstr "Идёт загрузка обложек" #: ../data/ui/cover-select.ui.h:3 msgid "Local search" msgstr "Локальный поиск" #: ../data/ui/cover-select.ui.h:4 ../src/sources/ario-search.c:108 msgid "Search" msgstr "Поиск" #: ../data/ui/others-prefs.ui.h:1 msgid "Allow only one instance of Ario" msgstr "Позволять только один экземпляр Ario" #: ../data/ui/others-prefs.ui.h:2 msgid "Hide window when close button is pressed" msgstr "Прятать окно при нажатии на \"крестик\"" #: ../data/ui/others-prefs.ui.h:3 msgid "Interface" msgstr "Внешний вид" #: ../data/ui/others-prefs.ui.h:4 msgid "Playlist at the right of tabs" msgstr "Список воспроизведения справа от библиотеки" #: ../data/ui/others-prefs.ui.h:5 msgid "Playlist below tabs" msgstr "Список воспроизведения под библиотекой" #: ../data/ui/others-prefs.ui.h:6 msgid "Playlist within tabs" msgstr "Список воспроизведения в отдельной вкладке" #: ../data/ui/others-prefs.ui.h:7 msgid "Proxy" msgstr "Прокси" #: ../data/ui/others-prefs.ui.h:8 msgid "Proxy Address :" msgstr "Адрес прокси :" #: ../data/ui/others-prefs.ui.h:9 msgid "Proxy Port :" msgstr "Порт прокси :" #: ../data/ui/others-prefs.ui.h:10 msgid "Show tabs" msgstr "Показать вкладки" #: ../data/ui/others-prefs.ui.h:11 msgid "Use a proxy" msgstr "Использовать прокси" #: ../data/ui/lyrics-prefs.ui.h:1 msgid "Lyrics Sources" msgstr "Текст песни" #: ../data/ui/lyrics-select.ui.h:2 ../data/ui/song-infos.ui.h:13 #: ../plugins/information/information.ui.h:6 msgid "Title :" msgstr "Название :" #: ../data/ui/playlist-prefs.ui.h:1 msgid "Add after playing song" msgstr "Добавить после проигрывания" #: ../data/ui/playlist-prefs.ui.h:2 msgid "Add and play" msgstr "Добавить и играть" #: ../data/ui/playlist-prefs.ui.h:3 ../data/ui/similar-artists.ui.h:2 msgid "Add to playlist" msgstr "Добавить в список воспроизведения" #. ARIO_TAG_ARTIST #: ../data/ui/playlist-prefs.ui.h:4 ../src/servers/ario-server.c:46 #: ../src/sources/ario-tree-albums.c:213 ../src/widgets/ario-playlist.c:541 #: ../src/widgets/ario-songlist.c:228 ../src/widgets/ario-tray-icon.c:565 msgid "Album" msgstr "Альбом" #: ../data/ui/playlist-prefs.ui.h:5 ../src/servers/ario-server.c:45 #: ../src/widgets/ario-playlist.c:541 ../src/widgets/ario-songlist.c:213 #: ../src/widgets/ario-tray-icon.c:563 msgid "Artist" msgstr "Исполнитель" #. ARIO_TAG_GENRE #: ../data/ui/playlist-prefs.ui.h:6 ../src/servers/ario-server.c:52 #: ../src/widgets/ario-playlist.c:541 msgid "Date" msgstr "Дата" #: ../data/ui/playlist-prefs.ui.h:7 ../src/widgets/ario-playlist.c:541 msgid "Disc" msgstr "Диск" #: ../data/ui/playlist-prefs.ui.h:8 msgid "Double click" msgstr "Двойной щелчок" #: ../data/ui/playlist-prefs.ui.h:9 ../src/widgets/ario-playlist.c:541 msgid "Duration" msgstr "Продолжительность" #: ../data/ui/playlist-prefs.ui.h:10 ../src/widgets/ario-playlist.c:541 msgid "File" msgstr "_Файл" #. ARIO_TAG_TRACK #. ARIO_TAG_NAME #: ../data/ui/playlist-prefs.ui.h:11 ../src/servers/ario-server.c:51 #: ../src/widgets/ario-playlist.c:541 msgid "Genre" msgstr "Жанр" #: ../data/ui/playlist-prefs.ui.h:12 msgid "Go to current song when a new song is played" msgstr "Переводить курсор на играющую песню" #: ../data/ui/playlist-prefs.ui.h:13 msgid "Mode" msgstr "Режим" #: ../data/ui/playlist-prefs.ui.h:14 msgid "On double click:" msgstr "По двойному нажатию:" #: ../data/ui/playlist-prefs.ui.h:15 ../src/sources/ario-storedplaylists.c:229 #: ../src/shell/ario-shell.c:222 ../src/shell/ario-shell-preferences.c:123 #: ../src/widgets/ario-playlist.c:272 msgid "Playlist" msgstr "Список воспроизведения" #: ../data/ui/playlist-prefs.ui.h:16 msgid "Playlist mode:" msgstr "Режим списка воспроизведения:" #: ../data/ui/playlist-prefs.ui.h:17 msgid "Replace in playlist" msgstr "Заменить в списке воспроизведения" #: ../data/ui/playlist-prefs.ui.h:18 msgid "Show rows:" msgstr "Показать столбцы:" #. ARIO_TAG_ALBUM_ARTIST #: ../data/ui/playlist-prefs.ui.h:19 ../src/servers/ario-server.c:48 #: ../src/sources/ario-tree-songs.c:145 ../src/widgets/ario-playlist.c:541 #: ../src/widgets/ario-songlist.c:198 ../src/widgets/ario-tray-icon.c:567 msgid "Title" msgstr "Название" #. ARIO_TAG_TITLE #: ../data/ui/playlist-prefs.ui.h:20 ../src/servers/ario-server.c:49 #: ../src/sources/ario-tree-songs.c:138 ../src/widgets/ario-playlist.c:541 msgid "Track" msgstr "Дорожка" #: ../data/ui/server-prefs.ui.h:1 msgid "Audio outputs" msgstr "Аудио выходы" #: ../data/ui/server-prefs.ui.h:2 msgid "Crossfade" msgstr "Угасание" #: ../data/ui/server-prefs.ui.h:3 msgid "Database" msgstr "База данных" #: ../data/ui/server-prefs.ui.h:4 msgid "Last updated:" msgstr "Последнее обновление:" #: ../data/ui/server-prefs.ui.h:5 msgid "Stop music on exit" msgstr "Останавливать воспроизведение при выходе" #: ../data/ui/server-prefs.ui.h:6 msgid "Update on startup" msgstr "Обновлять при загрузке" #: ../data/ui/server-prefs.ui.h:7 msgid "_Update" msgstr "_Обновить" #: ../data/ui/server-prefs.ui.h:8 msgid "enable crossfade" msgstr "включить угасание" #: ../data/ui/server-prefs.ui.h:9 msgid "fade time (s):" msgstr "время затухания (s):" #: ../data/ui/server-prefs.ui.h:10 ../src/ario-util.c:50 ../src/ario-util.c:71 #: ../src/ario-util.c:93 ../plugins/information/information.ui.h:7 #, c-format msgid "n/a" msgstr "недоступно" #: ../data/ui/similar-artists.ui.h:1 msgid "Add all to playlist" msgstr "Добавить все в список воспроизведения" #: ../data/ui/similar-artists.ui.h:3 msgid "Find on Last.fm" msgstr "Найти на Last.fm" #: ../data/ui/stats-prefs.ui.h:1 msgid "Database play time :" msgstr "База данных" #: ../data/ui/stats-prefs.ui.h:2 msgid "Number of albums :" msgstr "Количество альбомов :" #: ../data/ui/stats-prefs.ui.h:3 msgid "Number of artists :" msgstr "Количество артистов :" #: ../data/ui/stats-prefs.ui.h:4 msgid "Number of songs :" msgstr "Кличество песен" #: ../data/ui/stats-prefs.ui.h:5 msgid "Play time :" msgstr "Время проигрывания :" #: ../data/ui/stats-prefs.ui.h:6 ../src/shell/ario-shell-preferences.c:148 msgid "Statistics" msgstr "Статистика" #: ../data/ui/stats-prefs.ui.h:7 msgid "Uptime :" msgstr "Время работы:" #: ../data/ui/song-infos.ui.h:2 msgid "Album Artist :" msgstr "Исполнитель альбома:" #: ../data/ui/song-infos.ui.h:4 msgid "Comment :" msgstr "Комментарий :" #: ../data/ui/song-infos.ui.h:5 msgid "Composer :" msgstr "Композитор :" #: ../data/ui/song-infos.ui.h:6 msgid "Date :" msgstr "Дата :" #: ../data/ui/song-infos.ui.h:7 msgid "Disc :" msgstr "Диск :" #: ../data/ui/song-infos.ui.h:8 msgid "Filename :" msgstr "Имя файла :" #: ../data/ui/song-infos.ui.h:9 ../plugins/radios/ario-radio.c:169 msgid "Genre :" msgstr "Жанр :" #: ../data/ui/song-infos.ui.h:10 ../plugins/information/information.ui.h:4 msgid "Length :" msgstr "Длительность :" #: ../data/ui/song-infos.ui.h:11 msgid "Performer :" msgstr "Исполнитель" #: ../data/ui/song-infos.ui.h:12 msgid "Song" msgstr "Песня" #: ../data/ui/song-infos.ui.h:14 msgid "Track :" msgstr "Трек" #: ../data/ui/trayicon-prefs.ui.h:1 msgid "Do nothing" msgstr "Ничего не делать" #: ../data/ui/trayicon-prefs.ui.h:2 msgid "Mute" msgstr "Выключить звук" #: ../data/ui/trayicon-prefs.ui.h:3 ../src/shell/ario-shell-preferences.c:138 msgid "Notification" msgstr "Уведомление" #: ../data/ui/trayicon-prefs.ui.h:4 msgid "Notification on song change" msgstr "Уведомление при смене песни" #: ../data/ui/trayicon-prefs.ui.h:5 msgid "Notification time: " msgstr "Время уведомления: " #: ../data/ui/trayicon-prefs.ui.h:6 msgid "On middle button click on tray icon :" msgstr "Щелчок средней кнопкой мыши по иконке в трее:" #: ../data/ui/trayicon-prefs.ui.h:7 ../src/widgets/ario-header.c:241 msgid "Play next song" msgstr "Играть следующую песню" #: ../data/ui/trayicon-prefs.ui.h:8 msgid "Play/Pause" msgstr "Играть/Пауза" #: ../data/ui/trayicon-prefs.ui.h:9 msgid "Tray icon" msgstr "Иконка в трее" #: ../src/ario-main.c:67 msgid "Start minimized window" msgstr "Запускать минимизированным" #: ../src/ario-main.c:68 msgid "Start with specific profile" msgstr "" #. Format result string #: ../src/ario-util.c:110 msgid "seconds" msgstr "секунд" #: ../src/ario-util.c:112 msgid "minutes" msgstr "минут" #: ../src/ario-util.c:118 msgid "hours" msgstr "часов" #: ../src/ario-util.c:124 msgid "days" msgstr "дней" #: ../src/covers/ario-cover.c:149 msgid "The cover already exists. Do you want to replace it?" msgstr "Обложка уже существует. Вы точно хотите заменить?" #: ../src/covers/ario-cover-local.c:48 msgid "Music Directory" msgstr "Музыкальная директория" #: ../src/playlist/ario-playlist-dynamic.c:49 msgid "songs of same artist" msgstr "песни этого исполнителя" #: ../src/playlist/ario-playlist-dynamic.c:50 msgid "songs of same album" msgstr "песни из этого альбома" #: ../src/playlist/ario-playlist-dynamic.c:51 msgid "songs of similar artists" msgstr "песни похожих исполнителей" #: ../src/playlist/ario-playlist-dynamic.c:52 msgid "albums of same artists" msgstr "альбомы этого исполнителя" #: ../src/playlist/ario-playlist-dynamic.c:53 msgid "albums of similar artists" msgstr "альбомы похожих исполнителей" #: ../src/playlist/ario-playlist-dynamic.c:69 msgid "Dynamic Playlist" msgstr "Динамический список воспроизведения" #: ../src/playlist/ario-playlist-queue.c:49 msgid "Queue Mode" msgstr "Режим очереди" #: ../src/playlist/ario-playlist-normal.c:47 msgid "Normal" msgstr "Нормальный" #: ../src/plugins/ario-plugin-manager.c:45 msgid "Plugin" msgstr "Плагин" #: ../src/plugins/ario-plugin-manager.c:46 msgid "Enabled" msgstr "Включено" #: ../src/plugins/ario-plugin-manager.c:480 ../src/shell/ario-shell.c:206 msgid "_About" msgstr "_О программе" #: ../src/plugins/ario-plugin-manager.c:488 msgid "C_onfigure" msgstr "_Настройки" #: ../src/plugins/ario-plugin-manager.c:497 msgid "A_ctivate" msgstr "_Включить" #: ../src/plugins/ario-plugin-manager.c:508 msgid "Ac_tivate All" msgstr "В_ключить всё" #: ../src/plugins/ario-plugin-manager.c:513 msgid "_Deactivate All" msgstr "В_ыключить всё" #: ../src/plugins/ario-plugin-manager.c:722 msgid "Active plugins" msgstr "Активные расширения" #: ../src/preferences/ario-server-preferences.c:182 #: ../src/preferences/ario-stats-preferences.c:151 #: ../src/preferences/ario-stats-preferences.c:152 #: ../src/preferences/ario-stats-preferences.c:153 #: ../src/preferences/ario-stats-preferences.c:154 #: ../src/preferences/ario-stats-preferences.c:155 #: ../src/preferences/ario-stats-preferences.c:156 msgid "Not connected" msgstr "Не подключен" #: ../src/preferences/ario-server-preferences.c:187 #: ../src/preferences/ario-server-preferences.c:278 #: ../src/widgets/ario-status-bar.c:100 msgid "Updating..." msgstr "Обновление..." #: ../src/servers/ario-mpd.c:410 ../src/servers/ario-mpd2.c:522 msgid "Connecting to server..." msgstr "Соединяемся с сервером..." #: ../src/servers/ario-mpd.c:438 ../src/servers/ario-mpd2.c:550 msgid "Impossible to connect to server. Check the connection options." msgstr "Невозможно соединиться с сервером. Проверте настройки соединения." #. ARIO_TAG_ALBUM #: ../src/servers/ario-server.c:47 msgid "Album Artist" msgstr "Артист" #. ARIO_TAG_DATE #: ../src/servers/ario-server.c:53 msgid "Composer" msgstr "Композитор" #. ARIO_TAG_COMPOSER #: ../src/servers/ario-server.c:54 msgid "Performer" msgstr "Исполнитель" #. ARIO_TAG_PERFORMER #. ARIO_TAG_COMMENT #. ARIO_TAG_DISC #: ../src/servers/ario-server.c:57 msgid "Filename" msgstr "Имя файла" #. ARIO_TAG_FILENAME #: ../src/servers/ario-server.c:58 msgid "Any" msgstr "Любой" #. impossible time or broken locale settings #: ../src/servers/ario-server.h:27 #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1235 msgid "Unknown" msgstr "Неизвестно" #: ../src/sources/ario-browser.c:82 ../src/sources/ario-search.c:70 #: ../src/sources/ario-storedplaylists.c:88 #: ../src/sources/ario-storedplaylists.c:106 #: ../plugins/filesystem/ario-filesystem.c:94 #: ../plugins/filesystem/ario-filesystem.c:109 #: ../plugins/radios/ario-radio.c:116 msgid "_Add to playlist" msgstr "_Добавить в список воспроизведения" #: ../src/sources/ario-browser.c:85 ../src/sources/ario-search.c:73 #: ../src/sources/ario-storedplaylists.c:91 #: ../src/sources/ario-storedplaylists.c:109 #: ../plugins/filesystem/ario-filesystem.c:97 #: ../plugins/filesystem/ario-filesystem.c:112 #: ../plugins/radios/ario-radio.c:119 msgid "Add and _play" msgstr "Добавить в список и _играть" #: ../src/sources/ario-browser.c:88 ../src/sources/ario-search.c:76 #: ../src/sources/ario-storedplaylists.c:94 #: ../src/sources/ario-storedplaylists.c:112 #: ../plugins/filesystem/ario-filesystem.c:100 #: ../plugins/filesystem/ario-filesystem.c:115 #: ../plugins/radios/ario-radio.c:122 msgid "_Replace in playlist" msgstr "_Заменить в списке воспроизведения" #: ../src/sources/ario-browser.c:91 msgid "Get the covers" msgstr "Получить обложки" #: ../src/sources/ario-browser.c:94 msgid "_Delete the covers" msgstr "_Удалить обложки" #: ../src/sources/ario-browser.c:97 ../src/sources/ario-browser.c:100 #: ../src/sources/ario-search.c:79 ../src/sources/ario-storedplaylists.c:115 #: ../src/widgets/ario-playlist.c:151 #: ../plugins/filesystem/ario-filesystem.c:118 #: ../plugins/radios/ario-radio.c:131 msgid "_Properties" msgstr "_Свойства" #: ../src/sources/ario-browser.c:125 ../src/shell/ario-shell-preferences.c:118 msgid "Library" msgstr "Библиотека" #: ../src/sources/ario-storedplaylists.c:97 msgid "_Delete" msgstr "_Удалить" #: ../src/sources/ario-storedplaylists.c:151 msgid "Playlists" msgstr "Плейлисты" #: ../src/sources/ario-storedplaylists.c:592 msgid "Are you sure that you want to delete all the selected playlists?" msgstr "Вы действительно хотите удалить все выбранные плейлисты?" #: ../src/sources/ario-tree.c:856 msgid "Are you sure that you want to remove all the selected covers?" msgstr "Вы уверены, что хотите удалить все выделенные обложки?" #. Translators - This "Cover" refers to an album cover art #: ../src/sources/ario-tree-albums.c:199 msgid "Cover" msgstr "Обложка" #: ../src/shell/ario-shell.c:160 msgid "_File" msgstr "_Файл" #: ../src/shell/ario-shell.c:161 msgid "_Edit" msgstr "_Редактировать" #: ../src/shell/ario-shell.c:162 msgid "_View" msgstr "_Вид" #: ../src/shell/ario-shell.c:163 msgid "_Control" msgstr "_Управление" #: ../src/shell/ario-shell.c:164 msgid "_Tool" msgstr "_Инструменты" #: ../src/shell/ario-shell.c:165 msgid "_Help" msgstr "_Помощь" #: ../src/shell/ario-shell.c:173 msgid "_Update database" msgstr "_Обновить базу" #: ../src/shell/ario-shell.c:176 msgid "_Quit" msgstr "_Выход" #: ../src/shell/ario-shell.c:179 msgid "Plu_gins" msgstr "_Плагины" #: ../src/shell/ario-shell.c:182 msgid "Prefere_nces" msgstr "_Параметры" #: ../src/shell/ario-shell.c:185 msgid "_Change current album cover" msgstr "Изменить текущую обложку" #: ../src/shell/ario-shell.c:188 msgid "Download album _covers" msgstr "Скачать альбомные _обложки" #: ../src/shell/ario-shell.c:191 msgid "Find similar artists" msgstr "Найти похожих артистов" #: ../src/shell/ario-shell.c:194 msgid "Add similar songs to playlist" msgstr "Добавить похожие песни в список" #: ../src/shell/ario-shell.c:197 msgid "Go to _previous tab" msgstr "На _предыдущую страницу" #: ../src/shell/ario-shell.c:200 msgid "Go to _next tab" msgstr "На _следующую страницу" #: ../src/shell/ario-shell.c:203 msgid "Show _lyrics" msgstr "Показать _слова песен" #: ../src/shell/ario-shell.c:209 msgid "_Translate this application..." msgstr "Перевести это приложение" #: ../src/shell/ario-shell.c:216 msgid "S_tatusbar" msgstr "_Строка состояния" #: ../src/shell/ario-shell.c:219 msgid "Upper part" msgstr "Верхняя часть" #: ../src/shell/ario-shell.c:825 msgid "GTK client for MPD" msgstr "GTK клиент для MPD" #: ../src/shell/ario-shell.c:826 msgid "translator-credits" msgstr "" "Launchpad Contributions:\n" " #D|zeR by RSIS https://launchpad.net/~riqqer\n" " Aleksej P. https://launchpad.net/~chaos8\n" " Alexander Nasonkin https://launchpad.net/~mr.strack\n" " Alexei Klimenko https://launchpad.net/~nimda7\n" " Alexey Ivanov https://launchpad.net/~alexey-ivanov\n" " Alexey Reztsov https://launchpad.net/~ariafan\n" " Anatoliy Rykun https://launchpad.net/~r-damien\n" " Andrey Shitov https://launchpad.net/~aa-shtv\n" " Anton A. https://launchpad.net/~dogberrt\n" " Dmitry DeXPeriX Hrabrov https://launchpad.net/~dexperix\n" " Egor Bushmelyov https://launchpad.net/~skipper95\n" " Marc Pavot https://launchpad.net/~marc-pavot\n" " Mihail Abrosimov https://launchpad.net/~chaihana\n" " Nick Homolibere https://launchpad.net/~homolibere\n" " Pavel Dmitriev https://launchpad.net/~dmitrievp\n" " Sergey Basalaev https://launchpad.net/~sbasalaev\n" " Sergey Makhtanov https://launchpad.net/~makhtanov\n" " melksoft https://launchpad.net/~melksoft" #. Create plugins configuration dialog window #: ../src/shell/ario-shell.c:1278 msgid "Configure Plugins" msgstr "Настройка плагинов" #. Set window properties #: ../src/shell/ario-shell-coverdownloader.c:187 msgid "Music Player Cover Download" msgstr "Загрузка обложки музыкального проигрывателя" #: ../src/shell/ario-shell-coverdownloader.c:332 msgid "Download Finished!" msgstr "Загрузка завершена!" #. We show the numbers of covers found and not found #: ../src/shell/ario-shell-coverdownloader.c:335 #, c-format msgid "" "%i covers found\n" "%i covers not found\n" "%i covers already exist" msgstr "" "%i обложек найдено\n" "%i обложек не найдено\n" "%i обложек уже существует" #. Set window properties #: ../src/shell/ario-shell-coverselect.c:242 msgid "Cover Download" msgstr "Загрузить обложку" #: ../src/shell/ario-shell-coverselect.c:559 msgid "Error reading file" msgstr "Ошибка чтения файла" #: ../src/shell/ario-shell-coverselect.c:584 msgid "Error saving file" msgstr "Ошибка записи файла" #: ../src/shell/ario-shell-lyrics.c:43 #: ../src/shell/ario-shell-preferences.c:133 #: ../src/shell/ario-shell-songinfos.c:272 msgid "Lyrics" msgstr "Тексты песен" #: ../src/shell/ario-shell-lyricsselect.c:152 msgid "Lyrics Download" msgstr "Загрузить тексты песен" #: ../src/shell/ario-shell-preferences.c:81 msgid "Ario Preferences" msgstr "Ario Настройки" #: ../src/shell/ario-shell-preferences.c:113 msgid "Server" msgstr "Сервер" #: ../src/shell/ario-shell-preferences.c:143 msgid "Others" msgstr "Иные" #: ../src/shell/ario-shell-similarartists.c:318 #, c-format msgid "%d songs" msgstr "%d композиций" #. Set window properties #. Set window title #: ../src/shell/ario-shell-songinfos.c:249 #: ../src/shell/ario-shell-songinfos.c:266 #: ../src/shell/ario-shell-songinfos.c:544 msgid "Song Properties" msgstr "Свойства композиции" #: ../src/shell/ario-shell-songinfos.c:455 msgid "Error saving tags of file:" msgstr "Ошибка сохранения тегов в файле:" #: ../src/widgets/ario-connection-widget.c:652 msgid "You must select a server." msgstr "Вы должны обязательно выбрать сервер." #: ../src/widgets/ario-connection-widget.c:702 msgid "New Profile" msgstr "Новый профиль" #: ../src/widgets/ario-firstlaunch.c:82 msgid "The following configuration will be used:" msgstr "Следующая конфигурация будет использована:" #: ../src/widgets/ario-firstlaunch.c:106 msgid "" "It is the first time you launch Ario.\n" "This assistant will help you to configure it." msgstr "" "Это Ваш первый запуск Ario.\n" "Этот ассистент поможет Вам настроить проигрыватель." #: ../src/widgets/ario-firstlaunch.c:111 msgid "Welcome to Ario" msgstr "Добро пожаловать в Ario" #: ../src/widgets/ario-firstlaunch.c:129 msgid "Configuration" msgstr "Настройка" #: ../src/widgets/ario-firstlaunch.c:141 msgid "Confirmation" msgstr "Подтверждение" #: ../src/widgets/ario-header.c:66 ../src/widgets/ario-tray-icon.h:42 #, c-format msgid "from %s by %s" msgstr "из альбома %s исполняет %s" #: ../src/widgets/ario-header.c:199 msgid "Play previous song" msgstr "Воспроизводить предыдущую песню" #: ../src/widgets/ario-header.c:217 msgid "Play/Pause the music" msgstr "Играть/Пауза музыки" #: ../src/widgets/ario-header.c:229 msgid "Stop the music" msgstr "Остановить музыку" #. Translators - This " of " is used to count the elapsed time #. of a song like in "00:59 of 03:24" #: ../src/widgets/ario-header.c:310 ../src/widgets/ario-tooltip.c:321 msgid " of " msgstr " из " #: ../src/widgets/ario-header.c:323 msgid "Toggle random on/off" msgstr "Включить/отключить случайное воспроизведение" #: ../src/widgets/ario-header.c:335 msgid "Toggle repeat on/off" msgstr "Повтор проигрывания включить/выключить" #: ../src/widgets/ario-header.c:340 msgid "Change the music volume" msgstr "Изменение громкости воспроизведения" #: ../src/widgets/ario-lyrics-editor.c:323 msgid "Downloading lyrics..." msgstr "Загрузка текстов песен..." #: ../src/widgets/ario-lyrics-editor.c:351 msgid "Lyrics not found" msgstr "Тексты песен не найдены" #: ../src/widgets/ario-playlist.c:133 msgid "_Clear" msgstr "_Очистить" #: ../src/widgets/ario-playlist.c:136 msgid "_Shuffle" msgstr "_Перемешать" #: ../src/widgets/ario-playlist.c:139 msgid "Cr_op" msgstr "_Обрезать" #: ../src/widgets/ario-playlist.c:142 msgid "_Search in playlist" msgstr "_Поиск в списке" #: ../src/widgets/ario-playlist.c:145 msgid "_Remove" msgstr "_Удалить" #: ../src/widgets/ario-playlist.c:148 msgid "_Save" msgstr "_Сохранить" #: ../src/widgets/ario-playlist.c:154 msgid "_Go to playing song" msgstr "Воспроизвести песню" #: ../src/widgets/ario-playlist.c:667 msgid "Filter:" msgstr "Фильтр:" #. Create the widgets #: ../src/widgets/ario-playlist.c:1700 msgid "Save playlist" msgstr "Сохранить список" #: ../src/widgets/ario-playlist.c:1710 msgid "Playlist name :" msgstr "Название списка :" #: ../src/widgets/ario-playlist.c:1746 msgid "Playlist already exists. Do you want to overwrite it?" msgstr "Плейлист уже существует. Вы хотите его перезаписать?" #. Format status bar message #: ../src/widgets/ario-status-bar.c:96 msgid "Songs" msgstr "Композиций" #: ../src/widgets/ario-tray-icon.c:102 msgid "_Play" msgstr "_Играть" #: ../src/widgets/ario-tray-icon.c:105 msgid "_Pause" msgstr "_Пауза" #: ../src/widgets/ario-tray-icon.c:108 msgid "_Stop" msgstr "_Остановить" #: ../src/widgets/ario-tray-icon.c:111 msgid "_Next" msgstr "_Далее" #: ../src/widgets/ario-tray-icon.c:114 msgid "P_revious" msgstr "П_ред." #: ../src/widgets/ario-tray-icon.h:41 msgid "Not playing" msgstr "Не воспроизводится" #. Translators: "friendly time" string for the current day, strftime format. like "Today 12:34 am" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1179 msgid "Today %I:%M %p" msgstr "Сегодня %I:%M %p" #. Translators: "friendly time" string for the previous day, #. * strftime format. e.g. "Yesterday 12:34 am" #. #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1192 msgid "Yesterday %I:%M %p" msgstr "Вчера в %H:%M" #. Translators: "friendly time" string for a day in the current week, #. * strftime format. e.g. "Wed 12:34 am" #. #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1208 msgid "%a %I:%M %p" msgstr "%a %I:%M %p" #. Translators: "friendly time" string for a day in the current year, #. * strftime format. e.g. "Feb 12 12:34 am" #. #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1220 msgid "%b %d %I:%M %p" msgstr "%b %d %I:%M %p" #. Translators: "friendly time" string for a day in a different year, #. * strftime format. e.g. "Feb 12 1997" #. #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1225 msgid "%b %d %Y" msgstr "%b %d %Y" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1311 #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:4 msgid "Never" msgstr "Никогда" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1335 msgid "OK" msgstr "OK" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1338 msgid "Logging in" msgstr "Подключение" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1341 msgid "Request failed" msgstr "Не удалось выполнить запрос" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1344 msgid "Incorrect username" msgstr "Неверное имя пользователя" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1347 msgid "Incorrect password" msgstr "Неверный пароль" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1350 msgid "Handshake failed" msgstr "Не удалось установить соединение" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1353 msgid "Client update required" msgstr "Требуется обновление клиента" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1356 msgid "Track submission failed" msgstr "Ошибка при передаче дорожки" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1359 msgid "Queue is too long" msgstr "Очередь слишком длинная" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1362 msgid "Track submission failed too many times" msgstr "Слишком часто возникают ошибки при попытке передачи дорожки" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1417 msgid "Audioscrobbler preferences" msgstr "Настройки Audioscrobbler" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:1 msgid "Disabled" msgstr "Выключено" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:2 msgid "Last submission time:" msgstr "Последняя отправка данных:" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:3 msgid "Last.fm Profile" msgstr "Профиль пользователя Last.fm" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:6 msgid "Queued tracks:" msgstr "В очереди:" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:7 msgid "Status:" msgstr "Статус:" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:8 msgid "Tracks submitted:" msgstr "Передано треков:" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:9 #: ../plugins/radios/ario-radio.c:168 msgid "Username :" msgstr "Имя пользователя :" #: ../plugins/audioscrobbler/audioscrobbler.ario-plugin.desktop.in.h:1 msgid "Last.fm" msgstr "Last.fm" #: ../plugins/audioscrobbler/audioscrobbler.ario-plugin.desktop.in.h:2 msgid "Submits song information to last.fm" msgstr "Отослать информацию о песне на last.fm" #: ../plugins/filesystem/ario-filesystem.c:158 msgid "File System" msgstr "Файловая система" #: ../plugins/filesystem/ario-filesystem.c:422 msgid "Music" msgstr "Музыка" #: ../plugins/filesystem/filesystem.ario-plugin.desktop.in.h:1 msgid "A File System Browser" msgstr "Браузер системных файлов" #: ../plugins/filesystem/filesystem.ario-plugin.desktop.in.h:2 msgid "File System Browser" msgstr "Браузер системных файлов" #: ../plugins/information/ario-information.c:114 msgid "Information" msgstr "Информация" #: ../plugins/information/information.ario-plugin.desktop.in.h:1 msgid "Display various information about the playing song" msgstr "Отобразить различную информацию о проигрываемой песне" #: ../plugins/information/information.ario-plugin.desktop.in.h:2 msgid "Song Information" msgstr "Информация о песне" #: ../plugins/information/information.ui.h:2 msgid "Albums from this artist:" msgstr "Альбомы этого артиста:" #: ../plugins/information/information.ui.h:5 msgid "Lyrics:" msgstr "Слова:" #: ../plugins/libnotify/libnotify.ario-plugin.desktop.in.h:1 msgid "Add libnotify support" msgstr "Добавить поддержку libnotify" #: ../plugins/libnotify/libnotify.ario-plugin.desktop.in.h:2 msgid "Libnotify" msgstr "Libnotify" #: ../plugins/mmkeys/mmkeys.ario-plugin.desktop.in.h:1 msgid "Add multimedia keys support" msgstr "Добавить поддержку мультимедийных клавиш" #: ../plugins/mmkeys/mmkeys.ario-plugin.desktop.in.h:2 msgid "Multimedia Keys" msgstr "Мультимедийные клавиши" #: ../plugins/radios/ario-radio.c:125 msgid "Add a _new radio" msgstr "Добавить _новое радио" #: ../plugins/radios/ario-radio.c:128 msgid "_Delete this radios" msgstr "_Удалить эти радиостанции" #: ../plugins/radios/ario-radio.c:166 msgid "Last.fm: Radio of similar artists" msgstr "Last.fm: Радио по артистам" #: ../plugins/radios/ario-radio.c:167 msgid "Last.fm: Radio of group" msgstr "Last.fm: Радио по группе" #: ../plugins/radios/ario-radio.c:167 msgid "Group :" msgstr "Группа :" #: ../plugins/radios/ario-radio.c:168 msgid "Last.fm: Personal radio" msgstr "Last.fm: Частное радио" #: ../plugins/radios/ario-radio.c:169 msgid "Last.fm: Radio of genre" msgstr "Last.fm: Радио по жанру" #: ../plugins/radios/ario-radio.c:184 #: ../plugins/radios/radios.ario-plugin.desktop.in.h:2 msgid "Web Radios" msgstr "ВебРадиостанции" #: ../plugins/radios/ario-radio.c:246 msgid "Internet Radios" msgstr "Интернет-Радио" #. Create dialog window #: ../plugins/radios/ario-radio.c:774 msgid "Edit a WebRadio" msgstr "Редактировать ВебРадио" #: ../plugins/radios/ario-radio.c:787 ../plugins/radios/ario-radio.c:923 msgid "URL :" msgstr "URL :" #: ../plugins/radios/ario-radio.c:853 ../plugins/radios/ario-radio.c:997 msgid "Bad parameters. You must specify a name and a URL for the radio." msgstr "Неверные параметры. Вы должны обязательно указать имя и URL радио." #. Create dialog window #: ../plugins/radios/ario-radio.c:883 msgid "Add a WebRadio" msgstr "Добавить ВебРадио" #: ../plugins/radios/ario-radio.c:1083 msgid "Are you sure you want to delete all the selected radios?" msgstr "Вы уверены, что хотите удалить все выбранные радио-станции?" #: ../plugins/radios/radios.ario-plugin.desktop.in.h:1 msgid "Listen to webradios" msgstr "Слушать веб-радио" #: ../plugins/wikipedia/ario-wikipedia-plugin.c:49 #: ../plugins/wikipedia/ario-wikipedia-plugin.c:50 msgid "Find artist on Wikipedia" msgstr "Найти артиста на Wikipedia" #: ../plugins/wikipedia/ario-wikipedia-plugin.c:172 msgid "Wikipedia Plugin - Configuration" msgstr "Wikipedia плагин - Настройка" #: ../plugins/wikipedia/ario-wikipedia-plugin.c:181 msgid "Wikipedia language :" msgstr "Язык Wikipedia :" #: ../plugins/wikipedia/wikipedia.ario-plugin.desktop.in.h:1 msgid "A plugin to search current artist on wikipedia" msgstr "Плагин для поиска текущего артиста на wikipedia" #: ../plugins/wikipedia/wikipedia.ario-plugin.desktop.in.h:2 msgid "Wikipedia" msgstr "Википедия" #~ msgid "Search songs in the library" #~ msgstr "Искать песню в библиотеке" #~ msgid "Add a search criteria" #~ msgstr "Добавить критерии поиска" #~ msgid "Remove a search criteria" #~ msgstr "Удалить критерии поиска" ario-1.6/po/fr.po0000644000175000017500000010550013226723435010630 00000000000000# French translation of Ario. # Copyright (C) 2007 THE Ario'S COPYRIGHT HOLDER # This file is distributed under the same license as the Ario package. # marc <>, 2007. # , fuzzy # marc <>, 2008. # # msgid "" msgstr "" "Project-Id-Version: Ario 0.3\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2011-06-13 18:15+0200\n" "PO-Revision-Date: 2011-05-01 18:26+0000\n" "Last-Translator: François FERRANDIS \n" "Language-Team: French\n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2011-06-13 16:32+0000\n" "X-Generator: Launchpad (build 13175)\n" #: ../data/ario.desktop.in.in.h:1 msgid "Ario music player" msgstr "Lecteur de musique Ario" #: ../data/ario.desktop.in.in.h:2 msgid "Client application to mpd" msgstr "Client pour MPD" #: ../data/ui/browser-prefs.ui.h:1 msgid "Alphabetically" msgstr "Alphabétique" #: ../data/ui/browser-prefs.ui.h:2 msgid "By year" msgstr "Par Année" #: ../data/ui/browser-prefs.ui.h:3 msgid "Library Options" msgstr "Options de la bibliothèque" #: ../data/ui/browser-prefs.ui.h:4 msgid "Library Organisation" msgstr "Organisation de la bibliothèque" #: ../data/ui/browser-prefs.ui.h:5 msgid "Sort albums: " msgstr "Trier les albums : " #: ../data/ui/connection-autodetect.ui.h:1 msgid "" "If you don't see your MPD server thanks to the automatic detection, you " "should check that zeroconf is activated in your MPD configuration or use the " "manual configuration." msgstr "" "Si vous ne voyez pas votre serveur MPD, vous devriez vérifier que zeroconf " "est activé sur votre serveur MPD ou utiliser la configuration manuelle." #: ../data/ui/connection-autodetect.ui.h:2 msgid "Server autodetection" msgstr "Autodetection de serveur" #: ../data/ui/connection-widget.ui.h:1 msgid "Auto detect" msgstr "Détection automatique" #: ../data/ui/connection-widget.ui.h:2 msgid "Default" msgstr "Par défaut" #: ../data/ui/connection-widget.ui.h:3 ../src/widgets/ario-firstlaunch.c:83 msgid "Host :" msgstr "Hôte :" #: ../data/ui/connection-widget.ui.h:4 msgid "Music directory :" msgstr "Répertoire de la musique :" #: ../data/ui/connection-widget.ui.h:5 msgid "Music server is on the same computer as Ario" msgstr "Le server de musique est sur le même ordinateur que Ario" #. Create the widgets #: ../data/ui/connection-widget.ui.h:6 ../plugins/radios/ario-radio.c:786 #: ../plugins/radios/ario-radio.c:922 msgid "Name :" msgstr "Nom :" #: ../data/ui/connection-widget.ui.h:7 #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:5 msgid "Password :" msgstr "Mot de passe :" #: ../data/ui/connection-widget.ui.h:8 ../src/widgets/ario-firstlaunch.c:85 msgid "Port :" msgstr "Port :" #: ../data/ui/connection-widget.ui.h:9 msgid "Server type :" msgstr "Type de serveur :" #: ../data/ui/connection-widget.ui.h:10 msgid "Timeout :" msgstr "Timeout :" #: ../data/ui/connection-widget.ui.h:11 msgid "XMMS 2 (Experimental)" msgstr "XMMS 2 (Experimental)" #: ../data/ui/cover-prefs.ui.h:1 msgid "Automatically download the album cover of the playing song" msgstr "" "Télécharger automatiquement la pochette de l'album de la chanson en cours" #: ../data/ui/cover-prefs.ui.h:2 ../src/shell/ario-shell-preferences.c:128 msgid "Covers" msgstr "Pochettes" #: ../data/ui/cover-prefs.ui.h:3 msgid "Covers Sources" msgstr "Sources de pochettes" #: ../data/ui/cover-prefs.ui.h:4 msgid "Show the covers in the albums list" msgstr "Afficher les pochettes dans la liste des albums" #: ../data/ui/cover-prefs.ui.h:5 msgid "Use Amazon." msgstr "Utiliser Amazon." #: ../data/ui/connection-prefs.ui.h:1 #: ../src/shell/ario-shell-preferences.c:108 msgid "Connection" msgstr "Connexion" #: ../data/ui/connection-prefs.ui.h:2 msgid "_Autoconnect on startup" msgstr "_Connexion automatique au démarrage" #: ../data/ui/connection-prefs.ui.h:3 ../src/shell/ario-shell.c:167 msgid "_Connect" msgstr "_Connecter" #: ../data/ui/connection-prefs.ui.h:4 ../src/shell/ario-shell.c:170 msgid "_Disconnect" msgstr "_Déconnecter" #: ../data/ui/connection-assistant.ui.h:1 msgid "" "You need to specify a server to connect to. If you don't see your server " "thanks to the autodetection, you should check that zeroconf/avahi is " "activated in your server or use the manual configuration." msgstr "" "Vous devez spécifier un serveur auquel vous pouvez vous connecter. Si vous " "ne voyez pas votre serveur à l'aide de l'autodétection, vous devriez " "vérifier que zeroconf/avahi est activé sur votre serveur ou utiliser la " "configuration manuelle." #: ../data/ui/cover-progress.ui.h:1 ../data/ui/cover-select.ui.h:1 #: ../data/ui/song-infos.ui.h:1 ../plugins/information/information.ui.h:1 msgid "Album :" msgstr "Album :" #: ../data/ui/cover-progress.ui.h:2 ../data/ui/cover-select.ui.h:2 #: ../data/ui/lyrics-select.ui.h:1 ../data/ui/song-infos.ui.h:3 #: ../plugins/information/information.ui.h:3 #: ../plugins/radios/ario-radio.c:166 msgid "Artist :" msgstr "Artiste :" #: ../data/ui/cover-progress.ui.h:3 msgid "Downloading cover" msgstr "Télécharger les pochettes" #: ../data/ui/cover-select.ui.h:3 msgid "Local search" msgstr "Recherche locale" #: ../data/ui/cover-select.ui.h:4 ../src/sources/ario-search.c:108 msgid "Search" msgstr "Recherche" #: ../data/ui/others-prefs.ui.h:1 msgid "Allow only one instance of Ario" msgstr "N'autoriser qu'une instance d'Ario" #: ../data/ui/others-prefs.ui.h:2 msgid "Hide window when close button is pressed" msgstr "Cacher la fenêtre lorsque la fenêtre est fermée" #: ../data/ui/others-prefs.ui.h:3 msgid "Interface" msgstr "Interface" #: ../data/ui/others-prefs.ui.h:4 msgid "Playlist at the right of tabs" msgstr "Liste de lecture à la droite des onglets" #: ../data/ui/others-prefs.ui.h:5 msgid "Playlist below tabs" msgstr "Liste de lecture en-dessous des onglets" #: ../data/ui/others-prefs.ui.h:6 msgid "Playlist within tabs" msgstr "Liste de lecture parmi les onglets" #: ../data/ui/others-prefs.ui.h:7 msgid "Proxy" msgstr "Proxy" #: ../data/ui/others-prefs.ui.h:8 msgid "Proxy Address :" msgstr "Adresse du proxy :" #: ../data/ui/others-prefs.ui.h:9 msgid "Proxy Port :" msgstr "Port du proxy :" #: ../data/ui/others-prefs.ui.h:10 msgid "Show tabs" msgstr "Afficher les onglets" #: ../data/ui/others-prefs.ui.h:11 msgid "Use a proxy" msgstr "Utiliser un proxy" #: ../data/ui/lyrics-prefs.ui.h:1 msgid "Lyrics Sources" msgstr "Sources des paroles" #: ../data/ui/lyrics-select.ui.h:2 ../data/ui/song-infos.ui.h:13 #: ../plugins/information/information.ui.h:6 msgid "Title :" msgstr "Titre :" #: ../data/ui/playlist-prefs.ui.h:1 msgid "Add after playing song" msgstr "Ajouter après lecture" #: ../data/ui/playlist-prefs.ui.h:2 msgid "Add and play" msgstr "Ajouter et jouer" #: ../data/ui/playlist-prefs.ui.h:3 ../data/ui/similar-artists.ui.h:2 msgid "Add to playlist" msgstr "Ajouter à la liste de lecture" #. ARIO_TAG_ARTIST #: ../data/ui/playlist-prefs.ui.h:4 ../src/servers/ario-server.c:46 #: ../src/sources/ario-tree-albums.c:213 ../src/widgets/ario-playlist.c:541 #: ../src/widgets/ario-songlist.c:228 ../src/widgets/ario-tray-icon.c:565 msgid "Album" msgstr "Album" #: ../data/ui/playlist-prefs.ui.h:5 ../src/servers/ario-server.c:45 #: ../src/widgets/ario-playlist.c:541 ../src/widgets/ario-songlist.c:213 #: ../src/widgets/ario-tray-icon.c:563 msgid "Artist" msgstr "Artiste" #. ARIO_TAG_GENRE #: ../data/ui/playlist-prefs.ui.h:6 ../src/servers/ario-server.c:52 #: ../src/widgets/ario-playlist.c:541 msgid "Date" msgstr "Date" #: ../data/ui/playlist-prefs.ui.h:7 ../src/widgets/ario-playlist.c:541 msgid "Disc" msgstr "Disque" #: ../data/ui/playlist-prefs.ui.h:8 msgid "Double click" msgstr "Double-clic" #: ../data/ui/playlist-prefs.ui.h:9 ../src/widgets/ario-playlist.c:541 msgid "Duration" msgstr "Durée" #: ../data/ui/playlist-prefs.ui.h:10 ../src/widgets/ario-playlist.c:541 msgid "File" msgstr "Fichier" #. ARIO_TAG_TRACK #. ARIO_TAG_NAME #: ../data/ui/playlist-prefs.ui.h:11 ../src/servers/ario-server.c:51 #: ../src/widgets/ario-playlist.c:541 msgid "Genre" msgstr "Genre" #: ../data/ui/playlist-prefs.ui.h:12 msgid "Go to current song when a new song is played" msgstr "Aller à la chanson en cours quand une nouvelle chanson est jouée" #: ../data/ui/playlist-prefs.ui.h:13 msgid "Mode" msgstr "Mode" #: ../data/ui/playlist-prefs.ui.h:14 msgid "On double click:" msgstr "En cas de double-clic" #: ../data/ui/playlist-prefs.ui.h:15 ../src/sources/ario-storedplaylists.c:229 #: ../src/shell/ario-shell.c:222 ../src/shell/ario-shell-preferences.c:123 #: ../src/widgets/ario-playlist.c:272 msgid "Playlist" msgstr "Liste de lecture" #: ../data/ui/playlist-prefs.ui.h:16 msgid "Playlist mode:" msgstr "Mode de la liste de lecture:" #: ../data/ui/playlist-prefs.ui.h:17 msgid "Replace in playlist" msgstr "Remplacer dans la liste de lecture" #: ../data/ui/playlist-prefs.ui.h:18 msgid "Show rows:" msgstr "Afficher les colonnes" #. ARIO_TAG_ALBUM_ARTIST #: ../data/ui/playlist-prefs.ui.h:19 ../src/servers/ario-server.c:48 #: ../src/sources/ario-tree-songs.c:145 ../src/widgets/ario-playlist.c:541 #: ../src/widgets/ario-songlist.c:198 ../src/widgets/ario-tray-icon.c:567 msgid "Title" msgstr "Titre" #. ARIO_TAG_TITLE #: ../data/ui/playlist-prefs.ui.h:20 ../src/servers/ario-server.c:49 #: ../src/sources/ario-tree-songs.c:138 ../src/widgets/ario-playlist.c:541 msgid "Track" msgstr "Piste" #: ../data/ui/server-prefs.ui.h:1 msgid "Audio outputs" msgstr "Sorties Audio" #: ../data/ui/server-prefs.ui.h:2 msgid "Crossfade" msgstr "Fondu" #: ../data/ui/server-prefs.ui.h:3 msgid "Database" msgstr "Base de données" #: ../data/ui/server-prefs.ui.h:4 msgid "Last updated:" msgstr "Dernière mise à jour:" #: ../data/ui/server-prefs.ui.h:5 msgid "Stop music on exit" msgstr "Stopper la musique quand Ario est arrêté" #: ../data/ui/server-prefs.ui.h:6 msgid "Update on startup" msgstr "Mettre à jour au démarrage" #: ../data/ui/server-prefs.ui.h:7 msgid "_Update" msgstr "_Mettre à jour" #: ../data/ui/server-prefs.ui.h:8 msgid "enable crossfade" msgstr "Activer le fondu" #: ../data/ui/server-prefs.ui.h:9 msgid "fade time (s):" msgstr "Durée du fondu (s):" #: ../data/ui/server-prefs.ui.h:10 ../src/ario-util.c:50 ../src/ario-util.c:71 #: ../src/ario-util.c:93 ../plugins/information/information.ui.h:7 #, c-format msgid "n/a" msgstr "n/a" #: ../data/ui/similar-artists.ui.h:1 msgid "Add all to playlist" msgstr "Tout ajouter à la liste de lecture" #: ../data/ui/similar-artists.ui.h:3 msgid "Find on Last.fm" msgstr "Trouver sur Last.fm" #: ../data/ui/stats-prefs.ui.h:1 msgid "Database play time :" msgstr "Durée totale de la base de donnée :" #: ../data/ui/stats-prefs.ui.h:2 msgid "Number of albums :" msgstr "Nombre d'albums :" #: ../data/ui/stats-prefs.ui.h:3 msgid "Number of artists :" msgstr "Nombre d'artistes :" #: ../data/ui/stats-prefs.ui.h:4 msgid "Number of songs :" msgstr "Nombre de chansons :" #: ../data/ui/stats-prefs.ui.h:5 msgid "Play time :" msgstr "Durée de lecture :" #: ../data/ui/stats-prefs.ui.h:6 ../src/shell/ario-shell-preferences.c:148 msgid "Statistics" msgstr "Statistiques" #: ../data/ui/stats-prefs.ui.h:7 msgid "Uptime :" msgstr "Durée d'activité" #: ../data/ui/song-infos.ui.h:2 msgid "Album Artist :" msgstr "Artiste de l'album :" #: ../data/ui/song-infos.ui.h:4 msgid "Comment :" msgstr "Commentaire :" #: ../data/ui/song-infos.ui.h:5 msgid "Composer :" msgstr "Compositeur :" #: ../data/ui/song-infos.ui.h:6 msgid "Date :" msgstr "Date :" #: ../data/ui/song-infos.ui.h:7 msgid "Disc :" msgstr "Disque :" #: ../data/ui/song-infos.ui.h:8 msgid "Filename :" msgstr "Fichier :" #: ../data/ui/song-infos.ui.h:9 ../plugins/radios/ario-radio.c:169 msgid "Genre :" msgstr "Genre :" #: ../data/ui/song-infos.ui.h:10 ../plugins/information/information.ui.h:4 msgid "Length :" msgstr "Durée :" #: ../data/ui/song-infos.ui.h:11 msgid "Performer :" msgstr "Interpréte :" #: ../data/ui/song-infos.ui.h:12 msgid "Song" msgstr "Chanson" #: ../data/ui/song-infos.ui.h:14 msgid "Track :" msgstr "Piste :" #: ../data/ui/trayicon-prefs.ui.h:1 msgid "Do nothing" msgstr "Ne rien faire" #: ../data/ui/trayicon-prefs.ui.h:2 msgid "Mute" msgstr "Sourdine" #: ../data/ui/trayicon-prefs.ui.h:3 ../src/shell/ario-shell-preferences.c:138 msgid "Notification" msgstr "Notification" #: ../data/ui/trayicon-prefs.ui.h:4 msgid "Notification on song change" msgstr "Notification du changement de chanson" #: ../data/ui/trayicon-prefs.ui.h:5 msgid "Notification time: " msgstr "Durée de la notification: " #: ../data/ui/trayicon-prefs.ui.h:6 msgid "On middle button click on tray icon :" msgstr "Lors d'un clic du bouton du milieu sur l'icône de notification :" #: ../data/ui/trayicon-prefs.ui.h:7 ../src/widgets/ario-header.c:241 msgid "Play next song" msgstr "Jouer la chanson suivante" #: ../data/ui/trayicon-prefs.ui.h:8 msgid "Play/Pause" msgstr "Play/Pause" #: ../data/ui/trayicon-prefs.ui.h:9 msgid "Tray icon" msgstr "Icône de notification" #: ../src/ario-main.c:67 msgid "Start minimized window" msgstr "Démarrer une fenêtre minimisée" #: ../src/ario-main.c:68 msgid "Start with specific profile" msgstr "Démarrer avec un porfile spécifique" #. Format result string #: ../src/ario-util.c:110 msgid "seconds" msgstr "secondes" #: ../src/ario-util.c:112 msgid "minutes" msgstr "minutes" #: ../src/ario-util.c:118 msgid "hours" msgstr "heures" #: ../src/ario-util.c:124 msgid "days" msgstr "jours" #: ../src/covers/ario-cover.c:149 msgid "The cover already exists. Do you want to replace it?" msgstr "La pochette existe déjà. Voulez-vous la remplacer?" #: ../src/covers/ario-cover-local.c:48 msgid "Music Directory" msgstr "Répertoire de la musique" #: ../src/playlist/ario-playlist-dynamic.c:49 msgid "songs of same artist" msgstr "chansons du même artiste" #: ../src/playlist/ario-playlist-dynamic.c:50 msgid "songs of same album" msgstr "chansons du même album" #: ../src/playlist/ario-playlist-dynamic.c:51 msgid "songs of similar artists" msgstr "chansons d'artistes similaires" #: ../src/playlist/ario-playlist-dynamic.c:52 msgid "albums of same artists" msgstr "albums du même artiste" #: ../src/playlist/ario-playlist-dynamic.c:53 msgid "albums of similar artists" msgstr "albums d'artistes similaires" #: ../src/playlist/ario-playlist-dynamic.c:69 msgid "Dynamic Playlist" msgstr "Liste de lecture dynamique" #: ../src/playlist/ario-playlist-queue.c:49 msgid "Queue Mode" msgstr "Mode Queue" #: ../src/playlist/ario-playlist-normal.c:47 msgid "Normal" msgstr "Normal" #: ../src/plugins/ario-plugin-manager.c:45 msgid "Plugin" msgstr "Greffon" #: ../src/plugins/ario-plugin-manager.c:46 msgid "Enabled" msgstr "Activée" #: ../src/plugins/ario-plugin-manager.c:480 ../src/shell/ario-shell.c:206 msgid "_About" msgstr "_À propos" #: ../src/plugins/ario-plugin-manager.c:488 msgid "C_onfigure" msgstr "C_onfigurer" #: ../src/plugins/ario-plugin-manager.c:497 msgid "A_ctivate" msgstr "A_ctiver" #: ../src/plugins/ario-plugin-manager.c:508 msgid "Ac_tivate All" msgstr "Tout Ac_tiver" #: ../src/plugins/ario-plugin-manager.c:513 msgid "_Deactivate All" msgstr "Tout _Désactiver" #: ../src/plugins/ario-plugin-manager.c:722 msgid "Active plugins" msgstr "Greffons actifs" #: ../src/preferences/ario-server-preferences.c:182 #: ../src/preferences/ario-stats-preferences.c:151 #: ../src/preferences/ario-stats-preferences.c:152 #: ../src/preferences/ario-stats-preferences.c:153 #: ../src/preferences/ario-stats-preferences.c:154 #: ../src/preferences/ario-stats-preferences.c:155 #: ../src/preferences/ario-stats-preferences.c:156 msgid "Not connected" msgstr "Déconnecté" #: ../src/preferences/ario-server-preferences.c:187 #: ../src/preferences/ario-server-preferences.c:278 #: ../src/widgets/ario-status-bar.c:100 msgid "Updating..." msgstr "En cours de mise à jour..." #: ../src/servers/ario-mpd.c:410 ../src/servers/ario-mpd2.c:522 msgid "Connecting to server..." msgstr "En cours de connexion au serveur..." #: ../src/servers/ario-mpd.c:438 ../src/servers/ario-mpd2.c:550 msgid "Impossible to connect to server. Check the connection options." msgstr "" "Impossible de se connecter au server. Vérifiez vos options de connexion." #. ARIO_TAG_ALBUM #: ../src/servers/ario-server.c:47 msgid "Album Artist" msgstr "Artiste de l'album :" #. ARIO_TAG_DATE #: ../src/servers/ario-server.c:53 msgid "Composer" msgstr "Compositeur" #. ARIO_TAG_COMPOSER #: ../src/servers/ario-server.c:54 msgid "Performer" msgstr "Interprête" #. ARIO_TAG_PERFORMER #. ARIO_TAG_COMMENT #. ARIO_TAG_DISC #: ../src/servers/ario-server.c:57 msgid "Filename" msgstr "Fichier" #. ARIO_TAG_FILENAME #: ../src/servers/ario-server.c:58 msgid "Any" msgstr "Tous" #. impossible time or broken locale settings #: ../src/servers/ario-server.h:27 #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1235 msgid "Unknown" msgstr "Inconnu" #: ../src/sources/ario-browser.c:82 ../src/sources/ario-search.c:70 #: ../src/sources/ario-storedplaylists.c:88 #: ../src/sources/ario-storedplaylists.c:106 #: ../plugins/filesystem/ario-filesystem.c:94 #: ../plugins/filesystem/ario-filesystem.c:109 #: ../plugins/radios/ario-radio.c:116 msgid "_Add to playlist" msgstr "_Ajouter à la liste de lecture" #: ../src/sources/ario-browser.c:85 ../src/sources/ario-search.c:73 #: ../src/sources/ario-storedplaylists.c:91 #: ../src/sources/ario-storedplaylists.c:109 #: ../plugins/filesystem/ario-filesystem.c:97 #: ../plugins/filesystem/ario-filesystem.c:112 #: ../plugins/radios/ario-radio.c:119 msgid "Add and _play" msgstr "Ajouter et _jouer" #: ../src/sources/ario-browser.c:88 ../src/sources/ario-search.c:76 #: ../src/sources/ario-storedplaylists.c:94 #: ../src/sources/ario-storedplaylists.c:112 #: ../plugins/filesystem/ario-filesystem.c:100 #: ../plugins/filesystem/ario-filesystem.c:115 #: ../plugins/radios/ario-radio.c:122 msgid "_Replace in playlist" msgstr "_Remplacer dans la liste de lecture" #: ../src/sources/ario-browser.c:91 msgid "Get the covers" msgstr "Obtenir les pochettes" #: ../src/sources/ario-browser.c:94 msgid "_Delete the covers" msgstr "_Supprimer les pochettes" #: ../src/sources/ario-browser.c:97 ../src/sources/ario-browser.c:100 #: ../src/sources/ario-search.c:79 ../src/sources/ario-storedplaylists.c:115 #: ../src/widgets/ario-playlist.c:151 #: ../plugins/filesystem/ario-filesystem.c:118 #: ../plugins/radios/ario-radio.c:131 msgid "_Properties" msgstr "Propriétés" #: ../src/sources/ario-browser.c:125 ../src/shell/ario-shell-preferences.c:118 msgid "Library" msgstr "Bibliothèque" #: ../src/sources/ario-storedplaylists.c:97 msgid "_Delete" msgstr "_Supprimer" #: ../src/sources/ario-storedplaylists.c:151 msgid "Playlists" msgstr "Listes de lecture" #: ../src/sources/ario-storedplaylists.c:592 msgid "Are you sure that you want to delete all the selected playlists?" msgstr "" "Êtes-vous sûr de vouloir supprimer toutes les listes de lecture " "sélectionnées ?" #: ../src/sources/ario-tree.c:856 msgid "Are you sure that you want to remove all the selected covers?" msgstr "Êtes-vous sûr de vouloir effacer les pochettes sélectionnées?" #. Translators - This "Cover" refers to an album cover art #: ../src/sources/ario-tree-albums.c:199 msgid "Cover" msgstr "Pochette" #: ../src/shell/ario-shell.c:160 msgid "_File" msgstr "_Fichier" #: ../src/shell/ario-shell.c:161 msgid "_Edit" msgstr "É_dition" #: ../src/shell/ario-shell.c:162 msgid "_View" msgstr "_Affichage" #: ../src/shell/ario-shell.c:163 msgid "_Control" msgstr "_Contrôles" #: ../src/shell/ario-shell.c:164 msgid "_Tool" msgstr "_Outils" #: ../src/shell/ario-shell.c:165 msgid "_Help" msgstr "_Aide" #: ../src/shell/ario-shell.c:173 msgid "_Update database" msgstr "_Mettre à jour la base de données" #: ../src/shell/ario-shell.c:176 msgid "_Quit" msgstr "_Quitter" #: ../src/shell/ario-shell.c:179 msgid "Plu_gins" msgstr "_Greffons" #: ../src/shell/ario-shell.c:182 msgid "Prefere_nces" msgstr "Préfére_nces" #: ../src/shell/ario-shell.c:185 msgid "_Change current album cover" msgstr "Changer la pochette de l'album écouté" #: ../src/shell/ario-shell.c:188 msgid "Download album _covers" msgstr "Télécharger les pochettes" #: ../src/shell/ario-shell.c:191 msgid "Find similar artists" msgstr "Trouver des artistes similaires" #: ../src/shell/ario-shell.c:194 msgid "Add similar songs to playlist" msgstr "Ajouter des chansons similaires à la liste de lecture" #: ../src/shell/ario-shell.c:197 msgid "Go to _previous tab" msgstr "Aller à l'onglet _précédent" #: ../src/shell/ario-shell.c:200 msgid "Go to _next tab" msgstr "Aller à l'onglet suiva_nt" #: ../src/shell/ario-shell.c:203 msgid "Show _lyrics" msgstr "Afficher les _paroles" #: ../src/shell/ario-shell.c:209 msgid "_Translate this application..." msgstr "_Traduire cette application..." #: ../src/shell/ario-shell.c:216 msgid "S_tatusbar" msgstr "Barre d'é_tat" #: ../src/shell/ario-shell.c:219 msgid "Upper part" msgstr "Partie supérieure" #: ../src/shell/ario-shell.c:825 msgid "GTK client for MPD" msgstr "Client GTK pour MPD" #: ../src/shell/ario-shell.c:826 msgid "translator-credits" msgstr "" "Launchpad Contributions:\n" " François FERRANDIS https://launchpad.net/~banana.boy\n" " Isildur37 https://launchpad.net/~tiifal\n" " Maijin https://launchpad.net/~maijin-live\n" " Marc Pavot https://launchpad.net/~marc-pavot\n" " Marin https://launchpad.net/~marin.m\n" " Mathieu Pasquet https://launchpad.net/~mathieui\n" " Morgan GERMAIN https://launchpad.net/~morgan-germain\n" " Nicochto https://launchpad.net/~nicochto\n" " Olotiar https://launchpad.net/~floriandenis\n" " Thibault Févry https://launchpad.net/~thibaultfevry\n" " computerhelp https://launchpad.net/~comp-conf\n" " dommy9111 https://launchpad.net/~bossboss9111\n" " pumpkin https://launchpad.net/~pumpkin\n" " viktor https://launchpad.net/~lfraisse" #. Create plugins configuration dialog window #: ../src/shell/ario-shell.c:1278 msgid "Configure Plugins" msgstr "Configuration des greffons" #. Set window properties #: ../src/shell/ario-shell-coverdownloader.c:187 msgid "Music Player Cover Download" msgstr "Téléchargement de pochettes" #: ../src/shell/ario-shell-coverdownloader.c:332 msgid "Download Finished!" msgstr "Téléchargement terminé" #. We show the numbers of covers found and not found #: ../src/shell/ario-shell-coverdownloader.c:335 #, c-format msgid "" "%i covers found\n" "%i covers not found\n" "%i covers already exist" msgstr "" "%i pochettes trouvées\n" "%i pochettes introuvables\n" "%i pochettes déjà existantes" #. Set window properties #: ../src/shell/ario-shell-coverselect.c:242 msgid "Cover Download" msgstr "Téléchargement de pochettes" #: ../src/shell/ario-shell-coverselect.c:559 msgid "Error reading file" msgstr "Erreur lors de la lecture du fichier" #: ../src/shell/ario-shell-coverselect.c:584 msgid "Error saving file" msgstr "Erreur lors de l'écriture du fichier" #: ../src/shell/ario-shell-lyrics.c:43 #: ../src/shell/ario-shell-preferences.c:133 #: ../src/shell/ario-shell-songinfos.c:272 msgid "Lyrics" msgstr "Paroles" #: ../src/shell/ario-shell-lyricsselect.c:152 msgid "Lyrics Download" msgstr "Téléchargement de paroles" #: ../src/shell/ario-shell-preferences.c:81 msgid "Ario Preferences" msgstr "Préférences d'Ario" #: ../src/shell/ario-shell-preferences.c:113 msgid "Server" msgstr "Serveur" #: ../src/shell/ario-shell-preferences.c:143 msgid "Others" msgstr "Autres" #: ../src/shell/ario-shell-similarartists.c:318 #, c-format msgid "%d songs" msgstr "%d Chansons" #. Set window properties #. Set window title #: ../src/shell/ario-shell-songinfos.c:249 #: ../src/shell/ario-shell-songinfos.c:266 #: ../src/shell/ario-shell-songinfos.c:544 msgid "Song Properties" msgstr "Propriétés de la chanson" #: ../src/shell/ario-shell-songinfos.c:455 msgid "Error saving tags of file:" msgstr "Erreur lors de l'enregistrement des tags du fichier:" #: ../src/widgets/ario-connection-widget.c:652 msgid "You must select a server." msgstr "Vous devez sélectionner un serveur." #: ../src/widgets/ario-connection-widget.c:702 msgid "New Profile" msgstr "Nouveau Profil" #: ../src/widgets/ario-firstlaunch.c:82 msgid "The following configuration will be used:" msgstr "La configuration suivante va être utilisée:" #: ../src/widgets/ario-firstlaunch.c:106 msgid "" "It is the first time you launch Ario.\n" "This assistant will help you to configure it." msgstr "" "C'est la première fois que vous lancez Ario.\n" "Cet assistant va vous aider à le configurer." #: ../src/widgets/ario-firstlaunch.c:111 msgid "Welcome to Ario" msgstr "Bienvenue dans Ario" #: ../src/widgets/ario-firstlaunch.c:129 msgid "Configuration" msgstr "Configuration" #: ../src/widgets/ario-firstlaunch.c:141 msgid "Confirmation" msgstr "Confirmation" #: ../src/widgets/ario-header.c:66 ../src/widgets/ario-tray-icon.h:42 #, c-format msgid "from %s by %s" msgstr "de %s par %s" #: ../src/widgets/ario-header.c:199 msgid "Play previous song" msgstr "Jouer la chanson précédente" #: ../src/widgets/ario-header.c:217 msgid "Play/Pause the music" msgstr "Play/pause la musique" #: ../src/widgets/ario-header.c:229 msgid "Stop the music" msgstr "Stop la musique" #. Translators - This " of " is used to count the elapsed time #. of a song like in "00:59 of 03:24" #: ../src/widgets/ario-header.c:310 ../src/widgets/ario-tooltip.c:321 msgid " of " msgstr " sur " #: ../src/widgets/ario-header.c:323 msgid "Toggle random on/off" msgstr "Activer/désactiver le random" #: ../src/widgets/ario-header.c:335 msgid "Toggle repeat on/off" msgstr "Activer/désactiver le repeat" #: ../src/widgets/ario-header.c:340 msgid "Change the music volume" msgstr "Change le volume de la musique" #: ../src/widgets/ario-lyrics-editor.c:323 msgid "Downloading lyrics..." msgstr "Téléchargement des paroles..." #: ../src/widgets/ario-lyrics-editor.c:351 msgid "Lyrics not found" msgstr "Paroles introuvables" #: ../src/widgets/ario-playlist.c:133 msgid "_Clear" msgstr "_Vider" #: ../src/widgets/ario-playlist.c:136 msgid "_Shuffle" msgstr "_Mélanger" #: ../src/widgets/ario-playlist.c:139 msgid "Cr_op" msgstr "_Découper" #: ../src/widgets/ario-playlist.c:142 msgid "_Search in playlist" msgstr "Rechercher dans la li_ste de lecture" #: ../src/widgets/ario-playlist.c:145 msgid "_Remove" msgstr "_Retirer" #: ../src/widgets/ario-playlist.c:148 msgid "_Save" msgstr "_Enregistrer" #: ../src/widgets/ario-playlist.c:154 msgid "_Go to playing song" msgstr "_Aller à la chanson jouée" #: ../src/widgets/ario-playlist.c:667 msgid "Filter:" msgstr "Filtre:" #. Create the widgets #: ../src/widgets/ario-playlist.c:1700 msgid "Save playlist" msgstr "Enregistrer la liste de lecture" #: ../src/widgets/ario-playlist.c:1710 msgid "Playlist name :" msgstr "Nom de la liste de lecture :" #: ../src/widgets/ario-playlist.c:1746 msgid "Playlist already exists. Do you want to overwrite it?" msgstr "La liste de lecture existe déjà. Voulez-vous la remplacer?" #. Format status bar message #: ../src/widgets/ario-status-bar.c:96 msgid "Songs" msgstr "Chansons" #: ../src/widgets/ario-tray-icon.c:102 msgid "_Play" msgstr "_Lecture" #: ../src/widgets/ario-tray-icon.c:105 msgid "_Pause" msgstr "_Pause" #: ../src/widgets/ario-tray-icon.c:108 msgid "_Stop" msgstr "_Stop" #: ../src/widgets/ario-tray-icon.c:111 msgid "_Next" msgstr "_Suivant" #: ../src/widgets/ario-tray-icon.c:114 msgid "P_revious" msgstr "_Précédent" #: ../src/widgets/ario-tray-icon.h:41 msgid "Not playing" msgstr "Ne joue pas" #. Translators: "friendly time" string for the current day, strftime format. like "Today 12:34 am" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1179 msgid "Today %I:%M %p" msgstr "Aujourd'hui %H:%M" #. Translators: "friendly time" string for the previous day, #. * strftime format. e.g. "Yesterday 12:34 am" #. #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1192 msgid "Yesterday %I:%M %p" msgstr "Hier %H:%M" #. Translators: "friendly time" string for a day in the current week, #. * strftime format. e.g. "Wed 12:34 am" #. #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1208 msgid "%a %I:%M %p" msgstr "%a %H:%M" #. Translators: "friendly time" string for a day in the current year, #. * strftime format. e.g. "Feb 12 12:34 am" #. #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1220 msgid "%b %d %I:%M %p" msgstr "%d %b %H:%M" #. Translators: "friendly time" string for a day in a different year, #. * strftime format. e.g. "Feb 12 1997" #. #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1225 msgid "%b %d %Y" msgstr "%d %b %Y" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1311 #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:4 msgid "Never" msgstr "Jamais" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1335 msgid "OK" msgstr "OK" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1338 msgid "Logging in" msgstr "Connexion en cours" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1341 msgid "Request failed" msgstr "Requête échouée" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1344 msgid "Incorrect username" msgstr "Nom d'utilisateur incorrect" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1347 msgid "Incorrect password" msgstr "Mot de passe incorrect" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1350 msgid "Handshake failed" msgstr "Échec du dialogue" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1353 msgid "Client update required" msgstr "Mise à jour du client requise" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1356 msgid "Track submission failed" msgstr "La soumission de la piste a échoué" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1359 msgid "Queue is too long" msgstr "La file d'attente est trop longue" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1362 msgid "Track submission failed too many times" msgstr "La soumission du morceau a échoué à trop de reprises" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1417 msgid "Audioscrobbler preferences" msgstr "Préférences Audioscrobbler" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:1 msgid "Disabled" msgstr "Désactivé" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:2 msgid "Last submission time:" msgstr "Dernière soumission à :" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:3 msgid "Last.fm Profile" msgstr "Profil Last.fm" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:6 msgid "Queued tracks:" msgstr "Morceaux en file d'attente :" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:7 msgid "Status:" msgstr "État :" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:8 msgid "Tracks submitted:" msgstr "Morceaux soumis:" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:9 #: ../plugins/radios/ario-radio.c:168 msgid "Username :" msgstr "Nom d'utilisateur :" #: ../plugins/audioscrobbler/audioscrobbler.ario-plugin.desktop.in.h:1 msgid "Last.fm" msgstr "Last.fm" #: ../plugins/audioscrobbler/audioscrobbler.ario-plugin.desktop.in.h:2 msgid "Submits song information to last.fm" msgstr "Envoyer les informations sur les chansons jouées sur last.fm" #: ../plugins/filesystem/ario-filesystem.c:158 msgid "File System" msgstr "Système de fichiers" #: ../plugins/filesystem/ario-filesystem.c:422 msgid "Music" msgstr "Musique" #: ../plugins/filesystem/filesystem.ario-plugin.desktop.in.h:1 msgid "A File System Browser" msgstr "Un explorateur de système de fichiers" #: ../plugins/filesystem/filesystem.ario-plugin.desktop.in.h:2 msgid "File System Browser" msgstr "Navigateur du système de fichiers" #: ../plugins/information/ario-information.c:114 msgid "Information" msgstr "Informations" #: ../plugins/information/information.ario-plugin.desktop.in.h:1 msgid "Display various information about the playing song" msgstr "Affiche différentes informations sur la chanson en cours" #: ../plugins/information/information.ario-plugin.desktop.in.h:2 msgid "Song Information" msgstr "Informations sur le morceau" #: ../plugins/information/information.ui.h:2 msgid "Albums from this artist:" msgstr "Albums de cet artist:" #: ../plugins/information/information.ui.h:5 msgid "Lyrics:" msgstr "Paroles:" #: ../plugins/libnotify/libnotify.ario-plugin.desktop.in.h:1 msgid "Add libnotify support" msgstr "Ajoute le support de libnotify" #: ../plugins/libnotify/libnotify.ario-plugin.desktop.in.h:2 msgid "Libnotify" msgstr "Libnotify" #: ../plugins/mmkeys/mmkeys.ario-plugin.desktop.in.h:1 msgid "Add multimedia keys support" msgstr "Ajoute le support des touches multimédia." #: ../plugins/mmkeys/mmkeys.ario-plugin.desktop.in.h:2 msgid "Multimedia Keys" msgstr "Touches multimédia" #: ../plugins/radios/ario-radio.c:125 msgid "Add a _new radio" msgstr "Ajouter une nouvelle radio" #: ../plugins/radios/ario-radio.c:128 msgid "_Delete this radios" msgstr "_Supprimer les radios" #: ../plugins/radios/ario-radio.c:166 msgid "Last.fm: Radio of similar artists" msgstr "Last.fm: Radio d'artistes similaires" #: ../plugins/radios/ario-radio.c:167 msgid "Last.fm: Radio of group" msgstr "Last.fm: Radio du groupe" #: ../plugins/radios/ario-radio.c:167 msgid "Group :" msgstr "Groupe :" #: ../plugins/radios/ario-radio.c:168 msgid "Last.fm: Personal radio" msgstr "Last.fm: Radio personelle" #: ../plugins/radios/ario-radio.c:169 msgid "Last.fm: Radio of genre" msgstr "Last.fm: Radio du genre" #: ../plugins/radios/ario-radio.c:184 #: ../plugins/radios/radios.ario-plugin.desktop.in.h:2 msgid "Web Radios" msgstr "Web Radios" #: ../plugins/radios/ario-radio.c:246 msgid "Internet Radios" msgstr "Radios Internet" #. Create dialog window #: ../plugins/radios/ario-radio.c:774 msgid "Edit a WebRadio" msgstr "Éditer une WebRadio" #: ../plugins/radios/ario-radio.c:787 ../plugins/radios/ario-radio.c:923 msgid "URL :" msgstr "URL :" #: ../plugins/radios/ario-radio.c:853 ../plugins/radios/ario-radio.c:997 msgid "Bad parameters. You must specify a name and a URL for the radio." msgstr "" "Mauvais paramètres. Vous devez spécifier un nom et une URL pour la radio." #. Create dialog window #: ../plugins/radios/ario-radio.c:883 msgid "Add a WebRadio" msgstr "Ajouter une WebRadio" #: ../plugins/radios/ario-radio.c:1083 msgid "Are you sure you want to delete all the selected radios?" msgstr "Êtes-vous sûr de vouloir supprimer toutes les radios sélectionnées?" #: ../plugins/radios/radios.ario-plugin.desktop.in.h:1 msgid "Listen to webradios" msgstr "Ecouter des Webradios" #: ../plugins/wikipedia/ario-wikipedia-plugin.c:49 #: ../plugins/wikipedia/ario-wikipedia-plugin.c:50 msgid "Find artist on Wikipedia" msgstr "Trouver l'artiste sur Wikipedia" #: ../plugins/wikipedia/ario-wikipedia-plugin.c:172 msgid "Wikipedia Plugin - Configuration" msgstr "Greffon Wikipedia - Configuration" #: ../plugins/wikipedia/ario-wikipedia-plugin.c:181 msgid "Wikipedia language :" msgstr "Langue de Wikipedia :" #: ../plugins/wikipedia/wikipedia.ario-plugin.desktop.in.h:1 msgid "A plugin to search current artist on wikipedia" msgstr "Un plugin pour chercher l'artiste en cours sur Wikipedia" #: ../plugins/wikipedia/wikipedia.ario-plugin.desktop.in.h:2 msgid "Wikipedia" msgstr "Wikipédia" #~ msgid "Add a search criteria" #~ msgstr "Ajouter un critère de recherche" #~ msgid "Search songs in the library" #~ msgstr "Chercher une chanson dans la bibliothèque" #~ msgid "Remove a search criteria" #~ msgstr "Enlever un critère de recherche" ario-1.6/po/nb.po0000644000175000017500000010262113226723435010621 00000000000000# Norwegian Bokmal translation for ario # Copyright (c) 2008 Rosetta Contributors and Canonical Ltd 2008 # This file is distributed under the same license as the ario package. # FIRST AUTHOR , 2008. # msgid "" msgstr "" "Project-Id-Version: ario\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2011-06-13 18:15+0200\n" "PO-Revision-Date: 2010-11-08 15:39+0000\n" "Last-Translator: Steinar Barbakken \n" "Language-Team: Norwegian Bokmal \n" "Language: nb\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2011-06-13 16:33+0000\n" "X-Generator: Launchpad (build 13175)\n" #: ../data/ario.desktop.in.in.h:1 msgid "Ario music player" msgstr "Ario musikkspiller" #: ../data/ario.desktop.in.in.h:2 msgid "Client application to mpd" msgstr "Klientapplikasjon for MPD" #: ../data/ui/browser-prefs.ui.h:1 msgid "Alphabetically" msgstr "Alfabetisk" #: ../data/ui/browser-prefs.ui.h:2 msgid "By year" msgstr "Etter år" #: ../data/ui/browser-prefs.ui.h:3 msgid "Library Options" msgstr "Innstillinger for Bibliotek" #: ../data/ui/browser-prefs.ui.h:4 msgid "Library Organisation" msgstr "Organisasjon av Bibliotek" #: ../data/ui/browser-prefs.ui.h:5 msgid "Sort albums: " msgstr "Sortér album: " #: ../data/ui/connection-autodetect.ui.h:1 msgid "" "If you don't see your MPD server thanks to the automatic detection, you " "should check that zeroconf is activated in your MPD configuration or use the " "manual configuration." msgstr "" "Hvis du ikke ser din MPD tjener takket være automatisk konfigurasjon, bør du " "enten sjekke at zeroconf er aktivert i din MPD konfigurasjon, eller bruke " "den manuelle konfigurasjonen." #: ../data/ui/connection-autodetect.ui.h:2 msgid "Server autodetection" msgstr "Autooppdagelse av tjener" #: ../data/ui/connection-widget.ui.h:1 msgid "Auto detect" msgstr "Autooppdag" #: ../data/ui/connection-widget.ui.h:2 msgid "Default" msgstr "Standard" #: ../data/ui/connection-widget.ui.h:3 ../src/widgets/ario-firstlaunch.c:83 msgid "Host :" msgstr "Vert :" #: ../data/ui/connection-widget.ui.h:4 msgid "Music directory :" msgstr "Musikk mappe :" #: ../data/ui/connection-widget.ui.h:5 msgid "Music server is on the same computer as Ario" msgstr "Musikk-serveren er på samme datamaskin som Ario" #. Create the widgets #: ../data/ui/connection-widget.ui.h:6 ../plugins/radios/ario-radio.c:786 #: ../plugins/radios/ario-radio.c:922 msgid "Name :" msgstr "Navn :" #: ../data/ui/connection-widget.ui.h:7 #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:5 msgid "Password :" msgstr "Passord :" #: ../data/ui/connection-widget.ui.h:8 ../src/widgets/ario-firstlaunch.c:85 msgid "Port :" msgstr "Port :" #: ../data/ui/connection-widget.ui.h:9 msgid "Server type :" msgstr "Servertype :" #: ../data/ui/connection-widget.ui.h:10 msgid "Timeout :" msgstr "" #: ../data/ui/connection-widget.ui.h:11 msgid "XMMS 2 (Experimental)" msgstr "XMMS 2 (eksperimentell)" #: ../data/ui/cover-prefs.ui.h:1 msgid "Automatically download the album cover of the playing song" msgstr "Automatisk nedlasting av omslag for valgt sang" #: ../data/ui/cover-prefs.ui.h:2 ../src/shell/ario-shell-preferences.c:128 msgid "Covers" msgstr "Omslag" #: ../data/ui/cover-prefs.ui.h:3 msgid "Covers Sources" msgstr "Omslagskilder" #: ../data/ui/cover-prefs.ui.h:4 msgid "Show the covers in the albums list" msgstr "Vis omslag i albumlisten" #: ../data/ui/cover-prefs.ui.h:5 msgid "Use Amazon." msgstr "Bruk Amazon." #: ../data/ui/connection-prefs.ui.h:1 #: ../src/shell/ario-shell-preferences.c:108 msgid "Connection" msgstr "Tilkobling" #: ../data/ui/connection-prefs.ui.h:2 msgid "_Autoconnect on startup" msgstr "_Autotilkobling ved oppstart" #: ../data/ui/connection-prefs.ui.h:3 ../src/shell/ario-shell.c:167 msgid "_Connect" msgstr "_Koble til" #: ../data/ui/connection-prefs.ui.h:4 ../src/shell/ario-shell.c:170 msgid "_Disconnect" msgstr "_Koble fra" #: ../data/ui/connection-assistant.ui.h:1 msgid "" "You need to specify a server to connect to. If you don't see your server " "thanks to the autodetection, you should check that zeroconf/avahi is " "activated in your server or use the manual configuration." msgstr "" "Du må angi en server for å koble til. Hvis du ikke ser din server takket " "være auto-detektering, bør du sjekke at Zeroconf / avahi er aktivert på " "serveren din, eller bruke manuell konfigurering." #: ../data/ui/cover-progress.ui.h:1 ../data/ui/cover-select.ui.h:1 #: ../data/ui/song-infos.ui.h:1 ../plugins/information/information.ui.h:1 msgid "Album :" msgstr "Omslag :" #: ../data/ui/cover-progress.ui.h:2 ../data/ui/cover-select.ui.h:2 #: ../data/ui/lyrics-select.ui.h:1 ../data/ui/song-infos.ui.h:3 #: ../plugins/information/information.ui.h:3 #: ../plugins/radios/ario-radio.c:166 msgid "Artist :" msgstr "Artist :" #: ../data/ui/cover-progress.ui.h:3 msgid "Downloading cover" msgstr "Last ned omslag" #: ../data/ui/cover-select.ui.h:3 msgid "Local search" msgstr "Lokalt søk" #: ../data/ui/cover-select.ui.h:4 ../src/sources/ario-search.c:108 msgid "Search" msgstr "Søk" #: ../data/ui/others-prefs.ui.h:1 msgid "Allow only one instance of Ario" msgstr "Tillat bare én instanse av Ario" #: ../data/ui/others-prefs.ui.h:2 msgid "Hide window when close button is pressed" msgstr "Lukk til systemkurven" #: ../data/ui/others-prefs.ui.h:3 msgid "Interface" msgstr "Grensesnitt" #: ../data/ui/others-prefs.ui.h:4 msgid "Playlist at the right of tabs" msgstr "Spilleliste til høyre for fanene" #: ../data/ui/others-prefs.ui.h:5 msgid "Playlist below tabs" msgstr "Spilleliste under fanene" #: ../data/ui/others-prefs.ui.h:6 msgid "Playlist within tabs" msgstr "Spilleliste i fane" #: ../data/ui/others-prefs.ui.h:7 msgid "Proxy" msgstr "Mellomtjener" #: ../data/ui/others-prefs.ui.h:8 msgid "Proxy Address :" msgstr "Adresse for Mellomtjener :" #: ../data/ui/others-prefs.ui.h:9 msgid "Proxy Port :" msgstr "Port for Mellomtjener :" #: ../data/ui/others-prefs.ui.h:10 msgid "Show tabs" msgstr "Vis faner" #: ../data/ui/others-prefs.ui.h:11 msgid "Use a proxy" msgstr "Bruk Mellomtjener" #: ../data/ui/lyrics-prefs.ui.h:1 msgid "Lyrics Sources" msgstr "Kilder for sangtekster" #: ../data/ui/lyrics-select.ui.h:2 ../data/ui/song-infos.ui.h:13 #: ../plugins/information/information.ui.h:6 msgid "Title :" msgstr "Tittel :" #: ../data/ui/playlist-prefs.ui.h:1 msgid "Add after playing song" msgstr "Legg til etter sang som spilles" #: ../data/ui/playlist-prefs.ui.h:2 msgid "Add and play" msgstr "Legg til og spill" #: ../data/ui/playlist-prefs.ui.h:3 ../data/ui/similar-artists.ui.h:2 msgid "Add to playlist" msgstr "Legg til spillelisten" #. ARIO_TAG_ARTIST #: ../data/ui/playlist-prefs.ui.h:4 ../src/servers/ario-server.c:46 #: ../src/sources/ario-tree-albums.c:213 ../src/widgets/ario-playlist.c:541 #: ../src/widgets/ario-songlist.c:228 ../src/widgets/ario-tray-icon.c:565 msgid "Album" msgstr "Album" #: ../data/ui/playlist-prefs.ui.h:5 ../src/servers/ario-server.c:45 #: ../src/widgets/ario-playlist.c:541 ../src/widgets/ario-songlist.c:213 #: ../src/widgets/ario-tray-icon.c:563 msgid "Artist" msgstr "Artist" #. ARIO_TAG_GENRE #: ../data/ui/playlist-prefs.ui.h:6 ../src/servers/ario-server.c:52 #: ../src/widgets/ario-playlist.c:541 msgid "Date" msgstr "Dato" #: ../data/ui/playlist-prefs.ui.h:7 ../src/widgets/ario-playlist.c:541 msgid "Disc" msgstr "Disk" #: ../data/ui/playlist-prefs.ui.h:8 msgid "Double click" msgstr "Dobbeltklikk" #: ../data/ui/playlist-prefs.ui.h:9 ../src/widgets/ario-playlist.c:541 msgid "Duration" msgstr "Varighet" #: ../data/ui/playlist-prefs.ui.h:10 ../src/widgets/ario-playlist.c:541 msgid "File" msgstr "Fil" #. ARIO_TAG_TRACK #. ARIO_TAG_NAME #: ../data/ui/playlist-prefs.ui.h:11 ../src/servers/ario-server.c:51 #: ../src/widgets/ario-playlist.c:541 msgid "Genre" msgstr "Sjanger" #: ../data/ui/playlist-prefs.ui.h:12 msgid "Go to current song when a new song is played" msgstr "Gå til valgt sang når sangen er ferdig" #: ../data/ui/playlist-prefs.ui.h:13 msgid "Mode" msgstr "Modus" #: ../data/ui/playlist-prefs.ui.h:14 msgid "On double click:" msgstr "På dobbeltklikk:" #: ../data/ui/playlist-prefs.ui.h:15 ../src/sources/ario-storedplaylists.c:229 #: ../src/shell/ario-shell.c:222 ../src/shell/ario-shell-preferences.c:123 #: ../src/widgets/ario-playlist.c:272 msgid "Playlist" msgstr "Spilleliste" #: ../data/ui/playlist-prefs.ui.h:16 msgid "Playlist mode:" msgstr "Spilleliste modus:" #: ../data/ui/playlist-prefs.ui.h:17 msgid "Replace in playlist" msgstr "Erstatt i spilleliste" #: ../data/ui/playlist-prefs.ui.h:18 msgid "Show rows:" msgstr "Vis rader:" #. ARIO_TAG_ALBUM_ARTIST #: ../data/ui/playlist-prefs.ui.h:19 ../src/servers/ario-server.c:48 #: ../src/sources/ario-tree-songs.c:145 ../src/widgets/ario-playlist.c:541 #: ../src/widgets/ario-songlist.c:198 ../src/widgets/ario-tray-icon.c:567 msgid "Title" msgstr "Tittel" #. ARIO_TAG_TITLE #: ../data/ui/playlist-prefs.ui.h:20 ../src/servers/ario-server.c:49 #: ../src/sources/ario-tree-songs.c:138 ../src/widgets/ario-playlist.c:541 msgid "Track" msgstr "Spor" #: ../data/ui/server-prefs.ui.h:1 msgid "Audio outputs" msgstr "Lyd ut" #: ../data/ui/server-prefs.ui.h:2 msgid "Crossfade" msgstr "Krysstoning" #: ../data/ui/server-prefs.ui.h:3 msgid "Database" msgstr "Database" #: ../data/ui/server-prefs.ui.h:4 msgid "Last updated:" msgstr "Sist oppdatert:" #: ../data/ui/server-prefs.ui.h:5 msgid "Stop music on exit" msgstr "Stopp avspilling ved avslutt" #: ../data/ui/server-prefs.ui.h:6 msgid "Update on startup" msgstr "Oppdater ved oppstart" #: ../data/ui/server-prefs.ui.h:7 msgid "_Update" msgstr "_Oppdater" #: ../data/ui/server-prefs.ui.h:8 msgid "enable crossfade" msgstr "aktiver krysstoning" #: ../data/ui/server-prefs.ui.h:9 msgid "fade time (s):" msgstr "overgangs tid (s):" #: ../data/ui/server-prefs.ui.h:10 ../src/ario-util.c:50 ../src/ario-util.c:71 #: ../src/ario-util.c:93 ../plugins/information/information.ui.h:7 #, c-format msgid "n/a" msgstr "n/a" #: ../data/ui/similar-artists.ui.h:1 msgid "Add all to playlist" msgstr "Legg alle til spillelisten" #: ../data/ui/similar-artists.ui.h:3 msgid "Find on Last.fm" msgstr "Finn på Last.fm" #: ../data/ui/stats-prefs.ui.h:1 msgid "Database play time :" msgstr "Databasens avspillingstid :" #: ../data/ui/stats-prefs.ui.h:2 msgid "Number of albums :" msgstr "Antall album :" #: ../data/ui/stats-prefs.ui.h:3 msgid "Number of artists :" msgstr "Antall artister :" #: ../data/ui/stats-prefs.ui.h:4 msgid "Number of songs :" msgstr "Antall sanger :" #: ../data/ui/stats-prefs.ui.h:5 msgid "Play time :" msgstr "Spilletid :" #: ../data/ui/stats-prefs.ui.h:6 ../src/shell/ario-shell-preferences.c:148 msgid "Statistics" msgstr "Statistikk" #: ../data/ui/stats-prefs.ui.h:7 msgid "Uptime :" msgstr "Oppetid :" #: ../data/ui/song-infos.ui.h:2 msgid "Album Artist :" msgstr "Album artist:" #: ../data/ui/song-infos.ui.h:4 msgid "Comment :" msgstr "Kommentar :" #: ../data/ui/song-infos.ui.h:5 msgid "Composer :" msgstr "Komponist :" #: ../data/ui/song-infos.ui.h:6 msgid "Date :" msgstr "Dato :" #: ../data/ui/song-infos.ui.h:7 msgid "Disc :" msgstr "Disk :" #: ../data/ui/song-infos.ui.h:8 msgid "Filename :" msgstr "Filnavn :" #: ../data/ui/song-infos.ui.h:9 ../plugins/radios/ario-radio.c:169 msgid "Genre :" msgstr "Sjanger :" #: ../data/ui/song-infos.ui.h:10 ../plugins/information/information.ui.h:4 msgid "Length :" msgstr "Lengde :" #: ../data/ui/song-infos.ui.h:11 msgid "Performer :" msgstr "Fremfører :" #: ../data/ui/song-infos.ui.h:12 msgid "Song" msgstr "Sang" #: ../data/ui/song-infos.ui.h:14 msgid "Track :" msgstr "Spor :" #: ../data/ui/trayicon-prefs.ui.h:1 msgid "Do nothing" msgstr "Ikke gjør noe" #: ../data/ui/trayicon-prefs.ui.h:2 msgid "Mute" msgstr "Demp" #: ../data/ui/trayicon-prefs.ui.h:3 ../src/shell/ario-shell-preferences.c:138 msgid "Notification" msgstr "Beskjed" #: ../data/ui/trayicon-prefs.ui.h:4 msgid "Notification on song change" msgstr "Vis beskjed ved bytte av sang" #: ../data/ui/trayicon-prefs.ui.h:5 msgid "Notification time: " msgstr "Beskjedens visningstid: " #: ../data/ui/trayicon-prefs.ui.h:6 msgid "On middle button click on tray icon :" msgstr "Ved klikk med midtre museknapp på ikon i systemkurv :" #: ../data/ui/trayicon-prefs.ui.h:7 ../src/widgets/ario-header.c:241 msgid "Play next song" msgstr "Spill neste sang" #: ../data/ui/trayicon-prefs.ui.h:8 msgid "Play/Pause" msgstr "Spill/Pause" #: ../data/ui/trayicon-prefs.ui.h:9 msgid "Tray icon" msgstr "Ikon i systemkurv" #: ../src/ario-main.c:67 msgid "Start minimized window" msgstr "Start minimert" #: ../src/ario-main.c:68 msgid "Start with specific profile" msgstr "" #. Format result string #: ../src/ario-util.c:110 msgid "seconds" msgstr "sekunder" #: ../src/ario-util.c:112 msgid "minutes" msgstr "minutter" #: ../src/ario-util.c:118 msgid "hours" msgstr "timer" #: ../src/ario-util.c:124 msgid "days" msgstr "dager" #: ../src/covers/ario-cover.c:149 msgid "The cover already exists. Do you want to replace it?" msgstr "Omslaget finnes allerede. Vil du erstatte det?" #: ../src/covers/ario-cover-local.c:48 msgid "Music Directory" msgstr "Musikk Mappe" #: ../src/playlist/ario-playlist-dynamic.c:49 msgid "songs of same artist" msgstr "sanger fra samme artist" #: ../src/playlist/ario-playlist-dynamic.c:50 msgid "songs of same album" msgstr "sanger fra samme album" #: ../src/playlist/ario-playlist-dynamic.c:51 msgid "songs of similar artists" msgstr "sanger fra lignende artister" #: ../src/playlist/ario-playlist-dynamic.c:52 msgid "albums of same artists" msgstr "album fra samme artister" #: ../src/playlist/ario-playlist-dynamic.c:53 msgid "albums of similar artists" msgstr "album fra lignende artister" #: ../src/playlist/ario-playlist-dynamic.c:69 msgid "Dynamic Playlist" msgstr "Dynamisk spilleliste" #: ../src/playlist/ario-playlist-queue.c:49 msgid "Queue Mode" msgstr "Kø-modus" #: ../src/playlist/ario-playlist-normal.c:47 msgid "Normal" msgstr "Normal" #: ../src/plugins/ario-plugin-manager.c:45 msgid "Plugin" msgstr "Programtillegg" #: ../src/plugins/ario-plugin-manager.c:46 msgid "Enabled" msgstr "Aktivert" #: ../src/plugins/ario-plugin-manager.c:480 ../src/shell/ario-shell.c:206 msgid "_About" msgstr "_Om" #: ../src/plugins/ario-plugin-manager.c:488 msgid "C_onfigure" msgstr "K_onfigurer" #: ../src/plugins/ario-plugin-manager.c:497 msgid "A_ctivate" msgstr "A_ktiver" #: ../src/plugins/ario-plugin-manager.c:508 msgid "Ac_tivate All" msgstr "Ak_tiver alle" #: ../src/plugins/ario-plugin-manager.c:513 msgid "_Deactivate All" msgstr "_Deaktiver alle" #: ../src/plugins/ario-plugin-manager.c:722 msgid "Active plugins" msgstr "Aktive programtillegg" #: ../src/preferences/ario-server-preferences.c:182 #: ../src/preferences/ario-stats-preferences.c:151 #: ../src/preferences/ario-stats-preferences.c:152 #: ../src/preferences/ario-stats-preferences.c:153 #: ../src/preferences/ario-stats-preferences.c:154 #: ../src/preferences/ario-stats-preferences.c:155 #: ../src/preferences/ario-stats-preferences.c:156 msgid "Not connected" msgstr "Ikke tilkoblet" #: ../src/preferences/ario-server-preferences.c:187 #: ../src/preferences/ario-server-preferences.c:278 #: ../src/widgets/ario-status-bar.c:100 msgid "Updating..." msgstr "Oppdaterer..." #: ../src/servers/ario-mpd.c:410 ../src/servers/ario-mpd2.c:522 msgid "Connecting to server..." msgstr "Kobler til server..." #: ../src/servers/ario-mpd.c:438 ../src/servers/ario-mpd2.c:550 msgid "Impossible to connect to server. Check the connection options." msgstr "Kan ikke koble til tjeneren. Sjekk innstillinger for tilkobling." #. ARIO_TAG_ALBUM #: ../src/servers/ario-server.c:47 msgid "Album Artist" msgstr "Albumartist" #. ARIO_TAG_DATE #: ../src/servers/ario-server.c:53 msgid "Composer" msgstr "Komponist" #. ARIO_TAG_COMPOSER #: ../src/servers/ario-server.c:54 msgid "Performer" msgstr "Fremfører" #. ARIO_TAG_PERFORMER #. ARIO_TAG_COMMENT #. ARIO_TAG_DISC #: ../src/servers/ario-server.c:57 msgid "Filename" msgstr "Filnavn" #. ARIO_TAG_FILENAME #: ../src/servers/ario-server.c:58 msgid "Any" msgstr "Alt" #. impossible time or broken locale settings #: ../src/servers/ario-server.h:27 #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1235 msgid "Unknown" msgstr "Ukjent" #: ../src/sources/ario-browser.c:82 ../src/sources/ario-search.c:70 #: ../src/sources/ario-storedplaylists.c:88 #: ../src/sources/ario-storedplaylists.c:106 #: ../plugins/filesystem/ario-filesystem.c:94 #: ../plugins/filesystem/ario-filesystem.c:109 #: ../plugins/radios/ario-radio.c:116 msgid "_Add to playlist" msgstr "_Legg til spillelisten" #: ../src/sources/ario-browser.c:85 ../src/sources/ario-search.c:73 #: ../src/sources/ario-storedplaylists.c:91 #: ../src/sources/ario-storedplaylists.c:109 #: ../plugins/filesystem/ario-filesystem.c:97 #: ../plugins/filesystem/ario-filesystem.c:112 #: ../plugins/radios/ario-radio.c:119 msgid "Add and _play" msgstr "Legg til og _spill av" #: ../src/sources/ario-browser.c:88 ../src/sources/ario-search.c:76 #: ../src/sources/ario-storedplaylists.c:94 #: ../src/sources/ario-storedplaylists.c:112 #: ../plugins/filesystem/ario-filesystem.c:100 #: ../plugins/filesystem/ario-filesystem.c:115 #: ../plugins/radios/ario-radio.c:122 msgid "_Replace in playlist" msgstr "_Erstatt i spillelisten" #: ../src/sources/ario-browser.c:91 msgid "Get the covers" msgstr "Hent omslagene" #: ../src/sources/ario-browser.c:94 msgid "_Delete the covers" msgstr "_Slett omslagene" #: ../src/sources/ario-browser.c:97 ../src/sources/ario-browser.c:100 #: ../src/sources/ario-search.c:79 ../src/sources/ario-storedplaylists.c:115 #: ../src/widgets/ario-playlist.c:151 #: ../plugins/filesystem/ario-filesystem.c:118 #: ../plugins/radios/ario-radio.c:131 msgid "_Properties" msgstr "_Egenskaper" #: ../src/sources/ario-browser.c:125 ../src/shell/ario-shell-preferences.c:118 msgid "Library" msgstr "Bibliotek" #: ../src/sources/ario-storedplaylists.c:97 msgid "_Delete" msgstr "_Slett" #: ../src/sources/ario-storedplaylists.c:151 msgid "Playlists" msgstr "Spillelister" #: ../src/sources/ario-storedplaylists.c:592 msgid "Are you sure that you want to delete all the selected playlists?" msgstr "Er du sikker på at du vil slette alle de valgte spillelistene?" #: ../src/sources/ario-tree.c:856 msgid "Are you sure that you want to remove all the selected covers?" msgstr "Er du sikker på at du vil fjerne alle de valgte omslagene?" #. Translators - This "Cover" refers to an album cover art #: ../src/sources/ario-tree-albums.c:199 msgid "Cover" msgstr "Omslag" #: ../src/shell/ario-shell.c:160 msgid "_File" msgstr "_Fil" #: ../src/shell/ario-shell.c:161 msgid "_Edit" msgstr "_Rediger" #: ../src/shell/ario-shell.c:162 msgid "_View" msgstr "_Vis" #: ../src/shell/ario-shell.c:163 msgid "_Control" msgstr "_Kontroll" #: ../src/shell/ario-shell.c:164 msgid "_Tool" msgstr "_Verktøy" #: ../src/shell/ario-shell.c:165 msgid "_Help" msgstr "_Hjelp" #: ../src/shell/ario-shell.c:173 msgid "_Update database" msgstr "_oppdater database" #: ../src/shell/ario-shell.c:176 msgid "_Quit" msgstr "_Avslutt" #: ../src/shell/ario-shell.c:179 msgid "Plu_gins" msgstr "Program_tillegg" #: ../src/shell/ario-shell.c:182 msgid "Prefere_nces" msgstr "_Brukervalg" #: ../src/shell/ario-shell.c:185 msgid "_Change current album cover" msgstr "_Bytt ut nåværende omslag" #: ../src/shell/ario-shell.c:188 msgid "Download album _covers" msgstr "Last ned album _omslag" #: ../src/shell/ario-shell.c:191 msgid "Find similar artists" msgstr "Finn lignende artister" #: ../src/shell/ario-shell.c:194 msgid "Add similar songs to playlist" msgstr "Legg til lignende sanger i spillelisten" #: ../src/shell/ario-shell.c:197 msgid "Go to _previous tab" msgstr "Gå til _forrige fane" #: ../src/shell/ario-shell.c:200 msgid "Go to _next tab" msgstr "Gå til _neste fane" #: ../src/shell/ario-shell.c:203 msgid "Show _lyrics" msgstr "Vis _sangtekst" #: ../src/shell/ario-shell.c:209 msgid "_Translate this application..." msgstr "_Oversett dette programmet..." #: ../src/shell/ario-shell.c:216 msgid "S_tatusbar" msgstr "S_tatuslinje" #: ../src/shell/ario-shell.c:219 msgid "Upper part" msgstr "Øvre del" #: ../src/shell/ario-shell.c:825 msgid "GTK client for MPD" msgstr "GTK klient for MPD" #: ../src/shell/ario-shell.c:826 msgid "translator-credits" msgstr "" "Launchpad Contributions:\n" " Kenneth Langdalen https://launchpad.net/~spam-klnetworks\n" " Lars Tandle Kyllingstad https://launchpad.net/~kyllingstad\n" " Marc Pavot https://launchpad.net/~marc-pavot\n" " Rune C. Akselsen https://launchpad.net/~runeakselsen\n" " Steinar Barbakken https://launchpad.net/~topguyz\n" " Steve Pedersen https://launchpad.net/~stevep86\n" " Thor K. H https://launchpad.net/~nitrolinken\n" " Tor Syversen https://launchpad.net/~sol-moe" #. Create plugins configuration dialog window #: ../src/shell/ario-shell.c:1278 msgid "Configure Plugins" msgstr "Konfigurer Programtillegg" #. Set window properties #: ../src/shell/ario-shell-coverdownloader.c:187 msgid "Music Player Cover Download" msgstr "Nedlasting av Omslag for Album" #: ../src/shell/ario-shell-coverdownloader.c:332 msgid "Download Finished!" msgstr "Nedlastingen er Ferdig!" #. We show the numbers of covers found and not found #: ../src/shell/ario-shell-coverdownloader.c:335 #, c-format msgid "" "%i covers found\n" "%i covers not found\n" "%i covers already exist" msgstr "" "%i omslag funnet\n" "%i omslag ikke funnet\n" "%i omslag finnes allerede" #. Set window properties #: ../src/shell/ario-shell-coverselect.c:242 msgid "Cover Download" msgstr "Nedlasting av Omslag" #: ../src/shell/ario-shell-coverselect.c:559 msgid "Error reading file" msgstr "Feil ved lesing av fil" #: ../src/shell/ario-shell-coverselect.c:584 msgid "Error saving file" msgstr "Feil oppstod ved lagring av filen" #: ../src/shell/ario-shell-lyrics.c:43 #: ../src/shell/ario-shell-preferences.c:133 #: ../src/shell/ario-shell-songinfos.c:272 msgid "Lyrics" msgstr "Sangtekster" #: ../src/shell/ario-shell-lyricsselect.c:152 msgid "Lyrics Download" msgstr "Nedlasting av Sangtekster" #: ../src/shell/ario-shell-preferences.c:81 msgid "Ario Preferences" msgstr "Ario Innstillinger" #: ../src/shell/ario-shell-preferences.c:113 msgid "Server" msgstr "Tjener" #: ../src/shell/ario-shell-preferences.c:143 msgid "Others" msgstr "Andre" #: ../src/shell/ario-shell-similarartists.c:318 #, c-format msgid "%d songs" msgstr "%d sanger" #. Set window properties #. Set window title #: ../src/shell/ario-shell-songinfos.c:249 #: ../src/shell/ario-shell-songinfos.c:266 #: ../src/shell/ario-shell-songinfos.c:544 msgid "Song Properties" msgstr "Egenskaper for sang" #: ../src/shell/ario-shell-songinfos.c:455 msgid "Error saving tags of file:" msgstr "Feil ved lagring av tags i filen:" #: ../src/widgets/ario-connection-widget.c:652 msgid "You must select a server." msgstr "Du må velge en tjener." #: ../src/widgets/ario-connection-widget.c:702 msgid "New Profile" msgstr "Ny profil" #: ../src/widgets/ario-firstlaunch.c:82 msgid "The following configuration will be used:" msgstr "Følgende konfigurasjon vil bli brukt:" #: ../src/widgets/ario-firstlaunch.c:106 msgid "" "It is the first time you launch Ario.\n" "This assistant will help you to configure it." msgstr "" "Dette er første gangen du kjører Ario.\n" "Denne assistenten vil hjelpe deg med konfigurasjonen." #: ../src/widgets/ario-firstlaunch.c:111 msgid "Welcome to Ario" msgstr "Velkommen til Ario" #: ../src/widgets/ario-firstlaunch.c:129 msgid "Configuration" msgstr "Konfigurasjon" #: ../src/widgets/ario-firstlaunch.c:141 msgid "Confirmation" msgstr "Bekreftelse" #: ../src/widgets/ario-header.c:66 ../src/widgets/ario-tray-icon.h:42 #, c-format msgid "from %s by %s" msgstr "fra %s av %s" #: ../src/widgets/ario-header.c:199 msgid "Play previous song" msgstr "Spill forrige sang" #: ../src/widgets/ario-header.c:217 msgid "Play/Pause the music" msgstr "Spill/Pause" #: ../src/widgets/ario-header.c:229 msgid "Stop the music" msgstr "Stopp musikken" #. Translators - This " of " is used to count the elapsed time #. of a song like in "00:59 of 03:24" #: ../src/widgets/ario-header.c:310 ../src/widgets/ario-tooltip.c:321 msgid " of " msgstr " av " #: ../src/widgets/ario-header.c:323 msgid "Toggle random on/off" msgstr "Slå av/på tilfelding sortering" #: ../src/widgets/ario-header.c:335 msgid "Toggle repeat on/off" msgstr "Slå av/på gjentagelser" #: ../src/widgets/ario-header.c:340 msgid "Change the music volume" msgstr "Endre volum" #: ../src/widgets/ario-lyrics-editor.c:323 msgid "Downloading lyrics..." msgstr "Laster ned sangtekster..." #: ../src/widgets/ario-lyrics-editor.c:351 msgid "Lyrics not found" msgstr "Ingen sangtekster ble funnet" #: ../src/widgets/ario-playlist.c:133 msgid "_Clear" msgstr "_Tøm" #: ../src/widgets/ario-playlist.c:136 msgid "_Shuffle" msgstr "_Bland tilfeldig" #: ../src/widgets/ario-playlist.c:139 msgid "Cr_op" msgstr "_Beskjær" #: ../src/widgets/ario-playlist.c:142 msgid "_Search in playlist" msgstr "_Søk i spilleleste" #: ../src/widgets/ario-playlist.c:145 msgid "_Remove" msgstr "Fje_rn" #: ../src/widgets/ario-playlist.c:148 msgid "_Save" msgstr "_Lagre" #: ../src/widgets/ario-playlist.c:154 msgid "_Go to playing song" msgstr "_Gå til spillende sang" #: ../src/widgets/ario-playlist.c:667 msgid "Filter:" msgstr "Filter:" #. Create the widgets #: ../src/widgets/ario-playlist.c:1700 msgid "Save playlist" msgstr "Lagre spilleliste" #: ../src/widgets/ario-playlist.c:1710 msgid "Playlist name :" msgstr "Spillelistens navn :" #: ../src/widgets/ario-playlist.c:1746 msgid "Playlist already exists. Do you want to overwrite it?" msgstr "Spillelisten finnes allerede. Vil du erstatte den?" #. Format status bar message #: ../src/widgets/ario-status-bar.c:96 msgid "Songs" msgstr "Sanger" #: ../src/widgets/ario-tray-icon.c:102 msgid "_Play" msgstr "_Spill av" #: ../src/widgets/ario-tray-icon.c:105 msgid "_Pause" msgstr "_Pause" #: ../src/widgets/ario-tray-icon.c:108 msgid "_Stop" msgstr "_Stopp" #: ../src/widgets/ario-tray-icon.c:111 msgid "_Next" msgstr "_Neste" #: ../src/widgets/ario-tray-icon.c:114 msgid "P_revious" msgstr "Fo_rrige" #: ../src/widgets/ario-tray-icon.h:41 msgid "Not playing" msgstr "Spiller ikke" #. Translators: "friendly time" string for the current day, strftime format. like "Today 12:34 am" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1179 msgid "Today %I:%M %p" msgstr "I dag %H:%M" #. Translators: "friendly time" string for the previous day, #. * strftime format. e.g. "Yesterday 12:34 am" #. #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1192 msgid "Yesterday %I:%M %p" msgstr "I går %H:%M" #. Translators: "friendly time" string for a day in the current week, #. * strftime format. e.g. "Wed 12:34 am" #. #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1208 msgid "%a %I:%M %p" msgstr "%a %H:%M" #. Translators: "friendly time" string for a day in the current year, #. * strftime format. e.g. "Feb 12 12:34 am" #. #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1220 msgid "%b %d %I:%M %p" msgstr "%d %b %H:%M" #. Translators: "friendly time" string for a day in a different year, #. * strftime format. e.g. "Feb 12 1997" #. #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1225 msgid "%b %d %Y" msgstr "%b %d %Y" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1311 #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:4 msgid "Never" msgstr "Aldri" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1335 msgid "OK" msgstr "OK" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1338 msgid "Logging in" msgstr "Logger inn" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1341 msgid "Request failed" msgstr "Forespørsel feilet" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1344 msgid "Incorrect username" msgstr "Feil brukernavn" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1347 msgid "Incorrect password" msgstr "Feil passord" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1350 msgid "Handshake failed" msgstr "Håndtrykk feilet" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1353 msgid "Client update required" msgstr "Klientoppdatering kreves" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1356 msgid "Track submission failed" msgstr "Innsending av spor feilet" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1359 msgid "Queue is too long" msgstr "Køen er for lang" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1362 msgid "Track submission failed too many times" msgstr "Innsending av spor har feilet for mange ganger" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1417 msgid "Audioscrobbler preferences" msgstr "Brukervalg for Audioscrobbler" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:1 msgid "Disabled" msgstr "Deaktivert" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:2 msgid "Last submission time:" msgstr "Tid for siste innsending:" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:3 msgid "Last.fm Profile" msgstr "Last.fm Profil" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:6 msgid "Queued tracks:" msgstr "Kølagte spor:" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:7 msgid "Status:" msgstr "Status:" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:8 msgid "Tracks submitted:" msgstr "Innsendte spor:" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:9 #: ../plugins/radios/ario-radio.c:168 msgid "Username :" msgstr "Brukernavn :" #: ../plugins/audioscrobbler/audioscrobbler.ario-plugin.desktop.in.h:1 msgid "Last.fm" msgstr "Last.fm" #: ../plugins/audioscrobbler/audioscrobbler.ario-plugin.desktop.in.h:2 msgid "Submits song information to last.fm" msgstr "Sender inn sanginformasjon til Last.fm" #: ../plugins/filesystem/ario-filesystem.c:158 msgid "File System" msgstr "Filsystem" #: ../plugins/filesystem/ario-filesystem.c:422 msgid "Music" msgstr "Musikk" #: ../plugins/filesystem/filesystem.ario-plugin.desktop.in.h:1 msgid "A File System Browser" msgstr "En Filsystemutforsker" #: ../plugins/filesystem/filesystem.ario-plugin.desktop.in.h:2 msgid "File System Browser" msgstr "Utforsker for Filsystemet" #: ../plugins/information/ario-information.c:114 msgid "Information" msgstr "Informasjon" #: ../plugins/information/information.ario-plugin.desktop.in.h:1 msgid "Display various information about the playing song" msgstr "Vis diverse informasjon om sangen som spilles" #: ../plugins/information/information.ario-plugin.desktop.in.h:2 msgid "Song Information" msgstr "Sanginformasjon" #: ../plugins/information/information.ui.h:2 msgid "Albums from this artist:" msgstr "Album fra denne artisten:" #: ../plugins/information/information.ui.h:5 msgid "Lyrics:" msgstr "Sangtekster:" #: ../plugins/libnotify/libnotify.ario-plugin.desktop.in.h:1 msgid "Add libnotify support" msgstr "Legg til støtte for libnotify" #: ../plugins/libnotify/libnotify.ario-plugin.desktop.in.h:2 msgid "Libnotify" msgstr "Libnotify" #: ../plugins/mmkeys/mmkeys.ario-plugin.desktop.in.h:1 msgid "Add multimedia keys support" msgstr "Legg til støtte for multimedieknapper" #: ../plugins/mmkeys/mmkeys.ario-plugin.desktop.in.h:2 msgid "Multimedia Keys" msgstr "Multimedieknapper" #: ../plugins/radios/ario-radio.c:125 msgid "Add a _new radio" msgstr "Legg til _ny radio" #: ../plugins/radios/ario-radio.c:128 msgid "_Delete this radios" msgstr "_Slett valgt radio" #: ../plugins/radios/ario-radio.c:166 msgid "Last.fm: Radio of similar artists" msgstr "Kopiere tekst Last.fm: Radio til liknende artister" #: ../plugins/radios/ario-radio.c:167 msgid "Last.fm: Radio of group" msgstr "Last.fm: Radio av gruppen" #: ../plugins/radios/ario-radio.c:167 msgid "Group :" msgstr "Gruppe :" #: ../plugins/radios/ario-radio.c:168 msgid "Last.fm: Personal radio" msgstr "Last.fm: Personlig radio" #: ../plugins/radios/ario-radio.c:169 msgid "Last.fm: Radio of genre" msgstr "Last.fm: Radio sjanger" #: ../plugins/radios/ario-radio.c:184 #: ../plugins/radios/radios.ario-plugin.desktop.in.h:2 msgid "Web Radios" msgstr "Web Radio" #: ../plugins/radios/ario-radio.c:246 msgid "Internet Radios" msgstr "Nettradioer" #. Create dialog window #: ../plugins/radios/ario-radio.c:774 msgid "Edit a WebRadio" msgstr "Rediger WebRadio" #: ../plugins/radios/ario-radio.c:787 ../plugins/radios/ario-radio.c:923 msgid "URL :" msgstr "URL :" #: ../plugins/radios/ario-radio.c:853 ../plugins/radios/ario-radio.c:997 msgid "Bad parameters. You must specify a name and a URL for the radio." msgstr "Feil parameter. Du må spesifisere et navn og en URL for radioen." #. Create dialog window #: ../plugins/radios/ario-radio.c:883 msgid "Add a WebRadio" msgstr "Legg til WebRadio" #: ../plugins/radios/ario-radio.c:1083 msgid "Are you sure you want to delete all the selected radios?" msgstr "Er du sikker på at du vil slette alle de valgte radioene?" #: ../plugins/radios/radios.ario-plugin.desktop.in.h:1 msgid "Listen to webradios" msgstr "Hør på webradio" #: ../plugins/wikipedia/ario-wikipedia-plugin.c:49 #: ../plugins/wikipedia/ario-wikipedia-plugin.c:50 msgid "Find artist on Wikipedia" msgstr "Finn artist på Wikipedia" #: ../plugins/wikipedia/ario-wikipedia-plugin.c:172 msgid "Wikipedia Plugin - Configuration" msgstr "Wikipedia Programtillegg - Konfigurasjon" #: ../plugins/wikipedia/ario-wikipedia-plugin.c:181 msgid "Wikipedia language :" msgstr "Wikipedia språk :" #: ../plugins/wikipedia/wikipedia.ario-plugin.desktop.in.h:1 msgid "A plugin to search current artist on wikipedia" msgstr "Programtillegg for å søke etter aktuell artist på Wikipedia" #: ../plugins/wikipedia/wikipedia.ario-plugin.desktop.in.h:2 msgid "Wikipedia" msgstr "Wikipedia" #~ msgid "Add a search criteria" #~ msgstr "Legg til søkekriterie" #~ msgid "Remove a search criteria" #~ msgstr "Fjern et søkekriterie" #~ msgid "Search songs in the library" #~ msgstr "Søk gjennom sangene i biblioteket" ario-1.6/po/ga.po0000644000175000017500000010037213226723435010612 00000000000000# Irish translation for ario # Copyright (c) 2008 Rosetta Contributors and Canonical Ltd 2008 # This file is distributed under the same license as the ario package. # FIRST AUTHOR , 2008. # msgid "" msgstr "" "Project-Id-Version: ario\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2011-06-13 18:15+0200\n" "PO-Revision-Date: 2009-11-29 01:53+0000\n" "Last-Translator: Marc Pavot \n" "Language-Team: Irish \n" "Language: ga\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2011-06-13 16:32+0000\n" "X-Generator: Launchpad (build 13175)\n" #: ../data/ario.desktop.in.in.h:1 msgid "Ario music player" msgstr "Seinnteoir ceoil Ario" #: ../data/ario.desktop.in.in.h:2 msgid "Client application to mpd" msgstr "Feidhmoideas cliaint do mpd" #: ../data/ui/browser-prefs.ui.h:1 msgid "Alphabetically" msgstr "" #: ../data/ui/browser-prefs.ui.h:2 msgid "By year" msgstr "" #: ../data/ui/browser-prefs.ui.h:3 msgid "Library Options" msgstr "" #: ../data/ui/browser-prefs.ui.h:4 msgid "Library Organisation" msgstr "" #: ../data/ui/browser-prefs.ui.h:5 msgid "Sort albums: " msgstr "" #: ../data/ui/connection-autodetect.ui.h:1 msgid "" "If you don't see your MPD server thanks to the automatic detection, you " "should check that zeroconf is activated in your MPD configuration or use the " "manual configuration." msgstr "" "Mura fheiceann tú do fhreastalaí MPD de bharr an chumraíocht uathoibríoch, " "ba chóir dearbhú go bhfuil zeroconf cumasaithe i sa chumraíocht MPD agat nó " "bain feidhm as an chumraíocht de lámh." #: ../data/ui/connection-autodetect.ui.h:2 msgid "Server autodetection" msgstr "Uathaimsiú an freastalaí" #: ../data/ui/connection-widget.ui.h:1 msgid "Auto detect" msgstr "Uathaimsigh" #: ../data/ui/connection-widget.ui.h:2 msgid "Default" msgstr "Réamhshocrú" #: ../data/ui/connection-widget.ui.h:3 ../src/widgets/ario-firstlaunch.c:83 msgid "Host :" msgstr "Óstach:" #: ../data/ui/connection-widget.ui.h:4 msgid "Music directory :" msgstr "Comhadlann ceoil:" #: ../data/ui/connection-widget.ui.h:5 msgid "Music server is on the same computer as Ario" msgstr "" #. Create the widgets #: ../data/ui/connection-widget.ui.h:6 ../plugins/radios/ario-radio.c:786 #: ../plugins/radios/ario-radio.c:922 msgid "Name :" msgstr "Ainm:" #: ../data/ui/connection-widget.ui.h:7 #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:5 msgid "Password :" msgstr "Focal Faire :" #: ../data/ui/connection-widget.ui.h:8 ../src/widgets/ario-firstlaunch.c:85 msgid "Port :" msgstr "Port:" #: ../data/ui/connection-widget.ui.h:9 #, fuzzy msgid "Server type :" msgstr "Freastalaí" #: ../data/ui/connection-widget.ui.h:10 msgid "Timeout :" msgstr "" #: ../data/ui/connection-widget.ui.h:11 msgid "XMMS 2 (Experimental)" msgstr "" #: ../data/ui/cover-prefs.ui.h:1 msgid "Automatically download the album cover of the playing song" msgstr "" "Íosluchtaigh go huathoibríoch clúdach an albaim den t-amhrán atá ag seinm" #: ../data/ui/cover-prefs.ui.h:2 ../src/shell/ario-shell-preferences.c:128 msgid "Covers" msgstr "Clúdaithe" #: ../data/ui/cover-prefs.ui.h:3 msgid "Covers Sources" msgstr "Foinsí na gClúdaithe" #: ../data/ui/cover-prefs.ui.h:4 msgid "Show the covers in the albums list" msgstr "Taispeáin na clúdaigh i réim na n-albam" #: ../data/ui/cover-prefs.ui.h:5 msgid "Use Amazon." msgstr "Bain Feidhm As Amazon." #: ../data/ui/connection-prefs.ui.h:1 #: ../src/shell/ario-shell-preferences.c:108 msgid "Connection" msgstr "Nasc" #: ../data/ui/connection-prefs.ui.h:2 msgid "_Autoconnect on startup" msgstr "_Uathnasc ag tosú" #: ../data/ui/connection-prefs.ui.h:3 ../src/shell/ario-shell.c:167 msgid "_Connect" msgstr "_Nasc" #: ../data/ui/connection-prefs.ui.h:4 ../src/shell/ario-shell.c:170 msgid "_Disconnect" msgstr "_Dínasc" #: ../data/ui/connection-assistant.ui.h:1 msgid "" "You need to specify a server to connect to. If you don't see your server " "thanks to the autodetection, you should check that zeroconf/avahi is " "activated in your server or use the manual configuration." msgstr "" #: ../data/ui/cover-progress.ui.h:1 ../data/ui/cover-select.ui.h:1 #: ../data/ui/song-infos.ui.h:1 ../plugins/information/information.ui.h:1 msgid "Album :" msgstr "Albam :" #: ../data/ui/cover-progress.ui.h:2 ../data/ui/cover-select.ui.h:2 #: ../data/ui/lyrics-select.ui.h:1 ../data/ui/song-infos.ui.h:3 #: ../plugins/information/information.ui.h:3 #: ../plugins/radios/ario-radio.c:166 msgid "Artist :" msgstr "Ealaíontóir:" #: ../data/ui/cover-progress.ui.h:3 msgid "Downloading cover" msgstr "Ag íosluchtú an clúdach" #: ../data/ui/cover-select.ui.h:3 msgid "Local search" msgstr "Cuardach loganta" #: ../data/ui/cover-select.ui.h:4 ../src/sources/ario-search.c:108 msgid "Search" msgstr "Cuardach" #: ../data/ui/others-prefs.ui.h:1 msgid "Allow only one instance of Ario" msgstr "" #: ../data/ui/others-prefs.ui.h:2 msgid "Hide window when close button is pressed" msgstr "" #: ../data/ui/others-prefs.ui.h:3 msgid "Interface" msgstr "Comhéadan" #: ../data/ui/others-prefs.ui.h:4 msgid "Playlist at the right of tabs" msgstr "" #: ../data/ui/others-prefs.ui.h:5 msgid "Playlist below tabs" msgstr "" #: ../data/ui/others-prefs.ui.h:6 msgid "Playlist within tabs" msgstr "" #: ../data/ui/others-prefs.ui.h:7 msgid "Proxy" msgstr "Seachfhreastalaí" #: ../data/ui/others-prefs.ui.h:8 msgid "Proxy Address :" msgstr "Seoladh an tseachfhreastalaí :" #: ../data/ui/others-prefs.ui.h:9 msgid "Proxy Port :" msgstr "Port an tseachfhreastalaí :" #: ../data/ui/others-prefs.ui.h:10 msgid "Show tabs" msgstr "Taispeáin cluaisíní" #: ../data/ui/others-prefs.ui.h:11 msgid "Use a proxy" msgstr "Bain feidhm as seachfhreastalaí" #: ../data/ui/lyrics-prefs.ui.h:1 msgid "Lyrics Sources" msgstr "Foinsí na Liricí" #: ../data/ui/lyrics-select.ui.h:2 ../data/ui/song-infos.ui.h:13 #: ../plugins/information/information.ui.h:6 msgid "Title :" msgstr "Teideal :" #: ../data/ui/playlist-prefs.ui.h:1 msgid "Add after playing song" msgstr "" #: ../data/ui/playlist-prefs.ui.h:2 msgid "Add and play" msgstr "" #: ../data/ui/playlist-prefs.ui.h:3 ../data/ui/similar-artists.ui.h:2 msgid "Add to playlist" msgstr "" #. ARIO_TAG_ARTIST #: ../data/ui/playlist-prefs.ui.h:4 ../src/servers/ario-server.c:46 #: ../src/sources/ario-tree-albums.c:213 ../src/widgets/ario-playlist.c:541 #: ../src/widgets/ario-songlist.c:228 ../src/widgets/ario-tray-icon.c:565 msgid "Album" msgstr "Albam" #: ../data/ui/playlist-prefs.ui.h:5 ../src/servers/ario-server.c:45 #: ../src/widgets/ario-playlist.c:541 ../src/widgets/ario-songlist.c:213 #: ../src/widgets/ario-tray-icon.c:563 msgid "Artist" msgstr "Ealaíontóir" #. ARIO_TAG_GENRE #: ../data/ui/playlist-prefs.ui.h:6 ../src/servers/ario-server.c:52 #: ../src/widgets/ario-playlist.c:541 msgid "Date" msgstr "" #: ../data/ui/playlist-prefs.ui.h:7 ../src/widgets/ario-playlist.c:541 msgid "Disc" msgstr "" #: ../data/ui/playlist-prefs.ui.h:8 msgid "Double click" msgstr "" #: ../data/ui/playlist-prefs.ui.h:9 ../src/widgets/ario-playlist.c:541 msgid "Duration" msgstr "Aga" #: ../data/ui/playlist-prefs.ui.h:10 ../src/widgets/ario-playlist.c:541 msgid "File" msgstr "" #. ARIO_TAG_TRACK #. ARIO_TAG_NAME #: ../data/ui/playlist-prefs.ui.h:11 ../src/servers/ario-server.c:51 #: ../src/widgets/ario-playlist.c:541 msgid "Genre" msgstr "" #: ../data/ui/playlist-prefs.ui.h:12 msgid "Go to current song when a new song is played" msgstr "" #: ../data/ui/playlist-prefs.ui.h:13 msgid "Mode" msgstr "" #: ../data/ui/playlist-prefs.ui.h:14 msgid "On double click:" msgstr "" #: ../data/ui/playlist-prefs.ui.h:15 ../src/sources/ario-storedplaylists.c:229 #: ../src/shell/ario-shell.c:222 ../src/shell/ario-shell-preferences.c:123 #: ../src/widgets/ario-playlist.c:272 msgid "Playlist" msgstr "Seinmréim" #: ../data/ui/playlist-prefs.ui.h:16 msgid "Playlist mode:" msgstr "" #: ../data/ui/playlist-prefs.ui.h:17 msgid "Replace in playlist" msgstr "" #: ../data/ui/playlist-prefs.ui.h:18 msgid "Show rows:" msgstr "" #. ARIO_TAG_ALBUM_ARTIST #: ../data/ui/playlist-prefs.ui.h:19 ../src/servers/ario-server.c:48 #: ../src/sources/ario-tree-songs.c:145 ../src/widgets/ario-playlist.c:541 #: ../src/widgets/ario-songlist.c:198 ../src/widgets/ario-tray-icon.c:567 msgid "Title" msgstr "Teideal" #. ARIO_TAG_TITLE #: ../data/ui/playlist-prefs.ui.h:20 ../src/servers/ario-server.c:49 #: ../src/sources/ario-tree-songs.c:138 ../src/widgets/ario-playlist.c:541 msgid "Track" msgstr "Rian" #: ../data/ui/server-prefs.ui.h:1 msgid "Audio outputs" msgstr "Aschur fuaime" #: ../data/ui/server-prefs.ui.h:2 msgid "Crossfade" msgstr "Traschéimniú" #: ../data/ui/server-prefs.ui.h:3 msgid "Database" msgstr "Bunachar sonraí" #: ../data/ui/server-prefs.ui.h:4 msgid "Last updated:" msgstr "Nuashonraithe an uair deiridh:" #: ../data/ui/server-prefs.ui.h:5 msgid "Stop music on exit" msgstr "" #: ../data/ui/server-prefs.ui.h:6 msgid "Update on startup" msgstr "" #: ../data/ui/server-prefs.ui.h:7 msgid "_Update" msgstr "_Nuashonraigh" #: ../data/ui/server-prefs.ui.h:8 msgid "enable crossfade" msgstr "cumasaigh traschéimniú" #: ../data/ui/server-prefs.ui.h:9 msgid "fade time (s):" msgstr "am(anna) chéimniú:" #: ../data/ui/server-prefs.ui.h:10 ../src/ario-util.c:50 ../src/ario-util.c:71 #: ../src/ario-util.c:93 ../plugins/information/information.ui.h:7 #, c-format msgid "n/a" msgstr "neamhbhainteach" #: ../data/ui/similar-artists.ui.h:1 msgid "Add all to playlist" msgstr "" #: ../data/ui/similar-artists.ui.h:3 msgid "Find on Last.fm" msgstr "Aimsigh ar Last.fm" #: ../data/ui/stats-prefs.ui.h:1 msgid "Database play time :" msgstr "Am seinnte an bhunachar sonraí :" #: ../data/ui/stats-prefs.ui.h:2 msgid "Number of albums :" msgstr "Líon na n-albam" #: ../data/ui/stats-prefs.ui.h:3 msgid "Number of artists :" msgstr "Líon na n-ealaíontóirí :" #: ../data/ui/stats-prefs.ui.h:4 msgid "Number of songs :" msgstr "Líon na n-amhráin :" #: ../data/ui/stats-prefs.ui.h:5 msgid "Play time :" msgstr "Am seinnte :" #: ../data/ui/stats-prefs.ui.h:6 ../src/shell/ario-shell-preferences.c:148 msgid "Statistics" msgstr "Staidreamh" #: ../data/ui/stats-prefs.ui.h:7 msgid "Uptime :" msgstr "Aga fónaimh :" #: ../data/ui/song-infos.ui.h:2 msgid "Album Artist :" msgstr "" #: ../data/ui/song-infos.ui.h:4 msgid "Comment :" msgstr "Trácht:" #: ../data/ui/song-infos.ui.h:5 msgid "Composer :" msgstr "Cumadóir :" #: ../data/ui/song-infos.ui.h:6 msgid "Date :" msgstr "Dáta:" #: ../data/ui/song-infos.ui.h:7 msgid "Disc :" msgstr "Diosc:" #: ../data/ui/song-infos.ui.h:8 msgid "Filename :" msgstr "Ainm Comhaid :" #: ../data/ui/song-infos.ui.h:9 ../plugins/radios/ario-radio.c:169 msgid "Genre :" msgstr "Aicme :" #: ../data/ui/song-infos.ui.h:10 ../plugins/information/information.ui.h:4 msgid "Length :" msgstr "Fad :" #: ../data/ui/song-infos.ui.h:11 msgid "Performer :" msgstr "Taibhseoir :" #: ../data/ui/song-infos.ui.h:12 msgid "Song" msgstr "Amhrán" #: ../data/ui/song-infos.ui.h:14 msgid "Track :" msgstr "Rian :" #: ../data/ui/trayicon-prefs.ui.h:1 msgid "Do nothing" msgstr "Ná déan faic" #: ../data/ui/trayicon-prefs.ui.h:2 msgid "Mute" msgstr "" #: ../data/ui/trayicon-prefs.ui.h:3 ../src/shell/ario-shell-preferences.c:138 msgid "Notification" msgstr "" #: ../data/ui/trayicon-prefs.ui.h:4 msgid "Notification on song change" msgstr "" #: ../data/ui/trayicon-prefs.ui.h:5 msgid "Notification time: " msgstr "" #: ../data/ui/trayicon-prefs.ui.h:6 msgid "On middle button click on tray icon :" msgstr "Ar an lár-cnaipe brúigh ar deilbhín an trádaire :" #: ../data/ui/trayicon-prefs.ui.h:7 ../src/widgets/ario-header.c:241 msgid "Play next song" msgstr "Seinn an chéad amhrán eile" #: ../data/ui/trayicon-prefs.ui.h:8 msgid "Play/Pause" msgstr "Seinn/Sos" #: ../data/ui/trayicon-prefs.ui.h:9 msgid "Tray icon" msgstr "Déilbhín an trádaire" #: ../src/ario-main.c:67 msgid "Start minimized window" msgstr "" #: ../src/ario-main.c:68 msgid "Start with specific profile" msgstr "" #. Format result string #: ../src/ario-util.c:110 msgid "seconds" msgstr "soicind" #: ../src/ario-util.c:112 msgid "minutes" msgstr "nóiméid" #: ../src/ario-util.c:118 msgid "hours" msgstr "uair" #: ../src/ario-util.c:124 msgid "days" msgstr "lá" #: ../src/covers/ario-cover.c:149 msgid "The cover already exists. Do you want to replace it?" msgstr "" "Tá an clúdach seo ann cheana. An dteastaíonn uait rud eile a chur ina ionad?" #: ../src/covers/ario-cover-local.c:48 msgid "Music Directory" msgstr "Comhadlann Ceoil" #: ../src/playlist/ario-playlist-dynamic.c:49 msgid "songs of same artist" msgstr "" #: ../src/playlist/ario-playlist-dynamic.c:50 msgid "songs of same album" msgstr "" #: ../src/playlist/ario-playlist-dynamic.c:51 msgid "songs of similar artists" msgstr "" #: ../src/playlist/ario-playlist-dynamic.c:52 msgid "albums of same artists" msgstr "" #: ../src/playlist/ario-playlist-dynamic.c:53 msgid "albums of similar artists" msgstr "" #: ../src/playlist/ario-playlist-dynamic.c:69 msgid "Dynamic Playlist" msgstr "" #: ../src/playlist/ario-playlist-queue.c:49 msgid "Queue Mode" msgstr "" #: ../src/playlist/ario-playlist-normal.c:47 msgid "Normal" msgstr "" #: ../src/plugins/ario-plugin-manager.c:45 msgid "Plugin" msgstr "Breiseán" #: ../src/plugins/ario-plugin-manager.c:46 msgid "Enabled" msgstr "Cumasaithe" #: ../src/plugins/ario-plugin-manager.c:480 ../src/shell/ario-shell.c:206 msgid "_About" msgstr "_Maidir Le" #: ../src/plugins/ario-plugin-manager.c:488 msgid "C_onfigure" msgstr "C_umraigh" #: ../src/plugins/ario-plugin-manager.c:497 msgid "A_ctivate" msgstr "Gníomha_chtaigh" #: ../src/plugins/ario-plugin-manager.c:508 msgid "Ac_tivate All" msgstr "Gníomha_chtaigh Gach Rud" #: ../src/plugins/ario-plugin-manager.c:513 msgid "_Deactivate All" msgstr "_Díghníomhachtaigh Uile" #: ../src/plugins/ario-plugin-manager.c:722 msgid "Active plugins" msgstr "Breiseáin gníomhacha" #: ../src/preferences/ario-server-preferences.c:182 #: ../src/preferences/ario-stats-preferences.c:151 #: ../src/preferences/ario-stats-preferences.c:152 #: ../src/preferences/ario-stats-preferences.c:153 #: ../src/preferences/ario-stats-preferences.c:154 #: ../src/preferences/ario-stats-preferences.c:155 #: ../src/preferences/ario-stats-preferences.c:156 msgid "Not connected" msgstr "Gan nasc" #: ../src/preferences/ario-server-preferences.c:187 #: ../src/preferences/ario-server-preferences.c:278 #: ../src/widgets/ario-status-bar.c:100 msgid "Updating..." msgstr "Á Nuashonrú..." #: ../src/servers/ario-mpd.c:410 ../src/servers/ario-mpd2.c:522 msgid "Connecting to server..." msgstr "" #: ../src/servers/ario-mpd.c:438 ../src/servers/ario-mpd2.c:550 msgid "Impossible to connect to server. Check the connection options." msgstr "" #. ARIO_TAG_ALBUM #: ../src/servers/ario-server.c:47 msgid "Album Artist" msgstr "" #. ARIO_TAG_DATE #: ../src/servers/ario-server.c:53 msgid "Composer" msgstr "" #. ARIO_TAG_COMPOSER #: ../src/servers/ario-server.c:54 msgid "Performer" msgstr "" #. ARIO_TAG_PERFORMER #. ARIO_TAG_COMMENT #. ARIO_TAG_DISC #: ../src/servers/ario-server.c:57 msgid "Filename" msgstr "Ainm comhaid" #. ARIO_TAG_FILENAME #: ../src/servers/ario-server.c:58 msgid "Any" msgstr "Ceann ar bith" #. impossible time or broken locale settings #: ../src/servers/ario-server.h:27 #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1235 msgid "Unknown" msgstr "Anaithnid" #: ../src/sources/ario-browser.c:82 ../src/sources/ario-search.c:70 #: ../src/sources/ario-storedplaylists.c:88 #: ../src/sources/ario-storedplaylists.c:106 #: ../plugins/filesystem/ario-filesystem.c:94 #: ../plugins/filesystem/ario-filesystem.c:109 #: ../plugins/radios/ario-radio.c:116 msgid "_Add to playlist" msgstr "_Cuir leis an seinmréim" #: ../src/sources/ario-browser.c:85 ../src/sources/ario-search.c:73 #: ../src/sources/ario-storedplaylists.c:91 #: ../src/sources/ario-storedplaylists.c:109 #: ../plugins/filesystem/ario-filesystem.c:97 #: ../plugins/filesystem/ario-filesystem.c:112 #: ../plugins/radios/ario-radio.c:119 msgid "Add and _play" msgstr "" #: ../src/sources/ario-browser.c:88 ../src/sources/ario-search.c:76 #: ../src/sources/ario-storedplaylists.c:94 #: ../src/sources/ario-storedplaylists.c:112 #: ../plugins/filesystem/ario-filesystem.c:100 #: ../plugins/filesystem/ario-filesystem.c:115 #: ../plugins/radios/ario-radio.c:122 msgid "_Replace in playlist" msgstr "" #: ../src/sources/ario-browser.c:91 msgid "Get the covers" msgstr "Faigh na clúdaithe" #: ../src/sources/ario-browser.c:94 msgid "_Delete the covers" msgstr "_Scrios na clúdaithe" #: ../src/sources/ario-browser.c:97 ../src/sources/ario-browser.c:100 #: ../src/sources/ario-search.c:79 ../src/sources/ario-storedplaylists.c:115 #: ../src/widgets/ario-playlist.c:151 #: ../plugins/filesystem/ario-filesystem.c:118 #: ../plugins/radios/ario-radio.c:131 msgid "_Properties" msgstr "_Airíonna" #: ../src/sources/ario-browser.c:125 ../src/shell/ario-shell-preferences.c:118 msgid "Library" msgstr "Leabharlann" #: ../src/sources/ario-storedplaylists.c:97 msgid "_Delete" msgstr "_Scrios" #: ../src/sources/ario-storedplaylists.c:151 msgid "Playlists" msgstr "Seinmréimeanna" #: ../src/sources/ario-storedplaylists.c:592 msgid "Are you sure that you want to delete all the selected playlists?" msgstr "" "An bhfuil tú cinnte go dteastaíonn uait na seinmréimeanna roghnaithe a " "scrios?" #: ../src/sources/ario-tree.c:856 msgid "Are you sure that you want to remove all the selected covers?" msgstr "" #. Translators - This "Cover" refers to an album cover art #: ../src/sources/ario-tree-albums.c:199 msgid "Cover" msgstr "Clúdach" #: ../src/shell/ario-shell.c:160 msgid "_File" msgstr "_Comhad" #: ../src/shell/ario-shell.c:161 msgid "_Edit" msgstr "_Eagar" #: ../src/shell/ario-shell.c:162 msgid "_View" msgstr "_Amharc" #: ../src/shell/ario-shell.c:163 msgid "_Control" msgstr "" #: ../src/shell/ario-shell.c:164 msgid "_Tool" msgstr "_Uirlis" #: ../src/shell/ario-shell.c:165 msgid "_Help" msgstr "_Cabhair" #: ../src/shell/ario-shell.c:173 msgid "_Update database" msgstr "" #: ../src/shell/ario-shell.c:176 msgid "_Quit" msgstr "_Scoir" #: ../src/shell/ario-shell.c:179 msgid "Plu_gins" msgstr "Breis_eáin" #: ../src/shell/ario-shell.c:182 msgid "Prefere_nces" msgstr "Sain_roghanna" #: ../src/shell/ario-shell.c:185 msgid "_Change current album cover" msgstr "_Athraigh an clúdach albaim reatha" #: ../src/shell/ario-shell.c:188 msgid "Download album _covers" msgstr "Íosluchtaigh _clúdaigh albaim" #: ../src/shell/ario-shell.c:191 msgid "Find similar artists" msgstr "Aimsigh ealaíontóirí cosúil leo" #: ../src/shell/ario-shell.c:194 msgid "Add similar songs to playlist" msgstr "" #: ../src/shell/ario-shell.c:197 msgid "Go to _previous tab" msgstr "" #: ../src/shell/ario-shell.c:200 msgid "Go to _next tab" msgstr "" #: ../src/shell/ario-shell.c:203 msgid "Show _lyrics" msgstr "Teaspáin na _liricí" #: ../src/shell/ario-shell.c:209 msgid "_Translate this application..." msgstr "_Aistrigh an fheidhmoideas seo..." #: ../src/shell/ario-shell.c:216 msgid "S_tatusbar" msgstr "Barra s_tádas" #: ../src/shell/ario-shell.c:219 msgid "Upper part" msgstr "" #: ../src/shell/ario-shell.c:825 msgid "GTK client for MPD" msgstr "Cliaint GTK do MPD" #: ../src/shell/ario-shell.c:826 msgid "translator-credits" msgstr "" "Launchpad Contributions:\n" " Marc Pavot https://launchpad.net/~marc-pavot\n" " Seanan https://launchpad.net/~seananoc-gmail" #. Create plugins configuration dialog window #: ../src/shell/ario-shell.c:1278 msgid "Configure Plugins" msgstr "Cumraigh na mBreiseáin" #. Set window properties #: ../src/shell/ario-shell-coverdownloader.c:187 msgid "Music Player Cover Download" msgstr "Íosluchtú Clúdach do Seinnteoir Ceoil" #: ../src/shell/ario-shell-coverdownloader.c:332 msgid "Download Finished!" msgstr "Tá an t-Íosluchtú Críochnaithe!" #. We show the numbers of covers found and not found #: ../src/shell/ario-shell-coverdownloader.c:335 #, c-format msgid "" "%i covers found\n" "%i covers not found\n" "%i covers already exist" msgstr "" "%i clúdaithe aimsithe\n" "%i clúdaithe nár aimsíodh\n" "%i clúdaithe atá ann cheana" #. Set window properties #: ../src/shell/ario-shell-coverselect.c:242 msgid "Cover Download" msgstr "Íosluchtú an Chlúdaigh" #: ../src/shell/ario-shell-coverselect.c:559 msgid "Error reading file" msgstr "Tharla bótún ag léamh an comhad" #: ../src/shell/ario-shell-coverselect.c:584 msgid "Error saving file" msgstr "Tharla botún ag cuir an comhad i dtaisce" #: ../src/shell/ario-shell-lyrics.c:43 #: ../src/shell/ario-shell-preferences.c:133 #: ../src/shell/ario-shell-songinfos.c:272 msgid "Lyrics" msgstr "Liricí" #: ../src/shell/ario-shell-lyricsselect.c:152 msgid "Lyrics Download" msgstr "Íosluchtú na Liricí" #: ../src/shell/ario-shell-preferences.c:81 msgid "Ario Preferences" msgstr "Sainroghanna Ario" #: ../src/shell/ario-shell-preferences.c:113 msgid "Server" msgstr "Freastalaí" #: ../src/shell/ario-shell-preferences.c:143 msgid "Others" msgstr "" #: ../src/shell/ario-shell-similarartists.c:318 #, c-format msgid "%d songs" msgstr "" #. Set window properties #. Set window title #: ../src/shell/ario-shell-songinfos.c:249 #: ../src/shell/ario-shell-songinfos.c:266 #: ../src/shell/ario-shell-songinfos.c:544 msgid "Song Properties" msgstr "Airíonna Amhráin" #: ../src/shell/ario-shell-songinfos.c:455 msgid "Error saving tags of file:" msgstr "" #: ../src/widgets/ario-connection-widget.c:652 msgid "You must select a server." msgstr "Caithfear freastalaí a roghnú." #: ../src/widgets/ario-connection-widget.c:702 msgid "New Profile" msgstr "Beathaisnéisín Nua" #: ../src/widgets/ario-firstlaunch.c:82 msgid "The following configuration will be used:" msgstr "Bainfear feidhm as an chumraíocht a leanas:" #: ../src/widgets/ario-firstlaunch.c:106 msgid "" "It is the first time you launch Ario.\n" "This assistant will help you to configure it." msgstr "" "Sé seo an chéad uair a thosaigh tú Ario.\n" "Cabhróidh an cúntóir seo leat é a chumrú." #: ../src/widgets/ario-firstlaunch.c:111 msgid "Welcome to Ario" msgstr "Fáilte go Ario" #: ../src/widgets/ario-firstlaunch.c:129 msgid "Configuration" msgstr "Cumraíocht" #: ../src/widgets/ario-firstlaunch.c:141 msgid "Confirmation" msgstr "Deimhniúchán" #: ../src/widgets/ario-header.c:66 ../src/widgets/ario-tray-icon.h:42 #, c-format msgid "from %s by %s" msgstr "ó %s le %s" #: ../src/widgets/ario-header.c:199 msgid "Play previous song" msgstr "Seinn an t-amhrán roimhe" #: ../src/widgets/ario-header.c:217 msgid "Play/Pause the music" msgstr "Seinn/Moilligh an ceol" #: ../src/widgets/ario-header.c:229 msgid "Stop the music" msgstr "Stad an ceol" #. Translators - This " of " is used to count the elapsed time #. of a song like in "00:59 of 03:24" #: ../src/widgets/ario-header.c:310 ../src/widgets/ario-tooltip.c:321 msgid " of " msgstr " de " #: ../src/widgets/ario-header.c:323 msgid "Toggle random on/off" msgstr "Scag ar siúl/as fánach" #: ../src/widgets/ario-header.c:335 msgid "Toggle repeat on/off" msgstr "Scag ar siúl/as athuair" #: ../src/widgets/ario-header.c:340 msgid "Change the music volume" msgstr "Athraigh airde an ceoil" #: ../src/widgets/ario-lyrics-editor.c:323 msgid "Downloading lyrics..." msgstr "Ag íosluchtú na liricí..." #: ../src/widgets/ario-lyrics-editor.c:351 msgid "Lyrics not found" msgstr "Níor aimsíodh na liricí" #: ../src/widgets/ario-playlist.c:133 msgid "_Clear" msgstr "_Glan" #: ../src/widgets/ario-playlist.c:136 msgid "_Shuffle" msgstr "" #: ../src/widgets/ario-playlist.c:139 msgid "Cr_op" msgstr "" #: ../src/widgets/ario-playlist.c:142 msgid "_Search in playlist" msgstr "" #: ../src/widgets/ario-playlist.c:145 msgid "_Remove" msgstr "_Bain" #: ../src/widgets/ario-playlist.c:148 msgid "_Save" msgstr "_Cuir i dtaisce" #: ../src/widgets/ario-playlist.c:154 msgid "_Go to playing song" msgstr "_Téigh chuig an t-amhrán atá ag seinm" #: ../src/widgets/ario-playlist.c:667 msgid "Filter:" msgstr "" #. Create the widgets #: ../src/widgets/ario-playlist.c:1700 msgid "Save playlist" msgstr "Cuir an seinmréim i dtaisce" #: ../src/widgets/ario-playlist.c:1710 msgid "Playlist name :" msgstr "Ainm na seinmréime :" #: ../src/widgets/ario-playlist.c:1746 msgid "Playlist already exists. Do you want to overwrite it?" msgstr "Tá an seinmréim sin ann cheana? An dteastaíonn uait é a fhorscríobh?" #. Format status bar message #: ../src/widgets/ario-status-bar.c:96 msgid "Songs" msgstr "Amhráin" #: ../src/widgets/ario-tray-icon.c:102 msgid "_Play" msgstr "_Seinn" #: ../src/widgets/ario-tray-icon.c:105 msgid "_Pause" msgstr "_Moilligh" #: ../src/widgets/ario-tray-icon.c:108 msgid "_Stop" msgstr "_Stad" #: ../src/widgets/ario-tray-icon.c:111 msgid "_Next" msgstr "_Ar Aghaidh" #: ../src/widgets/ario-tray-icon.c:114 msgid "P_revious" msgstr "_Roimhe" #: ../src/widgets/ario-tray-icon.h:41 msgid "Not playing" msgstr "Níl sé ag seinm" #. Translators: "friendly time" string for the current day, strftime format. like "Today 12:34 am" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1179 msgid "Today %I:%M %p" msgstr "Inniu %I:%M %p" #. Translators: "friendly time" string for the previous day, #. * strftime format. e.g. "Yesterday 12:34 am" #. #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1192 msgid "Yesterday %I:%M %p" msgstr "Inné %I:%M %p" #. Translators: "friendly time" string for a day in the current week, #. * strftime format. e.g. "Wed 12:34 am" #. #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1208 msgid "%a %I:%M %p" msgstr "%a %I:%M %p" #. Translators: "friendly time" string for a day in the current year, #. * strftime format. e.g. "Feb 12 12:34 am" #. #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1220 msgid "%b %d %I:%M %p" msgstr "%dú %b %I:%M %p" #. Translators: "friendly time" string for a day in a different year, #. * strftime format. e.g. "Feb 12 1997" #. #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1225 msgid "%b %d %Y" msgstr "%b %d %Y" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1311 #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:4 msgid "Never" msgstr "Riamh" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1335 msgid "OK" msgstr "Tá go Maith" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1338 msgid "Logging in" msgstr "Ag síniú isteach" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1341 msgid "Request failed" msgstr "Theip ar an t-iarratas" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1344 msgid "Incorrect username" msgstr "Ainm úsáideora mícheart" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1347 msgid "Incorrect password" msgstr "Focal faire mícheart" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1350 msgid "Handshake failed" msgstr "Theip ar an gcumarsáid thionscantach" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1353 msgid "Client update required" msgstr "Nuashonrú don cliaint de dhíth" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1356 msgid "Track submission failed" msgstr "Theip ar an rian iarratais" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1359 msgid "Queue is too long" msgstr "Tá an scuaine ró-fhada" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1362 msgid "Track submission failed too many times" msgstr "Theip ar an rian iarratais in iomarca dreasanna" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1417 msgid "Audioscrobbler preferences" msgstr "Sainroghanna Audioscrobbler" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:1 msgid "Disabled" msgstr "Díchumasaithe" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:2 msgid "Last submission time:" msgstr "Am an t-iarratas deiridh:" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:3 msgid "Last.fm Profile" msgstr "Beathaisnéisín Last.fm" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:6 msgid "Queued tracks:" msgstr "Rianta sa scuaine:" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:7 msgid "Status:" msgstr "Treo:" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:8 msgid "Tracks submitted:" msgstr "Rianta churtha isteach:" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:9 #: ../plugins/radios/ario-radio.c:168 msgid "Username :" msgstr "Ainm úsáideora :" #: ../plugins/audioscrobbler/audioscrobbler.ario-plugin.desktop.in.h:1 msgid "Last.fm" msgstr "Last.fm" #: ../plugins/audioscrobbler/audioscrobbler.ario-plugin.desktop.in.h:2 msgid "Submits song information to last.fm" msgstr "Seolann sé faisnéis ó na n-amhráin go last.fm" #: ../plugins/filesystem/ario-filesystem.c:158 msgid "File System" msgstr "Córas Comhad" #: ../plugins/filesystem/ario-filesystem.c:422 msgid "Music" msgstr "Ceol" #: ../plugins/filesystem/filesystem.ario-plugin.desktop.in.h:1 msgid "A File System Browser" msgstr "Siortaitheoir an Chórais Comhad" #: ../plugins/filesystem/filesystem.ario-plugin.desktop.in.h:2 msgid "File System Browser" msgstr "Siortaitheoir an Chórais Comhad" #: ../plugins/information/ario-information.c:114 msgid "Information" msgstr "" #: ../plugins/information/information.ario-plugin.desktop.in.h:1 msgid "Display various information about the playing song" msgstr "" #: ../plugins/information/information.ario-plugin.desktop.in.h:2 msgid "Song Information" msgstr "" #: ../plugins/information/information.ui.h:2 msgid "Albums from this artist:" msgstr "" #: ../plugins/information/information.ui.h:5 msgid "Lyrics:" msgstr "" #: ../plugins/libnotify/libnotify.ario-plugin.desktop.in.h:1 msgid "Add libnotify support" msgstr "" #: ../plugins/libnotify/libnotify.ario-plugin.desktop.in.h:2 msgid "Libnotify" msgstr "" #: ../plugins/mmkeys/mmkeys.ario-plugin.desktop.in.h:1 msgid "Add multimedia keys support" msgstr "Cuir tacaíocht cnaipí ilmheán leis" #: ../plugins/mmkeys/mmkeys.ario-plugin.desktop.in.h:2 msgid "Multimedia Keys" msgstr "Cnaipí Ilmheán" #: ../plugins/radios/ario-radio.c:125 msgid "Add a _new radio" msgstr "Cuir físeán _nua leis" #: ../plugins/radios/ario-radio.c:128 msgid "_Delete this radios" msgstr "_Scrios na craolacháin seo" #: ../plugins/radios/ario-radio.c:166 msgid "Last.fm: Radio of similar artists" msgstr "" #: ../plugins/radios/ario-radio.c:167 msgid "Last.fm: Radio of group" msgstr "" #: ../plugins/radios/ario-radio.c:167 msgid "Group :" msgstr "" #: ../plugins/radios/ario-radio.c:168 msgid "Last.fm: Personal radio" msgstr "" #: ../plugins/radios/ario-radio.c:169 msgid "Last.fm: Radio of genre" msgstr "" #: ../plugins/radios/ario-radio.c:184 #: ../plugins/radios/radios.ario-plugin.desktop.in.h:2 msgid "Web Radios" msgstr "Craolacháin Gréasáin" #: ../plugins/radios/ario-radio.c:246 msgid "Internet Radios" msgstr "Craolacháin Idirlín" #. Create dialog window #: ../plugins/radios/ario-radio.c:774 msgid "Edit a WebRadio" msgstr "Déan Eagarthóireacht ar Craolachán Gréasáin" #: ../plugins/radios/ario-radio.c:787 ../plugins/radios/ario-radio.c:923 msgid "URL :" msgstr "URL :" #: ../plugins/radios/ario-radio.c:853 ../plugins/radios/ario-radio.c:997 msgid "Bad parameters. You must specify a name and a URL for the radio." msgstr "Droch-pharaméadair. Ní mór duit ainm agus URL don craolachán a shonrú." #. Create dialog window #: ../plugins/radios/ario-radio.c:883 msgid "Add a WebRadio" msgstr "Cuir Craolachán Gréasáin Leis" #: ../plugins/radios/ario-radio.c:1083 msgid "Are you sure you want to delete all the selected radios?" msgstr "" "An bhfuil tú cinnte go dteastaíonn uait na craolacháin roghnaithe a scrios?" #: ../plugins/radios/radios.ario-plugin.desktop.in.h:1 msgid "Listen to webradios" msgstr "Éist le craolacháin gréasáin" #: ../plugins/wikipedia/ario-wikipedia-plugin.c:49 #: ../plugins/wikipedia/ario-wikipedia-plugin.c:50 msgid "Find artist on Wikipedia" msgstr "Aimsigh an t-ealaíontóir ar Vicipéid" #: ../plugins/wikipedia/ario-wikipedia-plugin.c:172 msgid "Wikipedia Plugin - Configuration" msgstr "Breiseáin Vicipéid - Cumraíocht" #: ../plugins/wikipedia/ario-wikipedia-plugin.c:181 msgid "Wikipedia language :" msgstr "Béarla ar Vicipéid :" #: ../plugins/wikipedia/wikipedia.ario-plugin.desktop.in.h:1 msgid "A plugin to search current artist on wikipedia" msgstr "Breiseáin chun an t-ealaíontóir reatha a chuardach ar vicipéid" #: ../plugins/wikipedia/wikipedia.ario-plugin.desktop.in.h:2 msgid "Wikipedia" msgstr "Vicipéid" #~ msgid "Search songs in the library" #~ msgstr "Cuardaigh amhráin sa leabharlann" #~ msgid "Remove a search criteria" #~ msgstr "Bain slat tomhais cuardaigh" #~ msgid "Add a search criteria" #~ msgstr "Cuir slat tomhais cuardaigh leis" ario-1.6/po/ro.po0000644000175000017500000010431213226723435010641 00000000000000# Romanian translation for ario # Copyright (c) 2008 Rosetta Contributors and Canonical Ltd 2008 # This file is distributed under the same license as the ario package. # FIRST AUTHOR , 2008. # msgid "" msgstr "" "Project-Id-Version: ario\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2011-06-13 18:15+0200\n" "PO-Revision-Date: 2010-09-19 07:12+0000\n" "Last-Translator: kneos \n" "Language-Team: Romanian \n" "Language: ro\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2011-06-13 16:32+0000\n" "X-Generator: Launchpad (build 13175)\n" #: ../data/ario.desktop.in.in.h:1 msgid "Ario music player" msgstr "Playerul de muzică Ario" #: ../data/ario.desktop.in.in.h:2 msgid "Client application to mpd" msgstr "Aplicația client la mpd" #: ../data/ui/browser-prefs.ui.h:1 msgid "Alphabetically" msgstr "Alfabetic" #: ../data/ui/browser-prefs.ui.h:2 msgid "By year" msgstr "În funcție de an" #: ../data/ui/browser-prefs.ui.h:3 msgid "Library Options" msgstr "Opțiuni Colecție" #: ../data/ui/browser-prefs.ui.h:4 msgid "Library Organisation" msgstr "Organizare Colecție" #: ../data/ui/browser-prefs.ui.h:5 msgid "Sort albums: " msgstr "Sortează albume: " #: ../data/ui/connection-autodetect.ui.h:1 msgid "" "If you don't see your MPD server thanks to the automatic detection, you " "should check that zeroconf is activated in your MPD configuration or use the " "manual configuration." msgstr "" "Dacă nu vedeţi serverul MPD datorită detectării automate, ar trebui să vă " "asiguraţi că zeroconf este activat in configuraţiile MPD-ului sau utilizaţi " "configuraţia manuală." #: ../data/ui/connection-autodetect.ui.h:2 msgid "Server autodetection" msgstr "Autodetectare server" #: ../data/ui/connection-widget.ui.h:1 msgid "Auto detect" msgstr "Detectează automat" #: ../data/ui/connection-widget.ui.h:2 msgid "Default" msgstr "Implicit" #: ../data/ui/connection-widget.ui.h:3 ../src/widgets/ario-firstlaunch.c:83 msgid "Host :" msgstr "Gazdă:" #: ../data/ui/connection-widget.ui.h:4 msgid "Music directory :" msgstr "Directorul cu muzică:" #: ../data/ui/connection-widget.ui.h:5 msgid "Music server is on the same computer as Ario" msgstr "Server-ul de muzică este pe același computer ca și Ario" #. Create the widgets #: ../data/ui/connection-widget.ui.h:6 ../plugins/radios/ario-radio.c:786 #: ../plugins/radios/ario-radio.c:922 msgid "Name :" msgstr "Nume:" #: ../data/ui/connection-widget.ui.h:7 #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:5 msgid "Password :" msgstr "Parolă:" #: ../data/ui/connection-widget.ui.h:8 ../src/widgets/ario-firstlaunch.c:85 msgid "Port :" msgstr "Port:" #: ../data/ui/connection-widget.ui.h:9 msgid "Server type :" msgstr "Tipul de server :" #: ../data/ui/connection-widget.ui.h:10 msgid "Timeout :" msgstr "" #: ../data/ui/connection-widget.ui.h:11 msgid "XMMS 2 (Experimental)" msgstr "XMMS 2 (Experimental)" #: ../data/ui/cover-prefs.ui.h:1 msgid "Automatically download the album cover of the playing song" msgstr "Descarcă automat coperta albumului melodei care rulează" #: ../data/ui/cover-prefs.ui.h:2 ../src/shell/ario-shell-preferences.c:128 msgid "Covers" msgstr "Coperte" #: ../data/ui/cover-prefs.ui.h:3 msgid "Covers Sources" msgstr "Sursele copertelor" #: ../data/ui/cover-prefs.ui.h:4 msgid "Show the covers in the albums list" msgstr "Arată copertele în lista cu albume" #: ../data/ui/cover-prefs.ui.h:5 msgid "Use Amazon." msgstr "Utilizați Amazon." #: ../data/ui/connection-prefs.ui.h:1 #: ../src/shell/ario-shell-preferences.c:108 msgid "Connection" msgstr "Conexiune" #: ../data/ui/connection-prefs.ui.h:2 msgid "_Autoconnect on startup" msgstr "_Autoconectare la pornire" #: ../data/ui/connection-prefs.ui.h:3 ../src/shell/ario-shell.c:167 msgid "_Connect" msgstr "_Conectare" #: ../data/ui/connection-prefs.ui.h:4 ../src/shell/ario-shell.c:170 msgid "_Disconnect" msgstr "_Deconectează" #: ../data/ui/connection-assistant.ui.h:1 msgid "" "You need to specify a server to connect to. If you don't see your server " "thanks to the autodetection, you should check that zeroconf/avahi is " "activated in your server or use the manual configuration." msgstr "" "Trebuie specificat la ce server se dorește conectarea. Dacă nu se găsește " "serverul specificat prin procedurile de autodetecție, trebuie verificat ca " "zeroconf/avahi să fie activ în server sau folosiți configurarea manuală." #: ../data/ui/cover-progress.ui.h:1 ../data/ui/cover-select.ui.h:1 #: ../data/ui/song-infos.ui.h:1 ../plugins/information/information.ui.h:1 msgid "Album :" msgstr "Album:" #: ../data/ui/cover-progress.ui.h:2 ../data/ui/cover-select.ui.h:2 #: ../data/ui/lyrics-select.ui.h:1 ../data/ui/song-infos.ui.h:3 #: ../plugins/information/information.ui.h:3 #: ../plugins/radios/ario-radio.c:166 msgid "Artist :" msgstr "Artist:" #: ../data/ui/cover-progress.ui.h:3 msgid "Downloading cover" msgstr "Descărcare copertă în curs" #: ../data/ui/cover-select.ui.h:3 msgid "Local search" msgstr "Căutare locală" #: ../data/ui/cover-select.ui.h:4 ../src/sources/ario-search.c:108 msgid "Search" msgstr "Căutare" #: ../data/ui/others-prefs.ui.h:1 msgid "Allow only one instance of Ario" msgstr "Permite o singură versiune de Ario" #: ../data/ui/others-prefs.ui.h:2 msgid "Hide window when close button is pressed" msgstr "Ascunde fereastra cînd butonul de închidere este apăsat" #: ../data/ui/others-prefs.ui.h:3 msgid "Interface" msgstr "Interfaţă" #: ../data/ui/others-prefs.ui.h:4 msgid "Playlist at the right of tabs" msgstr "" #: ../data/ui/others-prefs.ui.h:5 msgid "Playlist below tabs" msgstr "" #: ../data/ui/others-prefs.ui.h:6 msgid "Playlist within tabs" msgstr "" #: ../data/ui/others-prefs.ui.h:7 msgid "Proxy" msgstr "Proxy" #: ../data/ui/others-prefs.ui.h:8 msgid "Proxy Address :" msgstr "Adresă proxy :" #: ../data/ui/others-prefs.ui.h:9 msgid "Proxy Port :" msgstr "Port proxy :" #: ../data/ui/others-prefs.ui.h:10 msgid "Show tabs" msgstr "Arată tab-urile" #: ../data/ui/others-prefs.ui.h:11 msgid "Use a proxy" msgstr "Folosește un proxy" #: ../data/ui/lyrics-prefs.ui.h:1 msgid "Lyrics Sources" msgstr "Sursele de versuri" #: ../data/ui/lyrics-select.ui.h:2 ../data/ui/song-infos.ui.h:13 #: ../plugins/information/information.ui.h:6 msgid "Title :" msgstr "Titlu :" #: ../data/ui/playlist-prefs.ui.h:1 msgid "Add after playing song" msgstr "Adaugă după melodia curentă" #: ../data/ui/playlist-prefs.ui.h:2 msgid "Add and play" msgstr "Adaugă și redă" #: ../data/ui/playlist-prefs.ui.h:3 ../data/ui/similar-artists.ui.h:2 msgid "Add to playlist" msgstr "Adaugă la lista de redare" #. ARIO_TAG_ARTIST #: ../data/ui/playlist-prefs.ui.h:4 ../src/servers/ario-server.c:46 #: ../src/sources/ario-tree-albums.c:213 ../src/widgets/ario-playlist.c:541 #: ../src/widgets/ario-songlist.c:228 ../src/widgets/ario-tray-icon.c:565 msgid "Album" msgstr "Album" #: ../data/ui/playlist-prefs.ui.h:5 ../src/servers/ario-server.c:45 #: ../src/widgets/ario-playlist.c:541 ../src/widgets/ario-songlist.c:213 #: ../src/widgets/ario-tray-icon.c:563 msgid "Artist" msgstr "Artist" #. ARIO_TAG_GENRE #: ../data/ui/playlist-prefs.ui.h:6 ../src/servers/ario-server.c:52 #: ../src/widgets/ario-playlist.c:541 msgid "Date" msgstr "Dată" #: ../data/ui/playlist-prefs.ui.h:7 ../src/widgets/ario-playlist.c:541 msgid "Disc" msgstr "Disc" #: ../data/ui/playlist-prefs.ui.h:8 msgid "Double click" msgstr "Dublu clic" #: ../data/ui/playlist-prefs.ui.h:9 ../src/widgets/ario-playlist.c:541 msgid "Duration" msgstr "Durată" #: ../data/ui/playlist-prefs.ui.h:10 ../src/widgets/ario-playlist.c:541 msgid "File" msgstr "Fişier" #. ARIO_TAG_TRACK #. ARIO_TAG_NAME #: ../data/ui/playlist-prefs.ui.h:11 ../src/servers/ario-server.c:51 #: ../src/widgets/ario-playlist.c:541 msgid "Genre" msgstr "Gen muzical" #: ../data/ui/playlist-prefs.ui.h:12 msgid "Go to current song when a new song is played" msgstr "Sari la cîntecul curent cînd un cantec nou este redat" #: ../data/ui/playlist-prefs.ui.h:13 msgid "Mode" msgstr "Mod" #: ../data/ui/playlist-prefs.ui.h:14 msgid "On double click:" msgstr "La dublu click:" #: ../data/ui/playlist-prefs.ui.h:15 ../src/sources/ario-storedplaylists.c:229 #: ../src/shell/ario-shell.c:222 ../src/shell/ario-shell-preferences.c:123 #: ../src/widgets/ario-playlist.c:272 msgid "Playlist" msgstr "Listă redare" #: ../data/ui/playlist-prefs.ui.h:16 msgid "Playlist mode:" msgstr "Mod de afisare a listei" #: ../data/ui/playlist-prefs.ui.h:17 msgid "Replace in playlist" msgstr "Înlocuiește în lista de redare" #: ../data/ui/playlist-prefs.ui.h:18 msgid "Show rows:" msgstr "Arată rîndurile" #. ARIO_TAG_ALBUM_ARTIST #: ../data/ui/playlist-prefs.ui.h:19 ../src/servers/ario-server.c:48 #: ../src/sources/ario-tree-songs.c:145 ../src/widgets/ario-playlist.c:541 #: ../src/widgets/ario-songlist.c:198 ../src/widgets/ario-tray-icon.c:567 msgid "Title" msgstr "Titlu" #. ARIO_TAG_TITLE #: ../data/ui/playlist-prefs.ui.h:20 ../src/servers/ario-server.c:49 #: ../src/sources/ario-tree-songs.c:138 ../src/widgets/ario-playlist.c:541 msgid "Track" msgstr "Piesă" #: ../data/ui/server-prefs.ui.h:1 msgid "Audio outputs" msgstr "Ieșiri audio" #: ../data/ui/server-prefs.ui.h:2 msgid "Crossfade" msgstr "Intercalare" #: ../data/ui/server-prefs.ui.h:3 msgid "Database" msgstr "Bază de date" #: ../data/ui/server-prefs.ui.h:4 msgid "Last updated:" msgstr "Ultima actualizare:" #: ../data/ui/server-prefs.ui.h:5 msgid "Stop music on exit" msgstr "Oprește muzica le ieșire" #: ../data/ui/server-prefs.ui.h:6 msgid "Update on startup" msgstr "Actualizează la pornire" #: ../data/ui/server-prefs.ui.h:7 msgid "_Update" msgstr "_Actualizare" #: ../data/ui/server-prefs.ui.h:8 msgid "enable crossfade" msgstr "activare intercalare" #: ../data/ui/server-prefs.ui.h:9 msgid "fade time (s):" msgstr "şterge timpul (s):" #: ../data/ui/server-prefs.ui.h:10 ../src/ario-util.c:50 ../src/ario-util.c:71 #: ../src/ario-util.c:93 ../plugins/information/information.ui.h:7 #, c-format msgid "n/a" msgstr "n/a" #: ../data/ui/similar-artists.ui.h:1 msgid "Add all to playlist" msgstr "Adaugă totul la lista de redare" #: ../data/ui/similar-artists.ui.h:3 msgid "Find on Last.fm" msgstr "Găseşte in Ultimul.fm" #: ../data/ui/stats-prefs.ui.h:1 msgid "Database play time :" msgstr "Timpul de redare a bazei de date" #: ../data/ui/stats-prefs.ui.h:2 msgid "Number of albums :" msgstr "Numărul albumelor :" #: ../data/ui/stats-prefs.ui.h:3 msgid "Number of artists :" msgstr "Numărul artiştilor :" #: ../data/ui/stats-prefs.ui.h:4 msgid "Number of songs :" msgstr "Numărul melodiilor :" #: ../data/ui/stats-prefs.ui.h:5 msgid "Play time :" msgstr "Timpul de redare :" #: ../data/ui/stats-prefs.ui.h:6 ../src/shell/ario-shell-preferences.c:148 msgid "Statistics" msgstr "Statistici" #: ../data/ui/stats-prefs.ui.h:7 msgid "Uptime :" msgstr "Timp de la pornire :" #: ../data/ui/song-infos.ui.h:2 msgid "Album Artist :" msgstr "Artist album" #: ../data/ui/song-infos.ui.h:4 msgid "Comment :" msgstr "Comentariu :" #: ../data/ui/song-infos.ui.h:5 msgid "Composer :" msgstr "Compozitor :" #: ../data/ui/song-infos.ui.h:6 msgid "Date :" msgstr "Data :" #: ../data/ui/song-infos.ui.h:7 msgid "Disc :" msgstr "Disc :" #: ../data/ui/song-infos.ui.h:8 msgid "Filename :" msgstr "Numele fişierului :" #: ../data/ui/song-infos.ui.h:9 ../plugins/radios/ario-radio.c:169 msgid "Genre :" msgstr "Gen :" #: ../data/ui/song-infos.ui.h:10 ../plugins/information/information.ui.h:4 msgid "Length :" msgstr "Lungime :" #: ../data/ui/song-infos.ui.h:11 msgid "Performer :" msgstr "Interpret :" #: ../data/ui/song-infos.ui.h:12 msgid "Song" msgstr "Melodie" #: ../data/ui/song-infos.ui.h:14 msgid "Track :" msgstr "Piesă :" #: ../data/ui/trayicon-prefs.ui.h:1 msgid "Do nothing" msgstr "Nu fă nimic" #: ../data/ui/trayicon-prefs.ui.h:2 msgid "Mute" msgstr "Fara sonor" #: ../data/ui/trayicon-prefs.ui.h:3 ../src/shell/ario-shell-preferences.c:138 msgid "Notification" msgstr "Notificare" #: ../data/ui/trayicon-prefs.ui.h:4 msgid "Notification on song change" msgstr "Notificare la schimbarea piesei" #: ../data/ui/trayicon-prefs.ui.h:5 msgid "Notification time: " msgstr "Momentul notificării: " #: ../data/ui/trayicon-prefs.ui.h:6 msgid "On middle button click on tray icon :" msgstr "Dați clic cu butonul din mijloc pe pictograma din zona de notificare:" #: ../data/ui/trayicon-prefs.ui.h:7 ../src/widgets/ario-header.c:241 msgid "Play next song" msgstr "Redă următoarea melodie" #: ../data/ui/trayicon-prefs.ui.h:8 msgid "Play/Pause" msgstr "Redare/Pauză" #: ../data/ui/trayicon-prefs.ui.h:9 msgid "Tray icon" msgstr "Pictogramă de notificare" #: ../src/ario-main.c:67 msgid "Start minimized window" msgstr "Pornește cu fereastra minimizată" #: ../src/ario-main.c:68 msgid "Start with specific profile" msgstr "" #. Format result string #: ../src/ario-util.c:110 msgid "seconds" msgstr "secunde" #: ../src/ario-util.c:112 msgid "minutes" msgstr "minute" #: ../src/ario-util.c:118 msgid "hours" msgstr "ore" #: ../src/ario-util.c:124 msgid "days" msgstr "zile" #: ../src/covers/ario-cover.c:149 msgid "The cover already exists. Do you want to replace it?" msgstr "Coperta există deja. Doriţi să o înlocuiţi?" #: ../src/covers/ario-cover-local.c:48 msgid "Music Directory" msgstr "Directorul de muzică" #: ../src/playlist/ario-playlist-dynamic.c:49 msgid "songs of same artist" msgstr "Cantece ale aceluiasi artist" #: ../src/playlist/ario-playlist-dynamic.c:50 msgid "songs of same album" msgstr "Cantece ale aceluiasi album" #: ../src/playlist/ario-playlist-dynamic.c:51 msgid "songs of similar artists" msgstr "Cantecele ale unor artisiti similari" #: ../src/playlist/ario-playlist-dynamic.c:52 msgid "albums of same artists" msgstr "Albume ale aceluiasi artisti" #: ../src/playlist/ario-playlist-dynamic.c:53 msgid "albums of similar artists" msgstr "Albume ale unor artisti similari" #: ../src/playlist/ario-playlist-dynamic.c:69 msgid "Dynamic Playlist" msgstr "Lista de rulare aleatoare" #: ../src/playlist/ario-playlist-queue.c:49 msgid "Queue Mode" msgstr "Mod coada asteptare" #: ../src/playlist/ario-playlist-normal.c:47 msgid "Normal" msgstr "Obisnuit" #: ../src/plugins/ario-plugin-manager.c:45 msgid "Plugin" msgstr "Modul" #: ../src/plugins/ario-plugin-manager.c:46 msgid "Enabled" msgstr "Activat" #: ../src/plugins/ario-plugin-manager.c:480 ../src/shell/ario-shell.c:206 msgid "_About" msgstr "_Despre" #: ../src/plugins/ario-plugin-manager.c:488 msgid "C_onfigure" msgstr "C_onfigurează" #: ../src/plugins/ario-plugin-manager.c:497 msgid "A_ctivate" msgstr "A_ctivează" #: ../src/plugins/ario-plugin-manager.c:508 msgid "Ac_tivate All" msgstr "Ac_tivare toate" #: ../src/plugins/ario-plugin-manager.c:513 msgid "_Deactivate All" msgstr "_Dezactivare totate" #: ../src/plugins/ario-plugin-manager.c:722 msgid "Active plugins" msgstr "Module active" #: ../src/preferences/ario-server-preferences.c:182 #: ../src/preferences/ario-stats-preferences.c:151 #: ../src/preferences/ario-stats-preferences.c:152 #: ../src/preferences/ario-stats-preferences.c:153 #: ../src/preferences/ario-stats-preferences.c:154 #: ../src/preferences/ario-stats-preferences.c:155 #: ../src/preferences/ario-stats-preferences.c:156 msgid "Not connected" msgstr "Neconectat" #: ../src/preferences/ario-server-preferences.c:187 #: ../src/preferences/ario-server-preferences.c:278 #: ../src/widgets/ario-status-bar.c:100 msgid "Updating..." msgstr "În curs de actualizare..." #: ../src/servers/ario-mpd.c:410 ../src/servers/ario-mpd2.c:522 msgid "Connecting to server..." msgstr "Se conectează la server..." #: ../src/servers/ario-mpd.c:438 ../src/servers/ario-mpd2.c:550 msgid "Impossible to connect to server. Check the connection options." msgstr "Nu se poate conecta la server. Verifică opțiunile de conectare." #. ARIO_TAG_ALBUM #: ../src/servers/ario-server.c:47 msgid "Album Artist" msgstr "Artistii de pe album" #. ARIO_TAG_DATE #: ../src/servers/ario-server.c:53 msgid "Composer" msgstr "Compozitor" #. ARIO_TAG_COMPOSER #: ../src/servers/ario-server.c:54 msgid "Performer" msgstr "Interpret" #. ARIO_TAG_PERFORMER #. ARIO_TAG_COMMENT #. ARIO_TAG_DISC #: ../src/servers/ario-server.c:57 msgid "Filename" msgstr "Numele fişierului" #. ARIO_TAG_FILENAME #: ../src/servers/ario-server.c:58 msgid "Any" msgstr "Oricare" #. impossible time or broken locale settings #: ../src/servers/ario-server.h:27 #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1235 msgid "Unknown" msgstr "Necunoscut" #: ../src/sources/ario-browser.c:82 ../src/sources/ario-search.c:70 #: ../src/sources/ario-storedplaylists.c:88 #: ../src/sources/ario-storedplaylists.c:106 #: ../plugins/filesystem/ario-filesystem.c:94 #: ../plugins/filesystem/ario-filesystem.c:109 #: ../plugins/radios/ario-radio.c:116 msgid "_Add to playlist" msgstr "_Adaugă la lista de redare" #: ../src/sources/ario-browser.c:85 ../src/sources/ario-search.c:73 #: ../src/sources/ario-storedplaylists.c:91 #: ../src/sources/ario-storedplaylists.c:109 #: ../plugins/filesystem/ario-filesystem.c:97 #: ../plugins/filesystem/ario-filesystem.c:112 #: ../plugins/radios/ario-radio.c:119 msgid "Add and _play" msgstr "Adaugă și _redă" #: ../src/sources/ario-browser.c:88 ../src/sources/ario-search.c:76 #: ../src/sources/ario-storedplaylists.c:94 #: ../src/sources/ario-storedplaylists.c:112 #: ../plugins/filesystem/ario-filesystem.c:100 #: ../plugins/filesystem/ario-filesystem.c:115 #: ../plugins/radios/ario-radio.c:122 msgid "_Replace in playlist" msgstr "_Înlocuiește în lista de redare" #: ../src/sources/ario-browser.c:91 msgid "Get the covers" msgstr "Ia coperţile" #: ../src/sources/ario-browser.c:94 msgid "_Delete the covers" msgstr "_Şterge coperţile" #: ../src/sources/ario-browser.c:97 ../src/sources/ario-browser.c:100 #: ../src/sources/ario-search.c:79 ../src/sources/ario-storedplaylists.c:115 #: ../src/widgets/ario-playlist.c:151 #: ../plugins/filesystem/ario-filesystem.c:118 #: ../plugins/radios/ario-radio.c:131 msgid "_Properties" msgstr "_Proprietăţi" #: ../src/sources/ario-browser.c:125 ../src/shell/ario-shell-preferences.c:118 msgid "Library" msgstr "Colecţie" #: ../src/sources/ario-storedplaylists.c:97 msgid "_Delete" msgstr "_Şterge" #: ../src/sources/ario-storedplaylists.c:151 msgid "Playlists" msgstr "Liste de redare" #: ../src/sources/ario-storedplaylists.c:592 msgid "Are you sure that you want to delete all the selected playlists?" msgstr "Sigur vreţi să ştergeţi toate listele de redare selectate?" #: ../src/sources/ario-tree.c:856 msgid "Are you sure that you want to remove all the selected covers?" msgstr "Ești sigur că dorești să înlături toate copertele selectate?" #. Translators - This "Cover" refers to an album cover art #: ../src/sources/ario-tree-albums.c:199 msgid "Cover" msgstr "Coperta" #: ../src/shell/ario-shell.c:160 msgid "_File" msgstr "_Fişier" #: ../src/shell/ario-shell.c:161 msgid "_Edit" msgstr "Editează" #: ../src/shell/ario-shell.c:162 msgid "_View" msgstr "_Vizualizare" #: ../src/shell/ario-shell.c:163 msgid "_Control" msgstr "_Control" #: ../src/shell/ario-shell.c:164 msgid "_Tool" msgstr "_Unealtă" #: ../src/shell/ario-shell.c:165 msgid "_Help" msgstr "_Ajutor" #: ../src/shell/ario-shell.c:173 msgid "_Update database" msgstr "Actualizează baza de date" #: ../src/shell/ario-shell.c:176 msgid "_Quit" msgstr "_Ieşire" #: ../src/shell/ario-shell.c:179 msgid "Plu_gins" msgstr "Mo_dule" #: ../src/shell/ario-shell.c:182 msgid "Prefere_nces" msgstr "Preferi_nţe" #: ../src/shell/ario-shell.c:185 msgid "_Change current album cover" msgstr "_Schimbă coperta albumului curent" #: ../src/shell/ario-shell.c:188 msgid "Download album _covers" msgstr "Descarcă coperte de albume" #: ../src/shell/ario-shell.c:191 msgid "Find similar artists" msgstr "Găseşte artişti similari" #: ../src/shell/ario-shell.c:194 msgid "Add similar songs to playlist" msgstr "Adaugă cîntece similare în lista de redare" #: ../src/shell/ario-shell.c:197 msgid "Go to _previous tab" msgstr "Mergi la tabul _precedent" #: ../src/shell/ario-shell.c:200 msgid "Go to _next tab" msgstr "Mergi la tabul _următor" #: ../src/shell/ario-shell.c:203 msgid "Show _lyrics" msgstr "Arată _versurile" #: ../src/shell/ario-shell.c:209 msgid "_Translate this application..." msgstr "_Tradu această aplicaţie" #: ../src/shell/ario-shell.c:216 msgid "S_tatusbar" msgstr "Bară de s_tare" #: ../src/shell/ario-shell.c:219 msgid "Upper part" msgstr "Partea superioară" #: ../src/shell/ario-shell.c:825 msgid "GTK client for MPD" msgstr "Client GTK pentru MPD" #: ../src/shell/ario-shell.c:826 msgid "translator-credits" msgstr "" "Launchpad Contributions:\n" " Adrian Harabulă https://launchpad.net/~opensoft\n" " Bisericaru Sebastian https://launchpad.net/~tweety\n" " Cosmin Stremţan https://launchpad.net/~cosmin-stremtan\n" " Ionuț Jula https://launchpad.net/~ionutjula\n" " Jorel https://launchpad.net/~d-dymon\n" " Lucian Matei https://launchpad.net/~mateiluc-gmail\n" " Manuel R. Ciosici https://launchpad.net/~manuelciosici\n" " Marc Pavot https://launchpad.net/~marc-pavot\n" " Stetco Pricop III https://launchpad.net/~stetco-pricop\n" " Ursache Dogariu Daniel https://launchpad.net/~danniel\n" " kneos https://launchpad.net/~catalineacsu" #. Create plugins configuration dialog window #: ../src/shell/ario-shell.c:1278 msgid "Configure Plugins" msgstr "Configurează modulele" #. Set window properties #: ../src/shell/ario-shell-coverdownloader.c:187 msgid "Music Player Cover Download" msgstr "Descarcă coperte pentru player-ul de muzică" #: ../src/shell/ario-shell-coverdownloader.c:332 msgid "Download Finished!" msgstr "Descărcare Terminată!" #. We show the numbers of covers found and not found #: ../src/shell/ario-shell-coverdownloader.c:335 #, c-format msgid "" "%i covers found\n" "%i covers not found\n" "%i covers already exist" msgstr "" "%i coperte găsite\n" "%i coperte nu au fost găsite\n" "%i coperte există deja" #. Set window properties #: ../src/shell/ario-shell-coverselect.c:242 msgid "Cover Download" msgstr "Descarcă coperte" #: ../src/shell/ario-shell-coverselect.c:559 msgid "Error reading file" msgstr "Eroare la citirea fişierului" #: ../src/shell/ario-shell-coverselect.c:584 msgid "Error saving file" msgstr "Eroare la salvarea fişierului" #: ../src/shell/ario-shell-lyrics.c:43 #: ../src/shell/ario-shell-preferences.c:133 #: ../src/shell/ario-shell-songinfos.c:272 msgid "Lyrics" msgstr "Versuri" #: ../src/shell/ario-shell-lyricsselect.c:152 msgid "Lyrics Download" msgstr "Descarcă Versuri" #: ../src/shell/ario-shell-preferences.c:81 msgid "Ario Preferences" msgstr "Preferinţe Ario" #: ../src/shell/ario-shell-preferences.c:113 msgid "Server" msgstr "Server" #: ../src/shell/ario-shell-preferences.c:143 msgid "Others" msgstr "Altii" #: ../src/shell/ario-shell-similarartists.c:318 #, c-format msgid "%d songs" msgstr "%d cîntece" #. Set window properties #. Set window title #: ../src/shell/ario-shell-songinfos.c:249 #: ../src/shell/ario-shell-songinfos.c:266 #: ../src/shell/ario-shell-songinfos.c:544 msgid "Song Properties" msgstr "Proprietăţile melodiei" #: ../src/shell/ario-shell-songinfos.c:455 msgid "Error saving tags of file:" msgstr "Eroare la salvarea etichetei fisierului" #: ../src/widgets/ario-connection-widget.c:652 msgid "You must select a server." msgstr "Trebuie să selectaţi un server." #: ../src/widgets/ario-connection-widget.c:702 msgid "New Profile" msgstr "Profil nou" #: ../src/widgets/ario-firstlaunch.c:82 msgid "The following configuration will be used:" msgstr "Va fi folosită următoarea configuraţie:" #: ../src/widgets/ario-firstlaunch.c:106 msgid "" "It is the first time you launch Ario.\n" "This assistant will help you to configure it." msgstr "" "Este prima dată când porniţi Ario.\n" "Acest asistent vă va ajuta să îl configuraţi." #: ../src/widgets/ario-firstlaunch.c:111 msgid "Welcome to Ario" msgstr "Bine aţi venit la Ario" #: ../src/widgets/ario-firstlaunch.c:129 msgid "Configuration" msgstr "Configurare" #: ../src/widgets/ario-firstlaunch.c:141 msgid "Confirmation" msgstr "Confirmare" #: ../src/widgets/ario-header.c:66 ../src/widgets/ario-tray-icon.h:42 #, c-format msgid "from %s by %s" msgstr "de la %s la %s" #: ../src/widgets/ario-header.c:199 msgid "Play previous song" msgstr "Redă melodia precedentă" #: ../src/widgets/ario-header.c:217 msgid "Play/Pause the music" msgstr "Redă/Pauză muzică" #: ../src/widgets/ario-header.c:229 msgid "Stop the music" msgstr "Opreşte muzica" #. Translators - This " of " is used to count the elapsed time #. of a song like in "00:59 of 03:24" #: ../src/widgets/ario-header.c:310 ../src/widgets/ario-tooltip.c:321 msgid " of " msgstr " din " #: ../src/widgets/ario-header.c:323 msgid "Toggle random on/off" msgstr "Comută întâmplător pornit/oprit" #: ../src/widgets/ario-header.c:335 msgid "Toggle repeat on/off" msgstr "Comută repetă pornit/oprit" #: ../src/widgets/ario-header.c:340 msgid "Change the music volume" msgstr "Schimbă volumul muzicii" #: ../src/widgets/ario-lyrics-editor.c:323 msgid "Downloading lyrics..." msgstr "Se descarcă versurile..." #: ../src/widgets/ario-lyrics-editor.c:351 msgid "Lyrics not found" msgstr "Versurile nu au fost găsite" #: ../src/widgets/ario-playlist.c:133 msgid "_Clear" msgstr "_Eliberează" #: ../src/widgets/ario-playlist.c:136 msgid "_Shuffle" msgstr "_Aleatoriu" #: ../src/widgets/ario-playlist.c:139 msgid "Cr_op" msgstr "_Decupează" #: ../src/widgets/ario-playlist.c:142 msgid "_Search in playlist" msgstr "Cauta in lista de redare" #: ../src/widgets/ario-playlist.c:145 msgid "_Remove" msgstr "_Elimină" #: ../src/widgets/ario-playlist.c:148 msgid "_Save" msgstr "_Salvează" #: ../src/widgets/ario-playlist.c:154 msgid "_Go to playing song" msgstr "_Du-te la melodia curentă" #: ../src/widgets/ario-playlist.c:667 msgid "Filter:" msgstr "Filtru" #. Create the widgets #: ../src/widgets/ario-playlist.c:1700 msgid "Save playlist" msgstr "Salvează lista de piese" #: ../src/widgets/ario-playlist.c:1710 msgid "Playlist name :" msgstr "Numele listei de redare :" #: ../src/widgets/ario-playlist.c:1746 msgid "Playlist already exists. Do you want to overwrite it?" msgstr "Lista de redare există deja. Vreţi să o suprascrieţi?" #. Format status bar message #: ../src/widgets/ario-status-bar.c:96 msgid "Songs" msgstr "Melodii" #: ../src/widgets/ario-tray-icon.c:102 msgid "_Play" msgstr "_Redă" #: ../src/widgets/ario-tray-icon.c:105 msgid "_Pause" msgstr "_Pauză" #: ../src/widgets/ario-tray-icon.c:108 msgid "_Stop" msgstr "_Stop" #: ../src/widgets/ario-tray-icon.c:111 msgid "_Next" msgstr "_Înainte" #: ../src/widgets/ario-tray-icon.c:114 msgid "P_revious" msgstr "P_recedenta" #: ../src/widgets/ario-tray-icon.h:41 msgid "Not playing" msgstr "Redare oprită" #. Translators: "friendly time" string for the current day, strftime format. like "Today 12:34 am" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1179 msgid "Today %I:%M %p" msgstr "Astăzi %I:%M %p" #. Translators: "friendly time" string for the previous day, #. * strftime format. e.g. "Yesterday 12:34 am" #. #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1192 msgid "Yesterday %I:%M %p" msgstr "Ieri %I:%M %p" #. Translators: "friendly time" string for a day in the current week, #. * strftime format. e.g. "Wed 12:34 am" #. #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1208 msgid "%a %I:%M %p" msgstr "%a %I:%M %p" #. Translators: "friendly time" string for a day in the current year, #. * strftime format. e.g. "Feb 12 12:34 am" #. #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1220 msgid "%b %d %I:%M %p" msgstr "%b %d %I:%M %p" #. Translators: "friendly time" string for a day in a different year, #. * strftime format. e.g. "Feb 12 1997" #. #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1225 msgid "%b %d %Y" msgstr "%b %d %Y" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1311 #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:4 msgid "Never" msgstr "Niciodată" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1335 msgid "OK" msgstr "OK" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1338 msgid "Logging in" msgstr "Autentificare" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1341 msgid "Request failed" msgstr "Cerere nereuşită" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1344 msgid "Incorrect username" msgstr "Nume de utilizator incorect" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1347 msgid "Incorrect password" msgstr "Parolă incorectă" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1350 msgid "Handshake failed" msgstr "Iniţiere eşuată" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1353 msgid "Client update required" msgstr "Actualizare client necesară" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1356 msgid "Track submission failed" msgstr "Trimiterea piesei a eşuat" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1359 msgid "Queue is too long" msgstr "Lista este prea lungă" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1362 msgid "Track submission failed too many times" msgstr "Trimiterea piesei a eşuat de prea multe ori" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1417 msgid "Audioscrobbler preferences" msgstr "Preferinţe Audioscrobbler" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:1 msgid "Disabled" msgstr "Dezactivat" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:2 msgid "Last submission time:" msgstr "Data ultimei trimiteri:" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:3 msgid "Last.fm Profile" msgstr "Profil Last.fm" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:6 msgid "Queued tracks:" msgstr "Piese în aşteptare:" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:7 msgid "Status:" msgstr "Stare:" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:8 msgid "Tracks submitted:" msgstr "Piese trimise:" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:9 #: ../plugins/radios/ario-radio.c:168 msgid "Username :" msgstr "Nume utilizator:" #: ../plugins/audioscrobbler/audioscrobbler.ario-plugin.desktop.in.h:1 msgid "Last.fm" msgstr "Last.fm" #: ../plugins/audioscrobbler/audioscrobbler.ario-plugin.desktop.in.h:2 msgid "Submits song information to last.fm" msgstr "Trimite informaţia melodiei la last.fm" #: ../plugins/filesystem/ario-filesystem.c:158 msgid "File System" msgstr "Sistem de fișiere" #: ../plugins/filesystem/ario-filesystem.c:422 msgid "Music" msgstr "Muzică" #: ../plugins/filesystem/filesystem.ario-plugin.desktop.in.h:1 msgid "A File System Browser" msgstr "Un Navigator de Sistem de Fişiere" #: ../plugins/filesystem/filesystem.ario-plugin.desktop.in.h:2 msgid "File System Browser" msgstr "Navigator de Sistem de Fişiere" #: ../plugins/information/ario-information.c:114 msgid "Information" msgstr "Informații" #: ../plugins/information/information.ario-plugin.desktop.in.h:1 msgid "Display various information about the playing song" msgstr "Afișează diverse informații despre piesa curentă" #: ../plugins/information/information.ario-plugin.desktop.in.h:2 msgid "Song Information" msgstr "Informații despre cîntec" #: ../plugins/information/information.ui.h:2 msgid "Albums from this artist:" msgstr "Albume ale artistului:" #: ../plugins/information/information.ui.h:5 msgid "Lyrics:" msgstr "Versuri:" #: ../plugins/libnotify/libnotify.ario-plugin.desktop.in.h:1 msgid "Add libnotify support" msgstr "Adaugă suport pentru libnotify" #: ../plugins/libnotify/libnotify.ario-plugin.desktop.in.h:2 msgid "Libnotify" msgstr "Libnotify" #: ../plugins/mmkeys/mmkeys.ario-plugin.desktop.in.h:1 msgid "Add multimedia keys support" msgstr "Adaugă asistenţa tastelor multimedia" #: ../plugins/mmkeys/mmkeys.ario-plugin.desktop.in.h:2 msgid "Multimedia Keys" msgstr "Taste Multimedia" #: ../plugins/radios/ario-radio.c:125 msgid "Add a _new radio" msgstr "Adaugă un _nou radio" #: ../plugins/radios/ario-radio.c:128 msgid "_Delete this radios" msgstr "_Şterge aceste radiouri" #: ../plugins/radios/ario-radio.c:166 msgid "Last.fm: Radio of similar artists" msgstr "Last.fm: Radio cu artiști similari" #: ../plugins/radios/ario-radio.c:167 msgid "Last.fm: Radio of group" msgstr "Last.fm: Radio de trupă" #: ../plugins/radios/ario-radio.c:167 msgid "Group :" msgstr "Grup :" #: ../plugins/radios/ario-radio.c:168 msgid "Last.fm: Personal radio" msgstr "Last.fm: Radio personal" #: ../plugins/radios/ario-radio.c:169 msgid "Last.fm: Radio of genre" msgstr "Last.fm: Radio de gen" #: ../plugins/radios/ario-radio.c:184 #: ../plugins/radios/radios.ario-plugin.desktop.in.h:2 msgid "Web Radios" msgstr "Radiouri de pe Web" #: ../plugins/radios/ario-radio.c:246 msgid "Internet Radios" msgstr "Radiouri de pe Internet" #. Create dialog window #: ../plugins/radios/ario-radio.c:774 msgid "Edit a WebRadio" msgstr "Editare Radio de pe Web" #: ../plugins/radios/ario-radio.c:787 ../plugins/radios/ario-radio.c:923 msgid "URL :" msgstr "URL :" #: ../plugins/radios/ario-radio.c:853 ../plugins/radios/ario-radio.c:997 msgid "Bad parameters. You must specify a name and a URL for the radio." msgstr "" "Parametrii incorecţi. Trebuie să specificaţi un nume şi un URL pentru radio." #. Create dialog window #: ../plugins/radios/ario-radio.c:883 msgid "Add a WebRadio" msgstr "Adaugă un Radio de pe Web" #: ../plugins/radios/ario-radio.c:1083 msgid "Are you sure you want to delete all the selected radios?" msgstr "Sigur vreţi să ştergeţi toate radiourile selectate?" #: ../plugins/radios/radios.ario-plugin.desktop.in.h:1 msgid "Listen to webradios" msgstr "Ascultă radiouri de pe web" #: ../plugins/wikipedia/ario-wikipedia-plugin.c:49 #: ../plugins/wikipedia/ario-wikipedia-plugin.c:50 msgid "Find artist on Wikipedia" msgstr "Găseşte artişti pe Wikipedia" #: ../plugins/wikipedia/ario-wikipedia-plugin.c:172 msgid "Wikipedia Plugin - Configuration" msgstr "Wikipedia Modul - Configuraţie" #: ../plugins/wikipedia/ario-wikipedia-plugin.c:181 msgid "Wikipedia language :" msgstr "limbă Wikipedia" #: ../plugins/wikipedia/wikipedia.ario-plugin.desktop.in.h:1 msgid "A plugin to search current artist on wikipedia" msgstr "Un modul să caute artistul curent pe wikipedia" #: ../plugins/wikipedia/wikipedia.ario-plugin.desktop.in.h:2 msgid "Wikipedia" msgstr "Wikipedia" #~ msgid "Search songs in the library" #~ msgstr "Caută melodii in bibliotecă" #~ msgid "Add a search criteria" #~ msgstr "Adăugaţi un criteriu de căutare" #~ msgid "Remove a search criteria" #~ msgstr "Îndepărtează un criteriu de căutare" ario-1.6/po/oc.po0000644000175000017500000010372013226723435010624 00000000000000# Occitan (post 1500) translation for ario # Copyright (c) 2008 Rosetta Contributors and Canonical Ltd 2008 # This file is distributed under the same license as the ario package. # FIRST AUTHOR , 2008. # msgid "" msgstr "" "Project-Id-Version: ario\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2011-06-13 18:15+0200\n" "PO-Revision-Date: 2011-05-16 16:43+0000\n" "Last-Translator: Cédric VALMARY (Tot en òc) \n" "Language-Team: Occitan (post 1500) \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2011-06-13 16:33+0000\n" "X-Generator: Launchpad (build 13175)\n" #: ../data/ario.desktop.in.in.h:1 msgid "Ario music player" msgstr "Lector de musica Ario" #: ../data/ario.desktop.in.in.h:2 msgid "Client application to mpd" msgstr "Client per MPD" #: ../data/ui/browser-prefs.ui.h:1 msgid "Alphabetically" msgstr "Òrdre alfabetic" #: ../data/ui/browser-prefs.ui.h:2 msgid "By year" msgstr "Per Annada" #: ../data/ui/browser-prefs.ui.h:3 msgid "Library Options" msgstr "Opcions de la bibliotèca" #: ../data/ui/browser-prefs.ui.h:4 msgid "Library Organisation" msgstr "Organizacion de la bibliotèca" #: ../data/ui/browser-prefs.ui.h:5 msgid "Sort albums: " msgstr "Triar los albums : " #: ../data/ui/connection-autodetect.ui.h:1 msgid "" "If you don't see your MPD server thanks to the automatic detection, you " "should check that zeroconf is activated in your MPD configuration or use the " "manual configuration." msgstr "" "Se vesètz pas vòstre servidor MPD, vos caldriá verificar que zeroconf es " "activat sus vòstre servidor MPD o utilizar la configuracion manuala." #: ../data/ui/connection-autodetect.ui.h:2 msgid "Server autodetection" msgstr "Autodeteccion de servidor" #: ../data/ui/connection-widget.ui.h:1 msgid "Auto detect" msgstr "Deteccion automatica" #: ../data/ui/connection-widget.ui.h:2 msgid "Default" msgstr "Per defaut" #: ../data/ui/connection-widget.ui.h:3 ../src/widgets/ario-firstlaunch.c:83 msgid "Host :" msgstr "Òste :" #: ../data/ui/connection-widget.ui.h:4 msgid "Music directory :" msgstr "Repertòri de la musica :" #: ../data/ui/connection-widget.ui.h:5 msgid "Music server is on the same computer as Ario" msgstr "Lo servidor de musica es sul meteis ordenador qu'Ario" #. Create the widgets #: ../data/ui/connection-widget.ui.h:6 ../plugins/radios/ario-radio.c:786 #: ../plugins/radios/ario-radio.c:922 msgid "Name :" msgstr "Nom :" #: ../data/ui/connection-widget.ui.h:7 #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:5 msgid "Password :" msgstr "Senhal :" #: ../data/ui/connection-widget.ui.h:8 ../src/widgets/ario-firstlaunch.c:85 msgid "Port :" msgstr "Pòrt :" #: ../data/ui/connection-widget.ui.h:9 msgid "Server type :" msgstr "Tipe de servidor :" #: ../data/ui/connection-widget.ui.h:10 msgid "Timeout :" msgstr "" #: ../data/ui/connection-widget.ui.h:11 msgid "XMMS 2 (Experimental)" msgstr "XMMS 2 (Experimental)" #: ../data/ui/cover-prefs.ui.h:1 msgid "Automatically download the album cover of the playing song" msgstr "Telecargar automaticament la pocheta de l'album de la cançon en cors" #: ../data/ui/cover-prefs.ui.h:2 ../src/shell/ario-shell-preferences.c:128 msgid "Covers" msgstr "Pochetas" #: ../data/ui/cover-prefs.ui.h:3 msgid "Covers Sources" msgstr "Fonts de pochetas" #: ../data/ui/cover-prefs.ui.h:4 msgid "Show the covers in the albums list" msgstr "Afichar las pochetas dins la lista dels albums" #: ../data/ui/cover-prefs.ui.h:5 msgid "Use Amazon." msgstr "Utilizar Amazon." #: ../data/ui/connection-prefs.ui.h:1 #: ../src/shell/ario-shell-preferences.c:108 msgid "Connection" msgstr "Connexion" #: ../data/ui/connection-prefs.ui.h:2 msgid "_Autoconnect on startup" msgstr "_Connexion automatica a l'aviada" #: ../data/ui/connection-prefs.ui.h:3 ../src/shell/ario-shell.c:167 msgid "_Connect" msgstr "Se _connectar" #: ../data/ui/connection-prefs.ui.h:4 ../src/shell/ario-shell.c:170 msgid "_Disconnect" msgstr "Se _desconnectar" #: ../data/ui/connection-assistant.ui.h:1 msgid "" "You need to specify a server to connect to. If you don't see your server " "thanks to the autodetection, you should check that zeroconf/avahi is " "activated in your server or use the manual configuration." msgstr "" "Vos cal especificar un servidor al qual vos podètz connectar. Se vesètz pas " "vòstre servidor amb l'ajuda de l'autodeteccion, vos caldriá verificar que " "zeroconf/avahi es activat sus vòstre servidor o utilizar la configuracion " "manuala." #: ../data/ui/cover-progress.ui.h:1 ../data/ui/cover-select.ui.h:1 #: ../data/ui/song-infos.ui.h:1 ../plugins/information/information.ui.h:1 msgid "Album :" msgstr "Album :" #: ../data/ui/cover-progress.ui.h:2 ../data/ui/cover-select.ui.h:2 #: ../data/ui/lyrics-select.ui.h:1 ../data/ui/song-infos.ui.h:3 #: ../plugins/information/information.ui.h:3 #: ../plugins/radios/ario-radio.c:166 msgid "Artist :" msgstr "Artista :" #: ../data/ui/cover-progress.ui.h:3 msgid "Downloading cover" msgstr "Telecargar las pochetas" #: ../data/ui/cover-select.ui.h:3 msgid "Local search" msgstr "Recèrca locala" #: ../data/ui/cover-select.ui.h:4 ../src/sources/ario-search.c:108 msgid "Search" msgstr "Recercar" #: ../data/ui/others-prefs.ui.h:1 msgid "Allow only one instance of Ario" msgstr "Autorizar pas qu'una instància d'Ario" #: ../data/ui/others-prefs.ui.h:2 msgid "Hide window when close button is pressed" msgstr "Amagar la fenèstra quand la fenèstra es tampada" #: ../data/ui/others-prefs.ui.h:3 msgid "Interface" msgstr "Interfàcia" #: ../data/ui/others-prefs.ui.h:4 msgid "Playlist at the right of tabs" msgstr "" #: ../data/ui/others-prefs.ui.h:5 msgid "Playlist below tabs" msgstr "" #: ../data/ui/others-prefs.ui.h:6 msgid "Playlist within tabs" msgstr "" #: ../data/ui/others-prefs.ui.h:7 msgid "Proxy" msgstr "Servidor mandatari (proxy)" #: ../data/ui/others-prefs.ui.h:8 msgid "Proxy Address :" msgstr "Adreça del proxy :" #: ../data/ui/others-prefs.ui.h:9 msgid "Proxy Port :" msgstr "Pòrt del proxy :" #: ../data/ui/others-prefs.ui.h:10 msgid "Show tabs" msgstr "Afichar los onglets" #: ../data/ui/others-prefs.ui.h:11 msgid "Use a proxy" msgstr "Utilizar un proxy" #: ../data/ui/lyrics-prefs.ui.h:1 msgid "Lyrics Sources" msgstr "Fonts de las paraulas" #: ../data/ui/lyrics-select.ui.h:2 ../data/ui/song-infos.ui.h:13 #: ../plugins/information/information.ui.h:6 msgid "Title :" msgstr "Títol :" #: ../data/ui/playlist-prefs.ui.h:1 msgid "Add after playing song" msgstr "" #: ../data/ui/playlist-prefs.ui.h:2 msgid "Add and play" msgstr "Apondre e jogar" #: ../data/ui/playlist-prefs.ui.h:3 ../data/ui/similar-artists.ui.h:2 msgid "Add to playlist" msgstr "Apondre a la lista de lecturas" #. ARIO_TAG_ARTIST #: ../data/ui/playlist-prefs.ui.h:4 ../src/servers/ario-server.c:46 #: ../src/sources/ario-tree-albums.c:213 ../src/widgets/ario-playlist.c:541 #: ../src/widgets/ario-songlist.c:228 ../src/widgets/ario-tray-icon.c:565 msgid "Album" msgstr "Album" #: ../data/ui/playlist-prefs.ui.h:5 ../src/servers/ario-server.c:45 #: ../src/widgets/ario-playlist.c:541 ../src/widgets/ario-songlist.c:213 #: ../src/widgets/ario-tray-icon.c:563 msgid "Artist" msgstr "Artista" #. ARIO_TAG_GENRE #: ../data/ui/playlist-prefs.ui.h:6 ../src/servers/ario-server.c:52 #: ../src/widgets/ario-playlist.c:541 msgid "Date" msgstr "Data" #: ../data/ui/playlist-prefs.ui.h:7 ../src/widgets/ario-playlist.c:541 msgid "Disc" msgstr "Disc" #: ../data/ui/playlist-prefs.ui.h:8 msgid "Double click" msgstr "Clic doble" #: ../data/ui/playlist-prefs.ui.h:9 ../src/widgets/ario-playlist.c:541 msgid "Duration" msgstr "Durada" #: ../data/ui/playlist-prefs.ui.h:10 ../src/widgets/ario-playlist.c:541 msgid "File" msgstr "Fichièr" #. ARIO_TAG_TRACK #. ARIO_TAG_NAME #: ../data/ui/playlist-prefs.ui.h:11 ../src/servers/ario-server.c:51 #: ../src/widgets/ario-playlist.c:541 msgid "Genre" msgstr "Genre" #: ../data/ui/playlist-prefs.ui.h:12 msgid "Go to current song when a new song is played" msgstr "Anar a la cançon en cors quand una cançon novèla es jogada" #: ../data/ui/playlist-prefs.ui.h:13 msgid "Mode" msgstr "Mòde" #: ../data/ui/playlist-prefs.ui.h:14 msgid "On double click:" msgstr "En cas de clic doble" #: ../data/ui/playlist-prefs.ui.h:15 ../src/sources/ario-storedplaylists.c:229 #: ../src/shell/ario-shell.c:222 ../src/shell/ario-shell-preferences.c:123 #: ../src/widgets/ario-playlist.c:272 msgid "Playlist" msgstr "Lista de lectura" #: ../data/ui/playlist-prefs.ui.h:16 msgid "Playlist mode:" msgstr "Mòde de la lista de lectura :" #: ../data/ui/playlist-prefs.ui.h:17 msgid "Replace in playlist" msgstr "Remplaçar dins la lista de lectura" #: ../data/ui/playlist-prefs.ui.h:18 msgid "Show rows:" msgstr "Afichar las colomnas" #. ARIO_TAG_ALBUM_ARTIST #: ../data/ui/playlist-prefs.ui.h:19 ../src/servers/ario-server.c:48 #: ../src/sources/ario-tree-songs.c:145 ../src/widgets/ario-playlist.c:541 #: ../src/widgets/ario-songlist.c:198 ../src/widgets/ario-tray-icon.c:567 msgid "Title" msgstr "Títol" #. ARIO_TAG_TITLE #: ../data/ui/playlist-prefs.ui.h:20 ../src/servers/ario-server.c:49 #: ../src/sources/ario-tree-songs.c:138 ../src/widgets/ario-playlist.c:541 msgid "Track" msgstr "Pista" #: ../data/ui/server-prefs.ui.h:1 msgid "Audio outputs" msgstr "Sortidas àudio" #: ../data/ui/server-prefs.ui.h:2 msgid "Crossfade" msgstr "Fondut" #: ../data/ui/server-prefs.ui.h:3 msgid "Database" msgstr "Banca de donadas" #: ../data/ui/server-prefs.ui.h:4 msgid "Last updated:" msgstr "Darrièra mesa a jorn :" #: ../data/ui/server-prefs.ui.h:5 msgid "Stop music on exit" msgstr "Arrestar la musica quand Ario es arrestat" #: ../data/ui/server-prefs.ui.h:6 msgid "Update on startup" msgstr "Metre a jorn a l'aviada" #: ../data/ui/server-prefs.ui.h:7 msgid "_Update" msgstr "_Metre a jorn" #: ../data/ui/server-prefs.ui.h:8 msgid "enable crossfade" msgstr "Activar lo fondut" #: ../data/ui/server-prefs.ui.h:9 msgid "fade time (s):" msgstr "Durada del fondut (s):" #: ../data/ui/server-prefs.ui.h:10 ../src/ario-util.c:50 ../src/ario-util.c:71 #: ../src/ario-util.c:93 ../plugins/information/information.ui.h:7 #, c-format msgid "n/a" msgstr "n/a" #: ../data/ui/similar-artists.ui.h:1 msgid "Add all to playlist" msgstr "Apondre tot a la lista de lectura" #: ../data/ui/similar-artists.ui.h:3 msgid "Find on Last.fm" msgstr "Trobar sus Last.fm" #: ../data/ui/stats-prefs.ui.h:1 msgid "Database play time :" msgstr "Durada totala de la banca de donadas :" #: ../data/ui/stats-prefs.ui.h:2 msgid "Number of albums :" msgstr "Nombre d'albums :" #: ../data/ui/stats-prefs.ui.h:3 msgid "Number of artists :" msgstr "Nombre d'artistas :" #: ../data/ui/stats-prefs.ui.h:4 msgid "Number of songs :" msgstr "Nombre de cançons :" #: ../data/ui/stats-prefs.ui.h:5 msgid "Play time :" msgstr "Durada de lectura :" #: ../data/ui/stats-prefs.ui.h:6 ../src/shell/ario-shell-preferences.c:148 msgid "Statistics" msgstr "Estatisticas" #: ../data/ui/stats-prefs.ui.h:7 msgid "Uptime :" msgstr "Durada d'activitat :" #: ../data/ui/song-infos.ui.h:2 msgid "Album Artist :" msgstr "Artista de l'album :" #: ../data/ui/song-infos.ui.h:4 msgid "Comment :" msgstr "Comentari :" #: ../data/ui/song-infos.ui.h:5 msgid "Composer :" msgstr "Compositor :" #: ../data/ui/song-infos.ui.h:6 msgid "Date :" msgstr "Data :" #: ../data/ui/song-infos.ui.h:7 msgid "Disc :" msgstr "Disc :" #: ../data/ui/song-infos.ui.h:8 msgid "Filename :" msgstr "Fichièr :" #: ../data/ui/song-infos.ui.h:9 ../plugins/radios/ario-radio.c:169 msgid "Genre :" msgstr "Genre :" #: ../data/ui/song-infos.ui.h:10 ../plugins/information/information.ui.h:4 msgid "Length :" msgstr "Durada :" #: ../data/ui/song-infos.ui.h:11 msgid "Performer :" msgstr "Interprèt :" #: ../data/ui/song-infos.ui.h:12 msgid "Song" msgstr "Cançon" #: ../data/ui/song-infos.ui.h:14 msgid "Track :" msgstr "Pista :" #: ../data/ui/trayicon-prefs.ui.h:1 msgid "Do nothing" msgstr "Far pas res" #: ../data/ui/trayicon-prefs.ui.h:2 msgid "Mute" msgstr "Mut" #: ../data/ui/trayicon-prefs.ui.h:3 ../src/shell/ario-shell-preferences.c:138 msgid "Notification" msgstr "Notificacion" #: ../data/ui/trayicon-prefs.ui.h:4 msgid "Notification on song change" msgstr "Notificacion del cambiament de cançon" #: ../data/ui/trayicon-prefs.ui.h:5 msgid "Notification time: " msgstr "Durada de la notificacion: " #: ../data/ui/trayicon-prefs.ui.h:6 msgid "On middle button click on tray icon :" msgstr "Al moment d'un clic del boton del mitanu sus l'icòna de notificacion :" #: ../data/ui/trayicon-prefs.ui.h:7 ../src/widgets/ario-header.c:241 msgid "Play next song" msgstr "Jogar la cançon venenta" #: ../data/ui/trayicon-prefs.ui.h:8 msgid "Play/Pause" msgstr "Lectura / pausa" #: ../data/ui/trayicon-prefs.ui.h:9 msgid "Tray icon" msgstr "Icòna de notificacion" #: ../src/ario-main.c:67 msgid "Start minimized window" msgstr "Aviar una fenèstra minimizada" #: ../src/ario-main.c:68 msgid "Start with specific profile" msgstr "" #. Format result string #: ../src/ario-util.c:110 msgid "seconds" msgstr "segondas" #: ../src/ario-util.c:112 msgid "minutes" msgstr "minutas" #: ../src/ario-util.c:118 msgid "hours" msgstr "oras" #: ../src/ario-util.c:124 msgid "days" msgstr "jorns" #: ../src/covers/ario-cover.c:149 msgid "The cover already exists. Do you want to replace it?" msgstr "La pocheta existís déjà. La volètz remplaçar ?" #: ../src/covers/ario-cover-local.c:48 msgid "Music Directory" msgstr "Repertòri de la musica" #: ../src/playlist/ario-playlist-dynamic.c:49 msgid "songs of same artist" msgstr "cançons del meteis artista" #: ../src/playlist/ario-playlist-dynamic.c:50 msgid "songs of same album" msgstr "cançons del meteis album" #: ../src/playlist/ario-playlist-dynamic.c:51 msgid "songs of similar artists" msgstr "cançons d'artistas similars" #: ../src/playlist/ario-playlist-dynamic.c:52 msgid "albums of same artists" msgstr "albums del meteis artista" #: ../src/playlist/ario-playlist-dynamic.c:53 msgid "albums of similar artists" msgstr "albums d'artistas similars" #: ../src/playlist/ario-playlist-dynamic.c:69 msgid "Dynamic Playlist" msgstr "Lista de lectura dinamica" #: ../src/playlist/ario-playlist-queue.c:49 msgid "Queue Mode" msgstr "Mòde Coa" #: ../src/playlist/ario-playlist-normal.c:47 msgid "Normal" msgstr "Normala" #: ../src/plugins/ario-plugin-manager.c:45 msgid "Plugin" msgstr "Empeuton" #: ../src/plugins/ario-plugin-manager.c:46 msgid "Enabled" msgstr "Activat" #: ../src/plugins/ario-plugin-manager.c:480 ../src/shell/ario-shell.c:206 msgid "_About" msgstr "_A prepaus" #: ../src/plugins/ario-plugin-manager.c:488 msgid "C_onfigure" msgstr "_Configurar" #: ../src/plugins/ario-plugin-manager.c:497 msgid "A_ctivate" msgstr "A_ctivar" #: ../src/plugins/ario-plugin-manager.c:508 msgid "Ac_tivate All" msgstr "_Tot activar" #: ../src/plugins/ario-plugin-manager.c:513 msgid "_Deactivate All" msgstr "_Desactivar tot" #: ../src/plugins/ario-plugin-manager.c:722 msgid "Active plugins" msgstr "Empeutons actius" #: ../src/preferences/ario-server-preferences.c:182 #: ../src/preferences/ario-stats-preferences.c:151 #: ../src/preferences/ario-stats-preferences.c:152 #: ../src/preferences/ario-stats-preferences.c:153 #: ../src/preferences/ario-stats-preferences.c:154 #: ../src/preferences/ario-stats-preferences.c:155 #: ../src/preferences/ario-stats-preferences.c:156 msgid "Not connected" msgstr "Pas connectat" #: ../src/preferences/ario-server-preferences.c:187 #: ../src/preferences/ario-server-preferences.c:278 #: ../src/widgets/ario-status-bar.c:100 msgid "Updating..." msgstr "En cors de mesa a jorn..." #: ../src/servers/ario-mpd.c:410 ../src/servers/ario-mpd2.c:522 msgid "Connecting to server..." msgstr "En cors de connexion al servidor..." #: ../src/servers/ario-mpd.c:438 ../src/servers/ario-mpd2.c:550 msgid "Impossible to connect to server. Check the connection options." msgstr "" "Impossible de se connectar al servidor. Verificatz vòstras opcions de " "connexion." #. ARIO_TAG_ALBUM #: ../src/servers/ario-server.c:47 msgid "Album Artist" msgstr "Artista de l'album" #. ARIO_TAG_DATE #: ../src/servers/ario-server.c:53 msgid "Composer" msgstr "Compositor" #. ARIO_TAG_COMPOSER #: ../src/servers/ario-server.c:54 msgid "Performer" msgstr "Interprèt" #. ARIO_TAG_PERFORMER #. ARIO_TAG_COMMENT #. ARIO_TAG_DISC #: ../src/servers/ario-server.c:57 msgid "Filename" msgstr "Nom del fichièr" #. ARIO_TAG_FILENAME #: ../src/servers/ario-server.c:58 msgid "Any" msgstr "Totes" #. impossible time or broken locale settings #: ../src/servers/ario-server.h:27 #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1235 msgid "Unknown" msgstr "Desconegut" #: ../src/sources/ario-browser.c:82 ../src/sources/ario-search.c:70 #: ../src/sources/ario-storedplaylists.c:88 #: ../src/sources/ario-storedplaylists.c:106 #: ../plugins/filesystem/ario-filesystem.c:94 #: ../plugins/filesystem/ario-filesystem.c:109 #: ../plugins/radios/ario-radio.c:116 msgid "_Add to playlist" msgstr "_Apondre a la lista de lectura" #: ../src/sources/ario-browser.c:85 ../src/sources/ario-search.c:73 #: ../src/sources/ario-storedplaylists.c:91 #: ../src/sources/ario-storedplaylists.c:109 #: ../plugins/filesystem/ario-filesystem.c:97 #: ../plugins/filesystem/ario-filesystem.c:112 #: ../plugins/radios/ario-radio.c:119 msgid "Add and _play" msgstr "Apondre e _jogar" #: ../src/sources/ario-browser.c:88 ../src/sources/ario-search.c:76 #: ../src/sources/ario-storedplaylists.c:94 #: ../src/sources/ario-storedplaylists.c:112 #: ../plugins/filesystem/ario-filesystem.c:100 #: ../plugins/filesystem/ario-filesystem.c:115 #: ../plugins/radios/ario-radio.c:122 msgid "_Replace in playlist" msgstr "_Remplaçar dins la lista de lectura" #: ../src/sources/ario-browser.c:91 msgid "Get the covers" msgstr "Obténer las pochetas" #: ../src/sources/ario-browser.c:94 msgid "_Delete the covers" msgstr "_Suprimir las pochetas" #: ../src/sources/ario-browser.c:97 ../src/sources/ario-browser.c:100 #: ../src/sources/ario-search.c:79 ../src/sources/ario-storedplaylists.c:115 #: ../src/widgets/ario-playlist.c:151 #: ../plugins/filesystem/ario-filesystem.c:118 #: ../plugins/radios/ario-radio.c:131 msgid "_Properties" msgstr "_Proprietats" #: ../src/sources/ario-browser.c:125 ../src/shell/ario-shell-preferences.c:118 msgid "Library" msgstr "Bibliotèca" #: ../src/sources/ario-storedplaylists.c:97 msgid "_Delete" msgstr "_Suprimir" #: ../src/sources/ario-storedplaylists.c:151 msgid "Playlists" msgstr "Listas de lectura" #: ../src/sources/ario-storedplaylists.c:592 msgid "Are you sure that you want to delete all the selected playlists?" msgstr "" "Sètz segur que volètz suprimir totas las tièras de lectura seleccionadas?" #: ../src/sources/ario-tree.c:856 msgid "Are you sure that you want to remove all the selected covers?" msgstr "Sètz segur que volètz escafar las pochetas seleccionadas?" #. Translators - This "Cover" refers to an album cover art #: ../src/sources/ario-tree-albums.c:199 msgid "Cover" msgstr "Pocheta" #: ../src/shell/ario-shell.c:160 msgid "_File" msgstr "_Fichièr" #: ../src/shell/ario-shell.c:161 msgid "_Edit" msgstr "E_dicion" #: ../src/shell/ario-shell.c:162 msgid "_View" msgstr "_Afichatge" #: ../src/shell/ario-shell.c:163 msgid "_Control" msgstr "_Contraròtle" #: ../src/shell/ario-shell.c:164 msgid "_Tool" msgstr "_Esplech" #: ../src/shell/ario-shell.c:165 msgid "_Help" msgstr "_Ajuda" #: ../src/shell/ario-shell.c:173 msgid "_Update database" msgstr "_Metre a jorn la banca de donadas" #: ../src/shell/ario-shell.c:176 msgid "_Quit" msgstr "_Quitar" #: ../src/shell/ario-shell.c:179 msgid "Plu_gins" msgstr "En_sèrts" #: ../src/shell/ario-shell.c:182 msgid "Prefere_nces" msgstr "_Preferéncias" #: ../src/shell/ario-shell.c:185 msgid "_Change current album cover" msgstr "_Cambiar la pocheta actuala" #: ../src/shell/ario-shell.c:188 msgid "Download album _covers" msgstr "Telecargar las pochetas" #: ../src/shell/ario-shell.c:191 msgid "Find similar artists" msgstr "Trobar d'artistas similars" #: ../src/shell/ario-shell.c:194 msgid "Add similar songs to playlist" msgstr "Apondre de cançons similaras a la tièra de lectura" #: ../src/shell/ario-shell.c:197 msgid "Go to _previous tab" msgstr "" #: ../src/shell/ario-shell.c:200 msgid "Go to _next tab" msgstr "" #: ../src/shell/ario-shell.c:203 msgid "Show _lyrics" msgstr "Afichar las _Paraulas" #: ../src/shell/ario-shell.c:209 msgid "_Translate this application..." msgstr "_Traduire aquesta aplicacion..." #: ../src/shell/ario-shell.c:216 msgid "S_tatusbar" msgstr "Barra d'es_tat" #: ../src/shell/ario-shell.c:219 msgid "Upper part" msgstr "Partida superiora" #: ../src/shell/ario-shell.c:825 msgid "GTK client for MPD" msgstr "Client GTK per MPD" #: ../src/shell/ario-shell.c:826 msgid "translator-credits" msgstr "" "Launchpad Contributions:\n" " Cédric VALMARY (Tot en òc) https://launchpad.net/~cvalmary" #. Create plugins configuration dialog window #: ../src/shell/ario-shell.c:1278 msgid "Configure Plugins" msgstr "Configurar los empeutons" #. Set window properties #: ../src/shell/ario-shell-coverdownloader.c:187 msgid "Music Player Cover Download" msgstr "Telecargament de pochetas" #: ../src/shell/ario-shell-coverdownloader.c:332 msgid "Download Finished!" msgstr "Telecargament acabat" #. We show the numbers of covers found and not found #: ../src/shell/ario-shell-coverdownloader.c:335 #, c-format msgid "" "%i covers found\n" "%i covers not found\n" "%i covers already exist" msgstr "" "%i pochetas trobadas\n" "%i pochetas introbablas\n" "%i pochetas qu'existisson pas" #. Set window properties #: ../src/shell/ario-shell-coverselect.c:242 msgid "Cover Download" msgstr "Telecargament de pochetas" #: ../src/shell/ario-shell-coverselect.c:559 msgid "Error reading file" msgstr "Error al moment de legir lo fichièr" #: ../src/shell/ario-shell-coverselect.c:584 msgid "Error saving file" msgstr "Error al moment d'enregistrar lo fichièr" #: ../src/shell/ario-shell-lyrics.c:43 #: ../src/shell/ario-shell-preferences.c:133 #: ../src/shell/ario-shell-songinfos.c:272 msgid "Lyrics" msgstr "Paraulas" #: ../src/shell/ario-shell-lyricsselect.c:152 msgid "Lyrics Download" msgstr "Telecargament de paraulas" #: ../src/shell/ario-shell-preferences.c:81 msgid "Ario Preferences" msgstr "Preferéncias d'Ario" #: ../src/shell/ario-shell-preferences.c:113 msgid "Server" msgstr "Servidor" #: ../src/shell/ario-shell-preferences.c:143 msgid "Others" msgstr "Autres" #: ../src/shell/ario-shell-similarartists.c:318 #, c-format msgid "%d songs" msgstr "%d Cançons" #. Set window properties #. Set window title #: ../src/shell/ario-shell-songinfos.c:249 #: ../src/shell/ario-shell-songinfos.c:266 #: ../src/shell/ario-shell-songinfos.c:544 msgid "Song Properties" msgstr "Proprietats de la cançon" #: ../src/shell/ario-shell-songinfos.c:455 msgid "Error saving tags of file:" msgstr "Error al moment de l'enregistrament dels tags del fichièr :" #: ../src/widgets/ario-connection-widget.c:652 msgid "You must select a server." msgstr "Vos cal seleccionar un servidor." #: ../src/widgets/ario-connection-widget.c:702 msgid "New Profile" msgstr "Perfil novèl" #: ../src/widgets/ario-firstlaunch.c:82 msgid "The following configuration will be used:" msgstr "La configuracion seguenta serà utilizada :" #: ../src/widgets/ario-firstlaunch.c:106 msgid "" "It is the first time you launch Ario.\n" "This assistant will help you to configure it." msgstr "" "Es lo primièr còp qu'aviatz Ario.\n" "Aqueste assistent vos va ajudar a lo configurar." #: ../src/widgets/ario-firstlaunch.c:111 msgid "Welcome to Ario" msgstr "Benvenguda dins Ario" #: ../src/widgets/ario-firstlaunch.c:129 msgid "Configuration" msgstr "Configuracion" #: ../src/widgets/ario-firstlaunch.c:141 msgid "Confirmation" msgstr "Confirmacion" #: ../src/widgets/ario-header.c:66 ../src/widgets/ario-tray-icon.h:42 #, c-format msgid "from %s by %s" msgstr "de %s per %s" #: ../src/widgets/ario-header.c:199 msgid "Play previous song" msgstr "Jogar la cançon precedenta" #: ../src/widgets/ario-header.c:217 msgid "Play/Pause the music" msgstr "Jòga/pausa la musica" #: ../src/widgets/ario-header.c:229 msgid "Stop the music" msgstr "Arrestar la musica" #. Translators - This " of " is used to count the elapsed time #. of a song like in "00:59 of 03:24" #: ../src/widgets/ario-header.c:310 ../src/widgets/ario-tooltip.c:321 msgid " of " msgstr " sus " #: ../src/widgets/ario-header.c:323 msgid "Toggle random on/off" msgstr "Activar/desactivar lo random" #: ../src/widgets/ario-header.c:335 msgid "Toggle repeat on/off" msgstr "Activar/desactivar la repeticion" #: ../src/widgets/ario-header.c:340 msgid "Change the music volume" msgstr "Càmbia lo volum de la musica" #: ../src/widgets/ario-lyrics-editor.c:323 msgid "Downloading lyrics..." msgstr "Telecargament de las paraulas..." #: ../src/widgets/ario-lyrics-editor.c:351 msgid "Lyrics not found" msgstr "Paraulas introbablas" #: ../src/widgets/ario-playlist.c:133 msgid "_Clear" msgstr "_Voidar" #: ../src/widgets/ario-playlist.c:136 msgid "_Shuffle" msgstr "_Mesclar" #: ../src/widgets/ario-playlist.c:139 msgid "Cr_op" msgstr "_Decopar" #: ../src/widgets/ario-playlist.c:142 msgid "_Search in playlist" msgstr "Recercar dins la li_sta de lectura" #: ../src/widgets/ario-playlist.c:145 msgid "_Remove" msgstr "_Suprimir" #: ../src/widgets/ario-playlist.c:148 msgid "_Save" msgstr "Enregi_strar" #: ../src/widgets/ario-playlist.c:154 msgid "_Go to playing song" msgstr "_Anar a la cançon jogada" #: ../src/widgets/ario-playlist.c:667 msgid "Filter:" msgstr "Filtre :" #. Create the widgets #: ../src/widgets/ario-playlist.c:1700 msgid "Save playlist" msgstr "Enregistrar la tièra de lectura" #: ../src/widgets/ario-playlist.c:1710 msgid "Playlist name :" msgstr "Nom de la lista de lectura" #: ../src/widgets/ario-playlist.c:1746 msgid "Playlist already exists. Do you want to overwrite it?" msgstr "La tièra de lectura existís ja. La volètz remplaçar?" #. Format status bar message #: ../src/widgets/ario-status-bar.c:96 msgid "Songs" msgstr "Cançons" #: ../src/widgets/ario-tray-icon.c:102 msgid "_Play" msgstr "_Legir" #: ../src/widgets/ario-tray-icon.c:105 msgid "_Pause" msgstr "_Pausa" #: ../src/widgets/ario-tray-icon.c:108 msgid "_Stop" msgstr "_Arrestar" #: ../src/widgets/ario-tray-icon.c:111 msgid "_Next" msgstr "_Seguent" #: ../src/widgets/ario-tray-icon.c:114 msgid "P_revious" msgstr "_Precedent" #: ../src/widgets/ario-tray-icon.h:41 msgid "Not playing" msgstr "Pas de lectura en cors" #. Translators: "friendly time" string for the current day, strftime format. like "Today 12:34 am" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1179 msgid "Today %I:%M %p" msgstr "Uèi a %H:%M" #. Translators: "friendly time" string for the previous day, #. * strftime format. e.g. "Yesterday 12:34 am" #. #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1192 msgid "Yesterday %I:%M %p" msgstr "Ièr a %H:%M" #. Translators: "friendly time" string for a day in the current week, #. * strftime format. e.g. "Wed 12:34 am" #. #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1208 msgid "%a %I:%M %p" msgstr "%a %H:%M" #. Translators: "friendly time" string for a day in the current year, #. * strftime format. e.g. "Feb 12 12:34 am" #. #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1220 msgid "%b %d %I:%M %p" msgstr "%b %d %I:%M %p" #. Translators: "friendly time" string for a day in a different year, #. * strftime format. e.g. "Feb 12 1997" #. #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1225 msgid "%b %d %Y" msgstr "%b %d %Y" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1311 #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:4 msgid "Never" msgstr "Pas jamai" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1335 msgid "OK" msgstr "D'acòrdi" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1338 msgid "Logging in" msgstr "Connexion en cors" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1341 msgid "Request failed" msgstr "Requèsta fracassada" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1344 msgid "Incorrect username" msgstr "Nom d'utilizaire incorrècte" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1347 msgid "Incorrect password" msgstr "Senhal incorrècte" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1350 msgid "Handshake failed" msgstr "Fracàs del dialòg" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1353 msgid "Client update required" msgstr "Mesa a jorn del client requesida" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1356 msgid "Track submission failed" msgstr "La somission de la pista a fracassat" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1359 msgid "Queue is too long" msgstr "La fila d'espèra es tròp longa" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1362 msgid "Track submission failed too many times" msgstr "La somission del tròç a fracassat tròp sovent" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1417 msgid "Audioscrobbler preferences" msgstr "Preferéncias d'Audioscrobbler" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:1 msgid "Disabled" msgstr "Desactivat" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:2 msgid "Last submission time:" msgstr "Darrièra somission :" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:3 msgid "Last.fm Profile" msgstr "Perfil last.fm" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:6 msgid "Queued tracks:" msgstr "Tròces en fila d'espèra :" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:7 msgid "Status:" msgstr "Estat :" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:8 msgid "Tracks submitted:" msgstr "Tròces someses :" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:9 #: ../plugins/radios/ario-radio.c:168 msgid "Username :" msgstr "Nom d'utilizaire :" #: ../plugins/audioscrobbler/audioscrobbler.ario-plugin.desktop.in.h:1 msgid "Last.fm" msgstr "Last.fm" #: ../plugins/audioscrobbler/audioscrobbler.ario-plugin.desktop.in.h:2 msgid "Submits song information to last.fm" msgstr "Mandar las informacions sus las cançons jogadas sus last.fm" #: ../plugins/filesystem/ario-filesystem.c:158 msgid "File System" msgstr "Sistèma de fichièrs" #: ../plugins/filesystem/ario-filesystem.c:422 msgid "Music" msgstr "Musica" #: ../plugins/filesystem/filesystem.ario-plugin.desktop.in.h:1 msgid "A File System Browser" msgstr "Un explorador de sistèma de fichièrs" #: ../plugins/filesystem/filesystem.ario-plugin.desktop.in.h:2 msgid "File System Browser" msgstr "Navigador del sistèma de fichièrs" #: ../plugins/information/ario-information.c:114 msgid "Information" msgstr "Informacion" #: ../plugins/information/information.ario-plugin.desktop.in.h:1 msgid "Display various information about the playing song" msgstr "Aficha diferentas informacions sus la cançon en cors" #: ../plugins/information/information.ario-plugin.desktop.in.h:2 msgid "Song Information" msgstr "Informacions sul tròç" #: ../plugins/information/information.ui.h:2 msgid "Albums from this artist:" msgstr "Albums d'aqueste artista :" #: ../plugins/information/information.ui.h:5 msgid "Lyrics:" msgstr "Paraulas :" #: ../plugins/libnotify/libnotify.ario-plugin.desktop.in.h:1 msgid "Add libnotify support" msgstr "Apond lo supòrt de libnotify" #: ../plugins/libnotify/libnotify.ario-plugin.desktop.in.h:2 msgid "Libnotify" msgstr "Libnotify" #: ../plugins/mmkeys/mmkeys.ario-plugin.desktop.in.h:1 msgid "Add multimedia keys support" msgstr "Apond lo supòrt de las tòcas multimèdia." #: ../plugins/mmkeys/mmkeys.ario-plugin.desktop.in.h:2 msgid "Multimedia Keys" msgstr "Tòcas multimèdia" #: ../plugins/radios/ario-radio.c:125 msgid "Add a _new radio" msgstr "Apondre una ràdio novèla" #: ../plugins/radios/ario-radio.c:128 msgid "_Delete this radios" msgstr "_Suprimir las ràdios" #: ../plugins/radios/ario-radio.c:166 msgid "Last.fm: Radio of similar artists" msgstr "Last.fm : Ràdio d'artistas similars" #: ../plugins/radios/ario-radio.c:167 msgid "Last.fm: Radio of group" msgstr "Last.fm : Ràdio del grop" #: ../plugins/radios/ario-radio.c:167 msgid "Group :" msgstr "Grop :" #: ../plugins/radios/ario-radio.c:168 msgid "Last.fm: Personal radio" msgstr "Last.fm : Ràdio personala" #: ../plugins/radios/ario-radio.c:169 msgid "Last.fm: Radio of genre" msgstr "Last.fm : Ràdio del genre" #: ../plugins/radios/ario-radio.c:184 #: ../plugins/radios/radios.ario-plugin.desktop.in.h:2 msgid "Web Radios" msgstr "WebRàdios" #: ../plugins/radios/ario-radio.c:246 msgid "Internet Radios" msgstr "Ràdios Internet" #. Create dialog window #: ../plugins/radios/ario-radio.c:774 msgid "Edit a WebRadio" msgstr "Editar una WebRàdio" #: ../plugins/radios/ario-radio.c:787 ../plugins/radios/ario-radio.c:923 msgid "URL :" msgstr "URL :" #: ../plugins/radios/ario-radio.c:853 ../plugins/radios/ario-radio.c:997 msgid "Bad parameters. You must specify a name and a URL for the radio." msgstr "Paramètres marrits. Vos cal especificar un nom e una URL per la ràdio." #. Create dialog window #: ../plugins/radios/ario-radio.c:883 msgid "Add a WebRadio" msgstr "Apondre una WebRàdio" #: ../plugins/radios/ario-radio.c:1083 msgid "Are you sure you want to delete all the selected radios?" msgstr "Sètz segur que volètz suprimir totas las ràdios seleccionadas ?" #: ../plugins/radios/radios.ario-plugin.desktop.in.h:1 msgid "Listen to webradios" msgstr "Escotar de Webràdios" #: ../plugins/wikipedia/ario-wikipedia-plugin.c:49 #: ../plugins/wikipedia/ario-wikipedia-plugin.c:50 msgid "Find artist on Wikipedia" msgstr "Trobar l'artista sus Wikipèdia" #: ../plugins/wikipedia/ario-wikipedia-plugin.c:172 msgid "Wikipedia Plugin - Configuration" msgstr "Empeuton Wikipèdia - Configuracion" #: ../plugins/wikipedia/ario-wikipedia-plugin.c:181 msgid "Wikipedia language :" msgstr "Lenga de Wikipèdia :" #: ../plugins/wikipedia/wikipedia.ario-plugin.desktop.in.h:1 msgid "A plugin to search current artist on wikipedia" msgstr "Un plugin per cercar l'artiste en cors sus Wikipèdia" #: ../plugins/wikipedia/wikipedia.ario-plugin.desktop.in.h:2 msgid "Wikipedia" msgstr "Wikipèdia" #~ msgid "Remove a search criteria" #~ msgstr "Levar un critèri de recèrca" #~ msgid "Search songs in the library" #~ msgstr "Cercar una cançon dins la bibliotèca" #~ msgid "Add a search criteria" #~ msgstr "Apondre un critèri de recèrca" ario-1.6/po/nds.po0000644000175000017500000007773513226723442011025 00000000000000# German, Low translation for ario # Copyright (c) 2008 Rosetta Contributors and Canonical Ltd 2008 # This file is distributed under the same license as the ario package. # FIRST AUTHOR , 2008. # msgid "" msgstr "" "Project-Id-Version: ario\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2011-06-13 18:15+0200\n" "PO-Revision-Date: 2009-11-29 01:12+0000\n" "Last-Translator: Marc Pavot \n" "Language-Team: German, Low \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2011-06-13 16:32+0000\n" "X-Generator: Launchpad (build 13175)\n" #: ../data/ario.desktop.in.in.h:1 msgid "Ario music player" msgstr "Ario Musik afspeeler" #: ../data/ario.desktop.in.in.h:2 msgid "Client application to mpd" msgstr "Kunn Programm na mpd" #: ../data/ui/browser-prefs.ui.h:1 msgid "Alphabetically" msgstr "Alfabeetsch" #: ../data/ui/browser-prefs.ui.h:2 msgid "By year" msgstr "Na Jahr" #: ../data/ui/browser-prefs.ui.h:3 msgid "Library Options" msgstr "Bibliothek Mööglichkeeten" #: ../data/ui/browser-prefs.ui.h:4 msgid "Library Organisation" msgstr "Bibliothek Organisatschoon" #: ../data/ui/browser-prefs.ui.h:5 msgid "Sort albums: " msgstr "Alben sorteren: " #: ../data/ui/connection-autodetect.ui.h:1 msgid "" "If you don't see your MPD server thanks to the automatic detection, you " "should check that zeroconf is activated in your MPD configuration or use the " "manual configuration." msgstr "" #: ../data/ui/connection-autodetect.ui.h:2 msgid "Server autodetection" msgstr "Server van süllmst erkennen" #: ../data/ui/connection-widget.ui.h:1 msgid "Auto detect" msgstr "Van süllmst weerkennen" #: ../data/ui/connection-widget.ui.h:2 msgid "Default" msgstr "Standard" #: ../data/ui/connection-widget.ui.h:3 ../src/widgets/ario-firstlaunch.c:83 msgid "Host :" msgstr "Host :" #: ../data/ui/connection-widget.ui.h:4 msgid "Music directory :" msgstr "Musik Verteeknis" #: ../data/ui/connection-widget.ui.h:5 msgid "Music server is on the same computer as Ario" msgstr "" #. Create the widgets #: ../data/ui/connection-widget.ui.h:6 ../plugins/radios/ario-radio.c:786 #: ../plugins/radios/ario-radio.c:922 msgid "Name :" msgstr "Nohm:" #: ../data/ui/connection-widget.ui.h:7 #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:5 msgid "Password :" msgstr "Passwoort:" #: ../data/ui/connection-widget.ui.h:8 ../src/widgets/ario-firstlaunch.c:85 msgid "Port :" msgstr "Port :" #: ../data/ui/connection-widget.ui.h:9 #, fuzzy msgid "Server type :" msgstr "Server" #: ../data/ui/connection-widget.ui.h:10 msgid "Timeout :" msgstr "" #: ../data/ui/connection-widget.ui.h:11 msgid "XMMS 2 (Experimental)" msgstr "" #: ../data/ui/cover-prefs.ui.h:1 msgid "Automatically download the album cover of the playing song" msgstr "Van süllmst de Biller de Album de lopen slik rünnerladen" #: ../data/ui/cover-prefs.ui.h:2 ../src/shell/ario-shell-preferences.c:128 msgid "Covers" msgstr "Biller de Album" #: ../data/ui/cover-prefs.ui.h:3 msgid "Covers Sources" msgstr "Biller de Album Quell" #: ../data/ui/cover-prefs.ui.h:4 msgid "Show the covers in the albums list" msgstr "Wiesen de Biller de Album de Album liste" #: ../data/ui/cover-prefs.ui.h:5 msgid "Use Amazon." msgstr "Benütte Amazon" #: ../data/ui/connection-prefs.ui.h:1 #: ../src/shell/ario-shell-preferences.c:108 msgid "Connection" msgstr "Antüdern" #: ../data/ui/connection-prefs.ui.h:2 msgid "_Autoconnect on startup" msgstr "Van süllmst antüdern wendt losgeit" #: ../data/ui/connection-prefs.ui.h:3 ../src/shell/ario-shell.c:167 msgid "_Connect" msgstr "_Antüdern" #: ../data/ui/connection-prefs.ui.h:4 ../src/shell/ario-shell.c:170 msgid "_Disconnect" msgstr "_Ofschotten" #: ../data/ui/connection-assistant.ui.h:1 msgid "" "You need to specify a server to connect to. If you don't see your server " "thanks to the autodetection, you should check that zeroconf/avahi is " "activated in your server or use the manual configuration." msgstr "" #: ../data/ui/cover-progress.ui.h:1 ../data/ui/cover-select.ui.h:1 #: ../data/ui/song-infos.ui.h:1 ../plugins/information/information.ui.h:1 msgid "Album :" msgstr "Album:" #: ../data/ui/cover-progress.ui.h:2 ../data/ui/cover-select.ui.h:2 #: ../data/ui/lyrics-select.ui.h:1 ../data/ui/song-infos.ui.h:3 #: ../plugins/information/information.ui.h:3 #: ../plugins/radios/ario-radio.c:166 msgid "Artist :" msgstr "Maker:" #: ../data/ui/cover-progress.ui.h:3 msgid "Downloading cover" msgstr "Rünnerlade Biller de Album" #: ../data/ui/cover-select.ui.h:3 msgid "Local search" msgstr "Öörtlich Sök" #: ../data/ui/cover-select.ui.h:4 ../src/sources/ario-search.c:108 msgid "Search" msgstr "Söken" #: ../data/ui/others-prefs.ui.h:1 msgid "Allow only one instance of Ario" msgstr "Blot ene Ario Instanz loopen laten" #: ../data/ui/others-prefs.ui.h:2 msgid "Hide window when close button is pressed" msgstr "Verstoppe Finster wendt sluten Schaltknopp it knutscht" #: ../data/ui/others-prefs.ui.h:3 msgid "Interface" msgstr "Snittstell" #: ../data/ui/others-prefs.ui.h:4 msgid "Playlist at the right of tabs" msgstr "" #: ../data/ui/others-prefs.ui.h:5 msgid "Playlist below tabs" msgstr "" #: ../data/ui/others-prefs.ui.h:6 msgid "Playlist within tabs" msgstr "" #: ../data/ui/others-prefs.ui.h:7 msgid "Proxy" msgstr "Proxy" #: ../data/ui/others-prefs.ui.h:8 msgid "Proxy Address :" msgstr "Proxy Anskrivt :" #: ../data/ui/others-prefs.ui.h:9 msgid "Proxy Port :" msgstr "Proxy Port:" #: ../data/ui/others-prefs.ui.h:10 msgid "Show tabs" msgstr "Wiese Tabs" #: ../data/ui/others-prefs.ui.h:11 msgid "Use a proxy" msgstr "Bruke de proxy" #: ../data/ui/lyrics-prefs.ui.h:1 msgid "Lyrics Sources" msgstr "Text Quell" #: ../data/ui/lyrics-select.ui.h:2 ../data/ui/song-infos.ui.h:13 #: ../plugins/information/information.ui.h:6 msgid "Title :" msgstr "Titel:" #: ../data/ui/playlist-prefs.ui.h:1 msgid "Add after playing song" msgstr "" #: ../data/ui/playlist-prefs.ui.h:2 msgid "Add and play" msgstr "" #: ../data/ui/playlist-prefs.ui.h:3 ../data/ui/similar-artists.ui.h:2 msgid "Add to playlist" msgstr "Insette op de Liste" #. ARIO_TAG_ARTIST #: ../data/ui/playlist-prefs.ui.h:4 ../src/servers/ario-server.c:46 #: ../src/sources/ario-tree-albums.c:213 ../src/widgets/ario-playlist.c:541 #: ../src/widgets/ario-songlist.c:228 ../src/widgets/ario-tray-icon.c:565 msgid "Album" msgstr "Album" #: ../data/ui/playlist-prefs.ui.h:5 ../src/servers/ario-server.c:45 #: ../src/widgets/ario-playlist.c:541 ../src/widgets/ario-songlist.c:213 #: ../src/widgets/ario-tray-icon.c:563 msgid "Artist" msgstr "Maker" #. ARIO_TAG_GENRE #: ../data/ui/playlist-prefs.ui.h:6 ../src/servers/ario-server.c:52 #: ../src/widgets/ario-playlist.c:541 msgid "Date" msgstr "Datum" #: ../data/ui/playlist-prefs.ui.h:7 ../src/widgets/ario-playlist.c:541 msgid "Disc" msgstr "" #: ../data/ui/playlist-prefs.ui.h:8 msgid "Double click" msgstr "" #: ../data/ui/playlist-prefs.ui.h:9 ../src/widgets/ario-playlist.c:541 msgid "Duration" msgstr "Duert" #: ../data/ui/playlist-prefs.ui.h:10 ../src/widgets/ario-playlist.c:541 msgid "File" msgstr "Dateinaam" #. ARIO_TAG_TRACK #. ARIO_TAG_NAME #: ../data/ui/playlist-prefs.ui.h:11 ../src/servers/ario-server.c:51 #: ../src/widgets/ario-playlist.c:541 msgid "Genre" msgstr "Musiksteel" #: ../data/ui/playlist-prefs.ui.h:12 msgid "Go to current song when a new song is played" msgstr "Wessel to akutelle Leed, wenn de näj Leed speeled" #: ../data/ui/playlist-prefs.ui.h:13 msgid "Mode" msgstr "" #: ../data/ui/playlist-prefs.ui.h:14 msgid "On double click:" msgstr "" #: ../data/ui/playlist-prefs.ui.h:15 ../src/sources/ario-storedplaylists.c:229 #: ../src/shell/ario-shell.c:222 ../src/shell/ario-shell-preferences.c:123 #: ../src/widgets/ario-playlist.c:272 msgid "Playlist" msgstr "Afspeellist" #: ../data/ui/playlist-prefs.ui.h:16 msgid "Playlist mode:" msgstr "" #: ../data/ui/playlist-prefs.ui.h:17 msgid "Replace in playlist" msgstr "" #: ../data/ui/playlist-prefs.ui.h:18 msgid "Show rows:" msgstr "Wiese Reeg:" #. ARIO_TAG_ALBUM_ARTIST #: ../data/ui/playlist-prefs.ui.h:19 ../src/servers/ario-server.c:48 #: ../src/sources/ario-tree-songs.c:145 ../src/widgets/ario-playlist.c:541 #: ../src/widgets/ario-songlist.c:198 ../src/widgets/ario-tray-icon.c:567 msgid "Title" msgstr "Titel" #. ARIO_TAG_TITLE #: ../data/ui/playlist-prefs.ui.h:20 ../src/servers/ario-server.c:49 #: ../src/sources/ario-tree-songs.c:138 ../src/widgets/ario-playlist.c:541 msgid "Track" msgstr "Stück" #: ../data/ui/server-prefs.ui.h:1 msgid "Audio outputs" msgstr "Audio utgaavsted" #: ../data/ui/server-prefs.ui.h:2 msgid "Crossfade" msgstr "Röverblennen" #: ../data/ui/server-prefs.ui.h:3 msgid "Database" msgstr "Datenbank" #: ../data/ui/server-prefs.ui.h:4 msgid "Last updated:" msgstr "lesde ma verännert" #: ../data/ui/server-prefs.ui.h:5 msgid "Stop music on exit" msgstr "Musik anhollen on Enn" #: ../data/ui/server-prefs.ui.h:6 msgid "Update on startup" msgstr "Opfrischen on losgahn" #: ../data/ui/server-prefs.ui.h:7 msgid "_Update" msgstr "_Opfrischen" #: ../data/ui/server-prefs.ui.h:8 msgid "enable crossfade" msgstr "Röverblennen anmoken" #: ../data/ui/server-prefs.ui.h:9 msgid "fade time (s):" msgstr "Blennentied (s)" #: ../data/ui/server-prefs.ui.h:10 ../src/ario-util.c:50 ../src/ario-util.c:71 #: ../src/ario-util.c:93 ../plugins/information/information.ui.h:7 #, c-format msgid "n/a" msgstr "n/a" #: ../data/ui/similar-artists.ui.h:1 msgid "Add all to playlist" msgstr "Insette allens op de Liste" #: ../data/ui/similar-artists.ui.h:3 msgid "Find on Last.fm" msgstr "Find op Last.fm" #: ../data/ui/stats-prefs.ui.h:1 msgid "Database play time :" msgstr "Datenbank Speeltied" #: ../data/ui/stats-prefs.ui.h:2 msgid "Number of albums :" msgstr "Antohl de Album :" #: ../data/ui/stats-prefs.ui.h:3 msgid "Number of artists :" msgstr "Antohl de Maker :" #: ../data/ui/stats-prefs.ui.h:4 msgid "Number of songs :" msgstr "Antohl de Leeder :" #: ../data/ui/stats-prefs.ui.h:5 msgid "Play time :" msgstr "Speeltied :" #: ../data/ui/stats-prefs.ui.h:6 ../src/shell/ario-shell-preferences.c:148 msgid "Statistics" msgstr "in Tallen" #: ../data/ui/stats-prefs.ui.h:7 msgid "Uptime :" msgstr "Looptied :" #: ../data/ui/song-infos.ui.h:2 msgid "Album Artist :" msgstr "" #: ../data/ui/song-infos.ui.h:4 msgid "Comment :" msgstr "Kommentor :" #: ../data/ui/song-infos.ui.h:5 msgid "Composer :" msgstr "Stückschriever :" #: ../data/ui/song-infos.ui.h:6 msgid "Date :" msgstr "Datum :" #: ../data/ui/song-infos.ui.h:7 msgid "Disc :" msgstr "Plaat :" #: ../data/ui/song-infos.ui.h:8 msgid "Filename :" msgstr "Dateinaam :" #: ../data/ui/song-infos.ui.h:9 ../plugins/radios/ario-radio.c:169 msgid "Genre :" msgstr "Musiksteel :" #: ../data/ui/song-infos.ui.h:10 ../plugins/information/information.ui.h:4 msgid "Length :" msgstr "Längede :" #: ../data/ui/song-infos.ui.h:11 msgid "Performer :" msgstr "Maker :" #: ../data/ui/song-infos.ui.h:12 msgid "Song" msgstr "Leed" #: ../data/ui/song-infos.ui.h:14 msgid "Track :" msgstr "Stück :" #: ../data/ui/trayicon-prefs.ui.h:1 msgid "Do nothing" msgstr "Tuen nüx" #: ../data/ui/trayicon-prefs.ui.h:2 msgid "Mute" msgstr "" #: ../data/ui/trayicon-prefs.ui.h:3 ../src/shell/ario-shell-preferences.c:138 msgid "Notification" msgstr "Bescheed" #: ../data/ui/trayicon-prefs.ui.h:4 msgid "Notification on song change" msgstr "Bescheed on leed wessel" #: ../data/ui/trayicon-prefs.ui.h:5 msgid "Notification time: " msgstr "Bescheedsag tied: " #: ../data/ui/trayicon-prefs.ui.h:6 msgid "On middle button click on tray icon :" msgstr "Op de middleren knoppgat de Püttteken klicken :" #: ../data/ui/trayicon-prefs.ui.h:7 ../src/widgets/ario-header.c:241 msgid "Play next song" msgstr "Speele daarnachst leed" #: ../data/ui/trayicon-prefs.ui.h:8 msgid "Play/Pause" msgstr "Afspelen/Paus" #: ../data/ui/trayicon-prefs.ui.h:9 msgid "Tray icon" msgstr "Püttteken" #: ../src/ario-main.c:67 msgid "Start minimized window" msgstr "Afflegen on klene Windoow" #: ../src/ario-main.c:68 msgid "Start with specific profile" msgstr "" #. Format result string #: ../src/ario-util.c:110 msgid "seconds" msgstr "Sekunnen" #: ../src/ario-util.c:112 msgid "minutes" msgstr "Minuten" #: ../src/ario-util.c:118 msgid "hours" msgstr "Stünnen" #: ../src/ario-util.c:124 msgid "days" msgstr "Daage" #: ../src/covers/ario-cover.c:149 msgid "The cover already exists. Do you want to replace it?" msgstr "Bill de Album standered bereeds. Wist de et uttuschen?" #: ../src/covers/ario-cover-local.c:48 msgid "Music Directory" msgstr "Leeder Verteeknis" #: ../src/playlist/ario-playlist-dynamic.c:49 msgid "songs of same artist" msgstr "" #: ../src/playlist/ario-playlist-dynamic.c:50 msgid "songs of same album" msgstr "" #: ../src/playlist/ario-playlist-dynamic.c:51 msgid "songs of similar artists" msgstr "" #: ../src/playlist/ario-playlist-dynamic.c:52 msgid "albums of same artists" msgstr "" #: ../src/playlist/ario-playlist-dynamic.c:53 msgid "albums of similar artists" msgstr "" #: ../src/playlist/ario-playlist-dynamic.c:69 msgid "Dynamic Playlist" msgstr "" #: ../src/playlist/ario-playlist-queue.c:49 msgid "Queue Mode" msgstr "" #: ../src/playlist/ario-playlist-normal.c:47 msgid "Normal" msgstr "" #: ../src/plugins/ario-plugin-manager.c:45 msgid "Plugin" msgstr "Plugin" #: ../src/plugins/ario-plugin-manager.c:46 msgid "Enabled" msgstr "Anmaakt" #: ../src/plugins/ario-plugin-manager.c:480 ../src/shell/ario-shell.c:206 msgid "_About" msgstr "_Över" #: ../src/plugins/ario-plugin-manager.c:488 msgid "C_onfigure" msgstr "" #: ../src/plugins/ario-plugin-manager.c:497 msgid "A_ctivate" msgstr "" #: ../src/plugins/ario-plugin-manager.c:508 msgid "Ac_tivate All" msgstr "" #: ../src/plugins/ario-plugin-manager.c:513 msgid "_Deactivate All" msgstr "_Allens utmaken" #: ../src/plugins/ario-plugin-manager.c:722 msgid "Active plugins" msgstr "In gang plugins" #: ../src/preferences/ario-server-preferences.c:182 #: ../src/preferences/ario-stats-preferences.c:151 #: ../src/preferences/ario-stats-preferences.c:152 #: ../src/preferences/ario-stats-preferences.c:153 #: ../src/preferences/ario-stats-preferences.c:154 #: ../src/preferences/ario-stats-preferences.c:155 #: ../src/preferences/ario-stats-preferences.c:156 msgid "Not connected" msgstr "Net verbunnen" #: ../src/preferences/ario-server-preferences.c:187 #: ../src/preferences/ario-server-preferences.c:278 #: ../src/widgets/ario-status-bar.c:100 msgid "Updating..." msgstr "An't Opfrischen..." #: ../src/servers/ario-mpd.c:410 ../src/servers/ario-mpd2.c:522 msgid "Connecting to server..." msgstr "" #: ../src/servers/ario-mpd.c:438 ../src/servers/ario-mpd2.c:550 msgid "Impossible to connect to server. Check the connection options." msgstr "" #. ARIO_TAG_ALBUM #: ../src/servers/ario-server.c:47 msgid "Album Artist" msgstr "" #. ARIO_TAG_DATE #: ../src/servers/ario-server.c:53 msgid "Composer" msgstr "Leedschriever" #. ARIO_TAG_COMPOSER #: ../src/servers/ario-server.c:54 msgid "Performer" msgstr "Maker" #. ARIO_TAG_PERFORMER #. ARIO_TAG_COMMENT #. ARIO_TAG_DISC #: ../src/servers/ario-server.c:57 msgid "Filename" msgstr "Dateinaam" #. ARIO_TAG_FILENAME #: ../src/servers/ario-server.c:58 msgid "Any" msgstr "Allens" #. impossible time or broken locale settings #: ../src/servers/ario-server.h:27 #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1235 msgid "Unknown" msgstr "Unbekannt" #: ../src/sources/ario-browser.c:82 ../src/sources/ario-search.c:70 #: ../src/sources/ario-storedplaylists.c:88 #: ../src/sources/ario-storedplaylists.c:106 #: ../plugins/filesystem/ario-filesystem.c:94 #: ../plugins/filesystem/ario-filesystem.c:109 #: ../plugins/radios/ario-radio.c:116 msgid "_Add to playlist" msgstr "_Pack op de speellist" #: ../src/sources/ario-browser.c:85 ../src/sources/ario-search.c:73 #: ../src/sources/ario-storedplaylists.c:91 #: ../src/sources/ario-storedplaylists.c:109 #: ../plugins/filesystem/ario-filesystem.c:97 #: ../plugins/filesystem/ario-filesystem.c:112 #: ../plugins/radios/ario-radio.c:119 msgid "Add and _play" msgstr "Pack un _speel" #: ../src/sources/ario-browser.c:88 ../src/sources/ario-search.c:76 #: ../src/sources/ario-storedplaylists.c:94 #: ../src/sources/ario-storedplaylists.c:112 #: ../plugins/filesystem/ario-filesystem.c:100 #: ../plugins/filesystem/ario-filesystem.c:115 #: ../plugins/radios/ario-radio.c:122 msgid "_Replace in playlist" msgstr "_Utuuschen inner speellist" #: ../src/sources/ario-browser.c:91 msgid "Get the covers" msgstr "Hale de Biller de Album" #: ../src/sources/ario-browser.c:94 msgid "_Delete the covers" msgstr "_Dilge de Biller de Album" #: ../src/sources/ario-browser.c:97 ../src/sources/ario-browser.c:100 #: ../src/sources/ario-search.c:79 ../src/sources/ario-storedplaylists.c:115 #: ../src/widgets/ario-playlist.c:151 #: ../plugins/filesystem/ario-filesystem.c:118 #: ../plugins/radios/ario-radio.c:131 msgid "_Properties" msgstr "_Eegenschaften" #: ../src/sources/ario-browser.c:125 ../src/shell/ario-shell-preferences.c:118 msgid "Library" msgstr "Bibliotheek" #: ../src/sources/ario-storedplaylists.c:97 msgid "_Delete" msgstr "_Dilgen" #: ../src/sources/ario-storedplaylists.c:151 msgid "Playlists" msgstr "Speellisten" #: ../src/sources/ario-storedplaylists.c:592 msgid "Are you sure that you want to delete all the selected playlists?" msgstr "Biste seeker dat de all körst Speellisten dilgen makst?" #: ../src/sources/ario-tree.c:856 msgid "Are you sure that you want to remove all the selected covers?" msgstr "Biste seeker dat de allens körst Biller de Album dilgen makst?" #. Translators - This "Cover" refers to an album cover art #: ../src/sources/ario-tree-albums.c:199 msgid "Cover" msgstr "Biller de Album" #: ../src/shell/ario-shell.c:160 msgid "_File" msgstr "_Datei" #: ../src/shell/ario-shell.c:161 msgid "_Edit" msgstr "_Bewarken" #: ../src/shell/ario-shell.c:162 msgid "_View" msgstr "_Ansicht" #: ../src/shell/ario-shell.c:163 msgid "_Control" msgstr "" #: ../src/shell/ario-shell.c:164 msgid "_Tool" msgstr "Reew" #: ../src/shell/ario-shell.c:165 msgid "_Help" msgstr "_Hülp" #: ../src/shell/ario-shell.c:173 msgid "_Update database" msgstr "" #: ../src/shell/ario-shell.c:176 msgid "_Quit" msgstr "_Verloten" #: ../src/shell/ario-shell.c:179 msgid "Plu_gins" msgstr "" #: ../src/shell/ario-shell.c:182 msgid "Prefere_nces" msgstr "" #: ../src/shell/ario-shell.c:185 msgid "_Change current album cover" msgstr "_Utuusche dat Bill de Album" #: ../src/shell/ario-shell.c:188 msgid "Download album _covers" msgstr "Lade Biller de Album rünner" #: ../src/shell/ario-shell.c:191 msgid "Find similar artists" msgstr "Find ähnlicke Maker" #: ../src/shell/ario-shell.c:194 msgid "Add similar songs to playlist" msgstr "Pack ähnlicke Leeder to Speellist" #: ../src/shell/ario-shell.c:197 msgid "Go to _previous tab" msgstr "" #: ../src/shell/ario-shell.c:200 msgid "Go to _next tab" msgstr "" #: ../src/shell/ario-shell.c:203 msgid "Show _lyrics" msgstr "Wiese _schreev" #: ../src/shell/ario-shell.c:209 msgid "_Translate this application..." msgstr "_Vertale de Programm" #: ../src/shell/ario-shell.c:216 msgid "S_tatusbar" msgstr "" #: ../src/shell/ario-shell.c:219 msgid "Upper part" msgstr "Böberen Teel" #: ../src/shell/ario-shell.c:825 msgid "GTK client for MPD" msgstr "GTK client för MPD" #: ../src/shell/ario-shell.c:826 msgid "translator-credits" msgstr "" "Launchpad Contributions:\n" " Marc Pavot https://launchpad.net/~marc-pavot\n" " bastianneumann https://launchpad.net/~bastianneu" #. Create plugins configuration dialog window #: ../src/shell/ario-shell.c:1278 msgid "Configure Plugins" msgstr "Plugins instellen" #. Set window properties #: ../src/shell/ario-shell-coverdownloader.c:187 msgid "Music Player Cover Download" msgstr "Leeder Speeler Biller rünnerladen" #: ../src/shell/ario-shell-coverdownloader.c:332 msgid "Download Finished!" msgstr "Rünnerladen is fertich" #. We show the numbers of covers found and not found #: ../src/shell/ario-shell-coverdownloader.c:335 #, c-format msgid "" "%i covers found\n" "%i covers not found\n" "%i covers already exist" msgstr "" "%i biller de Album gefunnen\n" "%i biller de Album net gefunnen\n" "%i biller de Album geevt et scho" #. Set window properties #: ../src/shell/ario-shell-coverselect.c:242 msgid "Cover Download" msgstr "Biller de Album Rünnerladen" #: ../src/shell/ario-shell-coverselect.c:559 msgid "Error reading file" msgstr "Fehlertall on Datei leese" #: ../src/shell/ario-shell-coverselect.c:584 msgid "Error saving file" msgstr "Fehler on Datei spekern" #: ../src/shell/ario-shell-lyrics.c:43 #: ../src/shell/ario-shell-preferences.c:133 #: ../src/shell/ario-shell-songinfos.c:272 msgid "Lyrics" msgstr "Leedtext" #: ../src/shell/ario-shell-lyricsselect.c:152 msgid "Lyrics Download" msgstr "Leedtext Rünnerladen" #: ../src/shell/ario-shell-preferences.c:81 msgid "Ario Preferences" msgstr "Ario Vorinsteelungen" #: ../src/shell/ario-shell-preferences.c:113 msgid "Server" msgstr "Server" #: ../src/shell/ario-shell-preferences.c:143 msgid "Others" msgstr "" #: ../src/shell/ario-shell-similarartists.c:318 #, c-format msgid "%d songs" msgstr "%d leeder" #. Set window properties #. Set window title #: ../src/shell/ario-shell-songinfos.c:249 #: ../src/shell/ario-shell-songinfos.c:266 #: ../src/shell/ario-shell-songinfos.c:544 msgid "Song Properties" msgstr "Leed Eegenschaften" #: ../src/shell/ario-shell-songinfos.c:455 msgid "Error saving tags of file:" msgstr "" #: ../src/widgets/ario-connection-widget.c:652 msgid "You must select a server." msgstr "De mokst nen server utkieken." #: ../src/widgets/ario-connection-widget.c:702 msgid "New Profile" msgstr "Nieg Profil" #: ../src/widgets/ario-firstlaunch.c:82 msgid "The following configuration will be used:" msgstr "De foolgende Konfeeguration wirste benutzen:" #: ../src/widgets/ario-firstlaunch.c:106 msgid "" "It is the first time you launch Ario.\n" "This assistant will help you to configure it." msgstr "Des is de erste Mal das de Ario anmokst." #: ../src/widgets/ario-firstlaunch.c:111 msgid "Welcome to Ario" msgstr "Wilkoumen to Ario" #: ../src/widgets/ario-firstlaunch.c:129 msgid "Configuration" msgstr "Konfeeguration" #: ../src/widgets/ario-firstlaunch.c:141 msgid "Confirmation" msgstr "Nafraag" #: ../src/widgets/ario-header.c:66 ../src/widgets/ario-tray-icon.h:42 #, c-format msgid "from %s by %s" msgstr "ersteelt am%svon%s" #: ../src/widgets/ario-header.c:199 msgid "Play previous song" msgstr "Speel de lotern song" #: ../src/widgets/ario-header.c:217 msgid "Play/Pause the music" msgstr "Speel/Paus de Musik" #: ../src/widgets/ario-header.c:229 msgid "Stop the music" msgstr "Stop de Musik" #. Translators - This " of " is used to count the elapsed time #. of a song like in "00:59 of 03:24" #: ../src/widgets/ario-header.c:310 ../src/widgets/ario-tooltip.c:321 msgid " of " msgstr " von " #: ../src/widgets/ario-header.c:323 msgid "Toggle random on/off" msgstr "Knopgat för Tofall in/op" #: ../src/widgets/ario-header.c:335 msgid "Toggle repeat on/off" msgstr "Knopgat för nochmal speelen in/op" #: ../src/widgets/ario-header.c:340 msgid "Change the music volume" msgstr "Utuusche de Musik Luttstarke" #: ../src/widgets/ario-lyrics-editor.c:323 msgid "Downloading lyrics..." msgstr "Lade Leedertext rünner..." #: ../src/widgets/ario-lyrics-editor.c:351 msgid "Lyrics not found" msgstr "Leedertext net gefunnen" #: ../src/widgets/ario-playlist.c:133 msgid "_Clear" msgstr "_Schoonmaken" #: ../src/widgets/ario-playlist.c:136 msgid "_Shuffle" msgstr "" #: ../src/widgets/ario-playlist.c:139 msgid "Cr_op" msgstr "" #: ../src/widgets/ario-playlist.c:142 msgid "_Search in playlist" msgstr "" #: ../src/widgets/ario-playlist.c:145 msgid "_Remove" msgstr "_Dilgen" #: ../src/widgets/ario-playlist.c:148 msgid "_Save" msgstr "_Speekern" #: ../src/widgets/ario-playlist.c:154 msgid "_Go to playing song" msgstr "_Geih to de Leed dat de speelst" #: ../src/widgets/ario-playlist.c:667 msgid "Filter:" msgstr "" #. Create the widgets #: ../src/widgets/ario-playlist.c:1700 msgid "Save playlist" msgstr "Speeker Speellist" #: ../src/widgets/ario-playlist.c:1710 msgid "Playlist name :" msgstr "Speellistname :" #: ../src/widgets/ario-playlist.c:1746 msgid "Playlist already exists. Do you want to overwrite it?" msgstr "Speellist gibbes bereeds. Willste dat üverschreeven?" #. Format status bar message #: ../src/widgets/ario-status-bar.c:96 msgid "Songs" msgstr "Leeder" #: ../src/widgets/ario-tray-icon.c:102 msgid "_Play" msgstr "_Speel" #: ../src/widgets/ario-tray-icon.c:105 msgid "_Pause" msgstr "_Paus" #: ../src/widgets/ario-tray-icon.c:108 msgid "_Stop" msgstr "_Stop" #: ../src/widgets/ario-tray-icon.c:111 msgid "_Next" msgstr "_Völgende" #: ../src/widgets/ario-tray-icon.c:114 msgid "P_revious" msgstr "" #: ../src/widgets/ario-tray-icon.h:41 msgid "Not playing" msgstr "Net Speelen" #. Translators: "friendly time" string for the current day, strftime format. like "Today 12:34 am" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1179 msgid "Today %I:%M %p" msgstr "Vandaag %I:%M %p" #. Translators: "friendly time" string for the previous day, #. * strftime format. e.g. "Yesterday 12:34 am" #. #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1192 msgid "Yesterday %I:%M %p" msgstr "Güstern %I:%M %p" #. Translators: "friendly time" string for a day in the current week, #. * strftime format. e.g. "Wed 12:34 am" #. #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1208 msgid "%a %I:%M %p" msgstr "%a %I:%M %p" #. Translators: "friendly time" string for a day in the current year, #. * strftime format. e.g. "Feb 12 12:34 am" #. #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1220 msgid "%b %d %I:%M %p" msgstr "%b %d %I:%M %p" #. Translators: "friendly time" string for a day in a different year, #. * strftime format. e.g. "Feb 12 1997" #. #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1225 msgid "%b %d %Y" msgstr "%b %d %Y" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1311 #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:4 msgid "Never" msgstr "Nienich" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1335 msgid "OK" msgstr "Ok" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1338 msgid "Logging in" msgstr "Verbinne mi" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1341 msgid "Request failed" msgstr "Affraag feehlschlaagt" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1344 msgid "Incorrect username" msgstr "Brukernaam falsch" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1347 msgid "Incorrect password" msgstr "Passwort falsch" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1350 msgid "Handshake failed" msgstr "Tokoppeln fehlslaan" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1353 msgid "Client update required" msgstr "Mote de niegste Verschoon installeren" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1356 msgid "Track submission failed" msgstr "Track Tossag fehlslaan" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1359 msgid "Queue is too long" msgstr "Slang is to laang" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1362 msgid "Track submission failed too many times" msgstr "Track Tossag to faktied fehlslaan" #: ../plugins/audioscrobbler/ario-audioscrobbler.c:1417 msgid "Audioscrobbler preferences" msgstr "Audioscrobbler Vorinstellungen" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:1 msgid "Disabled" msgstr "Utmaakt" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:2 msgid "Last submission time:" msgstr "Lesde tossag tied:" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:3 msgid "Last.fm Profile" msgstr "Last.fm Profil" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:6 msgid "Queued tracks:" msgstr "Slangsteehend tracks:" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:7 msgid "Status:" msgstr "Status:" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:8 msgid "Tracks submitted:" msgstr "Tracks tossaged:" #: ../plugins/audioscrobbler/audioscrobbler-prefs.ui.h:9 #: ../plugins/radios/ario-radio.c:168 msgid "Username :" msgstr "Brukernaam:" #: ../plugins/audioscrobbler/audioscrobbler.ario-plugin.desktop.in.h:1 msgid "Last.fm" msgstr "Last.fm" #: ../plugins/audioscrobbler/audioscrobbler.ario-plugin.desktop.in.h:2 msgid "Submits song information to last.fm" msgstr "Tossag Leed Informatschoon to Last.fm" #: ../plugins/filesystem/ario-filesystem.c:158 msgid "File System" msgstr "Dateisysteem" #: ../plugins/filesystem/ario-filesystem.c:422 msgid "Music" msgstr "Musike" #: ../plugins/filesystem/filesystem.ario-plugin.desktop.in.h:1 msgid "A File System Browser" msgstr "En Datei System Kiekprogramm" #: ../plugins/filesystem/filesystem.ario-plugin.desktop.in.h:2 msgid "File System Browser" msgstr "Datei System Kiekprogramm" #: ../plugins/information/ario-information.c:114 msgid "Information" msgstr "Informatschoon" #: ../plugins/information/information.ario-plugin.desktop.in.h:1 msgid "Display various information about the playing song" msgstr "Vertell verschedene Informatschoon över dat speeldende Leed" #: ../plugins/information/information.ario-plugin.desktop.in.h:2 msgid "Song Information" msgstr "Leed Informatschoon" #: ../plugins/information/information.ui.h:2 msgid "Albums from this artist:" msgstr "Alben von de Maker" #: ../plugins/information/information.ui.h:5 msgid "Lyrics:" msgstr "Leedtext:" #: ../plugins/libnotify/libnotify.ario-plugin.desktop.in.h:1 msgid "Add libnotify support" msgstr "Pack libnotify Ünnerstützung" #: ../plugins/libnotify/libnotify.ario-plugin.desktop.in.h:2 msgid "Libnotify" msgstr "Libnotify" #: ../plugins/mmkeys/mmkeys.ario-plugin.desktop.in.h:1 msgid "Add multimedia keys support" msgstr "Pack multimedia Slüttel Ünnerstützung" #: ../plugins/mmkeys/mmkeys.ario-plugin.desktop.in.h:2 msgid "Multimedia Keys" msgstr "Multimedia Slüttel" #: ../plugins/radios/ario-radio.c:125 msgid "Add a _new radio" msgstr "Pack a _neeis radio" #: ../plugins/radios/ario-radio.c:128 msgid "_Delete this radios" msgstr "_Dilge dat radio" #: ../plugins/radios/ario-radio.c:166 msgid "Last.fm: Radio of similar artists" msgstr "" #: ../plugins/radios/ario-radio.c:167 msgid "Last.fm: Radio of group" msgstr "" #: ../plugins/radios/ario-radio.c:167 msgid "Group :" msgstr "" #: ../plugins/radios/ario-radio.c:168 msgid "Last.fm: Personal radio" msgstr "" #: ../plugins/radios/ario-radio.c:169 msgid "Last.fm: Radio of genre" msgstr "" #: ../plugins/radios/ario-radio.c:184 #: ../plugins/radios/radios.ario-plugin.desktop.in.h:2 msgid "Web Radios" msgstr "Web Radios" #: ../plugins/radios/ario-radio.c:246 msgid "Internet Radios" msgstr "Innernet Radios" #. Create dialog window #: ../plugins/radios/ario-radio.c:774 msgid "Edit a WebRadio" msgstr "Behaspel en WebRadio" #: ../plugins/radios/ario-radio.c:787 ../plugins/radios/ario-radio.c:923 msgid "URL :" msgstr "URL :" #: ../plugins/radios/ario-radio.c:853 ../plugins/radios/ario-radio.c:997 msgid "Bad parameters. You must specify a name and a URL for the radio." msgstr "" "Schleegte Parameter. De mokst de Naam un de URL von de Radio eingeeven." #. Create dialog window #: ../plugins/radios/ario-radio.c:883 msgid "Add a WebRadio" msgstr "Pack en WebRadio" #: ../plugins/radios/ario-radio.c:1083 msgid "Are you sure you want to delete all the selected radios?" msgstr "Bist de seeker dat de alle markeerte Radios dilgen makst?" #: ../plugins/radios/radios.ario-plugin.desktop.in.h:1 msgid "Listen to webradios" msgstr "Höre en WebRadio" #: ../plugins/wikipedia/ario-wikipedia-plugin.c:49 #: ../plugins/wikipedia/ario-wikipedia-plugin.c:50 msgid "Find artist on Wikipedia" msgstr "Fin Maker op Wikipedia" #: ../plugins/wikipedia/ario-wikipedia-plugin.c:172 msgid "Wikipedia Plugin - Configuration" msgstr "Wikipedia Plugin - Konfiguratschoon" #: ../plugins/wikipedia/ario-wikipedia-plugin.c:181 msgid "Wikipedia language :" msgstr "Wikipedia Spraak:" #: ../plugins/wikipedia/wikipedia.ario-plugin.desktop.in.h:1 msgid "A plugin to search current artist on wikipedia" msgstr "En plugin för de Seeke dat Makers op Wikipedia" #: ../plugins/wikipedia/wikipedia.ario-plugin.desktop.in.h:2 msgid "Wikipedia" msgstr "Wikipedia" #~ msgid "Remove a search criteria" #~ msgstr "Dilge en sökkriterium" #~ msgid "Search songs in the library" #~ msgstr "Söke leeder op de Bibliotheek" #~ msgid "Add a search criteria" #~ msgstr "Pack de sökkriterium" ario-1.6/config.sub0000755000175000017500000010752413215233062011224 00000000000000#! /bin/sh # Configuration validation subroutine script. # Copyright 1992-2017 Free Software Foundation, Inc. timestamp='2017-11-23' # This file 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. # # 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, see . # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that # program. This Exception is an additional permission under section 7 # of the GNU General Public License, version 3 ("GPLv3"). # Please send patches to . # # Configuration subroutine to validate and canonicalize a configuration type. # Supply the specified configuration type as an argument. # If it is invalid, we print an error message on stderr and exit with code 1. # Otherwise, we print the canonical config type on stdout and succeed. # You can get the latest version of this script from: # https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub # This file is supposed to be the same for all GNU packages # and recognize all the CPU types, system types and aliases # that are meaningful with *any* GNU software. # Each package is responsible for reporting which valid configurations # it does not support. The user should be able to distinguish # a failure to support a valid configuration from a meaningless # configuration. # The goal of this file is to map all the various variations of a given # machine specification into a single specification in the form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM # or in some cases, the newer four-part form: # CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM # It is wrong to echo any other type of specification. me=`echo "$0" | sed -e 's,.*/,,'` usage="\ Usage: $0 [OPTION] CPU-MFR-OPSYS or ALIAS Canonicalize a configuration name. Options: -h, --help print this help, then exit -t, --time-stamp print date of last modification, then exit -v, --version print version number, then exit Report bugs and patches to ." version="\ GNU config.sub ($timestamp) Copyright 1992-2017 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." help=" Try \`$me --help' for more information." # Parse command line while test $# -gt 0 ; do case $1 in --time-stamp | --time* | -t ) echo "$timestamp" ; exit ;; --version | -v ) echo "$version" ; exit ;; --help | --h* | -h ) echo "$usage"; exit ;; -- ) # Stop option processing shift; break ;; - ) # Use stdin as input. break ;; -* ) echo "$me: invalid option $1$help" exit 1 ;; *local*) # First pass through any local machine types. echo $1 exit ;; * ) break ;; esac done case $# in 0) echo "$me: missing argument$help" >&2 exit 1;; 1) ;; *) echo "$me: too many arguments$help" >&2 exit 1;; esac # Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any). # Here we must recognize all the valid KERNEL-OS combinations. maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` case $maybe_os in nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \ linux-musl* | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \ knetbsd*-gnu* | netbsd*-gnu* | netbsd*-eabi* | \ kopensolaris*-gnu* | cloudabi*-eabi* | \ storm-chaos* | os2-emx* | rtmk-nova*) os=-$maybe_os basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` ;; android-linux) os=-linux-android basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`-unknown ;; *) basic_machine=`echo $1 | sed 's/-[^-]*$//'` if [ $basic_machine != $1 ] then os=`echo $1 | sed 's/.*-/-/'` else os=; fi ;; esac ### Let's recognize common machines as not being operating systems so ### that things like config.sub decstation-3100 work. We also ### recognize some manufacturers as not being operating systems, so we ### can provide default operating systems below. case $os in -sun*os*) # Prevent following clause from handling this invalid input. ;; -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \ -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \ -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \ -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ -apple | -axis | -knuth | -cray | -microblaze*) os= basic_machine=$1 ;; -bluegene*) os=-cnk ;; -sim | -cisco | -oki | -wec | -winbond) os= basic_machine=$1 ;; -scout) ;; -wrs) os=-vxworks basic_machine=$1 ;; -chorusos*) os=-chorusos basic_machine=$1 ;; -chorusrdb) os=-chorusrdb basic_machine=$1 ;; -hiux*) os=-hiuxwe2 ;; -sco6) os=-sco5v6 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco5) os=-sco3.2v5 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco4) os=-sco3.2v4 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco3.2.[4-9]*) os=`echo $os | sed -e 's/sco3.2./sco3.2v/'` basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco3.2v[4-9]*) # Don't forget version if it is 3.2v4 or newer. basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco5v6*) # Don't forget version if it is 3.2v4 or newer. basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco*) os=-sco3.2v2 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -udk*) basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -isc) os=-isc2.2 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -clix*) basic_machine=clipper-intergraph ;; -isc*) basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -lynx*178) os=-lynxos178 ;; -lynx*5) os=-lynxos5 ;; -lynx*) os=-lynxos ;; -ptx*) basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'` ;; -psos*) os=-psos ;; -mint | -mint[0-9]*) basic_machine=m68k-atari os=-mint ;; esac # Decode aliases for certain CPU-COMPANY combinations. case $basic_machine in # Recognize the basic CPU types without company name. # Some are omitted here because they have special meanings below. 1750a | 580 \ | a29k \ | aarch64 | aarch64_be \ | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ | am33_2.0 \ | arc | arceb \ | arm | arm[bl]e | arme[lb] | armv[2-8] | armv[3-8][lb] | armv7[arm] \ | avr | avr32 \ | ba \ | be32 | be64 \ | bfin \ | c4x | c8051 | clipper \ | d10v | d30v | dlx | dsp16xx \ | e2k | epiphany \ | fido | fr30 | frv | ft32 \ | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ | hexagon \ | i370 | i860 | i960 | ia16 | ia64 \ | ip2k | iq2000 \ | k1om \ | le32 | le64 \ | lm32 \ | m32c | m32r | m32rle | m68000 | m68k | m88k \ | maxq | mb | microblaze | microblazeel | mcore | mep | metag \ | mips | mipsbe | mipseb | mipsel | mipsle \ | mips16 \ | mips64 | mips64el \ | mips64octeon | mips64octeonel \ | mips64orion | mips64orionel \ | mips64r5900 | mips64r5900el \ | mips64vr | mips64vrel \ | mips64vr4100 | mips64vr4100el \ | mips64vr4300 | mips64vr4300el \ | mips64vr5000 | mips64vr5000el \ | mips64vr5900 | mips64vr5900el \ | mipsisa32 | mipsisa32el \ | mipsisa32r2 | mipsisa32r2el \ | mipsisa32r6 | mipsisa32r6el \ | mipsisa64 | mipsisa64el \ | mipsisa64r2 | mipsisa64r2el \ | mipsisa64r6 | mipsisa64r6el \ | mipsisa64sb1 | mipsisa64sb1el \ | mipsisa64sr71k | mipsisa64sr71kel \ | mipsr5900 | mipsr5900el \ | mipstx39 | mipstx39el \ | mn10200 | mn10300 \ | moxie \ | mt \ | msp430 \ | nds32 | nds32le | nds32be \ | nios | nios2 | nios2eb | nios2el \ | ns16k | ns32k \ | open8 | or1k | or1knd | or32 \ | pdp10 | pdp11 | pj | pjl \ | powerpc | powerpc64 | powerpc64le | powerpcle \ | pru \ | pyramid \ | riscv32 | riscv64 \ | rl78 | rx \ | score \ | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[234]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ | sh64 | sh64le \ | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ | spu \ | tahoe | tic4x | tic54x | tic55x | tic6x | tic80 | tron \ | ubicom32 \ | v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \ | visium \ | wasm32 \ | x86 | xc16x | xstormy16 | xtensa \ | z8k | z80) basic_machine=$basic_machine-unknown ;; c54x) basic_machine=tic54x-unknown ;; c55x) basic_machine=tic55x-unknown ;; c6x) basic_machine=tic6x-unknown ;; leon|leon[3-9]) basic_machine=sparc-$basic_machine ;; m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | nvptx | picochip) basic_machine=$basic_machine-unknown os=-none ;; m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) ;; ms1) basic_machine=mt-unknown ;; strongarm | thumb | xscale) basic_machine=arm-unknown ;; xgate) basic_machine=$basic_machine-unknown os=-none ;; xscaleeb) basic_machine=armeb-unknown ;; xscaleel) basic_machine=armel-unknown ;; # We use `pc' rather than `unknown' # because (1) that's what they normally are, and # (2) the word "unknown" tends to confuse beginning users. i*86 | x86_64) basic_machine=$basic_machine-pc ;; # Object if more than one company name word. *-*-*) echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 exit 1 ;; # Recognize the basic CPU types with company name. 580-* \ | a29k-* \ | aarch64-* | aarch64_be-* \ | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ | alphapca5[67]-* | alpha64pca5[67]-* | arc-* | arceb-* \ | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ | avr-* | avr32-* \ | ba-* \ | be32-* | be64-* \ | bfin-* | bs2000-* \ | c[123]* | c30-* | [cjt]90-* | c4x-* \ | c8051-* | clipper-* | craynv-* | cydra-* \ | d10v-* | d30v-* | dlx-* \ | e2k-* | elxsi-* \ | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \ | h8300-* | h8500-* \ | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ | hexagon-* \ | i*86-* | i860-* | i960-* | ia16-* | ia64-* \ | ip2k-* | iq2000-* \ | k1om-* \ | le32-* | le64-* \ | lm32-* \ | m32c-* | m32r-* | m32rle-* \ | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ | m88110-* | m88k-* | maxq-* | mcore-* | metag-* \ | microblaze-* | microblazeel-* \ | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ | mips16-* \ | mips64-* | mips64el-* \ | mips64octeon-* | mips64octeonel-* \ | mips64orion-* | mips64orionel-* \ | mips64r5900-* | mips64r5900el-* \ | mips64vr-* | mips64vrel-* \ | mips64vr4100-* | mips64vr4100el-* \ | mips64vr4300-* | mips64vr4300el-* \ | mips64vr5000-* | mips64vr5000el-* \ | mips64vr5900-* | mips64vr5900el-* \ | mipsisa32-* | mipsisa32el-* \ | mipsisa32r2-* | mipsisa32r2el-* \ | mipsisa32r6-* | mipsisa32r6el-* \ | mipsisa64-* | mipsisa64el-* \ | mipsisa64r2-* | mipsisa64r2el-* \ | mipsisa64r6-* | mipsisa64r6el-* \ | mipsisa64sb1-* | mipsisa64sb1el-* \ | mipsisa64sr71k-* | mipsisa64sr71kel-* \ | mipsr5900-* | mipsr5900el-* \ | mipstx39-* | mipstx39el-* \ | mmix-* \ | mt-* \ | msp430-* \ | nds32-* | nds32le-* | nds32be-* \ | nios-* | nios2-* | nios2eb-* | nios2el-* \ | none-* | np1-* | ns16k-* | ns32k-* \ | open8-* \ | or1k*-* \ | orion-* \ | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \ | pru-* \ | pyramid-* \ | riscv32-* | riscv64-* \ | rl78-* | romp-* | rs6000-* | rx-* \ | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ | sparclite-* \ | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx*-* \ | tahoe-* \ | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ | tile*-* \ | tron-* \ | ubicom32-* \ | v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \ | vax-* \ | visium-* \ | wasm32-* \ | we32k-* \ | x86-* | x86_64-* | xc16x-* | xps100-* \ | xstormy16-* | xtensa*-* \ | ymp-* \ | z8k-* | z80-*) ;; # Recognize the basic CPU types without company name, with glob match. xtensa*) basic_machine=$basic_machine-unknown ;; # Recognize the various machine names and aliases which stand # for a CPU type and a company and sometimes even an OS. 386bsd) basic_machine=i386-unknown os=-bsd ;; 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) basic_machine=m68000-att ;; 3b*) basic_machine=we32k-att ;; a29khif) basic_machine=a29k-amd os=-udi ;; abacus) basic_machine=abacus-unknown ;; adobe68k) basic_machine=m68010-adobe os=-scout ;; alliant | fx80) basic_machine=fx80-alliant ;; altos | altos3068) basic_machine=m68k-altos ;; am29k) basic_machine=a29k-none os=-bsd ;; amd64) basic_machine=x86_64-pc ;; amd64-*) basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'` ;; amdahl) basic_machine=580-amdahl os=-sysv ;; amiga | amiga-*) basic_machine=m68k-unknown ;; amigaos | amigados) basic_machine=m68k-unknown os=-amigaos ;; amigaunix | amix) basic_machine=m68k-unknown os=-sysv4 ;; apollo68) basic_machine=m68k-apollo os=-sysv ;; apollo68bsd) basic_machine=m68k-apollo os=-bsd ;; aros) basic_machine=i386-pc os=-aros ;; asmjs) basic_machine=asmjs-unknown ;; aux) basic_machine=m68k-apple os=-aux ;; balance) basic_machine=ns32k-sequent os=-dynix ;; blackfin) basic_machine=bfin-unknown os=-linux ;; blackfin-*) basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'` os=-linux ;; bluegene*) basic_machine=powerpc-ibm os=-cnk ;; c54x-*) basic_machine=tic54x-`echo $basic_machine | sed 's/^[^-]*-//'` ;; c55x-*) basic_machine=tic55x-`echo $basic_machine | sed 's/^[^-]*-//'` ;; c6x-*) basic_machine=tic6x-`echo $basic_machine | sed 's/^[^-]*-//'` ;; c90) basic_machine=c90-cray os=-unicos ;; cegcc) basic_machine=arm-unknown os=-cegcc ;; convex-c1) basic_machine=c1-convex os=-bsd ;; convex-c2) basic_machine=c2-convex os=-bsd ;; convex-c32) basic_machine=c32-convex os=-bsd ;; convex-c34) basic_machine=c34-convex os=-bsd ;; convex-c38) basic_machine=c38-convex os=-bsd ;; cray | j90) basic_machine=j90-cray os=-unicos ;; craynv) basic_machine=craynv-cray os=-unicosmp ;; cr16 | cr16-*) basic_machine=cr16-unknown os=-elf ;; crds | unos) basic_machine=m68k-crds ;; crisv32 | crisv32-* | etraxfs*) basic_machine=crisv32-axis ;; cris | cris-* | etrax*) basic_machine=cris-axis ;; crx) basic_machine=crx-unknown os=-elf ;; da30 | da30-*) basic_machine=m68k-da30 ;; decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn) basic_machine=mips-dec ;; decsystem10* | dec10*) basic_machine=pdp10-dec os=-tops10 ;; decsystem20* | dec20*) basic_machine=pdp10-dec os=-tops20 ;; delta | 3300 | motorola-3300 | motorola-delta \ | 3300-motorola | delta-motorola) basic_machine=m68k-motorola ;; delta88) basic_machine=m88k-motorola os=-sysv3 ;; dicos) basic_machine=i686-pc os=-dicos ;; djgpp) basic_machine=i586-pc os=-msdosdjgpp ;; dpx20 | dpx20-*) basic_machine=rs6000-bull os=-bosx ;; dpx2*) basic_machine=m68k-bull os=-sysv3 ;; e500v[12]) basic_machine=powerpc-unknown os=$os"spe" ;; e500v[12]-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` os=$os"spe" ;; ebmon29k) basic_machine=a29k-amd os=-ebmon ;; elxsi) basic_machine=elxsi-elxsi os=-bsd ;; encore | umax | mmax) basic_machine=ns32k-encore ;; es1800 | OSE68k | ose68k | ose | OSE) basic_machine=m68k-ericsson os=-ose ;; fx2800) basic_machine=i860-alliant ;; genix) basic_machine=ns32k-ns ;; gmicro) basic_machine=tron-gmicro os=-sysv ;; go32) basic_machine=i386-pc os=-go32 ;; h3050r* | hiux*) basic_machine=hppa1.1-hitachi os=-hiuxwe2 ;; h8300hms) basic_machine=h8300-hitachi os=-hms ;; h8300xray) basic_machine=h8300-hitachi os=-xray ;; h8500hms) basic_machine=h8500-hitachi os=-hms ;; harris) basic_machine=m88k-harris os=-sysv3 ;; hp300-*) basic_machine=m68k-hp ;; hp300bsd) basic_machine=m68k-hp os=-bsd ;; hp300hpux) basic_machine=m68k-hp os=-hpux ;; hp3k9[0-9][0-9] | hp9[0-9][0-9]) basic_machine=hppa1.0-hp ;; hp9k2[0-9][0-9] | hp9k31[0-9]) basic_machine=m68000-hp ;; hp9k3[2-9][0-9]) basic_machine=m68k-hp ;; hp9k6[0-9][0-9] | hp6[0-9][0-9]) basic_machine=hppa1.0-hp ;; hp9k7[0-79][0-9] | hp7[0-79][0-9]) basic_machine=hppa1.1-hp ;; hp9k78[0-9] | hp78[0-9]) # FIXME: really hppa2.0-hp basic_machine=hppa1.1-hp ;; hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) # FIXME: really hppa2.0-hp basic_machine=hppa1.1-hp ;; hp9k8[0-9][13679] | hp8[0-9][13679]) basic_machine=hppa1.1-hp ;; hp9k8[0-9][0-9] | hp8[0-9][0-9]) basic_machine=hppa1.0-hp ;; hppa-next) os=-nextstep3 ;; hppaosf) basic_machine=hppa1.1-hp os=-osf ;; hppro) basic_machine=hppa1.1-hp os=-proelf ;; i370-ibm* | ibm*) basic_machine=i370-ibm ;; i*86v32) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv32 ;; i*86v4*) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv4 ;; i*86v) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv ;; i*86sol2) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-solaris2 ;; i386mach) basic_machine=i386-mach os=-mach ;; i386-vsta | vsta) basic_machine=i386-unknown os=-vsta ;; iris | iris4d) basic_machine=mips-sgi case $os in -irix*) ;; *) os=-irix4 ;; esac ;; isi68 | isi) basic_machine=m68k-isi os=-sysv ;; leon-*|leon[3-9]-*) basic_machine=sparc-`echo $basic_machine | sed 's/-.*//'` ;; m68knommu) basic_machine=m68k-unknown os=-linux ;; m68knommu-*) basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'` os=-linux ;; m88k-omron*) basic_machine=m88k-omron ;; magnum | m3230) basic_machine=mips-mips os=-sysv ;; merlin) basic_machine=ns32k-utek os=-sysv ;; microblaze*) basic_machine=microblaze-xilinx ;; mingw64) basic_machine=x86_64-pc os=-mingw64 ;; mingw32) basic_machine=i686-pc os=-mingw32 ;; mingw32ce) basic_machine=arm-unknown os=-mingw32ce ;; miniframe) basic_machine=m68000-convergent ;; *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*) basic_machine=m68k-atari os=-mint ;; mips3*-*) basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'` ;; mips3*) basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown ;; monitor) basic_machine=m68k-rom68k os=-coff ;; morphos) basic_machine=powerpc-unknown os=-morphos ;; moxiebox) basic_machine=moxie-unknown os=-moxiebox ;; msdos) basic_machine=i386-pc os=-msdos ;; ms1-*) basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'` ;; msys) basic_machine=i686-pc os=-msys ;; mvs) basic_machine=i370-ibm os=-mvs ;; nacl) basic_machine=le32-unknown os=-nacl ;; ncr3000) basic_machine=i486-ncr os=-sysv4 ;; netbsd386) basic_machine=i386-unknown os=-netbsd ;; netwinder) basic_machine=armv4l-rebel os=-linux ;; news | news700 | news800 | news900) basic_machine=m68k-sony os=-newsos ;; news1000) basic_machine=m68030-sony os=-newsos ;; news-3600 | risc-news) basic_machine=mips-sony os=-newsos ;; necv70) basic_machine=v70-nec os=-sysv ;; next | m*-next) basic_machine=m68k-next case $os in -nextstep* ) ;; -ns2*) os=-nextstep2 ;; *) os=-nextstep3 ;; esac ;; nh3000) basic_machine=m68k-harris os=-cxux ;; nh[45]000) basic_machine=m88k-harris os=-cxux ;; nindy960) basic_machine=i960-intel os=-nindy ;; mon960) basic_machine=i960-intel os=-mon960 ;; nonstopux) basic_machine=mips-compaq os=-nonstopux ;; np1) basic_machine=np1-gould ;; neo-tandem) basic_machine=neo-tandem ;; nse-tandem) basic_machine=nse-tandem ;; nsr-tandem) basic_machine=nsr-tandem ;; nsx-tandem) basic_machine=nsx-tandem ;; op50n-* | op60c-*) basic_machine=hppa1.1-oki os=-proelf ;; openrisc | openrisc-*) basic_machine=or32-unknown ;; os400) basic_machine=powerpc-ibm os=-os400 ;; OSE68000 | ose68000) basic_machine=m68000-ericsson os=-ose ;; os68k) basic_machine=m68k-none os=-os68k ;; pa-hitachi) basic_machine=hppa1.1-hitachi os=-hiuxwe2 ;; paragon) basic_machine=i860-intel os=-osf ;; parisc) basic_machine=hppa-unknown os=-linux ;; parisc-*) basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'` os=-linux ;; pbd) basic_machine=sparc-tti ;; pbb) basic_machine=m68k-tti ;; pc532 | pc532-*) basic_machine=ns32k-pc532 ;; pc98) basic_machine=i386-pc ;; pc98-*) basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentium | p5 | k5 | k6 | nexgen | viac3) basic_machine=i586-pc ;; pentiumpro | p6 | 6x86 | athlon | athlon_*) basic_machine=i686-pc ;; pentiumii | pentium2 | pentiumiii | pentium3) basic_machine=i686-pc ;; pentium4) basic_machine=i786-pc ;; pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentiumpro-* | p6-* | 6x86-* | athlon-*) basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentium4-*) basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pn) basic_machine=pn-gould ;; power) basic_machine=power-ibm ;; ppc | ppcbe) basic_machine=powerpc-unknown ;; ppc-* | ppcbe-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppcle | powerpclittle) basic_machine=powerpcle-unknown ;; ppcle-* | powerpclittle-*) basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppc64) basic_machine=powerpc64-unknown ;; ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppc64le | powerpc64little) basic_machine=powerpc64le-unknown ;; ppc64le-* | powerpc64little-*) basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ps2) basic_machine=i386-ibm ;; pw32) basic_machine=i586-unknown os=-pw32 ;; rdos | rdos64) basic_machine=x86_64-pc os=-rdos ;; rdos32) basic_machine=i386-pc os=-rdos ;; rom68k) basic_machine=m68k-rom68k os=-coff ;; rm[46]00) basic_machine=mips-siemens ;; rtpc | rtpc-*) basic_machine=romp-ibm ;; s390 | s390-*) basic_machine=s390-ibm ;; s390x | s390x-*) basic_machine=s390x-ibm ;; sa29200) basic_machine=a29k-amd os=-udi ;; sb1) basic_machine=mipsisa64sb1-unknown ;; sb1el) basic_machine=mipsisa64sb1el-unknown ;; sde) basic_machine=mipsisa32-sde os=-elf ;; sei) basic_machine=mips-sei os=-seiux ;; sequent) basic_machine=i386-sequent ;; sh) basic_machine=sh-hitachi os=-hms ;; sh5el) basic_machine=sh5le-unknown ;; sh64) basic_machine=sh64-unknown ;; sparclite-wrs | simso-wrs) basic_machine=sparclite-wrs os=-vxworks ;; sps7) basic_machine=m68k-bull os=-sysv2 ;; spur) basic_machine=spur-unknown ;; st2000) basic_machine=m68k-tandem ;; stratus) basic_machine=i860-stratus os=-sysv4 ;; strongarm-* | thumb-*) basic_machine=arm-`echo $basic_machine | sed 's/^[^-]*-//'` ;; sun2) basic_machine=m68000-sun ;; sun2os3) basic_machine=m68000-sun os=-sunos3 ;; sun2os4) basic_machine=m68000-sun os=-sunos4 ;; sun3os3) basic_machine=m68k-sun os=-sunos3 ;; sun3os4) basic_machine=m68k-sun os=-sunos4 ;; sun4os3) basic_machine=sparc-sun os=-sunos3 ;; sun4os4) basic_machine=sparc-sun os=-sunos4 ;; sun4sol2) basic_machine=sparc-sun os=-solaris2 ;; sun3 | sun3-*) basic_machine=m68k-sun ;; sun4) basic_machine=sparc-sun ;; sun386 | sun386i | roadrunner) basic_machine=i386-sun ;; sv1) basic_machine=sv1-cray os=-unicos ;; symmetry) basic_machine=i386-sequent os=-dynix ;; t3e) basic_machine=alphaev5-cray os=-unicos ;; t90) basic_machine=t90-cray os=-unicos ;; tile*) basic_machine=$basic_machine-unknown os=-linux-gnu ;; tx39) basic_machine=mipstx39-unknown ;; tx39el) basic_machine=mipstx39el-unknown ;; toad1) basic_machine=pdp10-xkl os=-tops20 ;; tower | tower-32) basic_machine=m68k-ncr ;; tpf) basic_machine=s390x-ibm os=-tpf ;; udi29k) basic_machine=a29k-amd os=-udi ;; ultra3) basic_machine=a29k-nyu os=-sym1 ;; v810 | necv810) basic_machine=v810-nec os=-none ;; vaxv) basic_machine=vax-dec os=-sysv ;; vms) basic_machine=vax-dec os=-vms ;; vpp*|vx|vx-*) basic_machine=f301-fujitsu ;; vxworks960) basic_machine=i960-wrs os=-vxworks ;; vxworks68) basic_machine=m68k-wrs os=-vxworks ;; vxworks29k) basic_machine=a29k-wrs os=-vxworks ;; wasm32) basic_machine=wasm32-unknown ;; w65*) basic_machine=w65-wdc os=-none ;; w89k-*) basic_machine=hppa1.1-winbond os=-proelf ;; x64) basic_machine=x86_64-pc ;; xbox) basic_machine=i686-pc os=-mingw32 ;; xps | xps100) basic_machine=xps100-honeywell ;; xscale-* | xscalee[bl]-*) basic_machine=`echo $basic_machine | sed 's/^xscale/arm/'` ;; ymp) basic_machine=ymp-cray os=-unicos ;; z8k-*-coff) basic_machine=z8k-unknown os=-sim ;; z80-*-coff) basic_machine=z80-unknown os=-sim ;; none) basic_machine=none-none os=-none ;; # Here we handle the default manufacturer of certain CPU types. It is in # some cases the only manufacturer, in others, it is the most popular. w89k) basic_machine=hppa1.1-winbond ;; op50n) basic_machine=hppa1.1-oki ;; op60c) basic_machine=hppa1.1-oki ;; romp) basic_machine=romp-ibm ;; mmix) basic_machine=mmix-knuth ;; rs6000) basic_machine=rs6000-ibm ;; vax) basic_machine=vax-dec ;; pdp10) # there are many clones, so DEC is not a safe bet basic_machine=pdp10-unknown ;; pdp11) basic_machine=pdp11-dec ;; we32k) basic_machine=we32k-att ;; sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele) basic_machine=sh-unknown ;; sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v) basic_machine=sparc-sun ;; cydra) basic_machine=cydra-cydrome ;; orion) basic_machine=orion-highlevel ;; orion105) basic_machine=clipper-highlevel ;; mac | mpw | mac-mpw) basic_machine=m68k-apple ;; pmac | pmac-mpw) basic_machine=powerpc-apple ;; *-unknown) # Make sure to match an already-canonicalized machine name. ;; *) echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 exit 1 ;; esac # Here we canonicalize certain aliases for manufacturers. case $basic_machine in *-digital*) basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'` ;; *-commodore*) basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'` ;; *) ;; esac # Decode manufacturer-specific aliases for certain operating systems. if [ x"$os" != x"" ] then case $os in # First match some system type aliases that might get confused # with valid system types. # -solaris* is a basic system type, with this one exception. -auroraux) os=-auroraux ;; -solaris1 | -solaris1.*) os=`echo $os | sed -e 's|solaris1|sunos4|'` ;; -solaris) os=-solaris2 ;; -svr4*) os=-sysv4 ;; -unixware*) os=-sysv4.2uw ;; -gnu/linux*) os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'` ;; # Now accept the basic system types. # The portable systems comes first. # Each alternative MUST end in a * to match a version number. # -sysv* is not here because it comes later, after sysvr4. -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\ | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \ | -sym* | -kopensolaris* | -plan9* \ | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ | -aos* | -aros* | -cloudabi* | -sortix* \ | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \ | -bitrig* | -openbsd* | -solidbsd* | -libertybsd* \ | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ | -chorusos* | -chorusrdb* | -cegcc* | -glidix* \ | -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ | -midipix* | -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \ | -linux-newlib* | -linux-musl* | -linux-uclibc* \ | -uxpv* | -beos* | -mpeix* | -udk* | -moxiebox* \ | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es* \ | -onefs* | -tirtos* | -phoenix* | -fuchsia* | -redox*) # Remember, each alternative MUST END IN *, to match a version number. ;; -qnx*) case $basic_machine in x86-* | i*86-*) ;; *) os=-nto$os ;; esac ;; -nto-qnx*) ;; -nto*) os=`echo $os | sed -e 's|nto|nto-qnx|'` ;; -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \ | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \ | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*) ;; -mac*) os=`echo $os | sed -e 's|mac|macos|'` ;; -linux-dietlibc) os=-linux-dietlibc ;; -linux*) os=`echo $os | sed -e 's|linux|linux-gnu|'` ;; -sunos5*) os=`echo $os | sed -e 's|sunos5|solaris2|'` ;; -sunos6*) os=`echo $os | sed -e 's|sunos6|solaris3|'` ;; -opened*) os=-openedition ;; -os400*) os=-os400 ;; -wince*) os=-wince ;; -osfrose*) os=-osfrose ;; -osf*) os=-osf ;; -utek*) os=-bsd ;; -dynix*) os=-bsd ;; -acis*) os=-aos ;; -atheos*) os=-atheos ;; -syllable*) os=-syllable ;; -386bsd) os=-bsd ;; -ctix* | -uts*) os=-sysv ;; -nova*) os=-rtmk-nova ;; -ns2) os=-nextstep2 ;; -nsk*) os=-nsk ;; # Preserve the version number of sinix5. -sinix5.*) os=`echo $os | sed -e 's|sinix|sysv|'` ;; -sinix*) os=-sysv4 ;; -tpf*) os=-tpf ;; -triton*) os=-sysv3 ;; -oss*) os=-sysv3 ;; -svr4) os=-sysv4 ;; -svr3) os=-sysv3 ;; -sysvr4) os=-sysv4 ;; # This must come after -sysvr4. -sysv*) ;; -ose*) os=-ose ;; -es1800*) os=-ose ;; -xenix) os=-xenix ;; -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) os=-mint ;; -aros*) os=-aros ;; -zvmoe) os=-zvmoe ;; -dicos*) os=-dicos ;; -pikeos*) # Until real need of OS specific support for # particular features comes up, bare metal # configurations are quite functional. case $basic_machine in arm*) os=-eabi ;; *) os=-elf ;; esac ;; -nacl*) ;; -ios) ;; -none) ;; *) # Get rid of the `-' at the beginning of $os. os=`echo $os | sed 's/[^-]*-//'` echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2 exit 1 ;; esac else # Here we handle the default operating systems that come with various machines. # The value should be what the vendor currently ships out the door with their # machine or put another way, the most popular os provided with the machine. # Note that if you're going to try to match "-MANUFACTURER" here (say, # "-sun"), then you have to tell the case statement up towards the top # that MANUFACTURER isn't an operating system. Otherwise, code above # will signal an error saying that MANUFACTURER isn't an operating # system, and we'll never get to this point. case $basic_machine in score-*) os=-elf ;; spu-*) os=-elf ;; *-acorn) os=-riscix1.2 ;; arm*-rebel) os=-linux ;; arm*-semi) os=-aout ;; c4x-* | tic4x-*) os=-coff ;; c8051-*) os=-elf ;; hexagon-*) os=-elf ;; tic54x-*) os=-coff ;; tic55x-*) os=-coff ;; tic6x-*) os=-coff ;; # This must come before the *-dec entry. pdp10-*) os=-tops20 ;; pdp11-*) os=-none ;; *-dec | vax-*) os=-ultrix4.2 ;; m68*-apollo) os=-domain ;; i386-sun) os=-sunos4.0.2 ;; m68000-sun) os=-sunos3 ;; m68*-cisco) os=-aout ;; mep-*) os=-elf ;; mips*-cisco) os=-elf ;; mips*-*) os=-elf ;; or32-*) os=-coff ;; *-tti) # must be before sparc entry or we get the wrong os. os=-sysv3 ;; sparc-* | *-sun) os=-sunos4.1.1 ;; pru-*) os=-elf ;; *-be) os=-beos ;; *-haiku) os=-haiku ;; *-ibm) os=-aix ;; *-knuth) os=-mmixware ;; *-wec) os=-proelf ;; *-winbond) os=-proelf ;; *-oki) os=-proelf ;; *-hp) os=-hpux ;; *-hitachi) os=-hiux ;; i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent) os=-sysv ;; *-cbm) os=-amigaos ;; *-dg) os=-dgux ;; *-dolphin) os=-sysv3 ;; m68k-ccur) os=-rtu ;; m88k-omron*) os=-luna ;; *-next) os=-nextstep ;; *-sequent) os=-ptx ;; *-crds) os=-unos ;; *-ns) os=-genix ;; i370-*) os=-mvs ;; *-next) os=-nextstep3 ;; *-gould) os=-sysv ;; *-highlevel) os=-bsd ;; *-encore) os=-bsd ;; *-sgi) os=-irix ;; *-siemens) os=-sysv4 ;; *-masscomp) os=-rtu ;; f30[01]-fujitsu | f700-fujitsu) os=-uxpv ;; *-rom68k) os=-coff ;; *-*bug) os=-coff ;; *-apple) os=-macos ;; *-atari*) os=-mint ;; *) os=-none ;; esac fi # Here we handle the case where we know the os, and the CPU type, but not the # manufacturer. We pick the logical manufacturer. vendor=unknown case $basic_machine in *-unknown) case $os in -riscix*) vendor=acorn ;; -sunos*) vendor=sun ;; -cnk*|-aix*) vendor=ibm ;; -beos*) vendor=be ;; -hpux*) vendor=hp ;; -mpeix*) vendor=hp ;; -hiux*) vendor=hitachi ;; -unos*) vendor=crds ;; -dgux*) vendor=dg ;; -luna*) vendor=omron ;; -genix*) vendor=ns ;; -mvs* | -opened*) vendor=ibm ;; -os400*) vendor=ibm ;; -ptx*) vendor=sequent ;; -tpf*) vendor=ibm ;; -vxsim* | -vxworks* | -windiss*) vendor=wrs ;; -aux*) vendor=apple ;; -hms*) vendor=hitachi ;; -mpw* | -macos*) vendor=apple ;; -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) vendor=atari ;; -vos*) vendor=stratus ;; esac basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"` ;; esac echo $basic_machine$os exit # Local variables: # eval: (add-hook 'write-file-functions 'time-stamp) # time-stamp-start: "timestamp='" # time-stamp-format: "%:y-%02m-%02d" # time-stamp-end: "'" # End: ario-1.6/INSTALL0000644000175000017500000001722713226723436010305 00000000000000Basic Installation ================== These are generic installation instructions. The `configure' shell script attempts to guess correct values for various system-dependent variables used during compilation. It uses those values to create a `Makefile' in each directory of the package. It may also create one or more `.h' files containing system-dependent definitions. Finally, it creates a shell script `config.status' that you can run in the future to recreate the current configuration, a file `config.cache' that saves the results of its tests to speed up reconfiguring, and a file `config.log' containing compiler output (useful mainly for debugging `configure'). If you need to do unusual things to compile the package, please try to figure out how `configure' could check whether to do them, and mail diffs or instructions to the address given in the `README' so they can be considered for the next release. If at some point `config.cache' contains results you don't want to keep, you may remove or edit it. The file `configure.in' is used to create `configure' by a program called `autoconf'. You only need `configure.in' if you want to change it or regenerate `configure' using a newer version of `autoconf'. The simplest way to compile this package is: 1. `cd' to the directory containing the package's source code and type `./configure' to configure the package for your system. If you're using `csh' on an old version of System V, you might need to type `sh ./configure' instead to prevent `csh' from trying to execute `configure' itself. Running `configure' takes awhile. While running, it prints some messages telling which features it is checking for. 2. Type `make' to compile the package. 3. Optionally, type `make check' to run any self-tests that come with the package. 4. Type `make install' to install the programs and any data files and documentation. 5. You can remove the program binaries and object files from the source code directory by typing `make clean'. To also remove the files that `configure' created (so you can compile the package for a different kind of computer), type `make distclean'. There is also a `make maintainer-clean' target, but that is intended mainly for the package's developers. If you use it, you may have to get all sorts of other programs in order to regenerate files that came with the distribution. Compilers and Options ===================== Some systems require unusual options for compilation or linking that the `configure' script does not know about. You can give `configure' initial values for variables by setting them in the environment. Using a Bourne-compatible shell, you can do that on the command line like this: CC=c89 CFLAGS=-O2 LIBS=-lposix ./configure Or on systems that have the `env' program, you can do it like this: env CPPFLAGS=-I/usr/local/include LDFLAGS=-s ./configure Compiling For Multiple Architectures ==================================== You can compile the package for more than one kind of computer at the same time, by placing the object files for each architecture in their own directory. To do this, you must use a version of `make' that supports the `VPATH' variable, such as GNU `make'. `cd' to the directory where you want the object files and executables to go and run the `configure' script. `configure' automatically checks for the source code in the directory that `configure' is in and in `..'. If you have to use a `make' that does not supports the `VPATH' variable, you have to compile the package for one architecture at a time in the source code directory. After you have installed the package for one architecture, use `make distclean' before reconfiguring for another architecture. Installation Names ================== By default, `make install' will install the package's files in `/usr/local/bin', `/usr/local/man', etc. You can specify an installation prefix other than `/usr/local' by giving `configure' the option `--prefix=PATH'. You can specify separate installation prefixes for architecture-specific files and architecture-independent files. If you give `configure' the option `--exec-prefix=PATH', the package will use PATH as the prefix for installing programs and libraries. Documentation and other data files will still use the regular prefix. In addition, if you use an unusual directory layout you can give options like `--bindir=PATH' to specify different values for particular kinds of files. Run `configure --help' for a list of the directories you can set and what kinds of files go in them. If the package supports it, you can cause programs to be installed with an extra prefix or suffix on their names by giving `configure' the option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'. Optional Features ================= Some packages pay attention to `--enable-FEATURE' options to `configure', where FEATURE indicates an optional part of the package. They may also pay attention to `--with-PACKAGE' options, where PACKAGE is something like `gnu-as' or `x' (for the X Window System). The `README' should mention any `--enable-' and `--with-' options that the package recognizes. For packages that use the X Window System, `configure' can usually find the X include and library files automatically, but if it doesn't, you can use the `configure' options `--x-includes=DIR' and `--x-libraries=DIR' to specify their locations. Specifying the System Type ========================== There may be some features `configure' can not figure out automatically, but needs to determine by the type of host the package will run on. Usually `configure' can figure that out, but if it prints a message saying it can not guess the host type, give it the `--host=TYPE' option. TYPE can either be a short name for the system type, such as `sun4', or a canonical name with three fields: CPU-COMPANY-SYSTEM See the file `config.sub' for the possible values of each field. If `config.sub' isn't included in this package, then this package doesn't need to know the host type. If you are building compiler tools for cross-compiling, you can also use the `--target=TYPE' option to select the type of system they will produce code for and the `--build=TYPE' option to select the type of system on which you are compiling the package. Sharing Defaults ================ If you want to set default values for `configure' scripts to share, you can create a site shell script called `config.site' that gives default values for variables like `CC', `cache_file', and `prefix'. `configure' looks for `PREFIX/share/config.site' if it exists, then `PREFIX/etc/config.site' if it exists. Or, you can set the `CONFIG_SITE' environment variable to the location of the site script. A warning: not all `configure' scripts look for a site script. Operation Controls ================== `configure' recognizes the following options to control how it operates. `--cache-file=FILE' Use and save the results of the tests in FILE instead of `./config.cache'. Set FILE to `/dev/null' to disable caching, for debugging `configure'. `--help' Print a summary of the options to `configure', and exit. `--quiet' `--silent' `-q' Do not print messages saying which checks are being made. To suppress all normal output, redirect it to `/dev/null' (any error messages will still be shown). `--srcdir=DIR' Look for the package's source code in directory DIR. Usually `configure' can determine that directory automatically. `--version' Print the version of Autoconf used to generate the `configure' script, and exit. `configure' also accepts some other, not widely useful, options. ario-1.6/ChangeLog0000644000175000017500000000020113226723442011003 000000000000002007-06-02 gettextize * Makefile.am (ACLOCAL_AMFLAGS): New variable. (EXTRA_DIST): New variable. ario-1.6/COPYING0000644000175000017500000004311013226723442010272 00000000000000 GNU GENERAL PUBLIC LICENSE Version 2, June 1991 Copyright (C) 1989, 1991 Free Software Foundation, Inc. 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Library General Public License instead.) You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things. To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it. For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software. Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations. Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all. The precise terms and conditions for copying, distribution and modification follow. GNU GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term "modification".) Each licensee is addressed as "you". Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does. 1. You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. 2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change. b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License. c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program. In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following: a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.) The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code. 4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 5. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it. 6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License. 7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. 8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. 9. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation. 10. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Programs If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. Copyright (C) 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA Also add information on how to contact you by electronic and paper mail. If the program is interactive, make it output a short notice like this when it starts in an interactive mode: Gnomovision version 69, Copyright (C) year name of author Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, the commands you use may be called something other than `show w' and `show c'; they could even be mouse-clicks or menu items--whatever suits your program. You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the program, if necessary. Here is a sample; alter the names: Yoyodyne, Inc., hereby disclaims all copyright interest in the program `Gnomovision' (which makes passes at compilers) written by James Hacker. , 1 April 1989 Ty Coon, President of Vice This General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Library General Public License instead of this License. ario-1.6/ltmain.sh0000644000175000017500000117147412756047127011105 00000000000000#! /bin/sh ## DO NOT EDIT - This file generated from ./build-aux/ltmain.in ## by inline-source v2014-01-03.01 # libtool (GNU libtool) 2.4.6 # Provide generalized library-building support services. # Written by Gordon Matzigkeit , 1996 # Copyright (C) 1996-2015 Free Software Foundation, Inc. # This is free software; see the source for copying conditions. There is NO # warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. # GNU Libtool 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. # # As a special exception to the GNU General Public License, # if you distribute this file as part of a program or library that # is built using GNU Libtool, you may include this file under the # same distribution terms that you use for the rest of that program. # # GNU Libtool 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, see . PROGRAM=libtool PACKAGE=libtool VERSION="2.4.6 Debian-2.4.6-2" package_revision=2.4.6 ## ------ ## ## Usage. ## ## ------ ## # Run './libtool --help' for help with using this script from the # command line. ## ------------------------------- ## ## User overridable command paths. ## ## ------------------------------- ## # After configure completes, it has a better idea of some of the # shell tools we need than the defaults used by the functions shared # with bootstrap, so set those here where they can still be over- # ridden by the user, but otherwise take precedence. : ${AUTOCONF="autoconf"} : ${AUTOMAKE="automake"} ## -------------------------- ## ## Source external libraries. ## ## -------------------------- ## # Much of our low-level functionality needs to be sourced from external # libraries, which are installed to $pkgauxdir. # Set a version string for this script. scriptversion=2015-01-20.17; # UTC # General shell script boiler plate, and helper functions. # Written by Gary V. Vaughan, 2004 # Copyright (C) 2004-2015 Free Software Foundation, Inc. # This is free software; see the source for copying conditions. There is NO # warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. # 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 3 of the License, or # (at your option) any later version. # As a special exception to the GNU General Public License, if you distribute # this file as part of a program or library that is built using GNU Libtool, # you may include this file under the same distribution terms that you use # for the rest of that program. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNES 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, see . # Please report bugs or propose patches to gary@gnu.org. ## ------ ## ## Usage. ## ## ------ ## # Evaluate this file near the top of your script to gain access to # the functions and variables defined here: # # . `echo "$0" | ${SED-sed} 's|[^/]*$||'`/build-aux/funclib.sh # # If you need to override any of the default environment variable # settings, do that before evaluating this file. ## -------------------- ## ## Shell normalisation. ## ## -------------------- ## # Some shells need a little help to be as Bourne compatible as possible. # Before doing anything else, make sure all that help has been provided! DUALCASE=1; export DUALCASE # for MKS sh if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in *posix*) set -o posix ;; esac fi # NLS nuisances: We save the old values in case they are required later. _G_user_locale= _G_safe_locale= for _G_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES do eval "if test set = \"\${$_G_var+set}\"; then save_$_G_var=\$$_G_var $_G_var=C export $_G_var _G_user_locale=\"$_G_var=\\\$save_\$_G_var; \$_G_user_locale\" _G_safe_locale=\"$_G_var=C; \$_G_safe_locale\" fi" done # CDPATH. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH # Make sure IFS has a sensible default sp=' ' nl=' ' IFS="$sp $nl" # There are apparently some retarded systems that use ';' as a PATH separator! if test "${PATH_SEPARATOR+set}" != set; then PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || PATH_SEPARATOR=';' } fi ## ------------------------- ## ## Locate command utilities. ## ## ------------------------- ## # func_executable_p FILE # ---------------------- # Check that FILE is an executable regular file. func_executable_p () { test -f "$1" && test -x "$1" } # func_path_progs PROGS_LIST CHECK_FUNC [PATH] # -------------------------------------------- # Search for either a program that responds to --version with output # containing "GNU", or else returned by CHECK_FUNC otherwise, by # trying all the directories in PATH with each of the elements of # PROGS_LIST. # # CHECK_FUNC should accept the path to a candidate program, and # set $func_check_prog_result if it truncates its output less than # $_G_path_prog_max characters. func_path_progs () { _G_progs_list=$1 _G_check_func=$2 _G_PATH=${3-"$PATH"} _G_path_prog_max=0 _G_path_prog_found=false _G_save_IFS=$IFS; IFS=${PATH_SEPARATOR-:} for _G_dir in $_G_PATH; do IFS=$_G_save_IFS test -z "$_G_dir" && _G_dir=. for _G_prog_name in $_G_progs_list; do for _exeext in '' .EXE; do _G_path_prog=$_G_dir/$_G_prog_name$_exeext func_executable_p "$_G_path_prog" || continue case `"$_G_path_prog" --version 2>&1` in *GNU*) func_path_progs_result=$_G_path_prog _G_path_prog_found=: ;; *) $_G_check_func $_G_path_prog func_path_progs_result=$func_check_prog_result ;; esac $_G_path_prog_found && break 3 done done done IFS=$_G_save_IFS test -z "$func_path_progs_result" && { echo "no acceptable sed could be found in \$PATH" >&2 exit 1 } } # We want to be able to use the functions in this file before configure # has figured out where the best binaries are kept, which means we have # to search for them ourselves - except when the results are already set # where we skip the searches. # Unless the user overrides by setting SED, search the path for either GNU # sed, or the sed that truncates its output the least. test -z "$SED" && { _G_sed_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/ for _G_i in 1 2 3 4 5 6 7; do _G_sed_script=$_G_sed_script$nl$_G_sed_script done echo "$_G_sed_script" 2>/dev/null | sed 99q >conftest.sed _G_sed_script= func_check_prog_sed () { _G_path_prog=$1 _G_count=0 printf 0123456789 >conftest.in while : do cat conftest.in conftest.in >conftest.tmp mv conftest.tmp conftest.in cp conftest.in conftest.nl echo '' >> conftest.nl "$_G_path_prog" -f conftest.sed conftest.out 2>/dev/null || break diff conftest.out conftest.nl >/dev/null 2>&1 || break _G_count=`expr $_G_count + 1` if test "$_G_count" -gt "$_G_path_prog_max"; then # Best one so far, save it but keep looking for a better one func_check_prog_result=$_G_path_prog _G_path_prog_max=$_G_count fi # 10*(2^10) chars as input seems more than enough test 10 -lt "$_G_count" && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out } func_path_progs "sed gsed" func_check_prog_sed $PATH:/usr/xpg4/bin rm -f conftest.sed SED=$func_path_progs_result } # Unless the user overrides by setting GREP, search the path for either GNU # grep, or the grep that truncates its output the least. test -z "$GREP" && { func_check_prog_grep () { _G_path_prog=$1 _G_count=0 _G_path_prog_max=0 printf 0123456789 >conftest.in while : do cat conftest.in conftest.in >conftest.tmp mv conftest.tmp conftest.in cp conftest.in conftest.nl echo 'GREP' >> conftest.nl "$_G_path_prog" -e 'GREP$' -e '-(cannot match)-' conftest.out 2>/dev/null || break diff conftest.out conftest.nl >/dev/null 2>&1 || break _G_count=`expr $_G_count + 1` if test "$_G_count" -gt "$_G_path_prog_max"; then # Best one so far, save it but keep looking for a better one func_check_prog_result=$_G_path_prog _G_path_prog_max=$_G_count fi # 10*(2^10) chars as input seems more than enough test 10 -lt "$_G_count" && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out } func_path_progs "grep ggrep" func_check_prog_grep $PATH:/usr/xpg4/bin GREP=$func_path_progs_result } ## ------------------------------- ## ## User overridable command paths. ## ## ------------------------------- ## # All uppercase variable names are used for environment variables. These # variables can be overridden by the user before calling a script that # uses them if a suitable command of that name is not already available # in the command search PATH. : ${CP="cp -f"} : ${ECHO="printf %s\n"} : ${EGREP="$GREP -E"} : ${FGREP="$GREP -F"} : ${LN_S="ln -s"} : ${MAKE="make"} : ${MKDIR="mkdir"} : ${MV="mv -f"} : ${RM="rm -f"} : ${SHELL="${CONFIG_SHELL-/bin/sh}"} ## -------------------- ## ## Useful sed snippets. ## ## -------------------- ## sed_dirname='s|/[^/]*$||' sed_basename='s|^.*/||' # Sed substitution that helps us do robust quoting. It backslashifies # metacharacters that are still active within double-quoted strings. sed_quote_subst='s|\([`"$\\]\)|\\\1|g' # Same as above, but do not quote variable references. sed_double_quote_subst='s/\(["`\\]\)/\\\1/g' # Sed substitution that turns a string into a regex matching for the # string literally. sed_make_literal_regex='s|[].[^$\\*\/]|\\&|g' # Sed substitution that converts a w32 file name or path # that contains forward slashes, into one that contains # (escaped) backslashes. A very naive implementation. sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g' # Re-'\' parameter expansions in output of sed_double_quote_subst that # were '\'-ed in input to the same. If an odd number of '\' preceded a # '$' in input to sed_double_quote_subst, that '$' was protected from # expansion. Since each input '\' is now two '\'s, look for any number # of runs of four '\'s followed by two '\'s and then a '$'. '\' that '$'. _G_bs='\\' _G_bs2='\\\\' _G_bs4='\\\\\\\\' _G_dollar='\$' sed_double_backslash="\ s/$_G_bs4/&\\ /g s/^$_G_bs2$_G_dollar/$_G_bs&/ s/\\([^$_G_bs]\\)$_G_bs2$_G_dollar/\\1$_G_bs2$_G_bs$_G_dollar/g s/\n//g" ## ----------------- ## ## Global variables. ## ## ----------------- ## # Except for the global variables explicitly listed below, the following # functions in the '^func_' namespace, and the '^require_' namespace # variables initialised in the 'Resource management' section, sourcing # this file will not pollute your global namespace with anything # else. There's no portable way to scope variables in Bourne shell # though, so actually running these functions will sometimes place # results into a variable named after the function, and often use # temporary variables in the '^_G_' namespace. If you are careful to # avoid using those namespaces casually in your sourcing script, things # should continue to work as you expect. And, of course, you can freely # overwrite any of the functions or variables defined here before # calling anything to customize them. EXIT_SUCCESS=0 EXIT_FAILURE=1 EXIT_MISMATCH=63 # $? = 63 is used to indicate version mismatch to missing. EXIT_SKIP=77 # $? = 77 is used to indicate a skipped test to automake. # Allow overriding, eg assuming that you follow the convention of # putting '$debug_cmd' at the start of all your functions, you can get # bash to show function call trace with: # # debug_cmd='eval echo "${FUNCNAME[0]} $*" >&2' bash your-script-name debug_cmd=${debug_cmd-":"} exit_cmd=: # By convention, finish your script with: # # exit $exit_status # # so that you can set exit_status to non-zero if you want to indicate # something went wrong during execution without actually bailing out at # the point of failure. exit_status=$EXIT_SUCCESS # Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh # is ksh but when the shell is invoked as "sh" and the current value of # the _XPG environment variable is not equal to 1 (one), the special # positional parameter $0, within a function call, is the name of the # function. progpath=$0 # The name of this program. progname=`$ECHO "$progpath" |$SED "$sed_basename"` # Make sure we have an absolute progpath for reexecution: case $progpath in [\\/]*|[A-Za-z]:\\*) ;; *[\\/]*) progdir=`$ECHO "$progpath" |$SED "$sed_dirname"` progdir=`cd "$progdir" && pwd` progpath=$progdir/$progname ;; *) _G_IFS=$IFS IFS=${PATH_SEPARATOR-:} for progdir in $PATH; do IFS=$_G_IFS test -x "$progdir/$progname" && break done IFS=$_G_IFS test -n "$progdir" || progdir=`pwd` progpath=$progdir/$progname ;; esac ## ----------------- ## ## Standard options. ## ## ----------------- ## # The following options affect the operation of the functions defined # below, and should be set appropriately depending on run-time para- # meters passed on the command line. opt_dry_run=false opt_quiet=false opt_verbose=false # Categories 'all' and 'none' are always available. Append any others # you will pass as the first argument to func_warning from your own # code. warning_categories= # By default, display warnings according to 'opt_warning_types'. Set # 'warning_func' to ':' to elide all warnings, or func_fatal_error to # treat the next displayed warning as a fatal error. warning_func=func_warn_and_continue # Set to 'all' to display all warnings, 'none' to suppress all # warnings, or a space delimited list of some subset of # 'warning_categories' to display only the listed warnings. opt_warning_types=all ## -------------------- ## ## Resource management. ## ## -------------------- ## # This section contains definitions for functions that each ensure a # particular resource (a file, or a non-empty configuration variable for # example) is available, and if appropriate to extract default values # from pertinent package files. Call them using their associated # 'require_*' variable to ensure that they are executed, at most, once. # # It's entirely deliberate that calling these functions can set # variables that don't obey the namespace limitations obeyed by the rest # of this file, in order that that they be as useful as possible to # callers. # require_term_colors # ------------------- # Allow display of bold text on terminals that support it. require_term_colors=func_require_term_colors func_require_term_colors () { $debug_cmd test -t 1 && { # COLORTERM and USE_ANSI_COLORS environment variables take # precedence, because most terminfo databases neglect to describe # whether color sequences are supported. test -n "${COLORTERM+set}" && : ${USE_ANSI_COLORS="1"} if test 1 = "$USE_ANSI_COLORS"; then # Standard ANSI escape sequences tc_reset='' tc_bold=''; tc_standout='' tc_red=''; tc_green='' tc_blue=''; tc_cyan='' else # Otherwise trust the terminfo database after all. test -n "`tput sgr0 2>/dev/null`" && { tc_reset=`tput sgr0` test -n "`tput bold 2>/dev/null`" && tc_bold=`tput bold` tc_standout=$tc_bold test -n "`tput smso 2>/dev/null`" && tc_standout=`tput smso` test -n "`tput setaf 1 2>/dev/null`" && tc_red=`tput setaf 1` test -n "`tput setaf 2 2>/dev/null`" && tc_green=`tput setaf 2` test -n "`tput setaf 4 2>/dev/null`" && tc_blue=`tput setaf 4` test -n "`tput setaf 5 2>/dev/null`" && tc_cyan=`tput setaf 5` } fi } require_term_colors=: } ## ----------------- ## ## Function library. ## ## ----------------- ## # This section contains a variety of useful functions to call in your # scripts. Take note of the portable wrappers for features provided by # some modern shells, which will fall back to slower equivalents on # less featureful shells. # func_append VAR VALUE # --------------------- # Append VALUE onto the existing contents of VAR. # We should try to minimise forks, especially on Windows where they are # unreasonably slow, so skip the feature probes when bash or zsh are # being used: if test set = "${BASH_VERSION+set}${ZSH_VERSION+set}"; then : ${_G_HAVE_ARITH_OP="yes"} : ${_G_HAVE_XSI_OPS="yes"} # The += operator was introduced in bash 3.1 case $BASH_VERSION in [12].* | 3.0 | 3.0*) ;; *) : ${_G_HAVE_PLUSEQ_OP="yes"} ;; esac fi # _G_HAVE_PLUSEQ_OP # Can be empty, in which case the shell is probed, "yes" if += is # useable or anything else if it does not work. test -z "$_G_HAVE_PLUSEQ_OP" \ && (eval 'x=a; x+=" b"; test "a b" = "$x"') 2>/dev/null \ && _G_HAVE_PLUSEQ_OP=yes if test yes = "$_G_HAVE_PLUSEQ_OP" then # This is an XSI compatible shell, allowing a faster implementation... eval 'func_append () { $debug_cmd eval "$1+=\$2" }' else # ...otherwise fall back to using expr, which is often a shell builtin. func_append () { $debug_cmd eval "$1=\$$1\$2" } fi # func_append_quoted VAR VALUE # ---------------------------- # Quote VALUE and append to the end of shell variable VAR, separated # by a space. if test yes = "$_G_HAVE_PLUSEQ_OP"; then eval 'func_append_quoted () { $debug_cmd func_quote_for_eval "$2" eval "$1+=\\ \$func_quote_for_eval_result" }' else func_append_quoted () { $debug_cmd func_quote_for_eval "$2" eval "$1=\$$1\\ \$func_quote_for_eval_result" } fi # func_append_uniq VAR VALUE # -------------------------- # Append unique VALUE onto the existing contents of VAR, assuming # entries are delimited by the first character of VALUE. For example: # # func_append_uniq options " --another-option option-argument" # # will only append to $options if " --another-option option-argument " # is not already present somewhere in $options already (note spaces at # each end implied by leading space in second argument). func_append_uniq () { $debug_cmd eval _G_current_value='`$ECHO $'$1'`' _G_delim=`expr "$2" : '\(.\)'` case $_G_delim$_G_current_value$_G_delim in *"$2$_G_delim"*) ;; *) func_append "$@" ;; esac } # func_arith TERM... # ------------------ # Set func_arith_result to the result of evaluating TERMs. test -z "$_G_HAVE_ARITH_OP" \ && (eval 'test 2 = $(( 1 + 1 ))') 2>/dev/null \ && _G_HAVE_ARITH_OP=yes if test yes = "$_G_HAVE_ARITH_OP"; then eval 'func_arith () { $debug_cmd func_arith_result=$(( $* )) }' else func_arith () { $debug_cmd func_arith_result=`expr "$@"` } fi # func_basename FILE # ------------------ # Set func_basename_result to FILE with everything up to and including # the last / stripped. if test yes = "$_G_HAVE_XSI_OPS"; then # If this shell supports suffix pattern removal, then use it to avoid # forking. Hide the definitions single quotes in case the shell chokes # on unsupported syntax... _b='func_basename_result=${1##*/}' _d='case $1 in */*) func_dirname_result=${1%/*}$2 ;; * ) func_dirname_result=$3 ;; esac' else # ...otherwise fall back to using sed. _b='func_basename_result=`$ECHO "$1" |$SED "$sed_basename"`' _d='func_dirname_result=`$ECHO "$1" |$SED "$sed_dirname"` if test "X$func_dirname_result" = "X$1"; then func_dirname_result=$3 else func_append func_dirname_result "$2" fi' fi eval 'func_basename () { $debug_cmd '"$_b"' }' # func_dirname FILE APPEND NONDIR_REPLACEMENT # ------------------------------------------- # Compute the dirname of FILE. If nonempty, add APPEND to the result, # otherwise set result to NONDIR_REPLACEMENT. eval 'func_dirname () { $debug_cmd '"$_d"' }' # func_dirname_and_basename FILE APPEND NONDIR_REPLACEMENT # -------------------------------------------------------- # Perform func_basename and func_dirname in a single function # call: # dirname: Compute the dirname of FILE. If nonempty, # add APPEND to the result, otherwise set result # to NONDIR_REPLACEMENT. # value returned in "$func_dirname_result" # basename: Compute filename of FILE. # value retuned in "$func_basename_result" # For efficiency, we do not delegate to the functions above but instead # duplicate the functionality here. eval 'func_dirname_and_basename () { $debug_cmd '"$_b"' '"$_d"' }' # func_echo ARG... # ---------------- # Echo program name prefixed message. func_echo () { $debug_cmd _G_message=$* func_echo_IFS=$IFS IFS=$nl for _G_line in $_G_message; do IFS=$func_echo_IFS $ECHO "$progname: $_G_line" done IFS=$func_echo_IFS } # func_echo_all ARG... # -------------------- # Invoke $ECHO with all args, space-separated. func_echo_all () { $ECHO "$*" } # func_echo_infix_1 INFIX ARG... # ------------------------------ # Echo program name, followed by INFIX on the first line, with any # additional lines not showing INFIX. func_echo_infix_1 () { $debug_cmd $require_term_colors _G_infix=$1; shift _G_indent=$_G_infix _G_prefix="$progname: $_G_infix: " _G_message=$* # Strip color escape sequences before counting printable length for _G_tc in "$tc_reset" "$tc_bold" "$tc_standout" "$tc_red" "$tc_green" "$tc_blue" "$tc_cyan" do test -n "$_G_tc" && { _G_esc_tc=`$ECHO "$_G_tc" | $SED "$sed_make_literal_regex"` _G_indent=`$ECHO "$_G_indent" | $SED "s|$_G_esc_tc||g"` } done _G_indent="$progname: "`echo "$_G_indent" | $SED 's|.| |g'`" " ## exclude from sc_prohibit_nested_quotes func_echo_infix_1_IFS=$IFS IFS=$nl for _G_line in $_G_message; do IFS=$func_echo_infix_1_IFS $ECHO "$_G_prefix$tc_bold$_G_line$tc_reset" >&2 _G_prefix=$_G_indent done IFS=$func_echo_infix_1_IFS } # func_error ARG... # ----------------- # Echo program name prefixed message to standard error. func_error () { $debug_cmd $require_term_colors func_echo_infix_1 " $tc_standout${tc_red}error$tc_reset" "$*" >&2 } # func_fatal_error ARG... # ----------------------- # Echo program name prefixed message to standard error, and exit. func_fatal_error () { $debug_cmd func_error "$*" exit $EXIT_FAILURE } # func_grep EXPRESSION FILENAME # ----------------------------- # Check whether EXPRESSION matches any line of FILENAME, without output. func_grep () { $debug_cmd $GREP "$1" "$2" >/dev/null 2>&1 } # func_len STRING # --------------- # Set func_len_result to the length of STRING. STRING may not # start with a hyphen. test -z "$_G_HAVE_XSI_OPS" \ && (eval 'x=a/b/c; test 5aa/bb/cc = "${#x}${x%%/*}${x%/*}${x#*/}${x##*/}"') 2>/dev/null \ && _G_HAVE_XSI_OPS=yes if test yes = "$_G_HAVE_XSI_OPS"; then eval 'func_len () { $debug_cmd func_len_result=${#1} }' else func_len () { $debug_cmd func_len_result=`expr "$1" : ".*" 2>/dev/null || echo $max_cmd_len` } fi # func_mkdir_p DIRECTORY-PATH # --------------------------- # Make sure the entire path to DIRECTORY-PATH is available. func_mkdir_p () { $debug_cmd _G_directory_path=$1 _G_dir_list= if test -n "$_G_directory_path" && test : != "$opt_dry_run"; then # Protect directory names starting with '-' case $_G_directory_path in -*) _G_directory_path=./$_G_directory_path ;; esac # While some portion of DIR does not yet exist... while test ! -d "$_G_directory_path"; do # ...make a list in topmost first order. Use a colon delimited # list incase some portion of path contains whitespace. _G_dir_list=$_G_directory_path:$_G_dir_list # If the last portion added has no slash in it, the list is done case $_G_directory_path in */*) ;; *) break ;; esac # ...otherwise throw away the child directory and loop _G_directory_path=`$ECHO "$_G_directory_path" | $SED -e "$sed_dirname"` done _G_dir_list=`$ECHO "$_G_dir_list" | $SED 's|:*$||'` func_mkdir_p_IFS=$IFS; IFS=: for _G_dir in $_G_dir_list; do IFS=$func_mkdir_p_IFS # mkdir can fail with a 'File exist' error if two processes # try to create one of the directories concurrently. Don't # stop in that case! $MKDIR "$_G_dir" 2>/dev/null || : done IFS=$func_mkdir_p_IFS # Bail out if we (or some other process) failed to create a directory. test -d "$_G_directory_path" || \ func_fatal_error "Failed to create '$1'" fi } # func_mktempdir [BASENAME] # ------------------------- # Make a temporary directory that won't clash with other running # libtool processes, and avoids race conditions if possible. If # given, BASENAME is the basename for that directory. func_mktempdir () { $debug_cmd _G_template=${TMPDIR-/tmp}/${1-$progname} if test : = "$opt_dry_run"; then # Return a directory name, but don't create it in dry-run mode _G_tmpdir=$_G_template-$$ else # If mktemp works, use that first and foremost _G_tmpdir=`mktemp -d "$_G_template-XXXXXXXX" 2>/dev/null` if test ! -d "$_G_tmpdir"; then # Failing that, at least try and use $RANDOM to avoid a race _G_tmpdir=$_G_template-${RANDOM-0}$$ func_mktempdir_umask=`umask` umask 0077 $MKDIR "$_G_tmpdir" umask $func_mktempdir_umask fi # If we're not in dry-run mode, bomb out on failure test -d "$_G_tmpdir" || \ func_fatal_error "cannot create temporary directory '$_G_tmpdir'" fi $ECHO "$_G_tmpdir" } # func_normal_abspath PATH # ------------------------ # Remove doubled-up and trailing slashes, "." path components, # and cancel out any ".." path components in PATH after making # it an absolute path. func_normal_abspath () { $debug_cmd # These SED scripts presuppose an absolute path with a trailing slash. _G_pathcar='s|^/\([^/]*\).*$|\1|' _G_pathcdr='s|^/[^/]*||' _G_removedotparts=':dotsl s|/\./|/|g t dotsl s|/\.$|/|' _G_collapseslashes='s|/\{1,\}|/|g' _G_finalslash='s|/*$|/|' # Start from root dir and reassemble the path. func_normal_abspath_result= func_normal_abspath_tpath=$1 func_normal_abspath_altnamespace= case $func_normal_abspath_tpath in "") # Empty path, that just means $cwd. func_stripname '' '/' "`pwd`" func_normal_abspath_result=$func_stripname_result return ;; # The next three entries are used to spot a run of precisely # two leading slashes without using negated character classes; # we take advantage of case's first-match behaviour. ///*) # Unusual form of absolute path, do nothing. ;; //*) # Not necessarily an ordinary path; POSIX reserves leading '//' # and for example Cygwin uses it to access remote file shares # over CIFS/SMB, so we conserve a leading double slash if found. func_normal_abspath_altnamespace=/ ;; /*) # Absolute path, do nothing. ;; *) # Relative path, prepend $cwd. func_normal_abspath_tpath=`pwd`/$func_normal_abspath_tpath ;; esac # Cancel out all the simple stuff to save iterations. We also want # the path to end with a slash for ease of parsing, so make sure # there is one (and only one) here. func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \ -e "$_G_removedotparts" -e "$_G_collapseslashes" -e "$_G_finalslash"` while :; do # Processed it all yet? if test / = "$func_normal_abspath_tpath"; then # If we ascended to the root using ".." the result may be empty now. if test -z "$func_normal_abspath_result"; then func_normal_abspath_result=/ fi break fi func_normal_abspath_tcomponent=`$ECHO "$func_normal_abspath_tpath" | $SED \ -e "$_G_pathcar"` func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \ -e "$_G_pathcdr"` # Figure out what to do with it case $func_normal_abspath_tcomponent in "") # Trailing empty path component, ignore it. ;; ..) # Parent dir; strip last assembled component from result. func_dirname "$func_normal_abspath_result" func_normal_abspath_result=$func_dirname_result ;; *) # Actual path component, append it. func_append func_normal_abspath_result "/$func_normal_abspath_tcomponent" ;; esac done # Restore leading double-slash if one was found on entry. func_normal_abspath_result=$func_normal_abspath_altnamespace$func_normal_abspath_result } # func_notquiet ARG... # -------------------- # Echo program name prefixed message only when not in quiet mode. func_notquiet () { $debug_cmd $opt_quiet || func_echo ${1+"$@"} # A bug in bash halts the script if the last line of a function # fails when set -e is in force, so we need another command to # work around that: : } # func_relative_path SRCDIR DSTDIR # -------------------------------- # Set func_relative_path_result to the relative path from SRCDIR to DSTDIR. func_relative_path () { $debug_cmd func_relative_path_result= func_normal_abspath "$1" func_relative_path_tlibdir=$func_normal_abspath_result func_normal_abspath "$2" func_relative_path_tbindir=$func_normal_abspath_result # Ascend the tree starting from libdir while :; do # check if we have found a prefix of bindir case $func_relative_path_tbindir in $func_relative_path_tlibdir) # found an exact match func_relative_path_tcancelled= break ;; $func_relative_path_tlibdir*) # found a matching prefix func_stripname "$func_relative_path_tlibdir" '' "$func_relative_path_tbindir" func_relative_path_tcancelled=$func_stripname_result if test -z "$func_relative_path_result"; then func_relative_path_result=. fi break ;; *) func_dirname $func_relative_path_tlibdir func_relative_path_tlibdir=$func_dirname_result if test -z "$func_relative_path_tlibdir"; then # Have to descend all the way to the root! func_relative_path_result=../$func_relative_path_result func_relative_path_tcancelled=$func_relative_path_tbindir break fi func_relative_path_result=../$func_relative_path_result ;; esac done # Now calculate path; take care to avoid doubling-up slashes. func_stripname '' '/' "$func_relative_path_result" func_relative_path_result=$func_stripname_result func_stripname '/' '/' "$func_relative_path_tcancelled" if test -n "$func_stripname_result"; then func_append func_relative_path_result "/$func_stripname_result" fi # Normalisation. If bindir is libdir, return '.' else relative path. if test -n "$func_relative_path_result"; then func_stripname './' '' "$func_relative_path_result" func_relative_path_result=$func_stripname_result fi test -n "$func_relative_path_result" || func_relative_path_result=. : } # func_quote_for_eval ARG... # -------------------------- # Aesthetically quote ARGs to be evaled later. # This function returns two values: # i) func_quote_for_eval_result # double-quoted, suitable for a subsequent eval # ii) func_quote_for_eval_unquoted_result # has all characters that are still active within double # quotes backslashified. func_quote_for_eval () { $debug_cmd func_quote_for_eval_unquoted_result= func_quote_for_eval_result= while test 0 -lt $#; do case $1 in *[\\\`\"\$]*) _G_unquoted_arg=`printf '%s\n' "$1" |$SED "$sed_quote_subst"` ;; *) _G_unquoted_arg=$1 ;; esac if test -n "$func_quote_for_eval_unquoted_result"; then func_append func_quote_for_eval_unquoted_result " $_G_unquoted_arg" else func_append func_quote_for_eval_unquoted_result "$_G_unquoted_arg" fi case $_G_unquoted_arg in # Double-quote args containing shell metacharacters to delay # word splitting, command substitution and variable expansion # for a subsequent eval. # Many Bourne shells cannot handle close brackets correctly # in scan sets, so we specify it separately. *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") _G_quoted_arg=\"$_G_unquoted_arg\" ;; *) _G_quoted_arg=$_G_unquoted_arg ;; esac if test -n "$func_quote_for_eval_result"; then func_append func_quote_for_eval_result " $_G_quoted_arg" else func_append func_quote_for_eval_result "$_G_quoted_arg" fi shift done } # func_quote_for_expand ARG # ------------------------- # Aesthetically quote ARG to be evaled later; same as above, # but do not quote variable references. func_quote_for_expand () { $debug_cmd case $1 in *[\\\`\"]*) _G_arg=`$ECHO "$1" | $SED \ -e "$sed_double_quote_subst" -e "$sed_double_backslash"` ;; *) _G_arg=$1 ;; esac case $_G_arg in # Double-quote args containing shell metacharacters to delay # word splitting and command substitution for a subsequent eval. # Many Bourne shells cannot handle close brackets correctly # in scan sets, so we specify it separately. *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") _G_arg=\"$_G_arg\" ;; esac func_quote_for_expand_result=$_G_arg } # func_stripname PREFIX SUFFIX NAME # --------------------------------- # strip PREFIX and SUFFIX from NAME, and store in func_stripname_result. # PREFIX and SUFFIX must not contain globbing or regex special # characters, hashes, percent signs, but SUFFIX may contain a leading # dot (in which case that matches only a dot). if test yes = "$_G_HAVE_XSI_OPS"; then eval 'func_stripname () { $debug_cmd # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are # positional parameters, so assign one to ordinary variable first. func_stripname_result=$3 func_stripname_result=${func_stripname_result#"$1"} func_stripname_result=${func_stripname_result%"$2"} }' else func_stripname () { $debug_cmd case $2 in .*) func_stripname_result=`$ECHO "$3" | $SED -e "s%^$1%%" -e "s%\\\\$2\$%%"`;; *) func_stripname_result=`$ECHO "$3" | $SED -e "s%^$1%%" -e "s%$2\$%%"`;; esac } fi # func_show_eval CMD [FAIL_EXP] # ----------------------------- # Unless opt_quiet is true, then output CMD. Then, if opt_dryrun is # not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP # is given, then evaluate it. func_show_eval () { $debug_cmd _G_cmd=$1 _G_fail_exp=${2-':'} func_quote_for_expand "$_G_cmd" eval "func_notquiet $func_quote_for_expand_result" $opt_dry_run || { eval "$_G_cmd" _G_status=$? if test 0 -ne "$_G_status"; then eval "(exit $_G_status); $_G_fail_exp" fi } } # func_show_eval_locale CMD [FAIL_EXP] # ------------------------------------ # Unless opt_quiet is true, then output CMD. Then, if opt_dryrun is # not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP # is given, then evaluate it. Use the saved locale for evaluation. func_show_eval_locale () { $debug_cmd _G_cmd=$1 _G_fail_exp=${2-':'} $opt_quiet || { func_quote_for_expand "$_G_cmd" eval "func_echo $func_quote_for_expand_result" } $opt_dry_run || { eval "$_G_user_locale $_G_cmd" _G_status=$? eval "$_G_safe_locale" if test 0 -ne "$_G_status"; then eval "(exit $_G_status); $_G_fail_exp" fi } } # func_tr_sh # ---------- # Turn $1 into a string suitable for a shell variable name. # Result is stored in $func_tr_sh_result. All characters # not in the set a-zA-Z0-9_ are replaced with '_'. Further, # if $1 begins with a digit, a '_' is prepended as well. func_tr_sh () { $debug_cmd case $1 in [0-9]* | *[!a-zA-Z0-9_]*) func_tr_sh_result=`$ECHO "$1" | $SED -e 's/^\([0-9]\)/_\1/' -e 's/[^a-zA-Z0-9_]/_/g'` ;; * ) func_tr_sh_result=$1 ;; esac } # func_verbose ARG... # ------------------- # Echo program name prefixed message in verbose mode only. func_verbose () { $debug_cmd $opt_verbose && func_echo "$*" : } # func_warn_and_continue ARG... # ----------------------------- # Echo program name prefixed warning message to standard error. func_warn_and_continue () { $debug_cmd $require_term_colors func_echo_infix_1 "${tc_red}warning$tc_reset" "$*" >&2 } # func_warning CATEGORY ARG... # ---------------------------- # Echo program name prefixed warning message to standard error. Warning # messages can be filtered according to CATEGORY, where this function # elides messages where CATEGORY is not listed in the global variable # 'opt_warning_types'. func_warning () { $debug_cmd # CATEGORY must be in the warning_categories list! case " $warning_categories " in *" $1 "*) ;; *) func_internal_error "invalid warning category '$1'" ;; esac _G_category=$1 shift case " $opt_warning_types " in *" $_G_category "*) $warning_func ${1+"$@"} ;; esac } # func_sort_ver VER1 VER2 # ----------------------- # 'sort -V' is not generally available. # Note this deviates from the version comparison in automake # in that it treats 1.5 < 1.5.0, and treats 1.4.4a < 1.4-p3a # but this should suffice as we won't be specifying old # version formats or redundant trailing .0 in bootstrap.conf. # If we did want full compatibility then we should probably # use m4_version_compare from autoconf. func_sort_ver () { $debug_cmd printf '%s\n%s\n' "$1" "$2" \ | sort -t. -k 1,1n -k 2,2n -k 3,3n -k 4,4n -k 5,5n -k 6,6n -k 7,7n -k 8,8n -k 9,9n } # func_lt_ver PREV CURR # --------------------- # Return true if PREV and CURR are in the correct order according to # func_sort_ver, otherwise false. Use it like this: # # func_lt_ver "$prev_ver" "$proposed_ver" || func_fatal_error "..." func_lt_ver () { $debug_cmd test "x$1" = x`func_sort_ver "$1" "$2" | $SED 1q` } # Local variables: # mode: shell-script # sh-indentation: 2 # eval: (add-hook 'before-save-hook 'time-stamp) # time-stamp-pattern: "10/scriptversion=%:y-%02m-%02d.%02H; # UTC" # time-stamp-time-zone: "UTC" # End: #! /bin/sh # Set a version string for this script. scriptversion=2014-01-07.03; # UTC # A portable, pluggable option parser for Bourne shell. # Written by Gary V. Vaughan, 2010 # Copyright (C) 2010-2015 Free Software Foundation, Inc. # This is free software; see the source for copying conditions. There is NO # warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. # 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 3 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, see . # Please report bugs or propose patches to gary@gnu.org. ## ------ ## ## Usage. ## ## ------ ## # This file is a library for parsing options in your shell scripts along # with assorted other useful supporting features that you can make use # of too. # # For the simplest scripts you might need only: # # #!/bin/sh # . relative/path/to/funclib.sh # . relative/path/to/options-parser # scriptversion=1.0 # func_options ${1+"$@"} # eval set dummy "$func_options_result"; shift # ...rest of your script... # # In order for the '--version' option to work, you will need to have a # suitably formatted comment like the one at the top of this file # starting with '# Written by ' and ending with '# warranty; '. # # For '-h' and '--help' to work, you will also need a one line # description of your script's purpose in a comment directly above the # '# Written by ' line, like the one at the top of this file. # # The default options also support '--debug', which will turn on shell # execution tracing (see the comment above debug_cmd below for another # use), and '--verbose' and the func_verbose function to allow your script # to display verbose messages only when your user has specified # '--verbose'. # # After sourcing this file, you can plug processing for additional # options by amending the variables from the 'Configuration' section # below, and following the instructions in the 'Option parsing' # section further down. ## -------------- ## ## Configuration. ## ## -------------- ## # You should override these variables in your script after sourcing this # file so that they reflect the customisations you have added to the # option parser. # The usage line for option parsing errors and the start of '-h' and # '--help' output messages. You can embed shell variables for delayed # expansion at the time the message is displayed, but you will need to # quote other shell meta-characters carefully to prevent them being # expanded when the contents are evaled. usage='$progpath [OPTION]...' # Short help message in response to '-h' and '--help'. Add to this or # override it after sourcing this library to reflect the full set of # options your script accepts. usage_message="\ --debug enable verbose shell tracing -W, --warnings=CATEGORY report the warnings falling in CATEGORY [all] -v, --verbose verbosely report processing --version print version information and exit -h, --help print short or long help message and exit " # Additional text appended to 'usage_message' in response to '--help'. long_help_message=" Warning categories include: 'all' show all warnings 'none' turn off all the warnings 'error' warnings are treated as fatal errors" # Help message printed before fatal option parsing errors. fatal_help="Try '\$progname --help' for more information." ## ------------------------- ## ## Hook function management. ## ## ------------------------- ## # This section contains functions for adding, removing, and running hooks # to the main code. A hook is just a named list of of function, that can # be run in order later on. # func_hookable FUNC_NAME # ----------------------- # Declare that FUNC_NAME will run hooks added with # 'func_add_hook FUNC_NAME ...'. func_hookable () { $debug_cmd func_append hookable_fns " $1" } # func_add_hook FUNC_NAME HOOK_FUNC # --------------------------------- # Request that FUNC_NAME call HOOK_FUNC before it returns. FUNC_NAME must # first have been declared "hookable" by a call to 'func_hookable'. func_add_hook () { $debug_cmd case " $hookable_fns " in *" $1 "*) ;; *) func_fatal_error "'$1' does not accept hook functions." ;; esac eval func_append ${1}_hooks '" $2"' } # func_remove_hook FUNC_NAME HOOK_FUNC # ------------------------------------ # Remove HOOK_FUNC from the list of functions called by FUNC_NAME. func_remove_hook () { $debug_cmd eval ${1}_hooks='`$ECHO "\$'$1'_hooks" |$SED "s| '$2'||"`' } # func_run_hooks FUNC_NAME [ARG]... # --------------------------------- # Run all hook functions registered to FUNC_NAME. # It is assumed that the list of hook functions contains nothing more # than a whitespace-delimited list of legal shell function names, and # no effort is wasted trying to catch shell meta-characters or preserve # whitespace. func_run_hooks () { $debug_cmd case " $hookable_fns " in *" $1 "*) ;; *) func_fatal_error "'$1' does not support hook funcions.n" ;; esac eval _G_hook_fns=\$$1_hooks; shift for _G_hook in $_G_hook_fns; do eval $_G_hook '"$@"' # store returned options list back into positional # parameters for next 'cmd' execution. eval _G_hook_result=\$${_G_hook}_result eval set dummy "$_G_hook_result"; shift done func_quote_for_eval ${1+"$@"} func_run_hooks_result=$func_quote_for_eval_result } ## --------------- ## ## Option parsing. ## ## --------------- ## # In order to add your own option parsing hooks, you must accept the # full positional parameter list in your hook function, remove any # options that you action, and then pass back the remaining unprocessed # options in '_result', escaped suitably for # 'eval'. Like this: # # my_options_prep () # { # $debug_cmd # # # Extend the existing usage message. # usage_message=$usage_message' # -s, --silent don'\''t print informational messages # ' # # func_quote_for_eval ${1+"$@"} # my_options_prep_result=$func_quote_for_eval_result # } # func_add_hook func_options_prep my_options_prep # # # my_silent_option () # { # $debug_cmd # # # Note that for efficiency, we parse as many options as we can # # recognise in a loop before passing the remainder back to the # # caller on the first unrecognised argument we encounter. # while test $# -gt 0; do # opt=$1; shift # case $opt in # --silent|-s) opt_silent=: ;; # # Separate non-argument short options: # -s*) func_split_short_opt "$_G_opt" # set dummy "$func_split_short_opt_name" \ # "-$func_split_short_opt_arg" ${1+"$@"} # shift # ;; # *) set dummy "$_G_opt" "$*"; shift; break ;; # esac # done # # func_quote_for_eval ${1+"$@"} # my_silent_option_result=$func_quote_for_eval_result # } # func_add_hook func_parse_options my_silent_option # # # my_option_validation () # { # $debug_cmd # # $opt_silent && $opt_verbose && func_fatal_help "\ # '--silent' and '--verbose' options are mutually exclusive." # # func_quote_for_eval ${1+"$@"} # my_option_validation_result=$func_quote_for_eval_result # } # func_add_hook func_validate_options my_option_validation # # You'll alse need to manually amend $usage_message to reflect the extra # options you parse. It's preferable to append if you can, so that # multiple option parsing hooks can be added safely. # func_options [ARG]... # --------------------- # All the functions called inside func_options are hookable. See the # individual implementations for details. func_hookable func_options func_options () { $debug_cmd func_options_prep ${1+"$@"} eval func_parse_options \ ${func_options_prep_result+"$func_options_prep_result"} eval func_validate_options \ ${func_parse_options_result+"$func_parse_options_result"} eval func_run_hooks func_options \ ${func_validate_options_result+"$func_validate_options_result"} # save modified positional parameters for caller func_options_result=$func_run_hooks_result } # func_options_prep [ARG]... # -------------------------- # All initialisations required before starting the option parse loop. # Note that when calling hook functions, we pass through the list of # positional parameters. If a hook function modifies that list, and # needs to propogate that back to rest of this script, then the complete # modified list must be put in 'func_run_hooks_result' before # returning. func_hookable func_options_prep func_options_prep () { $debug_cmd # Option defaults: opt_verbose=false opt_warning_types= func_run_hooks func_options_prep ${1+"$@"} # save modified positional parameters for caller func_options_prep_result=$func_run_hooks_result } # func_parse_options [ARG]... # --------------------------- # The main option parsing loop. func_hookable func_parse_options func_parse_options () { $debug_cmd func_parse_options_result= # this just eases exit handling while test $# -gt 0; do # Defer to hook functions for initial option parsing, so they # get priority in the event of reusing an option name. func_run_hooks func_parse_options ${1+"$@"} # Adjust func_parse_options positional parameters to match eval set dummy "$func_run_hooks_result"; shift # Break out of the loop if we already parsed every option. test $# -gt 0 || break _G_opt=$1 shift case $_G_opt in --debug|-x) debug_cmd='set -x' func_echo "enabling shell trace mode" $debug_cmd ;; --no-warnings|--no-warning|--no-warn) set dummy --warnings none ${1+"$@"} shift ;; --warnings|--warning|-W) test $# = 0 && func_missing_arg $_G_opt && break case " $warning_categories $1" in *" $1 "*) # trailing space prevents matching last $1 above func_append_uniq opt_warning_types " $1" ;; *all) opt_warning_types=$warning_categories ;; *none) opt_warning_types=none warning_func=: ;; *error) opt_warning_types=$warning_categories warning_func=func_fatal_error ;; *) func_fatal_error \ "unsupported warning category: '$1'" ;; esac shift ;; --verbose|-v) opt_verbose=: ;; --version) func_version ;; -\?|-h) func_usage ;; --help) func_help ;; # Separate optargs to long options (plugins may need this): --*=*) func_split_equals "$_G_opt" set dummy "$func_split_equals_lhs" \ "$func_split_equals_rhs" ${1+"$@"} shift ;; # Separate optargs to short options: -W*) func_split_short_opt "$_G_opt" set dummy "$func_split_short_opt_name" \ "$func_split_short_opt_arg" ${1+"$@"} shift ;; # Separate non-argument short options: -\?*|-h*|-v*|-x*) func_split_short_opt "$_G_opt" set dummy "$func_split_short_opt_name" \ "-$func_split_short_opt_arg" ${1+"$@"} shift ;; --) break ;; -*) func_fatal_help "unrecognised option: '$_G_opt'" ;; *) set dummy "$_G_opt" ${1+"$@"}; shift; break ;; esac done # save modified positional parameters for caller func_quote_for_eval ${1+"$@"} func_parse_options_result=$func_quote_for_eval_result } # func_validate_options [ARG]... # ------------------------------ # Perform any sanity checks on option settings and/or unconsumed # arguments. func_hookable func_validate_options func_validate_options () { $debug_cmd # Display all warnings if -W was not given. test -n "$opt_warning_types" || opt_warning_types=" $warning_categories" func_run_hooks func_validate_options ${1+"$@"} # Bail if the options were screwed! $exit_cmd $EXIT_FAILURE # save modified positional parameters for caller func_validate_options_result=$func_run_hooks_result } ## ----------------- ## ## Helper functions. ## ## ----------------- ## # This section contains the helper functions used by the rest of the # hookable option parser framework in ascii-betical order. # func_fatal_help ARG... # ---------------------- # Echo program name prefixed message to standard error, followed by # a help hint, and exit. func_fatal_help () { $debug_cmd eval \$ECHO \""Usage: $usage"\" eval \$ECHO \""$fatal_help"\" func_error ${1+"$@"} exit $EXIT_FAILURE } # func_help # --------- # Echo long help message to standard output and exit. func_help () { $debug_cmd func_usage_message $ECHO "$long_help_message" exit 0 } # func_missing_arg ARGNAME # ------------------------ # Echo program name prefixed message to standard error and set global # exit_cmd. func_missing_arg () { $debug_cmd func_error "Missing argument for '$1'." exit_cmd=exit } # func_split_equals STRING # ------------------------ # Set func_split_equals_lhs and func_split_equals_rhs shell variables after # splitting STRING at the '=' sign. test -z "$_G_HAVE_XSI_OPS" \ && (eval 'x=a/b/c; test 5aa/bb/cc = "${#x}${x%%/*}${x%/*}${x#*/}${x##*/}"') 2>/dev/null \ && _G_HAVE_XSI_OPS=yes if test yes = "$_G_HAVE_XSI_OPS" then # This is an XSI compatible shell, allowing a faster implementation... eval 'func_split_equals () { $debug_cmd func_split_equals_lhs=${1%%=*} func_split_equals_rhs=${1#*=} test "x$func_split_equals_lhs" = "x$1" \ && func_split_equals_rhs= }' else # ...otherwise fall back to using expr, which is often a shell builtin. func_split_equals () { $debug_cmd func_split_equals_lhs=`expr "x$1" : 'x\([^=]*\)'` func_split_equals_rhs= test "x$func_split_equals_lhs" = "x$1" \ || func_split_equals_rhs=`expr "x$1" : 'x[^=]*=\(.*\)$'` } fi #func_split_equals # func_split_short_opt SHORTOPT # ----------------------------- # Set func_split_short_opt_name and func_split_short_opt_arg shell # variables after splitting SHORTOPT after the 2nd character. if test yes = "$_G_HAVE_XSI_OPS" then # This is an XSI compatible shell, allowing a faster implementation... eval 'func_split_short_opt () { $debug_cmd func_split_short_opt_arg=${1#??} func_split_short_opt_name=${1%"$func_split_short_opt_arg"} }' else # ...otherwise fall back to using expr, which is often a shell builtin. func_split_short_opt () { $debug_cmd func_split_short_opt_name=`expr "x$1" : 'x-\(.\)'` func_split_short_opt_arg=`expr "x$1" : 'x-.\(.*\)$'` } fi #func_split_short_opt # func_usage # ---------- # Echo short help message to standard output and exit. func_usage () { $debug_cmd func_usage_message $ECHO "Run '$progname --help |${PAGER-more}' for full usage" exit 0 } # func_usage_message # ------------------ # Echo short help message to standard output. func_usage_message () { $debug_cmd eval \$ECHO \""Usage: $usage"\" echo $SED -n 's|^# || /^Written by/{ x;p;x } h /^Written by/q' < "$progpath" echo eval \$ECHO \""$usage_message"\" } # func_version # ------------ # Echo version message to standard output and exit. func_version () { $debug_cmd printf '%s\n' "$progname $scriptversion" $SED -n ' /(C)/!b go :more /\./!{ N s|\n# | | b more } :go /^# Written by /,/# warranty; / { s|^# || s|^# *$|| s|\((C)\)[ 0-9,-]*[ ,-]\([1-9][0-9]* \)|\1 \2| p } /^# Written by / { s|^# || p } /^warranty; /q' < "$progpath" exit $? } # Local variables: # mode: shell-script # sh-indentation: 2 # eval: (add-hook 'before-save-hook 'time-stamp) # time-stamp-pattern: "10/scriptversion=%:y-%02m-%02d.%02H; # UTC" # time-stamp-time-zone: "UTC" # End: # Set a version string. scriptversion='(GNU libtool) 2.4.6' # func_echo ARG... # ---------------- # Libtool also displays the current mode in messages, so override # funclib.sh func_echo with this custom definition. func_echo () { $debug_cmd _G_message=$* func_echo_IFS=$IFS IFS=$nl for _G_line in $_G_message; do IFS=$func_echo_IFS $ECHO "$progname${opt_mode+: $opt_mode}: $_G_line" done IFS=$func_echo_IFS } # func_warning ARG... # ------------------- # Libtool warnings are not categorized, so override funclib.sh # func_warning with this simpler definition. func_warning () { $debug_cmd $warning_func ${1+"$@"} } ## ---------------- ## ## Options parsing. ## ## ---------------- ## # Hook in the functions to make sure our own options are parsed during # the option parsing loop. usage='$progpath [OPTION]... [MODE-ARG]...' # Short help message in response to '-h'. usage_message="Options: --config show all configuration variables --debug enable verbose shell tracing -n, --dry-run display commands without modifying any files --features display basic configuration information and exit --mode=MODE use operation mode MODE --no-warnings equivalent to '-Wnone' --preserve-dup-deps don't remove duplicate dependency libraries --quiet, --silent don't print informational messages --tag=TAG use configuration variables from tag TAG -v, --verbose print more informational messages than default --version print version information -W, --warnings=CATEGORY report the warnings falling in CATEGORY [all] -h, --help, --help-all print short, long, or detailed help message " # Additional text appended to 'usage_message' in response to '--help'. func_help () { $debug_cmd func_usage_message $ECHO "$long_help_message MODE must be one of the following: clean remove files from the build directory compile compile a source file into a libtool object execute automatically set library path, then run a program finish complete the installation of libtool libraries install install libraries or executables link create a library or an executable uninstall remove libraries from an installed directory MODE-ARGS vary depending on the MODE. When passed as first option, '--mode=MODE' may be abbreviated as 'MODE' or a unique abbreviation of that. Try '$progname --help --mode=MODE' for a more detailed description of MODE. When reporting a bug, please describe a test case to reproduce it and include the following information: host-triplet: $host shell: $SHELL compiler: $LTCC compiler flags: $LTCFLAGS linker: $LD (gnu? $with_gnu_ld) version: $progname $scriptversion Debian-2.4.6-2 automake: `($AUTOMAKE --version) 2>/dev/null |$SED 1q` autoconf: `($AUTOCONF --version) 2>/dev/null |$SED 1q` Report bugs to . GNU libtool home page: . General help using GNU software: ." exit 0 } # func_lo2o OBJECT-NAME # --------------------- # Transform OBJECT-NAME from a '.lo' suffix to the platform specific # object suffix. lo2o=s/\\.lo\$/.$objext/ o2lo=s/\\.$objext\$/.lo/ if test yes = "$_G_HAVE_XSI_OPS"; then eval 'func_lo2o () { case $1 in *.lo) func_lo2o_result=${1%.lo}.$objext ;; * ) func_lo2o_result=$1 ;; esac }' # func_xform LIBOBJ-OR-SOURCE # --------------------------- # Transform LIBOBJ-OR-SOURCE from a '.o' or '.c' (or otherwise) # suffix to a '.lo' libtool-object suffix. eval 'func_xform () { func_xform_result=${1%.*}.lo }' else # ...otherwise fall back to using sed. func_lo2o () { func_lo2o_result=`$ECHO "$1" | $SED "$lo2o"` } func_xform () { func_xform_result=`$ECHO "$1" | $SED 's|\.[^.]*$|.lo|'` } fi # func_fatal_configuration ARG... # ------------------------------- # Echo program name prefixed message to standard error, followed by # a configuration failure hint, and exit. func_fatal_configuration () { func__fatal_error ${1+"$@"} \ "See the $PACKAGE documentation for more information." \ "Fatal configuration error." } # func_config # ----------- # Display the configuration for all the tags in this script. func_config () { re_begincf='^# ### BEGIN LIBTOOL' re_endcf='^# ### END LIBTOOL' # Default configuration. $SED "1,/$re_begincf CONFIG/d;/$re_endcf CONFIG/,\$d" < "$progpath" # Now print the configurations for the tags. for tagname in $taglist; do $SED -n "/$re_begincf TAG CONFIG: $tagname\$/,/$re_endcf TAG CONFIG: $tagname\$/p" < "$progpath" done exit $? } # func_features # ------------- # Display the features supported by this script. func_features () { echo "host: $host" if test yes = "$build_libtool_libs"; then echo "enable shared libraries" else echo "disable shared libraries" fi if test yes = "$build_old_libs"; then echo "enable static libraries" else echo "disable static libraries" fi exit $? } # func_enable_tag TAGNAME # ----------------------- # Verify that TAGNAME is valid, and either flag an error and exit, or # enable the TAGNAME tag. We also add TAGNAME to the global $taglist # variable here. func_enable_tag () { # Global variable: tagname=$1 re_begincf="^# ### BEGIN LIBTOOL TAG CONFIG: $tagname\$" re_endcf="^# ### END LIBTOOL TAG CONFIG: $tagname\$" sed_extractcf=/$re_begincf/,/$re_endcf/p # Validate tagname. case $tagname in *[!-_A-Za-z0-9,/]*) func_fatal_error "invalid tag name: $tagname" ;; esac # Don't test for the "default" C tag, as we know it's # there but not specially marked. case $tagname in CC) ;; *) if $GREP "$re_begincf" "$progpath" >/dev/null 2>&1; then taglist="$taglist $tagname" # Evaluate the configuration. Be careful to quote the path # and the sed script, to avoid splitting on whitespace, but # also don't use non-portable quotes within backquotes within # quotes we have to do it in 2 steps: extractedcf=`$SED -n -e "$sed_extractcf" < "$progpath"` eval "$extractedcf" else func_error "ignoring unknown tag $tagname" fi ;; esac } # func_check_version_match # ------------------------ # Ensure that we are using m4 macros, and libtool script from the same # release of libtool. func_check_version_match () { if test "$package_revision" != "$macro_revision"; then if test "$VERSION" != "$macro_version"; then if test -z "$macro_version"; then cat >&2 <<_LT_EOF $progname: Version mismatch error. This is $PACKAGE $VERSION, but the $progname: definition of this LT_INIT comes from an older release. $progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION $progname: and run autoconf again. _LT_EOF else cat >&2 <<_LT_EOF $progname: Version mismatch error. This is $PACKAGE $VERSION, but the $progname: definition of this LT_INIT comes from $PACKAGE $macro_version. $progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION $progname: and run autoconf again. _LT_EOF fi else cat >&2 <<_LT_EOF $progname: Version mismatch error. This is $PACKAGE $VERSION, revision $package_revision, $progname: but the definition of this LT_INIT comes from revision $macro_revision. $progname: You should recreate aclocal.m4 with macros from revision $package_revision $progname: of $PACKAGE $VERSION and run autoconf again. _LT_EOF fi exit $EXIT_MISMATCH fi } # libtool_options_prep [ARG]... # ----------------------------- # Preparation for options parsed by libtool. libtool_options_prep () { $debug_mode # Option defaults: opt_config=false opt_dlopen= opt_dry_run=false opt_help=false opt_mode= opt_preserve_dup_deps=false opt_quiet=false nonopt= preserve_args= # Shorthand for --mode=foo, only valid as the first argument case $1 in clean|clea|cle|cl) shift; set dummy --mode clean ${1+"$@"}; shift ;; compile|compil|compi|comp|com|co|c) shift; set dummy --mode compile ${1+"$@"}; shift ;; execute|execut|execu|exec|exe|ex|e) shift; set dummy --mode execute ${1+"$@"}; shift ;; finish|finis|fini|fin|fi|f) shift; set dummy --mode finish ${1+"$@"}; shift ;; install|instal|insta|inst|ins|in|i) shift; set dummy --mode install ${1+"$@"}; shift ;; link|lin|li|l) shift; set dummy --mode link ${1+"$@"}; shift ;; uninstall|uninstal|uninsta|uninst|unins|unin|uni|un|u) shift; set dummy --mode uninstall ${1+"$@"}; shift ;; esac # Pass back the list of options. func_quote_for_eval ${1+"$@"} libtool_options_prep_result=$func_quote_for_eval_result } func_add_hook func_options_prep libtool_options_prep # libtool_parse_options [ARG]... # --------------------------------- # Provide handling for libtool specific options. libtool_parse_options () { $debug_cmd # Perform our own loop to consume as many options as possible in # each iteration. while test $# -gt 0; do _G_opt=$1 shift case $_G_opt in --dry-run|--dryrun|-n) opt_dry_run=: ;; --config) func_config ;; --dlopen|-dlopen) opt_dlopen="${opt_dlopen+$opt_dlopen }$1" shift ;; --preserve-dup-deps) opt_preserve_dup_deps=: ;; --features) func_features ;; --finish) set dummy --mode finish ${1+"$@"}; shift ;; --help) opt_help=: ;; --help-all) opt_help=': help-all' ;; --mode) test $# = 0 && func_missing_arg $_G_opt && break opt_mode=$1 case $1 in # Valid mode arguments: clean|compile|execute|finish|install|link|relink|uninstall) ;; # Catch anything else as an error *) func_error "invalid argument for $_G_opt" exit_cmd=exit break ;; esac shift ;; --no-silent|--no-quiet) opt_quiet=false func_append preserve_args " $_G_opt" ;; --no-warnings|--no-warning|--no-warn) opt_warning=false func_append preserve_args " $_G_opt" ;; --no-verbose) opt_verbose=false func_append preserve_args " $_G_opt" ;; --silent|--quiet) opt_quiet=: opt_verbose=false func_append preserve_args " $_G_opt" ;; --tag) test $# = 0 && func_missing_arg $_G_opt && break opt_tag=$1 func_append preserve_args " $_G_opt $1" func_enable_tag "$1" shift ;; --verbose|-v) opt_quiet=false opt_verbose=: func_append preserve_args " $_G_opt" ;; # An option not handled by this hook function: *) set dummy "$_G_opt" ${1+"$@"}; shift; break ;; esac done # save modified positional parameters for caller func_quote_for_eval ${1+"$@"} libtool_parse_options_result=$func_quote_for_eval_result } func_add_hook func_parse_options libtool_parse_options # libtool_validate_options [ARG]... # --------------------------------- # Perform any sanity checks on option settings and/or unconsumed # arguments. libtool_validate_options () { # save first non-option argument if test 0 -lt $#; then nonopt=$1 shift fi # preserve --debug test : = "$debug_cmd" || func_append preserve_args " --debug" case $host in # Solaris2 added to fix http://debbugs.gnu.org/cgi/bugreport.cgi?bug=16452 # see also: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59788 *cygwin* | *mingw* | *pw32* | *cegcc* | *solaris2* | *os2*) # don't eliminate duplications in $postdeps and $predeps opt_duplicate_compiler_generated_deps=: ;; *) opt_duplicate_compiler_generated_deps=$opt_preserve_dup_deps ;; esac $opt_help || { # Sanity checks first: func_check_version_match test yes != "$build_libtool_libs" \ && test yes != "$build_old_libs" \ && func_fatal_configuration "not configured to build any kind of library" # Darwin sucks eval std_shrext=\"$shrext_cmds\" # Only execute mode is allowed to have -dlopen flags. if test -n "$opt_dlopen" && test execute != "$opt_mode"; then func_error "unrecognized option '-dlopen'" $ECHO "$help" 1>&2 exit $EXIT_FAILURE fi # Change the help message to a mode-specific one. generic_help=$help help="Try '$progname --help --mode=$opt_mode' for more information." } # Pass back the unparsed argument list func_quote_for_eval ${1+"$@"} libtool_validate_options_result=$func_quote_for_eval_result } func_add_hook func_validate_options libtool_validate_options # Process options as early as possible so that --help and --version # can return quickly. func_options ${1+"$@"} eval set dummy "$func_options_result"; shift ## ----------- ## ## Main. ## ## ----------- ## magic='%%%MAGIC variable%%%' magic_exe='%%%MAGIC EXE variable%%%' # Global variables. extracted_archives= extracted_serial=0 # If this variable is set in any of the actions, the command in it # will be execed at the end. This prevents here-documents from being # left over by shells. exec_cmd= # A function that is used when there is no print builtin or printf. func_fallback_echo () { eval 'cat <<_LTECHO_EOF $1 _LTECHO_EOF' } # func_generated_by_libtool # True iff stdin has been generated by Libtool. This function is only # a basic sanity check; it will hardly flush out determined imposters. func_generated_by_libtool_p () { $GREP "^# Generated by .*$PACKAGE" > /dev/null 2>&1 } # func_lalib_p file # True iff FILE is a libtool '.la' library or '.lo' object file. # This function is only a basic sanity check; it will hardly flush out # determined imposters. func_lalib_p () { test -f "$1" && $SED -e 4q "$1" 2>/dev/null | func_generated_by_libtool_p } # func_lalib_unsafe_p file # True iff FILE is a libtool '.la' library or '.lo' object file. # This function implements the same check as func_lalib_p without # resorting to external programs. To this end, it redirects stdin and # closes it afterwards, without saving the original file descriptor. # As a safety measure, use it only where a negative result would be # fatal anyway. Works if 'file' does not exist. func_lalib_unsafe_p () { lalib_p=no if test -f "$1" && test -r "$1" && exec 5<&0 <"$1"; then for lalib_p_l in 1 2 3 4 do read lalib_p_line case $lalib_p_line in \#\ Generated\ by\ *$PACKAGE* ) lalib_p=yes; break;; esac done exec 0<&5 5<&- fi test yes = "$lalib_p" } # func_ltwrapper_script_p file # True iff FILE is a libtool wrapper script # This function is only a basic sanity check; it will hardly flush out # determined imposters. func_ltwrapper_script_p () { test -f "$1" && $lt_truncate_bin < "$1" 2>/dev/null | func_generated_by_libtool_p } # func_ltwrapper_executable_p file # True iff FILE is a libtool wrapper executable # This function is only a basic sanity check; it will hardly flush out # determined imposters. func_ltwrapper_executable_p () { func_ltwrapper_exec_suffix= case $1 in *.exe) ;; *) func_ltwrapper_exec_suffix=.exe ;; esac $GREP "$magic_exe" "$1$func_ltwrapper_exec_suffix" >/dev/null 2>&1 } # func_ltwrapper_scriptname file # Assumes file is an ltwrapper_executable # uses $file to determine the appropriate filename for a # temporary ltwrapper_script. func_ltwrapper_scriptname () { func_dirname_and_basename "$1" "" "." func_stripname '' '.exe' "$func_basename_result" func_ltwrapper_scriptname_result=$func_dirname_result/$objdir/${func_stripname_result}_ltshwrapper } # func_ltwrapper_p file # True iff FILE is a libtool wrapper script or wrapper executable # This function is only a basic sanity check; it will hardly flush out # determined imposters. func_ltwrapper_p () { func_ltwrapper_script_p "$1" || func_ltwrapper_executable_p "$1" } # func_execute_cmds commands fail_cmd # Execute tilde-delimited COMMANDS. # If FAIL_CMD is given, eval that upon failure. # FAIL_CMD may read-access the current command in variable CMD! func_execute_cmds () { $debug_cmd save_ifs=$IFS; IFS='~' for cmd in $1; do IFS=$sp$nl eval cmd=\"$cmd\" IFS=$save_ifs func_show_eval "$cmd" "${2-:}" done IFS=$save_ifs } # func_source file # Source FILE, adding directory component if necessary. # Note that it is not necessary on cygwin/mingw to append a dot to # FILE even if both FILE and FILE.exe exist: automatic-append-.exe # behavior happens only for exec(3), not for open(2)! Also, sourcing # 'FILE.' does not work on cygwin managed mounts. func_source () { $debug_cmd case $1 in */* | *\\*) . "$1" ;; *) . "./$1" ;; esac } # func_resolve_sysroot PATH # Replace a leading = in PATH with a sysroot. Store the result into # func_resolve_sysroot_result func_resolve_sysroot () { func_resolve_sysroot_result=$1 case $func_resolve_sysroot_result in =*) func_stripname '=' '' "$func_resolve_sysroot_result" func_resolve_sysroot_result=$lt_sysroot$func_stripname_result ;; esac } # func_replace_sysroot PATH # If PATH begins with the sysroot, replace it with = and # store the result into func_replace_sysroot_result. func_replace_sysroot () { case $lt_sysroot:$1 in ?*:"$lt_sysroot"*) func_stripname "$lt_sysroot" '' "$1" func_replace_sysroot_result='='$func_stripname_result ;; *) # Including no sysroot. func_replace_sysroot_result=$1 ;; esac } # func_infer_tag arg # Infer tagged configuration to use if any are available and # if one wasn't chosen via the "--tag" command line option. # Only attempt this if the compiler in the base compile # command doesn't match the default compiler. # arg is usually of the form 'gcc ...' func_infer_tag () { $debug_cmd if test -n "$available_tags" && test -z "$tagname"; then CC_quoted= for arg in $CC; do func_append_quoted CC_quoted "$arg" done CC_expanded=`func_echo_all $CC` CC_quoted_expanded=`func_echo_all $CC_quoted` case $@ in # Blanks in the command may have been stripped by the calling shell, # but not from the CC environment variable when configure was run. " $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \ " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*) ;; # Blanks at the start of $base_compile will cause this to fail # if we don't check for them as well. *) for z in $available_tags; do if $GREP "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev/null; then # Evaluate the configuration. eval "`$SED -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`" CC_quoted= for arg in $CC; do # Double-quote args containing other shell metacharacters. func_append_quoted CC_quoted "$arg" done CC_expanded=`func_echo_all $CC` CC_quoted_expanded=`func_echo_all $CC_quoted` case "$@ " in " $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \ " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*) # The compiler in the base compile command matches # the one in the tagged configuration. # Assume this is the tagged configuration we want. tagname=$z break ;; esac fi done # If $tagname still isn't set, then no tagged configuration # was found and let the user know that the "--tag" command # line option must be used. if test -z "$tagname"; then func_echo "unable to infer tagged configuration" func_fatal_error "specify a tag with '--tag'" # else # func_verbose "using $tagname tagged configuration" fi ;; esac fi } # func_write_libtool_object output_name pic_name nonpic_name # Create a libtool object file (analogous to a ".la" file), # but don't create it if we're doing a dry run. func_write_libtool_object () { write_libobj=$1 if test yes = "$build_libtool_libs"; then write_lobj=\'$2\' else write_lobj=none fi if test yes = "$build_old_libs"; then write_oldobj=\'$3\' else write_oldobj=none fi $opt_dry_run || { cat >${write_libobj}T </dev/null` if test "$?" -eq 0 && test -n "$func_convert_core_file_wine_to_w32_tmp"; then func_convert_core_file_wine_to_w32_result=`$ECHO "$func_convert_core_file_wine_to_w32_tmp" | $SED -e "$sed_naive_backslashify"` else func_convert_core_file_wine_to_w32_result= fi fi } # end: func_convert_core_file_wine_to_w32 # func_convert_core_path_wine_to_w32 ARG # Helper function used by path conversion functions when $build is *nix, and # $host is mingw, cygwin, or some other w32 environment. Relies on a correctly # configured wine environment available, with the winepath program in $build's # $PATH. Assumes ARG has no leading or trailing path separator characters. # # ARG is path to be converted from $build format to win32. # Result is available in $func_convert_core_path_wine_to_w32_result. # Unconvertible file (directory) names in ARG are skipped; if no directory names # are convertible, then the result may be empty. func_convert_core_path_wine_to_w32 () { $debug_cmd # unfortunately, winepath doesn't convert paths, only file names func_convert_core_path_wine_to_w32_result= if test -n "$1"; then oldIFS=$IFS IFS=: for func_convert_core_path_wine_to_w32_f in $1; do IFS=$oldIFS func_convert_core_file_wine_to_w32 "$func_convert_core_path_wine_to_w32_f" if test -n "$func_convert_core_file_wine_to_w32_result"; then if test -z "$func_convert_core_path_wine_to_w32_result"; then func_convert_core_path_wine_to_w32_result=$func_convert_core_file_wine_to_w32_result else func_append func_convert_core_path_wine_to_w32_result ";$func_convert_core_file_wine_to_w32_result" fi fi done IFS=$oldIFS fi } # end: func_convert_core_path_wine_to_w32 # func_cygpath ARGS... # Wrapper around calling the cygpath program via LT_CYGPATH. This is used when # when (1) $build is *nix and Cygwin is hosted via a wine environment; or (2) # $build is MSYS and $host is Cygwin, or (3) $build is Cygwin. In case (1) or # (2), returns the Cygwin file name or path in func_cygpath_result (input # file name or path is assumed to be in w32 format, as previously converted # from $build's *nix or MSYS format). In case (3), returns the w32 file name # or path in func_cygpath_result (input file name or path is assumed to be in # Cygwin format). Returns an empty string on error. # # ARGS are passed to cygpath, with the last one being the file name or path to # be converted. # # Specify the absolute *nix (or w32) name to cygpath in the LT_CYGPATH # environment variable; do not put it in $PATH. func_cygpath () { $debug_cmd if test -n "$LT_CYGPATH" && test -f "$LT_CYGPATH"; then func_cygpath_result=`$LT_CYGPATH "$@" 2>/dev/null` if test "$?" -ne 0; then # on failure, ensure result is empty func_cygpath_result= fi else func_cygpath_result= func_error "LT_CYGPATH is empty or specifies non-existent file: '$LT_CYGPATH'" fi } #end: func_cygpath # func_convert_core_msys_to_w32 ARG # Convert file name or path ARG from MSYS format to w32 format. Return # result in func_convert_core_msys_to_w32_result. func_convert_core_msys_to_w32 () { $debug_cmd # awkward: cmd appends spaces to result func_convert_core_msys_to_w32_result=`( cmd //c echo "$1" ) 2>/dev/null | $SED -e 's/[ ]*$//' -e "$sed_naive_backslashify"` } #end: func_convert_core_msys_to_w32 # func_convert_file_check ARG1 ARG2 # Verify that ARG1 (a file name in $build format) was converted to $host # format in ARG2. Otherwise, emit an error message, but continue (resetting # func_to_host_file_result to ARG1). func_convert_file_check () { $debug_cmd if test -z "$2" && test -n "$1"; then func_error "Could not determine host file name corresponding to" func_error " '$1'" func_error "Continuing, but uninstalled executables may not work." # Fallback: func_to_host_file_result=$1 fi } # end func_convert_file_check # func_convert_path_check FROM_PATHSEP TO_PATHSEP FROM_PATH TO_PATH # Verify that FROM_PATH (a path in $build format) was converted to $host # format in TO_PATH. Otherwise, emit an error message, but continue, resetting # func_to_host_file_result to a simplistic fallback value (see below). func_convert_path_check () { $debug_cmd if test -z "$4" && test -n "$3"; then func_error "Could not determine the host path corresponding to" func_error " '$3'" func_error "Continuing, but uninstalled executables may not work." # Fallback. This is a deliberately simplistic "conversion" and # should not be "improved". See libtool.info. if test "x$1" != "x$2"; then lt_replace_pathsep_chars="s|$1|$2|g" func_to_host_path_result=`echo "$3" | $SED -e "$lt_replace_pathsep_chars"` else func_to_host_path_result=$3 fi fi } # end func_convert_path_check # func_convert_path_front_back_pathsep FRONTPAT BACKPAT REPL ORIG # Modifies func_to_host_path_result by prepending REPL if ORIG matches FRONTPAT # and appending REPL if ORIG matches BACKPAT. func_convert_path_front_back_pathsep () { $debug_cmd case $4 in $1 ) func_to_host_path_result=$3$func_to_host_path_result ;; esac case $4 in $2 ) func_append func_to_host_path_result "$3" ;; esac } # end func_convert_path_front_back_pathsep ################################################## # $build to $host FILE NAME CONVERSION FUNCTIONS # ################################################## # invoked via '$to_host_file_cmd ARG' # # In each case, ARG is the path to be converted from $build to $host format. # Result will be available in $func_to_host_file_result. # func_to_host_file ARG # Converts the file name ARG from $build format to $host format. Return result # in func_to_host_file_result. func_to_host_file () { $debug_cmd $to_host_file_cmd "$1" } # end func_to_host_file # func_to_tool_file ARG LAZY # converts the file name ARG from $build format to toolchain format. Return # result in func_to_tool_file_result. If the conversion in use is listed # in (the comma separated) LAZY, no conversion takes place. func_to_tool_file () { $debug_cmd case ,$2, in *,"$to_tool_file_cmd",*) func_to_tool_file_result=$1 ;; *) $to_tool_file_cmd "$1" func_to_tool_file_result=$func_to_host_file_result ;; esac } # end func_to_tool_file # func_convert_file_noop ARG # Copy ARG to func_to_host_file_result. func_convert_file_noop () { func_to_host_file_result=$1 } # end func_convert_file_noop # func_convert_file_msys_to_w32 ARG # Convert file name ARG from (mingw) MSYS to (mingw) w32 format; automatic # conversion to w32 is not available inside the cwrapper. Returns result in # func_to_host_file_result. func_convert_file_msys_to_w32 () { $debug_cmd func_to_host_file_result=$1 if test -n "$1"; then func_convert_core_msys_to_w32 "$1" func_to_host_file_result=$func_convert_core_msys_to_w32_result fi func_convert_file_check "$1" "$func_to_host_file_result" } # end func_convert_file_msys_to_w32 # func_convert_file_cygwin_to_w32 ARG # Convert file name ARG from Cygwin to w32 format. Returns result in # func_to_host_file_result. func_convert_file_cygwin_to_w32 () { $debug_cmd func_to_host_file_result=$1 if test -n "$1"; then # because $build is cygwin, we call "the" cygpath in $PATH; no need to use # LT_CYGPATH in this case. func_to_host_file_result=`cygpath -m "$1"` fi func_convert_file_check "$1" "$func_to_host_file_result" } # end func_convert_file_cygwin_to_w32 # func_convert_file_nix_to_w32 ARG # Convert file name ARG from *nix to w32 format. Requires a wine environment # and a working winepath. Returns result in func_to_host_file_result. func_convert_file_nix_to_w32 () { $debug_cmd func_to_host_file_result=$1 if test -n "$1"; then func_convert_core_file_wine_to_w32 "$1" func_to_host_file_result=$func_convert_core_file_wine_to_w32_result fi func_convert_file_check "$1" "$func_to_host_file_result" } # end func_convert_file_nix_to_w32 # func_convert_file_msys_to_cygwin ARG # Convert file name ARG from MSYS to Cygwin format. Requires LT_CYGPATH set. # Returns result in func_to_host_file_result. func_convert_file_msys_to_cygwin () { $debug_cmd func_to_host_file_result=$1 if test -n "$1"; then func_convert_core_msys_to_w32 "$1" func_cygpath -u "$func_convert_core_msys_to_w32_result" func_to_host_file_result=$func_cygpath_result fi func_convert_file_check "$1" "$func_to_host_file_result" } # end func_convert_file_msys_to_cygwin # func_convert_file_nix_to_cygwin ARG # Convert file name ARG from *nix to Cygwin format. Requires Cygwin installed # in a wine environment, working winepath, and LT_CYGPATH set. Returns result # in func_to_host_file_result. func_convert_file_nix_to_cygwin () { $debug_cmd func_to_host_file_result=$1 if test -n "$1"; then # convert from *nix to w32, then use cygpath to convert from w32 to cygwin. func_convert_core_file_wine_to_w32 "$1" func_cygpath -u "$func_convert_core_file_wine_to_w32_result" func_to_host_file_result=$func_cygpath_result fi func_convert_file_check "$1" "$func_to_host_file_result" } # end func_convert_file_nix_to_cygwin ############################################# # $build to $host PATH CONVERSION FUNCTIONS # ############################################# # invoked via '$to_host_path_cmd ARG' # # In each case, ARG is the path to be converted from $build to $host format. # The result will be available in $func_to_host_path_result. # # Path separators are also converted from $build format to $host format. If # ARG begins or ends with a path separator character, it is preserved (but # converted to $host format) on output. # # All path conversion functions are named using the following convention: # file name conversion function : func_convert_file_X_to_Y () # path conversion function : func_convert_path_X_to_Y () # where, for any given $build/$host combination the 'X_to_Y' value is the # same. If conversion functions are added for new $build/$host combinations, # the two new functions must follow this pattern, or func_init_to_host_path_cmd # will break. # func_init_to_host_path_cmd # Ensures that function "pointer" variable $to_host_path_cmd is set to the # appropriate value, based on the value of $to_host_file_cmd. to_host_path_cmd= func_init_to_host_path_cmd () { $debug_cmd if test -z "$to_host_path_cmd"; then func_stripname 'func_convert_file_' '' "$to_host_file_cmd" to_host_path_cmd=func_convert_path_$func_stripname_result fi } # func_to_host_path ARG # Converts the path ARG from $build format to $host format. Return result # in func_to_host_path_result. func_to_host_path () { $debug_cmd func_init_to_host_path_cmd $to_host_path_cmd "$1" } # end func_to_host_path # func_convert_path_noop ARG # Copy ARG to func_to_host_path_result. func_convert_path_noop () { func_to_host_path_result=$1 } # end func_convert_path_noop # func_convert_path_msys_to_w32 ARG # Convert path ARG from (mingw) MSYS to (mingw) w32 format; automatic # conversion to w32 is not available inside the cwrapper. Returns result in # func_to_host_path_result. func_convert_path_msys_to_w32 () { $debug_cmd func_to_host_path_result=$1 if test -n "$1"; then # Remove leading and trailing path separator characters from ARG. MSYS # behavior is inconsistent here; cygpath turns them into '.;' and ';.'; # and winepath ignores them completely. func_stripname : : "$1" func_to_host_path_tmp1=$func_stripname_result func_convert_core_msys_to_w32 "$func_to_host_path_tmp1" func_to_host_path_result=$func_convert_core_msys_to_w32_result func_convert_path_check : ";" \ "$func_to_host_path_tmp1" "$func_to_host_path_result" func_convert_path_front_back_pathsep ":*" "*:" ";" "$1" fi } # end func_convert_path_msys_to_w32 # func_convert_path_cygwin_to_w32 ARG # Convert path ARG from Cygwin to w32 format. Returns result in # func_to_host_file_result. func_convert_path_cygwin_to_w32 () { $debug_cmd func_to_host_path_result=$1 if test -n "$1"; then # See func_convert_path_msys_to_w32: func_stripname : : "$1" func_to_host_path_tmp1=$func_stripname_result func_to_host_path_result=`cygpath -m -p "$func_to_host_path_tmp1"` func_convert_path_check : ";" \ "$func_to_host_path_tmp1" "$func_to_host_path_result" func_convert_path_front_back_pathsep ":*" "*:" ";" "$1" fi } # end func_convert_path_cygwin_to_w32 # func_convert_path_nix_to_w32 ARG # Convert path ARG from *nix to w32 format. Requires a wine environment and # a working winepath. Returns result in func_to_host_file_result. func_convert_path_nix_to_w32 () { $debug_cmd func_to_host_path_result=$1 if test -n "$1"; then # See func_convert_path_msys_to_w32: func_stripname : : "$1" func_to_host_path_tmp1=$func_stripname_result func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1" func_to_host_path_result=$func_convert_core_path_wine_to_w32_result func_convert_path_check : ";" \ "$func_to_host_path_tmp1" "$func_to_host_path_result" func_convert_path_front_back_pathsep ":*" "*:" ";" "$1" fi } # end func_convert_path_nix_to_w32 # func_convert_path_msys_to_cygwin ARG # Convert path ARG from MSYS to Cygwin format. Requires LT_CYGPATH set. # Returns result in func_to_host_file_result. func_convert_path_msys_to_cygwin () { $debug_cmd func_to_host_path_result=$1 if test -n "$1"; then # See func_convert_path_msys_to_w32: func_stripname : : "$1" func_to_host_path_tmp1=$func_stripname_result func_convert_core_msys_to_w32 "$func_to_host_path_tmp1" func_cygpath -u -p "$func_convert_core_msys_to_w32_result" func_to_host_path_result=$func_cygpath_result func_convert_path_check : : \ "$func_to_host_path_tmp1" "$func_to_host_path_result" func_convert_path_front_back_pathsep ":*" "*:" : "$1" fi } # end func_convert_path_msys_to_cygwin # func_convert_path_nix_to_cygwin ARG # Convert path ARG from *nix to Cygwin format. Requires Cygwin installed in a # a wine environment, working winepath, and LT_CYGPATH set. Returns result in # func_to_host_file_result. func_convert_path_nix_to_cygwin () { $debug_cmd func_to_host_path_result=$1 if test -n "$1"; then # Remove leading and trailing path separator characters from # ARG. msys behavior is inconsistent here, cygpath turns them # into '.;' and ';.', and winepath ignores them completely. func_stripname : : "$1" func_to_host_path_tmp1=$func_stripname_result func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1" func_cygpath -u -p "$func_convert_core_path_wine_to_w32_result" func_to_host_path_result=$func_cygpath_result func_convert_path_check : : \ "$func_to_host_path_tmp1" "$func_to_host_path_result" func_convert_path_front_back_pathsep ":*" "*:" : "$1" fi } # end func_convert_path_nix_to_cygwin # func_dll_def_p FILE # True iff FILE is a Windows DLL '.def' file. # Keep in sync with _LT_DLL_DEF_P in libtool.m4 func_dll_def_p () { $debug_cmd func_dll_def_p_tmp=`$SED -n \ -e 's/^[ ]*//' \ -e '/^\(;.*\)*$/d' \ -e 's/^\(EXPORTS\|LIBRARY\)\([ ].*\)*$/DEF/p' \ -e q \ "$1"` test DEF = "$func_dll_def_p_tmp" } # func_mode_compile arg... func_mode_compile () { $debug_cmd # Get the compilation command and the source file. base_compile= srcfile=$nonopt # always keep a non-empty value in "srcfile" suppress_opt=yes suppress_output= arg_mode=normal libobj= later= pie_flag= for arg do case $arg_mode in arg ) # do not "continue". Instead, add this to base_compile lastarg=$arg arg_mode=normal ;; target ) libobj=$arg arg_mode=normal continue ;; normal ) # Accept any command-line options. case $arg in -o) test -n "$libobj" && \ func_fatal_error "you cannot specify '-o' more than once" arg_mode=target continue ;; -pie | -fpie | -fPIE) func_append pie_flag " $arg" continue ;; -shared | -static | -prefer-pic | -prefer-non-pic) func_append later " $arg" continue ;; -no-suppress) suppress_opt=no continue ;; -Xcompiler) arg_mode=arg # the next one goes into the "base_compile" arg list continue # The current "srcfile" will either be retained or ;; # replaced later. I would guess that would be a bug. -Wc,*) func_stripname '-Wc,' '' "$arg" args=$func_stripname_result lastarg= save_ifs=$IFS; IFS=, for arg in $args; do IFS=$save_ifs func_append_quoted lastarg "$arg" done IFS=$save_ifs func_stripname ' ' '' "$lastarg" lastarg=$func_stripname_result # Add the arguments to base_compile. func_append base_compile " $lastarg" continue ;; *) # Accept the current argument as the source file. # The previous "srcfile" becomes the current argument. # lastarg=$srcfile srcfile=$arg ;; esac # case $arg ;; esac # case $arg_mode # Aesthetically quote the previous argument. func_append_quoted base_compile "$lastarg" done # for arg case $arg_mode in arg) func_fatal_error "you must specify an argument for -Xcompile" ;; target) func_fatal_error "you must specify a target with '-o'" ;; *) # Get the name of the library object. test -z "$libobj" && { func_basename "$srcfile" libobj=$func_basename_result } ;; esac # Recognize several different file suffixes. # If the user specifies -o file.o, it is replaced with file.lo case $libobj in *.[cCFSifmso] | \ *.ada | *.adb | *.ads | *.asm | \ *.c++ | *.cc | *.ii | *.class | *.cpp | *.cxx | \ *.[fF][09]? | *.for | *.java | *.go | *.obj | *.sx | *.cu | *.cup) func_xform "$libobj" libobj=$func_xform_result ;; esac case $libobj in *.lo) func_lo2o "$libobj"; obj=$func_lo2o_result ;; *) func_fatal_error "cannot determine name of library object from '$libobj'" ;; esac func_infer_tag $base_compile for arg in $later; do case $arg in -shared) test yes = "$build_libtool_libs" \ || func_fatal_configuration "cannot build a shared library" build_old_libs=no continue ;; -static) build_libtool_libs=no build_old_libs=yes continue ;; -prefer-pic) pic_mode=yes continue ;; -prefer-non-pic) pic_mode=no continue ;; esac done func_quote_for_eval "$libobj" test "X$libobj" != "X$func_quote_for_eval_result" \ && $ECHO "X$libobj" | $GREP '[]~#^*{};<>?"'"'"' &()|`$[]' \ && func_warning "libobj name '$libobj' may not contain shell special characters." func_dirname_and_basename "$obj" "/" "" objname=$func_basename_result xdir=$func_dirname_result lobj=$xdir$objdir/$objname test -z "$base_compile" && \ func_fatal_help "you must specify a compilation command" # Delete any leftover library objects. if test yes = "$build_old_libs"; then removelist="$obj $lobj $libobj ${libobj}T" else removelist="$lobj $libobj ${libobj}T" fi # On Cygwin there's no "real" PIC flag so we must build both object types case $host_os in cygwin* | mingw* | pw32* | os2* | cegcc*) pic_mode=default ;; esac if test no = "$pic_mode" && test pass_all != "$deplibs_check_method"; then # non-PIC code in shared libraries is not supported pic_mode=default fi # Calculate the filename of the output object if compiler does # not support -o with -c if test no = "$compiler_c_o"; then output_obj=`$ECHO "$srcfile" | $SED 's%^.*/%%; s%\.[^.]*$%%'`.$objext lockfile=$output_obj.lock else output_obj= need_locks=no lockfile= fi # Lock this critical section if it is needed # We use this script file to make the link, it avoids creating a new file if test yes = "$need_locks"; then until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do func_echo "Waiting for $lockfile to be removed" sleep 2 done elif test warn = "$need_locks"; then if test -f "$lockfile"; then $ECHO "\ *** ERROR, $lockfile exists and contains: `cat $lockfile 2>/dev/null` This indicates that another process is trying to use the same temporary object file, and libtool could not work around it because your compiler does not support '-c' and '-o' together. If you repeat this compilation, it may succeed, by chance, but you had better avoid parallel builds (make -j) in this platform, or get a better compiler." $opt_dry_run || $RM $removelist exit $EXIT_FAILURE fi func_append removelist " $output_obj" $ECHO "$srcfile" > "$lockfile" fi $opt_dry_run || $RM $removelist func_append removelist " $lockfile" trap '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' 1 2 15 func_to_tool_file "$srcfile" func_convert_file_msys_to_w32 srcfile=$func_to_tool_file_result func_quote_for_eval "$srcfile" qsrcfile=$func_quote_for_eval_result # Only build a PIC object if we are building libtool libraries. if test yes = "$build_libtool_libs"; then # Without this assignment, base_compile gets emptied. fbsd_hideous_sh_bug=$base_compile if test no != "$pic_mode"; then command="$base_compile $qsrcfile $pic_flag" else # Don't build PIC code command="$base_compile $qsrcfile" fi func_mkdir_p "$xdir$objdir" if test -z "$output_obj"; then # Place PIC objects in $objdir func_append command " -o $lobj" fi func_show_eval_locale "$command" \ 'test -n "$output_obj" && $RM $removelist; exit $EXIT_FAILURE' if test warn = "$need_locks" && test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then $ECHO "\ *** ERROR, $lockfile contains: `cat $lockfile 2>/dev/null` but it should contain: $srcfile This indicates that another process is trying to use the same temporary object file, and libtool could not work around it because your compiler does not support '-c' and '-o' together. If you repeat this compilation, it may succeed, by chance, but you had better avoid parallel builds (make -j) in this platform, or get a better compiler." $opt_dry_run || $RM $removelist exit $EXIT_FAILURE fi # Just move the object if needed, then go on to compile the next one if test -n "$output_obj" && test "X$output_obj" != "X$lobj"; then func_show_eval '$MV "$output_obj" "$lobj"' \ 'error=$?; $opt_dry_run || $RM $removelist; exit $error' fi # Allow error messages only from the first compilation. if test yes = "$suppress_opt"; then suppress_output=' >/dev/null 2>&1' fi fi # Only build a position-dependent object if we build old libraries. if test yes = "$build_old_libs"; then if test yes != "$pic_mode"; then # Don't build PIC code command="$base_compile $qsrcfile$pie_flag" else command="$base_compile $qsrcfile $pic_flag" fi if test yes = "$compiler_c_o"; then func_append command " -o $obj" fi # Suppress compiler output if we already did a PIC compilation. func_append command "$suppress_output" func_show_eval_locale "$command" \ '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' if test warn = "$need_locks" && test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then $ECHO "\ *** ERROR, $lockfile contains: `cat $lockfile 2>/dev/null` but it should contain: $srcfile This indicates that another process is trying to use the same temporary object file, and libtool could not work around it because your compiler does not support '-c' and '-o' together. If you repeat this compilation, it may succeed, by chance, but you had better avoid parallel builds (make -j) in this platform, or get a better compiler." $opt_dry_run || $RM $removelist exit $EXIT_FAILURE fi # Just move the object if needed if test -n "$output_obj" && test "X$output_obj" != "X$obj"; then func_show_eval '$MV "$output_obj" "$obj"' \ 'error=$?; $opt_dry_run || $RM $removelist; exit $error' fi fi $opt_dry_run || { func_write_libtool_object "$libobj" "$objdir/$objname" "$objname" # Unlock the critical section if it was locked if test no != "$need_locks"; then removelist=$lockfile $RM "$lockfile" fi } exit $EXIT_SUCCESS } $opt_help || { test compile = "$opt_mode" && func_mode_compile ${1+"$@"} } func_mode_help () { # We need to display help for each of the modes. case $opt_mode in "") # Generic help is extracted from the usage comments # at the start of this file. func_help ;; clean) $ECHO \ "Usage: $progname [OPTION]... --mode=clean RM [RM-OPTION]... FILE... Remove files from the build directory. RM is the name of the program to use to delete files associated with each FILE (typically '/bin/rm'). RM-OPTIONS are options (such as '-f') to be passed to RM. If FILE is a libtool library, object or program, all the files associated with it are deleted. Otherwise, only FILE itself is deleted using RM." ;; compile) $ECHO \ "Usage: $progname [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE Compile a source file into a libtool library object. This mode accepts the following additional options: -o OUTPUT-FILE set the output file name to OUTPUT-FILE -no-suppress do not suppress compiler output for multiple passes -prefer-pic try to build PIC objects only -prefer-non-pic try to build non-PIC objects only -shared do not build a '.o' file suitable for static linking -static only build a '.o' file suitable for static linking -Wc,FLAG pass FLAG directly to the compiler COMPILE-COMMAND is a command to be used in creating a 'standard' object file from the given SOURCEFILE. The output file name is determined by removing the directory component from SOURCEFILE, then substituting the C source code suffix '.c' with the library object suffix, '.lo'." ;; execute) $ECHO \ "Usage: $progname [OPTION]... --mode=execute COMMAND [ARGS]... Automatically set library path, then run a program. This mode accepts the following additional options: -dlopen FILE add the directory containing FILE to the library path This mode sets the library path environment variable according to '-dlopen' flags. If any of the ARGS are libtool executable wrappers, then they are translated into their corresponding uninstalled binary, and any of their required library directories are added to the library path. Then, COMMAND is executed, with ARGS as arguments." ;; finish) $ECHO \ "Usage: $progname [OPTION]... --mode=finish [LIBDIR]... Complete the installation of libtool libraries. Each LIBDIR is a directory that contains libtool libraries. The commands that this mode executes may require superuser privileges. Use the '--dry-run' option if you just want to see what would be executed." ;; install) $ECHO \ "Usage: $progname [OPTION]... --mode=install INSTALL-COMMAND... Install executables or libraries. INSTALL-COMMAND is the installation command. The first component should be either the 'install' or 'cp' program. The following components of INSTALL-COMMAND are treated specially: -inst-prefix-dir PREFIX-DIR Use PREFIX-DIR as a staging area for installation The rest of the components are interpreted as arguments to that command (only BSD-compatible install options are recognized)." ;; link) $ECHO \ "Usage: $progname [OPTION]... --mode=link LINK-COMMAND... Link object files or libraries together to form another library, or to create an executable program. LINK-COMMAND is a command using the C compiler that you would use to create a program from several object files. The following components of LINK-COMMAND are treated specially: -all-static do not do any dynamic linking at all -avoid-version do not add a version suffix if possible -bindir BINDIR specify path to binaries directory (for systems where libraries must be found in the PATH setting at runtime) -dlopen FILE '-dlpreopen' FILE if it cannot be dlopened at runtime -dlpreopen FILE link in FILE and add its symbols to lt_preloaded_symbols -export-dynamic allow symbols from OUTPUT-FILE to be resolved with dlsym(3) -export-symbols SYMFILE try to export only the symbols listed in SYMFILE -export-symbols-regex REGEX try to export only the symbols matching REGEX -LLIBDIR search LIBDIR for required installed libraries -lNAME OUTPUT-FILE requires the installed library libNAME -module build a library that can dlopened -no-fast-install disable the fast-install mode -no-install link a not-installable executable -no-undefined declare that a library does not refer to external symbols -o OUTPUT-FILE create OUTPUT-FILE from the specified objects -objectlist FILE use a list of object files found in FILE to specify objects -os2dllname NAME force a short DLL name on OS/2 (no effect on other OSes) -precious-files-regex REGEX don't remove output files matching REGEX -release RELEASE specify package release information -rpath LIBDIR the created library will eventually be installed in LIBDIR -R[ ]LIBDIR add LIBDIR to the runtime path of programs and libraries -shared only do dynamic linking of libtool libraries -shrext SUFFIX override the standard shared library file extension -static do not do any dynamic linking of uninstalled libtool libraries -static-libtool-libs do not do any dynamic linking of libtool libraries -version-info CURRENT[:REVISION[:AGE]] specify library version info [each variable defaults to 0] -weak LIBNAME declare that the target provides the LIBNAME interface -Wc,FLAG -Xcompiler FLAG pass linker-specific FLAG directly to the compiler -Wl,FLAG -Xlinker FLAG pass linker-specific FLAG directly to the linker -XCClinker FLAG pass link-specific FLAG to the compiler driver (CC) All other options (arguments beginning with '-') are ignored. Every other argument is treated as a filename. Files ending in '.la' are treated as uninstalled libtool libraries, other files are standard or library object files. If the OUTPUT-FILE ends in '.la', then a libtool library is created, only library objects ('.lo' files) may be specified, and '-rpath' is required, except when creating a convenience library. If OUTPUT-FILE ends in '.a' or '.lib', then a standard library is created using 'ar' and 'ranlib', or on Windows using 'lib'. If OUTPUT-FILE ends in '.lo' or '.$objext', then a reloadable object file is created, otherwise an executable program is created." ;; uninstall) $ECHO \ "Usage: $progname [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE... Remove libraries from an installation directory. RM is the name of the program to use to delete files associated with each FILE (typically '/bin/rm'). RM-OPTIONS are options (such as '-f') to be passed to RM. If FILE is a libtool library, all the files associated with it are deleted. Otherwise, only FILE itself is deleted using RM." ;; *) func_fatal_help "invalid operation mode '$opt_mode'" ;; esac echo $ECHO "Try '$progname --help' for more information about other modes." } # Now that we've collected a possible --mode arg, show help if necessary if $opt_help; then if test : = "$opt_help"; then func_mode_help else { func_help noexit for opt_mode in compile link execute install finish uninstall clean; do func_mode_help done } | $SED -n '1p; 2,$s/^Usage:/ or: /p' { func_help noexit for opt_mode in compile link execute install finish uninstall clean; do echo func_mode_help done } | $SED '1d /^When reporting/,/^Report/{ H d } $x /information about other modes/d /more detailed .*MODE/d s/^Usage:.*--mode=\([^ ]*\) .*/Description of \1 mode:/' fi exit $? fi # func_mode_execute arg... func_mode_execute () { $debug_cmd # The first argument is the command name. cmd=$nonopt test -z "$cmd" && \ func_fatal_help "you must specify a COMMAND" # Handle -dlopen flags immediately. for file in $opt_dlopen; do test -f "$file" \ || func_fatal_help "'$file' is not a file" dir= case $file in *.la) func_resolve_sysroot "$file" file=$func_resolve_sysroot_result # Check to see that this really is a libtool archive. func_lalib_unsafe_p "$file" \ || func_fatal_help "'$lib' is not a valid libtool archive" # Read the libtool library. dlname= library_names= func_source "$file" # Skip this library if it cannot be dlopened. if test -z "$dlname"; then # Warn if it was a shared library. test -n "$library_names" && \ func_warning "'$file' was not linked with '-export-dynamic'" continue fi func_dirname "$file" "" "." dir=$func_dirname_result if test -f "$dir/$objdir/$dlname"; then func_append dir "/$objdir" else if test ! -f "$dir/$dlname"; then func_fatal_error "cannot find '$dlname' in '$dir' or '$dir/$objdir'" fi fi ;; *.lo) # Just add the directory containing the .lo file. func_dirname "$file" "" "." dir=$func_dirname_result ;; *) func_warning "'-dlopen' is ignored for non-libtool libraries and objects" continue ;; esac # Get the absolute pathname. absdir=`cd "$dir" && pwd` test -n "$absdir" && dir=$absdir # Now add the directory to shlibpath_var. if eval "test -z \"\$$shlibpath_var\""; then eval "$shlibpath_var=\"\$dir\"" else eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\"" fi done # This variable tells wrapper scripts just to set shlibpath_var # rather than running their programs. libtool_execute_magic=$magic # Check if any of the arguments is a wrapper script. args= for file do case $file in -* | *.la | *.lo ) ;; *) # Do a test to see if this is really a libtool program. if func_ltwrapper_script_p "$file"; then func_source "$file" # Transform arg to wrapped name. file=$progdir/$program elif func_ltwrapper_executable_p "$file"; then func_ltwrapper_scriptname "$file" func_source "$func_ltwrapper_scriptname_result" # Transform arg to wrapped name. file=$progdir/$program fi ;; esac # Quote arguments (to preserve shell metacharacters). func_append_quoted args "$file" done if $opt_dry_run; then # Display what would be done. if test -n "$shlibpath_var"; then eval "\$ECHO \"\$shlibpath_var=\$$shlibpath_var\"" echo "export $shlibpath_var" fi $ECHO "$cmd$args" exit $EXIT_SUCCESS else if test -n "$shlibpath_var"; then # Export the shlibpath_var. eval "export $shlibpath_var" fi # Restore saved environment variables for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES do eval "if test \"\${save_$lt_var+set}\" = set; then $lt_var=\$save_$lt_var; export $lt_var else $lt_unset $lt_var fi" done # Now prepare to actually exec the command. exec_cmd=\$cmd$args fi } test execute = "$opt_mode" && func_mode_execute ${1+"$@"} # func_mode_finish arg... func_mode_finish () { $debug_cmd libs= libdirs= admincmds= for opt in "$nonopt" ${1+"$@"} do if test -d "$opt"; then func_append libdirs " $opt" elif test -f "$opt"; then if func_lalib_unsafe_p "$opt"; then func_append libs " $opt" else func_warning "'$opt' is not a valid libtool archive" fi else func_fatal_error "invalid argument '$opt'" fi done if test -n "$libs"; then if test -n "$lt_sysroot"; then sysroot_regex=`$ECHO "$lt_sysroot" | $SED "$sed_make_literal_regex"` sysroot_cmd="s/\([ ']\)$sysroot_regex/\1/g;" else sysroot_cmd= fi # Remove sysroot references if $opt_dry_run; then for lib in $libs; do echo "removing references to $lt_sysroot and '=' prefixes from $lib" done else tmpdir=`func_mktempdir` for lib in $libs; do $SED -e "$sysroot_cmd s/\([ ']-[LR]\)=/\1/g; s/\([ ']\)=/\1/g" $lib \ > $tmpdir/tmp-la mv -f $tmpdir/tmp-la $lib done ${RM}r "$tmpdir" fi fi if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then for libdir in $libdirs; do if test -n "$finish_cmds"; then # Do each command in the finish commands. func_execute_cmds "$finish_cmds" 'admincmds="$admincmds '"$cmd"'"' fi if test -n "$finish_eval"; then # Do the single finish_eval. eval cmds=\"$finish_eval\" $opt_dry_run || eval "$cmds" || func_append admincmds " $cmds" fi done fi # Exit here if they wanted silent mode. $opt_quiet && exit $EXIT_SUCCESS if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then echo "----------------------------------------------------------------------" echo "Libraries have been installed in:" for libdir in $libdirs; do $ECHO " $libdir" done echo echo "If you ever happen to want to link against installed libraries" echo "in a given directory, LIBDIR, you must either use libtool, and" echo "specify the full pathname of the library, or use the '-LLIBDIR'" echo "flag during linking and do at least one of the following:" if test -n "$shlibpath_var"; then echo " - add LIBDIR to the '$shlibpath_var' environment variable" echo " during execution" fi if test -n "$runpath_var"; then echo " - add LIBDIR to the '$runpath_var' environment variable" echo " during linking" fi if test -n "$hardcode_libdir_flag_spec"; then libdir=LIBDIR eval flag=\"$hardcode_libdir_flag_spec\" $ECHO " - use the '$flag' linker flag" fi if test -n "$admincmds"; then $ECHO " - have your system administrator run these commands:$admincmds" fi if test -f /etc/ld.so.conf; then echo " - have your system administrator add LIBDIR to '/etc/ld.so.conf'" fi echo echo "See any operating system documentation about shared libraries for" case $host in solaris2.[6789]|solaris2.1[0-9]) echo "more information, such as the ld(1), crle(1) and ld.so(8) manual" echo "pages." ;; *) echo "more information, such as the ld(1) and ld.so(8) manual pages." ;; esac echo "----------------------------------------------------------------------" fi exit $EXIT_SUCCESS } test finish = "$opt_mode" && func_mode_finish ${1+"$@"} # func_mode_install arg... func_mode_install () { $debug_cmd # There may be an optional sh(1) argument at the beginning of # install_prog (especially on Windows NT). if test "$SHELL" = "$nonopt" || test /bin/sh = "$nonopt" || # Allow the use of GNU shtool's install command. case $nonopt in *shtool*) :;; *) false;; esac then # Aesthetically quote it. func_quote_for_eval "$nonopt" install_prog="$func_quote_for_eval_result " arg=$1 shift else install_prog= arg=$nonopt fi # The real first argument should be the name of the installation program. # Aesthetically quote it. func_quote_for_eval "$arg" func_append install_prog "$func_quote_for_eval_result" install_shared_prog=$install_prog case " $install_prog " in *[\\\ /]cp\ *) install_cp=: ;; *) install_cp=false ;; esac # We need to accept at least all the BSD install flags. dest= files= opts= prev= install_type= isdir=false stripme= no_mode=: for arg do arg2= if test -n "$dest"; then func_append files " $dest" dest=$arg continue fi case $arg in -d) isdir=: ;; -f) if $install_cp; then :; else prev=$arg fi ;; -g | -m | -o) prev=$arg ;; -s) stripme=" -s" continue ;; -*) ;; *) # If the previous option needed an argument, then skip it. if test -n "$prev"; then if test X-m = "X$prev" && test -n "$install_override_mode"; then arg2=$install_override_mode no_mode=false fi prev= else dest=$arg continue fi ;; esac # Aesthetically quote the argument. func_quote_for_eval "$arg" func_append install_prog " $func_quote_for_eval_result" if test -n "$arg2"; then func_quote_for_eval "$arg2" fi func_append install_shared_prog " $func_quote_for_eval_result" done test -z "$install_prog" && \ func_fatal_help "you must specify an install program" test -n "$prev" && \ func_fatal_help "the '$prev' option requires an argument" if test -n "$install_override_mode" && $no_mode; then if $install_cp; then :; else func_quote_for_eval "$install_override_mode" func_append install_shared_prog " -m $func_quote_for_eval_result" fi fi if test -z "$files"; then if test -z "$dest"; then func_fatal_help "no file or destination specified" else func_fatal_help "you must specify a destination" fi fi # Strip any trailing slash from the destination. func_stripname '' '/' "$dest" dest=$func_stripname_result # Check to see that the destination is a directory. test -d "$dest" && isdir=: if $isdir; then destdir=$dest destname= else func_dirname_and_basename "$dest" "" "." destdir=$func_dirname_result destname=$func_basename_result # Not a directory, so check to see that there is only one file specified. set dummy $files; shift test "$#" -gt 1 && \ func_fatal_help "'$dest' is not a directory" fi case $destdir in [\\/]* | [A-Za-z]:[\\/]*) ;; *) for file in $files; do case $file in *.lo) ;; *) func_fatal_help "'$destdir' must be an absolute directory name" ;; esac done ;; esac # This variable tells wrapper scripts just to set variables rather # than running their programs. libtool_install_magic=$magic staticlibs= future_libdirs= current_libdirs= for file in $files; do # Do each installation. case $file in *.$libext) # Do the static libraries later. func_append staticlibs " $file" ;; *.la) func_resolve_sysroot "$file" file=$func_resolve_sysroot_result # Check to see that this really is a libtool archive. func_lalib_unsafe_p "$file" \ || func_fatal_help "'$file' is not a valid libtool archive" library_names= old_library= relink_command= func_source "$file" # Add the libdir to current_libdirs if it is the destination. if test "X$destdir" = "X$libdir"; then case "$current_libdirs " in *" $libdir "*) ;; *) func_append current_libdirs " $libdir" ;; esac else # Note the libdir as a future libdir. case "$future_libdirs " in *" $libdir "*) ;; *) func_append future_libdirs " $libdir" ;; esac fi func_dirname "$file" "/" "" dir=$func_dirname_result func_append dir "$objdir" if test -n "$relink_command"; then # Determine the prefix the user has applied to our future dir. inst_prefix_dir=`$ECHO "$destdir" | $SED -e "s%$libdir\$%%"` # Don't allow the user to place us outside of our expected # location b/c this prevents finding dependent libraries that # are installed to the same prefix. # At present, this check doesn't affect windows .dll's that # are installed into $libdir/../bin (currently, that works fine) # but it's something to keep an eye on. test "$inst_prefix_dir" = "$destdir" && \ func_fatal_error "error: cannot install '$file' to a directory not ending in $libdir" if test -n "$inst_prefix_dir"; then # Stick the inst_prefix_dir data into the link command. relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"` else relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%%"` fi func_warning "relinking '$file'" func_show_eval "$relink_command" \ 'func_fatal_error "error: relink '\''$file'\'' with the above command before installing it"' fi # See the names of the shared library. set dummy $library_names; shift if test -n "$1"; then realname=$1 shift srcname=$realname test -n "$relink_command" && srcname=${realname}T # Install the shared library and build the symlinks. func_show_eval "$install_shared_prog $dir/$srcname $destdir/$realname" \ 'exit $?' tstripme=$stripme case $host_os in cygwin* | mingw* | pw32* | cegcc*) case $realname in *.dll.a) tstripme= ;; esac ;; os2*) case $realname in *_dll.a) tstripme= ;; esac ;; esac if test -n "$tstripme" && test -n "$striplib"; then func_show_eval "$striplib $destdir/$realname" 'exit $?' fi if test "$#" -gt 0; then # Delete the old symlinks, and create new ones. # Try 'ln -sf' first, because the 'ln' binary might depend on # the symlink we replace! Solaris /bin/ln does not understand -f, # so we also need to try rm && ln -s. for linkname do test "$linkname" != "$realname" \ && func_show_eval "(cd $destdir && { $LN_S -f $realname $linkname || { $RM $linkname && $LN_S $realname $linkname; }; })" done fi # Do each command in the postinstall commands. lib=$destdir/$realname func_execute_cmds "$postinstall_cmds" 'exit $?' fi # Install the pseudo-library for information purposes. func_basename "$file" name=$func_basename_result instname=$dir/${name}i func_show_eval "$install_prog $instname $destdir/$name" 'exit $?' # Maybe install the static library, too. test -n "$old_library" && func_append staticlibs " $dir/$old_library" ;; *.lo) # Install (i.e. copy) a libtool object. # Figure out destination file name, if it wasn't already specified. if test -n "$destname"; then destfile=$destdir/$destname else func_basename "$file" destfile=$func_basename_result destfile=$destdir/$destfile fi # Deduce the name of the destination old-style object file. case $destfile in *.lo) func_lo2o "$destfile" staticdest=$func_lo2o_result ;; *.$objext) staticdest=$destfile destfile= ;; *) func_fatal_help "cannot copy a libtool object to '$destfile'" ;; esac # Install the libtool object if requested. test -n "$destfile" && \ func_show_eval "$install_prog $file $destfile" 'exit $?' # Install the old object if enabled. if test yes = "$build_old_libs"; then # Deduce the name of the old-style object file. func_lo2o "$file" staticobj=$func_lo2o_result func_show_eval "$install_prog \$staticobj \$staticdest" 'exit $?' fi exit $EXIT_SUCCESS ;; *) # Figure out destination file name, if it wasn't already specified. if test -n "$destname"; then destfile=$destdir/$destname else func_basename "$file" destfile=$func_basename_result destfile=$destdir/$destfile fi # If the file is missing, and there is a .exe on the end, strip it # because it is most likely a libtool script we actually want to # install stripped_ext= case $file in *.exe) if test ! -f "$file"; then func_stripname '' '.exe' "$file" file=$func_stripname_result stripped_ext=.exe fi ;; esac # Do a test to see if this is really a libtool program. case $host in *cygwin* | *mingw*) if func_ltwrapper_executable_p "$file"; then func_ltwrapper_scriptname "$file" wrapper=$func_ltwrapper_scriptname_result else func_stripname '' '.exe' "$file" wrapper=$func_stripname_result fi ;; *) wrapper=$file ;; esac if func_ltwrapper_script_p "$wrapper"; then notinst_deplibs= relink_command= func_source "$wrapper" # Check the variables that should have been set. test -z "$generated_by_libtool_version" && \ func_fatal_error "invalid libtool wrapper script '$wrapper'" finalize=: for lib in $notinst_deplibs; do # Check to see that each library is installed. libdir= if test -f "$lib"; then func_source "$lib" fi libfile=$libdir/`$ECHO "$lib" | $SED 's%^.*/%%g'` if test -n "$libdir" && test ! -f "$libfile"; then func_warning "'$lib' has not been installed in '$libdir'" finalize=false fi done relink_command= func_source "$wrapper" outputname= if test no = "$fast_install" && test -n "$relink_command"; then $opt_dry_run || { if $finalize; then tmpdir=`func_mktempdir` func_basename "$file$stripped_ext" file=$func_basename_result outputname=$tmpdir/$file # Replace the output file specification. relink_command=`$ECHO "$relink_command" | $SED 's%@OUTPUT@%'"$outputname"'%g'` $opt_quiet || { func_quote_for_expand "$relink_command" eval "func_echo $func_quote_for_expand_result" } if eval "$relink_command"; then : else func_error "error: relink '$file' with the above command before installing it" $opt_dry_run || ${RM}r "$tmpdir" continue fi file=$outputname else func_warning "cannot relink '$file'" fi } else # Install the binary that we compiled earlier. file=`$ECHO "$file$stripped_ext" | $SED "s%\([^/]*\)$%$objdir/\1%"` fi fi # remove .exe since cygwin /usr/bin/install will append another # one anyway case $install_prog,$host in */usr/bin/install*,*cygwin*) case $file:$destfile in *.exe:*.exe) # this is ok ;; *.exe:*) destfile=$destfile.exe ;; *:*.exe) func_stripname '' '.exe' "$destfile" destfile=$func_stripname_result ;; esac ;; esac func_show_eval "$install_prog\$stripme \$file \$destfile" 'exit $?' $opt_dry_run || if test -n "$outputname"; then ${RM}r "$tmpdir" fi ;; esac done for file in $staticlibs; do func_basename "$file" name=$func_basename_result # Set up the ranlib parameters. oldlib=$destdir/$name func_to_tool_file "$oldlib" func_convert_file_msys_to_w32 tool_oldlib=$func_to_tool_file_result func_show_eval "$install_prog \$file \$oldlib" 'exit $?' if test -n "$stripme" && test -n "$old_striplib"; then func_show_eval "$old_striplib $tool_oldlib" 'exit $?' fi # Do each command in the postinstall commands. func_execute_cmds "$old_postinstall_cmds" 'exit $?' done test -n "$future_libdirs" && \ func_warning "remember to run '$progname --finish$future_libdirs'" if test -n "$current_libdirs"; then # Maybe just do a dry run. $opt_dry_run && current_libdirs=" -n$current_libdirs" exec_cmd='$SHELL "$progpath" $preserve_args --finish$current_libdirs' else exit $EXIT_SUCCESS fi } test install = "$opt_mode" && func_mode_install ${1+"$@"} # func_generate_dlsyms outputname originator pic_p # Extract symbols from dlprefiles and create ${outputname}S.o with # a dlpreopen symbol table. func_generate_dlsyms () { $debug_cmd my_outputname=$1 my_originator=$2 my_pic_p=${3-false} my_prefix=`$ECHO "$my_originator" | $SED 's%[^a-zA-Z0-9]%_%g'` my_dlsyms= if test -n "$dlfiles$dlprefiles" || test no != "$dlself"; then if test -n "$NM" && test -n "$global_symbol_pipe"; then my_dlsyms=${my_outputname}S.c else func_error "not configured to extract global symbols from dlpreopened files" fi fi if test -n "$my_dlsyms"; then case $my_dlsyms in "") ;; *.c) # Discover the nlist of each of the dlfiles. nlist=$output_objdir/$my_outputname.nm func_show_eval "$RM $nlist ${nlist}S ${nlist}T" # Parse the name list into a source file. func_verbose "creating $output_objdir/$my_dlsyms" $opt_dry_run || $ECHO > "$output_objdir/$my_dlsyms" "\ /* $my_dlsyms - symbol resolution table for '$my_outputname' dlsym emulation. */ /* Generated by $PROGRAM (GNU $PACKAGE) $VERSION */ #ifdef __cplusplus extern \"C\" { #endif #if defined __GNUC__ && (((__GNUC__ == 4) && (__GNUC_MINOR__ >= 4)) || (__GNUC__ > 4)) #pragma GCC diagnostic ignored \"-Wstrict-prototypes\" #endif /* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ #if defined _WIN32 || defined __CYGWIN__ || defined _WIN32_WCE /* DATA imports from DLLs on WIN32 can't be const, because runtime relocations are performed -- see ld's documentation on pseudo-relocs. */ # define LT_DLSYM_CONST #elif defined __osf__ /* This system does not cope well with relocations in const data. */ # define LT_DLSYM_CONST #else # define LT_DLSYM_CONST const #endif #define STREQ(s1, s2) (strcmp ((s1), (s2)) == 0) /* External symbol declarations for the compiler. */\ " if test yes = "$dlself"; then func_verbose "generating symbol list for '$output'" $opt_dry_run || echo ': @PROGRAM@ ' > "$nlist" # Add our own program objects to the symbol list. progfiles=`$ECHO "$objs$old_deplibs" | $SP2NL | $SED "$lo2o" | $NL2SP` for progfile in $progfiles; do func_to_tool_file "$progfile" func_convert_file_msys_to_w32 func_verbose "extracting global C symbols from '$func_to_tool_file_result'" $opt_dry_run || eval "$NM $func_to_tool_file_result | $global_symbol_pipe >> '$nlist'" done if test -n "$exclude_expsyms"; then $opt_dry_run || { eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T' eval '$MV "$nlist"T "$nlist"' } fi if test -n "$export_symbols_regex"; then $opt_dry_run || { eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T' eval '$MV "$nlist"T "$nlist"' } fi # Prepare the list of exported symbols if test -z "$export_symbols"; then export_symbols=$output_objdir/$outputname.exp $opt_dry_run || { $RM $export_symbols eval "$SED -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"' case $host in *cygwin* | *mingw* | *cegcc* ) eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' eval 'cat "$export_symbols" >> "$output_objdir/$outputname.def"' ;; esac } else $opt_dry_run || { eval "$SED -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"' eval '$GREP -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T' eval '$MV "$nlist"T "$nlist"' case $host in *cygwin* | *mingw* | *cegcc* ) eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' eval 'cat "$nlist" >> "$output_objdir/$outputname.def"' ;; esac } fi fi for dlprefile in $dlprefiles; do func_verbose "extracting global C symbols from '$dlprefile'" func_basename "$dlprefile" name=$func_basename_result case $host in *cygwin* | *mingw* | *cegcc* ) # if an import library, we need to obtain dlname if func_win32_import_lib_p "$dlprefile"; then func_tr_sh "$dlprefile" eval "curr_lafile=\$libfile_$func_tr_sh_result" dlprefile_dlbasename= if test -n "$curr_lafile" && func_lalib_p "$curr_lafile"; then # Use subshell, to avoid clobbering current variable values dlprefile_dlname=`source "$curr_lafile" && echo "$dlname"` if test -n "$dlprefile_dlname"; then func_basename "$dlprefile_dlname" dlprefile_dlbasename=$func_basename_result else # no lafile. user explicitly requested -dlpreopen . $sharedlib_from_linklib_cmd "$dlprefile" dlprefile_dlbasename=$sharedlib_from_linklib_result fi fi $opt_dry_run || { if test -n "$dlprefile_dlbasename"; then eval '$ECHO ": $dlprefile_dlbasename" >> "$nlist"' else func_warning "Could not compute DLL name from $name" eval '$ECHO ": $name " >> "$nlist"' fi func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32 eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe | $SED -e '/I __imp/d' -e 's/I __nm_/D /;s/_nm__//' >> '$nlist'" } else # not an import lib $opt_dry_run || { eval '$ECHO ": $name " >> "$nlist"' func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32 eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe >> '$nlist'" } fi ;; *) $opt_dry_run || { eval '$ECHO ": $name " >> "$nlist"' func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32 eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe >> '$nlist'" } ;; esac done $opt_dry_run || { # Make sure we have at least an empty file. test -f "$nlist" || : > "$nlist" if test -n "$exclude_expsyms"; then $EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T $MV "$nlist"T "$nlist" fi # Try sorting and uniquifying the output. if $GREP -v "^: " < "$nlist" | if sort -k 3 /dev/null 2>&1; then sort -k 3 else sort +2 fi | uniq > "$nlist"S; then : else $GREP -v "^: " < "$nlist" > "$nlist"S fi if test -f "$nlist"S; then eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$my_dlsyms"' else echo '/* NONE */' >> "$output_objdir/$my_dlsyms" fi func_show_eval '$RM "${nlist}I"' if test -n "$global_symbol_to_import"; then eval "$global_symbol_to_import"' < "$nlist"S > "$nlist"I' fi echo >> "$output_objdir/$my_dlsyms" "\ /* The mapping between symbol names and symbols. */ typedef struct { const char *name; void *address; } lt_dlsymlist; extern LT_DLSYM_CONST lt_dlsymlist lt_${my_prefix}_LTX_preloaded_symbols[];\ " if test -s "$nlist"I; then echo >> "$output_objdir/$my_dlsyms" "\ static void lt_syminit(void) { LT_DLSYM_CONST lt_dlsymlist *symbol = lt_${my_prefix}_LTX_preloaded_symbols; for (; symbol->name; ++symbol) {" $SED 's/.*/ if (STREQ (symbol->name, \"&\")) symbol->address = (void *) \&&;/' < "$nlist"I >> "$output_objdir/$my_dlsyms" echo >> "$output_objdir/$my_dlsyms" "\ } }" fi echo >> "$output_objdir/$my_dlsyms" "\ LT_DLSYM_CONST lt_dlsymlist lt_${my_prefix}_LTX_preloaded_symbols[] = { {\"$my_originator\", (void *) 0}," if test -s "$nlist"I; then echo >> "$output_objdir/$my_dlsyms" "\ {\"@INIT@\", (void *) <_syminit}," fi case $need_lib_prefix in no) eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$my_dlsyms" ;; *) eval "$global_symbol_to_c_name_address_lib_prefix" < "$nlist" >> "$output_objdir/$my_dlsyms" ;; esac echo >> "$output_objdir/$my_dlsyms" "\ {0, (void *) 0} }; /* This works around a problem in FreeBSD linker */ #ifdef FREEBSD_WORKAROUND static const void *lt_preloaded_setup() { return lt_${my_prefix}_LTX_preloaded_symbols; } #endif #ifdef __cplusplus } #endif\ " } # !$opt_dry_run pic_flag_for_symtable= case "$compile_command " in *" -static "*) ;; *) case $host in # compiling the symbol table file with pic_flag works around # a FreeBSD bug that causes programs to crash when -lm is # linked before any other PIC object. But we must not use # pic_flag when linking with -static. The problem exists in # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1. *-*-freebsd2.*|*-*-freebsd3.0*|*-*-freebsdelf3.0*) pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND" ;; *-*-hpux*) pic_flag_for_symtable=" $pic_flag" ;; *) $my_pic_p && pic_flag_for_symtable=" $pic_flag" ;; esac ;; esac symtab_cflags= for arg in $LTCFLAGS; do case $arg in -pie | -fpie | -fPIE) ;; *) func_append symtab_cflags " $arg" ;; esac done # Now compile the dynamic symbol file. func_show_eval '(cd $output_objdir && $LTCC$symtab_cflags -c$no_builtin_flag$pic_flag_for_symtable "$my_dlsyms")' 'exit $?' # Clean up the generated files. func_show_eval '$RM "$output_objdir/$my_dlsyms" "$nlist" "${nlist}S" "${nlist}T" "${nlist}I"' # Transform the symbol file into the correct name. symfileobj=$output_objdir/${my_outputname}S.$objext case $host in *cygwin* | *mingw* | *cegcc* ) if test -f "$output_objdir/$my_outputname.def"; then compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` else compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"` finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$symfileobj%"` fi ;; *) compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"` finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$symfileobj%"` ;; esac ;; *) func_fatal_error "unknown suffix for '$my_dlsyms'" ;; esac else # We keep going just in case the user didn't refer to # lt_preloaded_symbols. The linker will fail if global_symbol_pipe # really was required. # Nullify the symbol file. compile_command=`$ECHO "$compile_command" | $SED "s% @SYMFILE@%%"` finalize_command=`$ECHO "$finalize_command" | $SED "s% @SYMFILE@%%"` fi } # func_cygming_gnu_implib_p ARG # This predicate returns with zero status (TRUE) if # ARG is a GNU/binutils-style import library. Returns # with nonzero status (FALSE) otherwise. func_cygming_gnu_implib_p () { $debug_cmd func_to_tool_file "$1" func_convert_file_msys_to_w32 func_cygming_gnu_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $EGREP ' (_head_[A-Za-z0-9_]+_[ad]l*|[A-Za-z0-9_]+_[ad]l*_iname)$'` test -n "$func_cygming_gnu_implib_tmp" } # func_cygming_ms_implib_p ARG # This predicate returns with zero status (TRUE) if # ARG is an MS-style import library. Returns # with nonzero status (FALSE) otherwise. func_cygming_ms_implib_p () { $debug_cmd func_to_tool_file "$1" func_convert_file_msys_to_w32 func_cygming_ms_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $GREP '_NULL_IMPORT_DESCRIPTOR'` test -n "$func_cygming_ms_implib_tmp" } # func_win32_libid arg # return the library type of file 'arg' # # Need a lot of goo to handle *both* DLLs and import libs # Has to be a shell function in order to 'eat' the argument # that is supplied when $file_magic_command is called. # Despite the name, also deal with 64 bit binaries. func_win32_libid () { $debug_cmd win32_libid_type=unknown win32_fileres=`file -L $1 2>/dev/null` case $win32_fileres in *ar\ archive\ import\ library*) # definitely import win32_libid_type="x86 archive import" ;; *ar\ archive*) # could be an import, or static # Keep the egrep pattern in sync with the one in _LT_CHECK_MAGIC_METHOD. if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | $EGREP 'file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' >/dev/null; then case $nm_interface in "MS dumpbin") if func_cygming_ms_implib_p "$1" || func_cygming_gnu_implib_p "$1" then win32_nmres=import else win32_nmres= fi ;; *) func_to_tool_file "$1" func_convert_file_msys_to_w32 win32_nmres=`eval $NM -f posix -A \"$func_to_tool_file_result\" | $SED -n -e ' 1,100{ / I /{ s|.*|import| p q } }'` ;; esac case $win32_nmres in import*) win32_libid_type="x86 archive import";; *) win32_libid_type="x86 archive static";; esac fi ;; *DLL*) win32_libid_type="x86 DLL" ;; *executable*) # but shell scripts are "executable" too... case $win32_fileres in *MS\ Windows\ PE\ Intel*) win32_libid_type="x86 DLL" ;; esac ;; esac $ECHO "$win32_libid_type" } # func_cygming_dll_for_implib ARG # # Platform-specific function to extract the # name of the DLL associated with the specified # import library ARG. # Invoked by eval'ing the libtool variable # $sharedlib_from_linklib_cmd # Result is available in the variable # $sharedlib_from_linklib_result func_cygming_dll_for_implib () { $debug_cmd sharedlib_from_linklib_result=`$DLLTOOL --identify-strict --identify "$1"` } # func_cygming_dll_for_implib_fallback_core SECTION_NAME LIBNAMEs # # The is the core of a fallback implementation of a # platform-specific function to extract the name of the # DLL associated with the specified import library LIBNAME. # # SECTION_NAME is either .idata$6 or .idata$7, depending # on the platform and compiler that created the implib. # # Echos the name of the DLL associated with the # specified import library. func_cygming_dll_for_implib_fallback_core () { $debug_cmd match_literal=`$ECHO "$1" | $SED "$sed_make_literal_regex"` $OBJDUMP -s --section "$1" "$2" 2>/dev/null | $SED '/^Contents of section '"$match_literal"':/{ # Place marker at beginning of archive member dllname section s/.*/====MARK====/ p d } # These lines can sometimes be longer than 43 characters, but # are always uninteresting /:[ ]*file format pe[i]\{,1\}-/d /^In archive [^:]*:/d # Ensure marker is printed /^====MARK====/p # Remove all lines with less than 43 characters /^.\{43\}/!d # From remaining lines, remove first 43 characters s/^.\{43\}//' | $SED -n ' # Join marker and all lines until next marker into a single line /^====MARK====/ b para H $ b para b :para x s/\n//g # Remove the marker s/^====MARK====// # Remove trailing dots and whitespace s/[\. \t]*$// # Print /./p' | # we now have a list, one entry per line, of the stringified # contents of the appropriate section of all members of the # archive that possess that section. Heuristic: eliminate # all those that have a first or second character that is # a '.' (that is, objdump's representation of an unprintable # character.) This should work for all archives with less than # 0x302f exports -- but will fail for DLLs whose name actually # begins with a literal '.' or a single character followed by # a '.'. # # Of those that remain, print the first one. $SED -e '/^\./d;/^.\./d;q' } # func_cygming_dll_for_implib_fallback ARG # Platform-specific function to extract the # name of the DLL associated with the specified # import library ARG. # # This fallback implementation is for use when $DLLTOOL # does not support the --identify-strict option. # Invoked by eval'ing the libtool variable # $sharedlib_from_linklib_cmd # Result is available in the variable # $sharedlib_from_linklib_result func_cygming_dll_for_implib_fallback () { $debug_cmd if func_cygming_gnu_implib_p "$1"; then # binutils import library sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$7' "$1"` elif func_cygming_ms_implib_p "$1"; then # ms-generated import library sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$6' "$1"` else # unknown sharedlib_from_linklib_result= fi } # func_extract_an_archive dir oldlib func_extract_an_archive () { $debug_cmd f_ex_an_ar_dir=$1; shift f_ex_an_ar_oldlib=$1 if test yes = "$lock_old_archive_extraction"; then lockfile=$f_ex_an_ar_oldlib.lock until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do func_echo "Waiting for $lockfile to be removed" sleep 2 done fi func_show_eval "(cd \$f_ex_an_ar_dir && $AR x \"\$f_ex_an_ar_oldlib\")" \ 'stat=$?; rm -f "$lockfile"; exit $stat' if test yes = "$lock_old_archive_extraction"; then $opt_dry_run || rm -f "$lockfile" fi if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then : else func_fatal_error "object name conflicts in archive: $f_ex_an_ar_dir/$f_ex_an_ar_oldlib" fi } # func_extract_archives gentop oldlib ... func_extract_archives () { $debug_cmd my_gentop=$1; shift my_oldlibs=${1+"$@"} my_oldobjs= my_xlib= my_xabs= my_xdir= for my_xlib in $my_oldlibs; do # Extract the objects. case $my_xlib in [\\/]* | [A-Za-z]:[\\/]*) my_xabs=$my_xlib ;; *) my_xabs=`pwd`"/$my_xlib" ;; esac func_basename "$my_xlib" my_xlib=$func_basename_result my_xlib_u=$my_xlib while :; do case " $extracted_archives " in *" $my_xlib_u "*) func_arith $extracted_serial + 1 extracted_serial=$func_arith_result my_xlib_u=lt$extracted_serial-$my_xlib ;; *) break ;; esac done extracted_archives="$extracted_archives $my_xlib_u" my_xdir=$my_gentop/$my_xlib_u func_mkdir_p "$my_xdir" case $host in *-darwin*) func_verbose "Extracting $my_xabs" # Do not bother doing anything if just a dry run $opt_dry_run || { darwin_orig_dir=`pwd` cd $my_xdir || exit $? darwin_archive=$my_xabs darwin_curdir=`pwd` func_basename "$darwin_archive" darwin_base_archive=$func_basename_result darwin_arches=`$LIPO -info "$darwin_archive" 2>/dev/null | $GREP Architectures 2>/dev/null || true` if test -n "$darwin_arches"; then darwin_arches=`$ECHO "$darwin_arches" | $SED -e 's/.*are://'` darwin_arch= func_verbose "$darwin_base_archive has multiple architectures $darwin_arches" for darwin_arch in $darwin_arches; do func_mkdir_p "unfat-$$/$darwin_base_archive-$darwin_arch" $LIPO -thin $darwin_arch -output "unfat-$$/$darwin_base_archive-$darwin_arch/$darwin_base_archive" "$darwin_archive" cd "unfat-$$/$darwin_base_archive-$darwin_arch" func_extract_an_archive "`pwd`" "$darwin_base_archive" cd "$darwin_curdir" $RM "unfat-$$/$darwin_base_archive-$darwin_arch/$darwin_base_archive" done # $darwin_arches ## Okay now we've a bunch of thin objects, gotta fatten them up :) darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print | $SED -e "$sed_basename" | sort -u` darwin_file= darwin_files= for darwin_file in $darwin_filelist; do darwin_files=`find unfat-$$ -name $darwin_file -print | sort | $NL2SP` $LIPO -create -output "$darwin_file" $darwin_files done # $darwin_filelist $RM -rf unfat-$$ cd "$darwin_orig_dir" else cd $darwin_orig_dir func_extract_an_archive "$my_xdir" "$my_xabs" fi # $darwin_arches } # !$opt_dry_run ;; *) func_extract_an_archive "$my_xdir" "$my_xabs" ;; esac my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | sort | $NL2SP` done func_extract_archives_result=$my_oldobjs } # func_emit_wrapper [arg=no] # # Emit a libtool wrapper script on stdout. # Don't directly open a file because we may want to # incorporate the script contents within a cygwin/mingw # wrapper executable. Must ONLY be called from within # func_mode_link because it depends on a number of variables # set therein. # # ARG is the value that the WRAPPER_SCRIPT_BELONGS_IN_OBJDIR # variable will take. If 'yes', then the emitted script # will assume that the directory where it is stored is # the $objdir directory. This is a cygwin/mingw-specific # behavior. func_emit_wrapper () { func_emit_wrapper_arg1=${1-no} $ECHO "\ #! $SHELL # $output - temporary wrapper script for $objdir/$outputname # Generated by $PROGRAM (GNU $PACKAGE) $VERSION # # The $output program cannot be directly executed until all the libtool # libraries that it depends on are installed. # # This wrapper script should never be moved out of the build directory. # If it is, it will not operate correctly. # Sed substitution that helps us do robust quoting. It backslashifies # metacharacters that are still active within double-quoted strings. sed_quote_subst='$sed_quote_subst' # Be Bourne compatible if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: # Zsh 3.x and 4.x performs word splitting on \${1+\"\$@\"}, which # is contrary to our usage. Disable this feature. alias -g '\${1+\"\$@\"}'='\"\$@\"' setopt NO_GLOB_SUBST else case \`(set -o) 2>/dev/null\` in *posix*) set -o posix;; esac fi BIN_SH=xpg4; export BIN_SH # for Tru64 DUALCASE=1; export DUALCASE # for MKS sh # The HP-UX ksh and POSIX shell print the target directory to stdout # if CDPATH is set. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH relink_command=\"$relink_command\" # This environment variable determines our operation mode. if test \"\$libtool_install_magic\" = \"$magic\"; then # install mode needs the following variables: generated_by_libtool_version='$macro_version' notinst_deplibs='$notinst_deplibs' else # When we are sourced in execute mode, \$file and \$ECHO are already set. if test \"\$libtool_execute_magic\" != \"$magic\"; then file=\"\$0\"" qECHO=`$ECHO "$ECHO" | $SED "$sed_quote_subst"` $ECHO "\ # A function that is used when there is no print builtin or printf. func_fallback_echo () { eval 'cat <<_LTECHO_EOF \$1 _LTECHO_EOF' } ECHO=\"$qECHO\" fi # Very basic option parsing. These options are (a) specific to # the libtool wrapper, (b) are identical between the wrapper # /script/ and the wrapper /executable/ that is used only on # windows platforms, and (c) all begin with the string "--lt-" # (application programs are unlikely to have options that match # this pattern). # # There are only two supported options: --lt-debug and # --lt-dump-script. There is, deliberately, no --lt-help. # # The first argument to this parsing function should be the # script's $0 value, followed by "$@". lt_option_debug= func_parse_lt_options () { lt_script_arg0=\$0 shift for lt_opt do case \"\$lt_opt\" in --lt-debug) lt_option_debug=1 ;; --lt-dump-script) lt_dump_D=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%/[^/]*$%%'\` test \"X\$lt_dump_D\" = \"X\$lt_script_arg0\" && lt_dump_D=. lt_dump_F=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%^.*/%%'\` cat \"\$lt_dump_D/\$lt_dump_F\" exit 0 ;; --lt-*) \$ECHO \"Unrecognized --lt- option: '\$lt_opt'\" 1>&2 exit 1 ;; esac done # Print the debug banner immediately: if test -n \"\$lt_option_debug\"; then echo \"$outputname:$output:\$LINENO: libtool wrapper (GNU $PACKAGE) $VERSION\" 1>&2 fi } # Used when --lt-debug. Prints its arguments to stdout # (redirection is the responsibility of the caller) func_lt_dump_args () { lt_dump_args_N=1; for lt_arg do \$ECHO \"$outputname:$output:\$LINENO: newargv[\$lt_dump_args_N]: \$lt_arg\" lt_dump_args_N=\`expr \$lt_dump_args_N + 1\` done } # Core function for launching the target application func_exec_program_core () { " case $host in # Backslashes separate directories on plain windows *-*-mingw | *-*-os2* | *-cegcc*) $ECHO "\ if test -n \"\$lt_option_debug\"; then \$ECHO \"$outputname:$output:\$LINENO: newargv[0]: \$progdir\\\\\$program\" 1>&2 func_lt_dump_args \${1+\"\$@\"} 1>&2 fi exec \"\$progdir\\\\\$program\" \${1+\"\$@\"} " ;; *) $ECHO "\ if test -n \"\$lt_option_debug\"; then \$ECHO \"$outputname:$output:\$LINENO: newargv[0]: \$progdir/\$program\" 1>&2 func_lt_dump_args \${1+\"\$@\"} 1>&2 fi exec \"\$progdir/\$program\" \${1+\"\$@\"} " ;; esac $ECHO "\ \$ECHO \"\$0: cannot exec \$program \$*\" 1>&2 exit 1 } # A function to encapsulate launching the target application # Strips options in the --lt-* namespace from \$@ and # launches target application with the remaining arguments. func_exec_program () { case \" \$* \" in *\\ --lt-*) for lt_wr_arg do case \$lt_wr_arg in --lt-*) ;; *) set x \"\$@\" \"\$lt_wr_arg\"; shift;; esac shift done ;; esac func_exec_program_core \${1+\"\$@\"} } # Parse options func_parse_lt_options \"\$0\" \${1+\"\$@\"} # Find the directory that this script lives in. thisdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*$%%'\` test \"x\$thisdir\" = \"x\$file\" && thisdir=. # Follow symbolic links until we get to the real thisdir. file=\`ls -ld \"\$file\" | $SED -n 's/.*-> //p'\` while test -n \"\$file\"; do destdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*\$%%'\` # If there was a directory component, then change thisdir. if test \"x\$destdir\" != \"x\$file\"; then case \"\$destdir\" in [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;; *) thisdir=\"\$thisdir/\$destdir\" ;; esac fi file=\`\$ECHO \"\$file\" | $SED 's%^.*/%%'\` file=\`ls -ld \"\$thisdir/\$file\" | $SED -n 's/.*-> //p'\` done # Usually 'no', except on cygwin/mingw when embedded into # the cwrapper. WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=$func_emit_wrapper_arg1 if test \"\$WRAPPER_SCRIPT_BELONGS_IN_OBJDIR\" = \"yes\"; then # special case for '.' if test \"\$thisdir\" = \".\"; then thisdir=\`pwd\` fi # remove .libs from thisdir case \"\$thisdir\" in *[\\\\/]$objdir ) thisdir=\`\$ECHO \"\$thisdir\" | $SED 's%[\\\\/][^\\\\/]*$%%'\` ;; $objdir ) thisdir=. ;; esac fi # Try to get the absolute directory name. absdir=\`cd \"\$thisdir\" && pwd\` test -n \"\$absdir\" && thisdir=\"\$absdir\" " if test yes = "$fast_install"; then $ECHO "\ program=lt-'$outputname'$exeext progdir=\"\$thisdir/$objdir\" if test ! -f \"\$progdir/\$program\" || { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | $SED 1q\`; \\ test \"X\$file\" != \"X\$progdir/\$program\"; }; then file=\"\$\$-\$program\" if test ! -d \"\$progdir\"; then $MKDIR \"\$progdir\" else $RM \"\$progdir/\$file\" fi" $ECHO "\ # relink executable if necessary if test -n \"\$relink_command\"; then if relink_command_output=\`eval \$relink_command 2>&1\`; then : else \$ECHO \"\$relink_command_output\" >&2 $RM \"\$progdir/\$file\" exit 1 fi fi $MV \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null || { $RM \"\$progdir/\$program\"; $MV \"\$progdir/\$file\" \"\$progdir/\$program\"; } $RM \"\$progdir/\$file\" fi" else $ECHO "\ program='$outputname' progdir=\"\$thisdir/$objdir\" " fi $ECHO "\ if test -f \"\$progdir/\$program\"; then" # fixup the dll searchpath if we need to. # # Fix the DLL searchpath if we need to. Do this before prepending # to shlibpath, because on Windows, both are PATH and uninstalled # libraries must come first. if test -n "$dllsearchpath"; then $ECHO "\ # Add the dll search path components to the executable PATH PATH=$dllsearchpath:\$PATH " fi # Export our shlibpath_var if we have one. if test yes = "$shlibpath_overrides_runpath" && test -n "$shlibpath_var" && test -n "$temp_rpath"; then $ECHO "\ # Add our own library path to $shlibpath_var $shlibpath_var=\"$temp_rpath\$$shlibpath_var\" # Some systems cannot cope with colon-terminated $shlibpath_var # The second colon is a workaround for a bug in BeOS R4 sed $shlibpath_var=\`\$ECHO \"\$$shlibpath_var\" | $SED 's/::*\$//'\` export $shlibpath_var " fi $ECHO "\ if test \"\$libtool_execute_magic\" != \"$magic\"; then # Run the actual program with our arguments. func_exec_program \${1+\"\$@\"} fi else # The program doesn't exist. \$ECHO \"\$0: error: '\$progdir/\$program' does not exist\" 1>&2 \$ECHO \"This script is just a wrapper for \$program.\" 1>&2 \$ECHO \"See the $PACKAGE documentation for more information.\" 1>&2 exit 1 fi fi\ " } # func_emit_cwrapperexe_src # emit the source code for a wrapper executable on stdout # Must ONLY be called from within func_mode_link because # it depends on a number of variable set therein. func_emit_cwrapperexe_src () { cat < #include #ifdef _MSC_VER # include # include # include #else # include # include # ifdef __CYGWIN__ # include # endif #endif #include #include #include #include #include #include #include #include #define STREQ(s1, s2) (strcmp ((s1), (s2)) == 0) /* declarations of non-ANSI functions */ #if defined __MINGW32__ # ifdef __STRICT_ANSI__ int _putenv (const char *); # endif #elif defined __CYGWIN__ # ifdef __STRICT_ANSI__ char *realpath (const char *, char *); int putenv (char *); int setenv (const char *, const char *, int); # endif /* #elif defined other_platform || defined ... */ #endif /* portability defines, excluding path handling macros */ #if defined _MSC_VER # define setmode _setmode # define stat _stat # define chmod _chmod # define getcwd _getcwd # define putenv _putenv # define S_IXUSR _S_IEXEC #elif defined __MINGW32__ # define setmode _setmode # define stat _stat # define chmod _chmod # define getcwd _getcwd # define putenv _putenv #elif defined __CYGWIN__ # define HAVE_SETENV # define FOPEN_WB "wb" /* #elif defined other platforms ... */ #endif #if defined PATH_MAX # define LT_PATHMAX PATH_MAX #elif defined MAXPATHLEN # define LT_PATHMAX MAXPATHLEN #else # define LT_PATHMAX 1024 #endif #ifndef S_IXOTH # define S_IXOTH 0 #endif #ifndef S_IXGRP # define S_IXGRP 0 #endif /* path handling portability macros */ #ifndef DIR_SEPARATOR # define DIR_SEPARATOR '/' # define PATH_SEPARATOR ':' #endif #if defined _WIN32 || defined __MSDOS__ || defined __DJGPP__ || \ defined __OS2__ # define HAVE_DOS_BASED_FILE_SYSTEM # define FOPEN_WB "wb" # ifndef DIR_SEPARATOR_2 # define DIR_SEPARATOR_2 '\\' # endif # ifndef PATH_SEPARATOR_2 # define PATH_SEPARATOR_2 ';' # endif #endif #ifndef DIR_SEPARATOR_2 # define IS_DIR_SEPARATOR(ch) ((ch) == DIR_SEPARATOR) #else /* DIR_SEPARATOR_2 */ # define IS_DIR_SEPARATOR(ch) \ (((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2)) #endif /* DIR_SEPARATOR_2 */ #ifndef PATH_SEPARATOR_2 # define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR) #else /* PATH_SEPARATOR_2 */ # define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR_2) #endif /* PATH_SEPARATOR_2 */ #ifndef FOPEN_WB # define FOPEN_WB "w" #endif #ifndef _O_BINARY # define _O_BINARY 0 #endif #define XMALLOC(type, num) ((type *) xmalloc ((num) * sizeof(type))) #define XFREE(stale) do { \ if (stale) { free (stale); stale = 0; } \ } while (0) #if defined LT_DEBUGWRAPPER static int lt_debug = 1; #else static int lt_debug = 0; #endif const char *program_name = "libtool-wrapper"; /* in case xstrdup fails */ void *xmalloc (size_t num); char *xstrdup (const char *string); const char *base_name (const char *name); char *find_executable (const char *wrapper); char *chase_symlinks (const char *pathspec); int make_executable (const char *path); int check_executable (const char *path); char *strendzap (char *str, const char *pat); void lt_debugprintf (const char *file, int line, const char *fmt, ...); void lt_fatal (const char *file, int line, const char *message, ...); static const char *nonnull (const char *s); static const char *nonempty (const char *s); void lt_setenv (const char *name, const char *value); char *lt_extend_str (const char *orig_value, const char *add, int to_end); void lt_update_exe_path (const char *name, const char *value); void lt_update_lib_path (const char *name, const char *value); char **prepare_spawn (char **argv); void lt_dump_script (FILE *f); EOF cat <= 0) && (st.st_mode & (S_IXUSR | S_IXGRP | S_IXOTH))) return 1; else return 0; } int make_executable (const char *path) { int rval = 0; struct stat st; lt_debugprintf (__FILE__, __LINE__, "(make_executable): %s\n", nonempty (path)); if ((!path) || (!*path)) return 0; if (stat (path, &st) >= 0) { rval = chmod (path, st.st_mode | S_IXOTH | S_IXGRP | S_IXUSR); } return rval; } /* Searches for the full path of the wrapper. Returns newly allocated full path name if found, NULL otherwise Does not chase symlinks, even on platforms that support them. */ char * find_executable (const char *wrapper) { int has_slash = 0; const char *p; const char *p_next; /* static buffer for getcwd */ char tmp[LT_PATHMAX + 1]; size_t tmp_len; char *concat_name; lt_debugprintf (__FILE__, __LINE__, "(find_executable): %s\n", nonempty (wrapper)); if ((wrapper == NULL) || (*wrapper == '\0')) return NULL; /* Absolute path? */ #if defined HAVE_DOS_BASED_FILE_SYSTEM if (isalpha ((unsigned char) wrapper[0]) && wrapper[1] == ':') { concat_name = xstrdup (wrapper); if (check_executable (concat_name)) return concat_name; XFREE (concat_name); } else { #endif if (IS_DIR_SEPARATOR (wrapper[0])) { concat_name = xstrdup (wrapper); if (check_executable (concat_name)) return concat_name; XFREE (concat_name); } #if defined HAVE_DOS_BASED_FILE_SYSTEM } #endif for (p = wrapper; *p; p++) if (*p == '/') { has_slash = 1; break; } if (!has_slash) { /* no slashes; search PATH */ const char *path = getenv ("PATH"); if (path != NULL) { for (p = path; *p; p = p_next) { const char *q; size_t p_len; for (q = p; *q; q++) if (IS_PATH_SEPARATOR (*q)) break; p_len = (size_t) (q - p); p_next = (*q == '\0' ? q : q + 1); if (p_len == 0) { /* empty path: current directory */ if (getcwd (tmp, LT_PATHMAX) == NULL) lt_fatal (__FILE__, __LINE__, "getcwd failed: %s", nonnull (strerror (errno))); tmp_len = strlen (tmp); concat_name = XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1); memcpy (concat_name, tmp, tmp_len); concat_name[tmp_len] = '/'; strcpy (concat_name + tmp_len + 1, wrapper); } else { concat_name = XMALLOC (char, p_len + 1 + strlen (wrapper) + 1); memcpy (concat_name, p, p_len); concat_name[p_len] = '/'; strcpy (concat_name + p_len + 1, wrapper); } if (check_executable (concat_name)) return concat_name; XFREE (concat_name); } } /* not found in PATH; assume curdir */ } /* Relative path | not found in path: prepend cwd */ if (getcwd (tmp, LT_PATHMAX) == NULL) lt_fatal (__FILE__, __LINE__, "getcwd failed: %s", nonnull (strerror (errno))); tmp_len = strlen (tmp); concat_name = XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1); memcpy (concat_name, tmp, tmp_len); concat_name[tmp_len] = '/'; strcpy (concat_name + tmp_len + 1, wrapper); if (check_executable (concat_name)) return concat_name; XFREE (concat_name); return NULL; } char * chase_symlinks (const char *pathspec) { #ifndef S_ISLNK return xstrdup (pathspec); #else char buf[LT_PATHMAX]; struct stat s; char *tmp_pathspec = xstrdup (pathspec); char *p; int has_symlinks = 0; while (strlen (tmp_pathspec) && !has_symlinks) { lt_debugprintf (__FILE__, __LINE__, "checking path component for symlinks: %s\n", tmp_pathspec); if (lstat (tmp_pathspec, &s) == 0) { if (S_ISLNK (s.st_mode) != 0) { has_symlinks = 1; break; } /* search backwards for last DIR_SEPARATOR */ p = tmp_pathspec + strlen (tmp_pathspec) - 1; while ((p > tmp_pathspec) && (!IS_DIR_SEPARATOR (*p))) p--; if ((p == tmp_pathspec) && (!IS_DIR_SEPARATOR (*p))) { /* no more DIR_SEPARATORS left */ break; } *p = '\0'; } else { lt_fatal (__FILE__, __LINE__, "error accessing file \"%s\": %s", tmp_pathspec, nonnull (strerror (errno))); } } XFREE (tmp_pathspec); if (!has_symlinks) { return xstrdup (pathspec); } tmp_pathspec = realpath (pathspec, buf); if (tmp_pathspec == 0) { lt_fatal (__FILE__, __LINE__, "could not follow symlinks for %s", pathspec); } return xstrdup (tmp_pathspec); #endif } char * strendzap (char *str, const char *pat) { size_t len, patlen; assert (str != NULL); assert (pat != NULL); len = strlen (str); patlen = strlen (pat); if (patlen <= len) { str += len - patlen; if (STREQ (str, pat)) *str = '\0'; } return str; } void lt_debugprintf (const char *file, int line, const char *fmt, ...) { va_list args; if (lt_debug) { (void) fprintf (stderr, "%s:%s:%d: ", program_name, file, line); va_start (args, fmt); (void) vfprintf (stderr, fmt, args); va_end (args); } } static void lt_error_core (int exit_status, const char *file, int line, const char *mode, const char *message, va_list ap) { fprintf (stderr, "%s:%s:%d: %s: ", program_name, file, line, mode); vfprintf (stderr, message, ap); fprintf (stderr, ".\n"); if (exit_status >= 0) exit (exit_status); } void lt_fatal (const char *file, int line, const char *message, ...) { va_list ap; va_start (ap, message); lt_error_core (EXIT_FAILURE, file, line, "FATAL", message, ap); va_end (ap); } static const char * nonnull (const char *s) { return s ? s : "(null)"; } static const char * nonempty (const char *s) { return (s && !*s) ? "(empty)" : nonnull (s); } void lt_setenv (const char *name, const char *value) { lt_debugprintf (__FILE__, __LINE__, "(lt_setenv) setting '%s' to '%s'\n", nonnull (name), nonnull (value)); { #ifdef HAVE_SETENV /* always make a copy, for consistency with !HAVE_SETENV */ char *str = xstrdup (value); setenv (name, str, 1); #else size_t len = strlen (name) + 1 + strlen (value) + 1; char *str = XMALLOC (char, len); sprintf (str, "%s=%s", name, value); if (putenv (str) != EXIT_SUCCESS) { XFREE (str); } #endif } } char * lt_extend_str (const char *orig_value, const char *add, int to_end) { char *new_value; if (orig_value && *orig_value) { size_t orig_value_len = strlen (orig_value); size_t add_len = strlen (add); new_value = XMALLOC (char, add_len + orig_value_len + 1); if (to_end) { strcpy (new_value, orig_value); strcpy (new_value + orig_value_len, add); } else { strcpy (new_value, add); strcpy (new_value + add_len, orig_value); } } else { new_value = xstrdup (add); } return new_value; } void lt_update_exe_path (const char *name, const char *value) { lt_debugprintf (__FILE__, __LINE__, "(lt_update_exe_path) modifying '%s' by prepending '%s'\n", nonnull (name), nonnull (value)); if (name && *name && value && *value) { char *new_value = lt_extend_str (getenv (name), value, 0); /* some systems can't cope with a ':'-terminated path #' */ size_t len = strlen (new_value); while ((len > 0) && IS_PATH_SEPARATOR (new_value[len-1])) { new_value[--len] = '\0'; } lt_setenv (name, new_value); XFREE (new_value); } } void lt_update_lib_path (const char *name, const char *value) { lt_debugprintf (__FILE__, __LINE__, "(lt_update_lib_path) modifying '%s' by prepending '%s'\n", nonnull (name), nonnull (value)); if (name && *name && value && *value) { char *new_value = lt_extend_str (getenv (name), value, 0); lt_setenv (name, new_value); XFREE (new_value); } } EOF case $host_os in mingw*) cat <<"EOF" /* Prepares an argument vector before calling spawn(). Note that spawn() does not by itself call the command interpreter (getenv ("COMSPEC") != NULL ? getenv ("COMSPEC") : ({ OSVERSIONINFO v; v.dwOSVersionInfoSize = sizeof(OSVERSIONINFO); GetVersionEx(&v); v.dwPlatformId == VER_PLATFORM_WIN32_NT; }) ? "cmd.exe" : "command.com"). Instead it simply concatenates the arguments, separated by ' ', and calls CreateProcess(). We must quote the arguments since Win32 CreateProcess() interprets characters like ' ', '\t', '\\', '"' (but not '<' and '>') in a special way: - Space and tab are interpreted as delimiters. They are not treated as delimiters if they are surrounded by double quotes: "...". - Unescaped double quotes are removed from the input. Their only effect is that within double quotes, space and tab are treated like normal characters. - Backslashes not followed by double quotes are not special. - But 2*n+1 backslashes followed by a double quote become n backslashes followed by a double quote (n >= 0): \" -> " \\\" -> \" \\\\\" -> \\" */ #define SHELL_SPECIAL_CHARS "\"\\ \001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037" #define SHELL_SPACE_CHARS " \001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037" char ** prepare_spawn (char **argv) { size_t argc; char **new_argv; size_t i; /* Count number of arguments. */ for (argc = 0; argv[argc] != NULL; argc++) ; /* Allocate new argument vector. */ new_argv = XMALLOC (char *, argc + 1); /* Put quoted arguments into the new argument vector. */ for (i = 0; i < argc; i++) { const char *string = argv[i]; if (string[0] == '\0') new_argv[i] = xstrdup ("\"\""); else if (strpbrk (string, SHELL_SPECIAL_CHARS) != NULL) { int quote_around = (strpbrk (string, SHELL_SPACE_CHARS) != NULL); size_t length; unsigned int backslashes; const char *s; char *quoted_string; char *p; length = 0; backslashes = 0; if (quote_around) length++; for (s = string; *s != '\0'; s++) { char c = *s; if (c == '"') length += backslashes + 1; length++; if (c == '\\') backslashes++; else backslashes = 0; } if (quote_around) length += backslashes + 1; quoted_string = XMALLOC (char, length + 1); p = quoted_string; backslashes = 0; if (quote_around) *p++ = '"'; for (s = string; *s != '\0'; s++) { char c = *s; if (c == '"') { unsigned int j; for (j = backslashes + 1; j > 0; j--) *p++ = '\\'; } *p++ = c; if (c == '\\') backslashes++; else backslashes = 0; } if (quote_around) { unsigned int j; for (j = backslashes; j > 0; j--) *p++ = '\\'; *p++ = '"'; } *p = '\0'; new_argv[i] = quoted_string; } else new_argv[i] = (char *) string; } new_argv[argc] = NULL; return new_argv; } EOF ;; esac cat <<"EOF" void lt_dump_script (FILE* f) { EOF func_emit_wrapper yes | $SED -n -e ' s/^\(.\{79\}\)\(..*\)/\1\ \2/ h s/\([\\"]\)/\\\1/g s/$/\\n/ s/\([^\n]*\).*/ fputs ("\1", f);/p g D' cat <<"EOF" } EOF } # end: func_emit_cwrapperexe_src # func_win32_import_lib_p ARG # True if ARG is an import lib, as indicated by $file_magic_cmd func_win32_import_lib_p () { $debug_cmd case `eval $file_magic_cmd \"\$1\" 2>/dev/null | $SED -e 10q` in *import*) : ;; *) false ;; esac } # func_suncc_cstd_abi # !!ONLY CALL THIS FOR SUN CC AFTER $compile_command IS FULLY EXPANDED!! # Several compiler flags select an ABI that is incompatible with the # Cstd library. Avoid specifying it if any are in CXXFLAGS. func_suncc_cstd_abi () { $debug_cmd case " $compile_command " in *" -compat=g "*|*\ -std=c++[0-9][0-9]\ *|*" -library=stdcxx4 "*|*" -library=stlport4 "*) suncc_use_cstd_abi=no ;; *) suncc_use_cstd_abi=yes ;; esac } # func_mode_link arg... func_mode_link () { $debug_cmd case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) # It is impossible to link a dll without this setting, and # we shouldn't force the makefile maintainer to figure out # what system we are compiling for in order to pass an extra # flag for every libtool invocation. # allow_undefined=no # FIXME: Unfortunately, there are problems with the above when trying # to make a dll that has undefined symbols, in which case not # even a static library is built. For now, we need to specify # -no-undefined on the libtool link line when we can be certain # that all symbols are satisfied, otherwise we get a static library. allow_undefined=yes ;; *) allow_undefined=yes ;; esac libtool_args=$nonopt base_compile="$nonopt $@" compile_command=$nonopt finalize_command=$nonopt compile_rpath= finalize_rpath= compile_shlibpath= finalize_shlibpath= convenience= old_convenience= deplibs= old_deplibs= compiler_flags= linker_flags= dllsearchpath= lib_search_path=`pwd` inst_prefix_dir= new_inherited_linker_flags= avoid_version=no bindir= dlfiles= dlprefiles= dlself=no export_dynamic=no export_symbols= export_symbols_regex= generated= libobjs= ltlibs= module=no no_install=no objs= os2dllname= non_pic_objects= precious_files_regex= prefer_static_libs=no preload=false prev= prevarg= release= rpath= xrpath= perm_rpath= temp_rpath= thread_safe=no vinfo= vinfo_number=no weak_libs= single_module=$wl-single_module func_infer_tag $base_compile # We need to know -static, to get the right output filenames. for arg do case $arg in -shared) test yes != "$build_libtool_libs" \ && func_fatal_configuration "cannot build a shared library" build_old_libs=no break ;; -all-static | -static | -static-libtool-libs) case $arg in -all-static) if test yes = "$build_libtool_libs" && test -z "$link_static_flag"; then func_warning "complete static linking is impossible in this configuration" fi if test -n "$link_static_flag"; then dlopen_self=$dlopen_self_static fi prefer_static_libs=yes ;; -static) if test -z "$pic_flag" && test -n "$link_static_flag"; then dlopen_self=$dlopen_self_static fi prefer_static_libs=built ;; -static-libtool-libs) if test -z "$pic_flag" && test -n "$link_static_flag"; then dlopen_self=$dlopen_self_static fi prefer_static_libs=yes ;; esac build_libtool_libs=no build_old_libs=yes break ;; esac done # See if our shared archives depend on static archives. test -n "$old_archive_from_new_cmds" && build_old_libs=yes # Go through the arguments, transforming them on the way. while test "$#" -gt 0; do arg=$1 shift func_quote_for_eval "$arg" qarg=$func_quote_for_eval_unquoted_result func_append libtool_args " $func_quote_for_eval_result" # If the previous option needs an argument, assign it. if test -n "$prev"; then case $prev in output) func_append compile_command " @OUTPUT@" func_append finalize_command " @OUTPUT@" ;; esac case $prev in bindir) bindir=$arg prev= continue ;; dlfiles|dlprefiles) $preload || { # Add the symbol object into the linking commands. func_append compile_command " @SYMFILE@" func_append finalize_command " @SYMFILE@" preload=: } case $arg in *.la | *.lo) ;; # We handle these cases below. force) if test no = "$dlself"; then dlself=needless export_dynamic=yes fi prev= continue ;; self) if test dlprefiles = "$prev"; then dlself=yes elif test dlfiles = "$prev" && test yes != "$dlopen_self"; then dlself=yes else dlself=needless export_dynamic=yes fi prev= continue ;; *) if test dlfiles = "$prev"; then func_append dlfiles " $arg" else func_append dlprefiles " $arg" fi prev= continue ;; esac ;; expsyms) export_symbols=$arg test -f "$arg" \ || func_fatal_error "symbol file '$arg' does not exist" prev= continue ;; expsyms_regex) export_symbols_regex=$arg prev= continue ;; framework) case $host in *-*-darwin*) case "$deplibs " in *" $qarg.ltframework "*) ;; *) func_append deplibs " $qarg.ltframework" # this is fixed later ;; esac ;; esac prev= continue ;; inst_prefix) inst_prefix_dir=$arg prev= continue ;; mllvm) # Clang does not use LLVM to link, so we can simply discard any # '-mllvm $arg' options when doing the link step. prev= continue ;; objectlist) if test -f "$arg"; then save_arg=$arg moreargs= for fil in `cat "$save_arg"` do # func_append moreargs " $fil" arg=$fil # A libtool-controlled object. # Check to see that this really is a libtool object. if func_lalib_unsafe_p "$arg"; then pic_object= non_pic_object= # Read the .lo file func_source "$arg" if test -z "$pic_object" || test -z "$non_pic_object" || test none = "$pic_object" && test none = "$non_pic_object"; then func_fatal_error "cannot find name of object for '$arg'" fi # Extract subdirectory from the argument. func_dirname "$arg" "/" "" xdir=$func_dirname_result if test none != "$pic_object"; then # Prepend the subdirectory the object is found in. pic_object=$xdir$pic_object if test dlfiles = "$prev"; then if test yes = "$build_libtool_libs" && test yes = "$dlopen_support"; then func_append dlfiles " $pic_object" prev= continue else # If libtool objects are unsupported, then we need to preload. prev=dlprefiles fi fi # CHECK ME: I think I busted this. -Ossama if test dlprefiles = "$prev"; then # Preload the old-style object. func_append dlprefiles " $pic_object" prev= fi # A PIC object. func_append libobjs " $pic_object" arg=$pic_object fi # Non-PIC object. if test none != "$non_pic_object"; then # Prepend the subdirectory the object is found in. non_pic_object=$xdir$non_pic_object # A standard non-PIC object func_append non_pic_objects " $non_pic_object" if test -z "$pic_object" || test none = "$pic_object"; then arg=$non_pic_object fi else # If the PIC object exists, use it instead. # $xdir was prepended to $pic_object above. non_pic_object=$pic_object func_append non_pic_objects " $non_pic_object" fi else # Only an error if not doing a dry-run. if $opt_dry_run; then # Extract subdirectory from the argument. func_dirname "$arg" "/" "" xdir=$func_dirname_result func_lo2o "$arg" pic_object=$xdir$objdir/$func_lo2o_result non_pic_object=$xdir$func_lo2o_result func_append libobjs " $pic_object" func_append non_pic_objects " $non_pic_object" else func_fatal_error "'$arg' is not a valid libtool object" fi fi done else func_fatal_error "link input file '$arg' does not exist" fi arg=$save_arg prev= continue ;; os2dllname) os2dllname=$arg prev= continue ;; precious_regex) precious_files_regex=$arg prev= continue ;; release) release=-$arg prev= continue ;; rpath | xrpath) # We need an absolute path. case $arg in [\\/]* | [A-Za-z]:[\\/]*) ;; *) func_fatal_error "only absolute run-paths are allowed" ;; esac if test rpath = "$prev"; then case "$rpath " in *" $arg "*) ;; *) func_append rpath " $arg" ;; esac else case "$xrpath " in *" $arg "*) ;; *) func_append xrpath " $arg" ;; esac fi prev= continue ;; shrext) shrext_cmds=$arg prev= continue ;; weak) func_append weak_libs " $arg" prev= continue ;; xcclinker) func_append linker_flags " $qarg" func_append compiler_flags " $qarg" prev= func_append compile_command " $qarg" func_append finalize_command " $qarg" continue ;; xcompiler) func_append compiler_flags " $qarg" prev= func_append compile_command " $qarg" func_append finalize_command " $qarg" continue ;; xlinker) func_append linker_flags " $qarg" func_append compiler_flags " $wl$qarg" prev= func_append compile_command " $wl$qarg" func_append finalize_command " $wl$qarg" continue ;; *) eval "$prev=\"\$arg\"" prev= continue ;; esac fi # test -n "$prev" prevarg=$arg case $arg in -all-static) if test -n "$link_static_flag"; then # See comment for -static flag below, for more details. func_append compile_command " $link_static_flag" func_append finalize_command " $link_static_flag" fi continue ;; -allow-undefined) # FIXME: remove this flag sometime in the future. func_fatal_error "'-allow-undefined' must not be used because it is the default" ;; -avoid-version) avoid_version=yes continue ;; -bindir) prev=bindir continue ;; -dlopen) prev=dlfiles continue ;; -dlpreopen) prev=dlprefiles continue ;; -export-dynamic) export_dynamic=yes continue ;; -export-symbols | -export-symbols-regex) if test -n "$export_symbols" || test -n "$export_symbols_regex"; then func_fatal_error "more than one -exported-symbols argument is not allowed" fi if test X-export-symbols = "X$arg"; then prev=expsyms else prev=expsyms_regex fi continue ;; -framework) prev=framework continue ;; -inst-prefix-dir) prev=inst_prefix continue ;; # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:* # so, if we see these flags be careful not to treat them like -L -L[A-Z][A-Z]*:*) case $with_gcc/$host in no/*-*-irix* | /*-*-irix*) func_append compile_command " $arg" func_append finalize_command " $arg" ;; esac continue ;; -L*) func_stripname "-L" '' "$arg" if test -z "$func_stripname_result"; then if test "$#" -gt 0; then func_fatal_error "require no space between '-L' and '$1'" else func_fatal_error "need path for '-L' option" fi fi func_resolve_sysroot "$func_stripname_result" dir=$func_resolve_sysroot_result # We need an absolute path. case $dir in [\\/]* | [A-Za-z]:[\\/]*) ;; *) absdir=`cd "$dir" && pwd` test -z "$absdir" && \ func_fatal_error "cannot determine absolute directory name of '$dir'" dir=$absdir ;; esac case "$deplibs " in *" -L$dir "* | *" $arg "*) # Will only happen for absolute or sysroot arguments ;; *) # Preserve sysroot, but never include relative directories case $dir in [\\/]* | [A-Za-z]:[\\/]* | =*) func_append deplibs " $arg" ;; *) func_append deplibs " -L$dir" ;; esac func_append lib_search_path " $dir" ;; esac case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) testbindir=`$ECHO "$dir" | $SED 's*/lib$*/bin*'` case :$dllsearchpath: in *":$dir:"*) ;; ::) dllsearchpath=$dir;; *) func_append dllsearchpath ":$dir";; esac case :$dllsearchpath: in *":$testbindir:"*) ;; ::) dllsearchpath=$testbindir;; *) func_append dllsearchpath ":$testbindir";; esac ;; esac continue ;; -l*) if test X-lc = "X$arg" || test X-lm = "X$arg"; then case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos* | *-cegcc* | *-*-haiku*) # These systems don't actually have a C or math library (as such) continue ;; *-*-os2*) # These systems don't actually have a C library (as such) test X-lc = "X$arg" && continue ;; *-*-openbsd* | *-*-freebsd* | *-*-dragonfly* | *-*-bitrig*) # Do not include libc due to us having libc/libc_r. test X-lc = "X$arg" && continue ;; *-*-rhapsody* | *-*-darwin1.[012]) # Rhapsody C and math libraries are in the System framework func_append deplibs " System.ltframework" continue ;; *-*-sco3.2v5* | *-*-sco5v6*) # Causes problems with __ctype test X-lc = "X$arg" && continue ;; *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) # Compiler inserts libc in the correct place for threads to work test X-lc = "X$arg" && continue ;; esac elif test X-lc_r = "X$arg"; then case $host in *-*-openbsd* | *-*-freebsd* | *-*-dragonfly* | *-*-bitrig*) # Do not include libc_r directly, use -pthread flag. continue ;; esac fi func_append deplibs " $arg" continue ;; -mllvm) prev=mllvm continue ;; -module) module=yes continue ;; # Tru64 UNIX uses -model [arg] to determine the layout of C++ # classes, name mangling, and exception handling. # Darwin uses the -arch flag to determine output architecture. -model|-arch|-isysroot|--sysroot) func_append compiler_flags " $arg" func_append compile_command " $arg" func_append finalize_command " $arg" prev=xcompiler continue ;; -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe \ |-threads|-fopenmp|-openmp|-mp|-xopenmp|-omp|-qsmp=*) func_append compiler_flags " $arg" func_append compile_command " $arg" func_append finalize_command " $arg" case "$new_inherited_linker_flags " in *" $arg "*) ;; * ) func_append new_inherited_linker_flags " $arg" ;; esac continue ;; -multi_module) single_module=$wl-multi_module continue ;; -no-fast-install) fast_install=no continue ;; -no-install) case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-darwin* | *-cegcc*) # The PATH hackery in wrapper scripts is required on Windows # and Darwin in order for the loader to find any dlls it needs. func_warning "'-no-install' is ignored for $host" func_warning "assuming '-no-fast-install' instead" fast_install=no ;; *) no_install=yes ;; esac continue ;; -no-undefined) allow_undefined=no continue ;; -objectlist) prev=objectlist continue ;; -os2dllname) prev=os2dllname continue ;; -o) prev=output ;; -precious-files-regex) prev=precious_regex continue ;; -release) prev=release continue ;; -rpath) prev=rpath continue ;; -R) prev=xrpath continue ;; -R*) func_stripname '-R' '' "$arg" dir=$func_stripname_result # We need an absolute path. case $dir in [\\/]* | [A-Za-z]:[\\/]*) ;; =*) func_stripname '=' '' "$dir" dir=$lt_sysroot$func_stripname_result ;; *) func_fatal_error "only absolute run-paths are allowed" ;; esac case "$xrpath " in *" $dir "*) ;; *) func_append xrpath " $dir" ;; esac continue ;; -shared) # The effects of -shared are defined in a previous loop. continue ;; -shrext) prev=shrext continue ;; -static | -static-libtool-libs) # The effects of -static are defined in a previous loop. # We used to do the same as -all-static on platforms that # didn't have a PIC flag, but the assumption that the effects # would be equivalent was wrong. It would break on at least # Digital Unix and AIX. continue ;; -thread-safe) thread_safe=yes continue ;; -version-info) prev=vinfo continue ;; -version-number) prev=vinfo vinfo_number=yes continue ;; -weak) prev=weak continue ;; -Wc,*) func_stripname '-Wc,' '' "$arg" args=$func_stripname_result arg= save_ifs=$IFS; IFS=, for flag in $args; do IFS=$save_ifs func_quote_for_eval "$flag" func_append arg " $func_quote_for_eval_result" func_append compiler_flags " $func_quote_for_eval_result" done IFS=$save_ifs func_stripname ' ' '' "$arg" arg=$func_stripname_result ;; -Wl,*) func_stripname '-Wl,' '' "$arg" args=$func_stripname_result arg= save_ifs=$IFS; IFS=, for flag in $args; do IFS=$save_ifs func_quote_for_eval "$flag" func_append arg " $wl$func_quote_for_eval_result" func_append compiler_flags " $wl$func_quote_for_eval_result" func_append linker_flags " $func_quote_for_eval_result" done IFS=$save_ifs func_stripname ' ' '' "$arg" arg=$func_stripname_result ;; -Xcompiler) prev=xcompiler continue ;; -Xlinker) prev=xlinker continue ;; -XCClinker) prev=xcclinker continue ;; # -msg_* for osf cc -msg_*) func_quote_for_eval "$arg" arg=$func_quote_for_eval_result ;; # Flags to be passed through unchanged, with rationale: # -64, -mips[0-9] enable 64-bit mode for the SGI compiler # -r[0-9][0-9]* specify processor for the SGI compiler # -xarch=*, -xtarget=* enable 64-bit mode for the Sun compiler # +DA*, +DD* enable 64-bit mode for the HP compiler # -q* compiler args for the IBM compiler # -m*, -t[45]*, -txscale* architecture-specific flags for GCC # -F/path path to uninstalled frameworks, gcc on darwin # -p, -pg, --coverage, -fprofile-* profiling flags for GCC # -fstack-protector* stack protector flags for GCC # @file GCC response files # -tp=* Portland pgcc target processor selection # --sysroot=* for sysroot support # -O*, -g*, -flto*, -fwhopr*, -fuse-linker-plugin GCC link-time optimization # -specs=* GCC specs files # -stdlib=* select c++ std lib with clang # -fsanitize=* Clang/GCC memory and address sanitizer -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \ -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*|-tp=*|--sysroot=*| \ -O*|-g*|-flto*|-fwhopr*|-fuse-linker-plugin|-fstack-protector*|-stdlib=*| \ -specs=*|-fsanitize=*) func_quote_for_eval "$arg" arg=$func_quote_for_eval_result func_append compile_command " $arg" func_append finalize_command " $arg" func_append compiler_flags " $arg" continue ;; -Z*) if test os2 = "`expr $host : '.*\(os2\)'`"; then # OS/2 uses -Zxxx to specify OS/2-specific options compiler_flags="$compiler_flags $arg" func_append compile_command " $arg" func_append finalize_command " $arg" case $arg in -Zlinker | -Zstack) prev=xcompiler ;; esac continue else # Otherwise treat like 'Some other compiler flag' below func_quote_for_eval "$arg" arg=$func_quote_for_eval_result fi ;; # Some other compiler flag. -* | +*) func_quote_for_eval "$arg" arg=$func_quote_for_eval_result ;; *.$objext) # A standard object. func_append objs " $arg" ;; *.lo) # A libtool-controlled object. # Check to see that this really is a libtool object. if func_lalib_unsafe_p "$arg"; then pic_object= non_pic_object= # Read the .lo file func_source "$arg" if test -z "$pic_object" || test -z "$non_pic_object" || test none = "$pic_object" && test none = "$non_pic_object"; then func_fatal_error "cannot find name of object for '$arg'" fi # Extract subdirectory from the argument. func_dirname "$arg" "/" "" xdir=$func_dirname_result test none = "$pic_object" || { # Prepend the subdirectory the object is found in. pic_object=$xdir$pic_object if test dlfiles = "$prev"; then if test yes = "$build_libtool_libs" && test yes = "$dlopen_support"; then func_append dlfiles " $pic_object" prev= continue else # If libtool objects are unsupported, then we need to preload. prev=dlprefiles fi fi # CHECK ME: I think I busted this. -Ossama if test dlprefiles = "$prev"; then # Preload the old-style object. func_append dlprefiles " $pic_object" prev= fi # A PIC object. func_append libobjs " $pic_object" arg=$pic_object } # Non-PIC object. if test none != "$non_pic_object"; then # Prepend the subdirectory the object is found in. non_pic_object=$xdir$non_pic_object # A standard non-PIC object func_append non_pic_objects " $non_pic_object" if test -z "$pic_object" || test none = "$pic_object"; then arg=$non_pic_object fi else # If the PIC object exists, use it instead. # $xdir was prepended to $pic_object above. non_pic_object=$pic_object func_append non_pic_objects " $non_pic_object" fi else # Only an error if not doing a dry-run. if $opt_dry_run; then # Extract subdirectory from the argument. func_dirname "$arg" "/" "" xdir=$func_dirname_result func_lo2o "$arg" pic_object=$xdir$objdir/$func_lo2o_result non_pic_object=$xdir$func_lo2o_result func_append libobjs " $pic_object" func_append non_pic_objects " $non_pic_object" else func_fatal_error "'$arg' is not a valid libtool object" fi fi ;; *.$libext) # An archive. func_append deplibs " $arg" func_append old_deplibs " $arg" continue ;; *.la) # A libtool-controlled library. func_resolve_sysroot "$arg" if test dlfiles = "$prev"; then # This library was specified with -dlopen. func_append dlfiles " $func_resolve_sysroot_result" prev= elif test dlprefiles = "$prev"; then # The library was specified with -dlpreopen. func_append dlprefiles " $func_resolve_sysroot_result" prev= else func_append deplibs " $func_resolve_sysroot_result" fi continue ;; # Some other compiler argument. *) # Unknown arguments in both finalize_command and compile_command need # to be aesthetically quoted because they are evaled later. func_quote_for_eval "$arg" arg=$func_quote_for_eval_result ;; esac # arg # Now actually substitute the argument into the commands. if test -n "$arg"; then func_append compile_command " $arg" func_append finalize_command " $arg" fi done # argument parsing loop test -n "$prev" && \ func_fatal_help "the '$prevarg' option requires an argument" if test yes = "$export_dynamic" && test -n "$export_dynamic_flag_spec"; then eval arg=\"$export_dynamic_flag_spec\" func_append compile_command " $arg" func_append finalize_command " $arg" fi oldlibs= # calculate the name of the file, without its directory func_basename "$output" outputname=$func_basename_result libobjs_save=$libobjs if test -n "$shlibpath_var"; then # get the directories listed in $shlibpath_var eval shlib_search_path=\`\$ECHO \"\$$shlibpath_var\" \| \$SED \'s/:/ /g\'\` else shlib_search_path= fi eval sys_lib_search_path=\"$sys_lib_search_path_spec\" eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\" # Definition is injected by LT_CONFIG during libtool generation. func_munge_path_list sys_lib_dlsearch_path "$LT_SYS_LIBRARY_PATH" func_dirname "$output" "/" "" output_objdir=$func_dirname_result$objdir func_to_tool_file "$output_objdir/" tool_output_objdir=$func_to_tool_file_result # Create the object directory. func_mkdir_p "$output_objdir" # Determine the type of output case $output in "") func_fatal_help "you must specify an output file" ;; *.$libext) linkmode=oldlib ;; *.lo | *.$objext) linkmode=obj ;; *.la) linkmode=lib ;; *) linkmode=prog ;; # Anything else should be a program. esac specialdeplibs= libs= # Find all interdependent deplibs by searching for libraries # that are linked more than once (e.g. -la -lb -la) for deplib in $deplibs; do if $opt_preserve_dup_deps; then case "$libs " in *" $deplib "*) func_append specialdeplibs " $deplib" ;; esac fi func_append libs " $deplib" done if test lib = "$linkmode"; then libs="$predeps $libs $compiler_lib_search_path $postdeps" # Compute libraries that are listed more than once in $predeps # $postdeps and mark them as special (i.e., whose duplicates are # not to be eliminated). pre_post_deps= if $opt_duplicate_compiler_generated_deps; then for pre_post_dep in $predeps $postdeps; do case "$pre_post_deps " in *" $pre_post_dep "*) func_append specialdeplibs " $pre_post_deps" ;; esac func_append pre_post_deps " $pre_post_dep" done fi pre_post_deps= fi deplibs= newdependency_libs= newlib_search_path= need_relink=no # whether we're linking any uninstalled libtool libraries notinst_deplibs= # not-installed libtool libraries notinst_path= # paths that contain not-installed libtool libraries case $linkmode in lib) passes="conv dlpreopen link" for file in $dlfiles $dlprefiles; do case $file in *.la) ;; *) func_fatal_help "libraries can '-dlopen' only libtool libraries: $file" ;; esac done ;; prog) compile_deplibs= finalize_deplibs= alldeplibs=false newdlfiles= newdlprefiles= passes="conv scan dlopen dlpreopen link" ;; *) passes="conv" ;; esac for pass in $passes; do # The preopen pass in lib mode reverses $deplibs; put it back here # so that -L comes before libs that need it for instance... if test lib,link = "$linkmode,$pass"; then ## FIXME: Find the place where the list is rebuilt in the wrong ## order, and fix it there properly tmp_deplibs= for deplib in $deplibs; do tmp_deplibs="$deplib $tmp_deplibs" done deplibs=$tmp_deplibs fi if test lib,link = "$linkmode,$pass" || test prog,scan = "$linkmode,$pass"; then libs=$deplibs deplibs= fi if test prog = "$linkmode"; then case $pass in dlopen) libs=$dlfiles ;; dlpreopen) libs=$dlprefiles ;; link) libs="$deplibs %DEPLIBS%" test "X$link_all_deplibs" != Xno && libs="$libs $dependency_libs" ;; esac fi if test lib,dlpreopen = "$linkmode,$pass"; then # Collect and forward deplibs of preopened libtool libs for lib in $dlprefiles; do # Ignore non-libtool-libs dependency_libs= func_resolve_sysroot "$lib" case $lib in *.la) func_source "$func_resolve_sysroot_result" ;; esac # Collect preopened libtool deplibs, except any this library # has declared as weak libs for deplib in $dependency_libs; do func_basename "$deplib" deplib_base=$func_basename_result case " $weak_libs " in *" $deplib_base "*) ;; *) func_append deplibs " $deplib" ;; esac done done libs=$dlprefiles fi if test dlopen = "$pass"; then # Collect dlpreopened libraries save_deplibs=$deplibs deplibs= fi for deplib in $libs; do lib= found=false case $deplib in -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe \ |-threads|-fopenmp|-openmp|-mp|-xopenmp|-omp|-qsmp=*) if test prog,link = "$linkmode,$pass"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else func_append compiler_flags " $deplib" if test lib = "$linkmode"; then case "$new_inherited_linker_flags " in *" $deplib "*) ;; * ) func_append new_inherited_linker_flags " $deplib" ;; esac fi fi continue ;; -l*) if test lib != "$linkmode" && test prog != "$linkmode"; then func_warning "'-l' is ignored for archives/objects" continue fi func_stripname '-l' '' "$deplib" name=$func_stripname_result if test lib = "$linkmode"; then searchdirs="$newlib_search_path $lib_search_path $compiler_lib_search_dirs $sys_lib_search_path $shlib_search_path" else searchdirs="$newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path" fi for searchdir in $searchdirs; do for search_ext in .la $std_shrext .so .a; do # Search the libtool library lib=$searchdir/lib$name$search_ext if test -f "$lib"; then if test .la = "$search_ext"; then found=: else found=false fi break 2 fi done done if $found; then # deplib is a libtool library # If $allow_libtool_libs_with_static_runtimes && $deplib is a stdlib, # We need to do some special things here, and not later. if test yes = "$allow_libtool_libs_with_static_runtimes"; then case " $predeps $postdeps " in *" $deplib "*) if func_lalib_p "$lib"; then library_names= old_library= func_source "$lib" for l in $old_library $library_names; do ll=$l done if test "X$ll" = "X$old_library"; then # only static version available found=false func_dirname "$lib" "" "." ladir=$func_dirname_result lib=$ladir/$old_library if test prog,link = "$linkmode,$pass"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else deplibs="$deplib $deplibs" test lib = "$linkmode" && newdependency_libs="$deplib $newdependency_libs" fi continue fi fi ;; *) ;; esac fi else # deplib doesn't seem to be a libtool library if test prog,link = "$linkmode,$pass"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else deplibs="$deplib $deplibs" test lib = "$linkmode" && newdependency_libs="$deplib $newdependency_libs" fi continue fi ;; # -l *.ltframework) if test prog,link = "$linkmode,$pass"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else deplibs="$deplib $deplibs" if test lib = "$linkmode"; then case "$new_inherited_linker_flags " in *" $deplib "*) ;; * ) func_append new_inherited_linker_flags " $deplib" ;; esac fi fi continue ;; -L*) case $linkmode in lib) deplibs="$deplib $deplibs" test conv = "$pass" && continue newdependency_libs="$deplib $newdependency_libs" func_stripname '-L' '' "$deplib" func_resolve_sysroot "$func_stripname_result" func_append newlib_search_path " $func_resolve_sysroot_result" ;; prog) if test conv = "$pass"; then deplibs="$deplib $deplibs" continue fi if test scan = "$pass"; then deplibs="$deplib $deplibs" else compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" fi func_stripname '-L' '' "$deplib" func_resolve_sysroot "$func_stripname_result" func_append newlib_search_path " $func_resolve_sysroot_result" ;; *) func_warning "'-L' is ignored for archives/objects" ;; esac # linkmode continue ;; # -L -R*) if test link = "$pass"; then func_stripname '-R' '' "$deplib" func_resolve_sysroot "$func_stripname_result" dir=$func_resolve_sysroot_result # Make sure the xrpath contains only unique directories. case "$xrpath " in *" $dir "*) ;; *) func_append xrpath " $dir" ;; esac fi deplibs="$deplib $deplibs" continue ;; *.la) func_resolve_sysroot "$deplib" lib=$func_resolve_sysroot_result ;; *.$libext) if test conv = "$pass"; then deplibs="$deplib $deplibs" continue fi case $linkmode in lib) # Linking convenience modules into shared libraries is allowed, # but linking other static libraries is non-portable. case " $dlpreconveniencelibs " in *" $deplib "*) ;; *) valid_a_lib=false case $deplibs_check_method in match_pattern*) set dummy $deplibs_check_method; shift match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"` if eval "\$ECHO \"$deplib\"" 2>/dev/null | $SED 10q \ | $EGREP "$match_pattern_regex" > /dev/null; then valid_a_lib=: fi ;; pass_all) valid_a_lib=: ;; esac if $valid_a_lib; then echo $ECHO "*** Warning: Linking the shared library $output against the" $ECHO "*** static library $deplib is not portable!" deplibs="$deplib $deplibs" else echo $ECHO "*** Warning: Trying to link with static lib archive $deplib." echo "*** I have the capability to make that library automatically link in when" echo "*** you link to this library. But I can only do this if you have a" echo "*** shared version of the library, which you do not appear to have" echo "*** because the file extensions .$libext of this argument makes me believe" echo "*** that it is just a static archive that I should not use here." fi ;; esac continue ;; prog) if test link != "$pass"; then deplibs="$deplib $deplibs" else compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" fi continue ;; esac # linkmode ;; # *.$libext *.lo | *.$objext) if test conv = "$pass"; then deplibs="$deplib $deplibs" elif test prog = "$linkmode"; then if test dlpreopen = "$pass" || test yes != "$dlopen_support" || test no = "$build_libtool_libs"; then # If there is no dlopen support or we're linking statically, # we need to preload. func_append newdlprefiles " $deplib" compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else func_append newdlfiles " $deplib" fi fi continue ;; %DEPLIBS%) alldeplibs=: continue ;; esac # case $deplib $found || test -f "$lib" \ || func_fatal_error "cannot find the library '$lib' or unhandled argument '$deplib'" # Check to see that this really is a libtool archive. func_lalib_unsafe_p "$lib" \ || func_fatal_error "'$lib' is not a valid libtool archive" func_dirname "$lib" "" "." ladir=$func_dirname_result dlname= dlopen= dlpreopen= libdir= library_names= old_library= inherited_linker_flags= # If the library was installed with an old release of libtool, # it will not redefine variables installed, or shouldnotlink installed=yes shouldnotlink=no avoidtemprpath= # Read the .la file func_source "$lib" # Convert "-framework foo" to "foo.ltframework" if test -n "$inherited_linker_flags"; then tmp_inherited_linker_flags=`$ECHO "$inherited_linker_flags" | $SED 's/-framework \([^ $]*\)/\1.ltframework/g'` for tmp_inherited_linker_flag in $tmp_inherited_linker_flags; do case " $new_inherited_linker_flags " in *" $tmp_inherited_linker_flag "*) ;; *) func_append new_inherited_linker_flags " $tmp_inherited_linker_flag";; esac done fi dependency_libs=`$ECHO " $dependency_libs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` if test lib,link = "$linkmode,$pass" || test prog,scan = "$linkmode,$pass" || { test prog != "$linkmode" && test lib != "$linkmode"; }; then test -n "$dlopen" && func_append dlfiles " $dlopen" test -n "$dlpreopen" && func_append dlprefiles " $dlpreopen" fi if test conv = "$pass"; then # Only check for convenience libraries deplibs="$lib $deplibs" if test -z "$libdir"; then if test -z "$old_library"; then func_fatal_error "cannot find name of link library for '$lib'" fi # It is a libtool convenience library, so add in its objects. func_append convenience " $ladir/$objdir/$old_library" func_append old_convenience " $ladir/$objdir/$old_library" tmp_libs= for deplib in $dependency_libs; do deplibs="$deplib $deplibs" if $opt_preserve_dup_deps; then case "$tmp_libs " in *" $deplib "*) func_append specialdeplibs " $deplib" ;; esac fi func_append tmp_libs " $deplib" done elif test prog != "$linkmode" && test lib != "$linkmode"; then func_fatal_error "'$lib' is not a convenience library" fi continue fi # $pass = conv # Get the name of the library we link against. linklib= if test -n "$old_library" && { test yes = "$prefer_static_libs" || test built,no = "$prefer_static_libs,$installed"; }; then linklib=$old_library else for l in $old_library $library_names; do linklib=$l done fi if test -z "$linklib"; then func_fatal_error "cannot find name of link library for '$lib'" fi # This library was specified with -dlopen. if test dlopen = "$pass"; then test -z "$libdir" \ && func_fatal_error "cannot -dlopen a convenience library: '$lib'" if test -z "$dlname" || test yes != "$dlopen_support" || test no = "$build_libtool_libs" then # If there is no dlname, no dlopen support or we're linking # statically, we need to preload. We also need to preload any # dependent libraries so libltdl's deplib preloader doesn't # bomb out in the load deplibs phase. func_append dlprefiles " $lib $dependency_libs" else func_append newdlfiles " $lib" fi continue fi # $pass = dlopen # We need an absolute path. case $ladir in [\\/]* | [A-Za-z]:[\\/]*) abs_ladir=$ladir ;; *) abs_ladir=`cd "$ladir" && pwd` if test -z "$abs_ladir"; then func_warning "cannot determine absolute directory name of '$ladir'" func_warning "passing it literally to the linker, although it might fail" abs_ladir=$ladir fi ;; esac func_basename "$lib" laname=$func_basename_result # Find the relevant object directory and library name. if test yes = "$installed"; then if test ! -f "$lt_sysroot$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then func_warning "library '$lib' was moved." dir=$ladir absdir=$abs_ladir libdir=$abs_ladir else dir=$lt_sysroot$libdir absdir=$lt_sysroot$libdir fi test yes = "$hardcode_automatic" && avoidtemprpath=yes else if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then dir=$ladir absdir=$abs_ladir # Remove this search path later func_append notinst_path " $abs_ladir" else dir=$ladir/$objdir absdir=$abs_ladir/$objdir # Remove this search path later func_append notinst_path " $abs_ladir" fi fi # $installed = yes func_stripname 'lib' '.la' "$laname" name=$func_stripname_result # This library was specified with -dlpreopen. if test dlpreopen = "$pass"; then if test -z "$libdir" && test prog = "$linkmode"; then func_fatal_error "only libraries may -dlpreopen a convenience library: '$lib'" fi case $host in # special handling for platforms with PE-DLLs. *cygwin* | *mingw* | *cegcc* ) # Linker will automatically link against shared library if both # static and shared are present. Therefore, ensure we extract # symbols from the import library if a shared library is present # (otherwise, the dlopen module name will be incorrect). We do # this by putting the import library name into $newdlprefiles. # We recover the dlopen module name by 'saving' the la file # name in a special purpose variable, and (later) extracting the # dlname from the la file. if test -n "$dlname"; then func_tr_sh "$dir/$linklib" eval "libfile_$func_tr_sh_result=\$abs_ladir/\$laname" func_append newdlprefiles " $dir/$linklib" else func_append newdlprefiles " $dir/$old_library" # Keep a list of preopened convenience libraries to check # that they are being used correctly in the link pass. test -z "$libdir" && \ func_append dlpreconveniencelibs " $dir/$old_library" fi ;; * ) # Prefer using a static library (so that no silly _DYNAMIC symbols # are required to link). if test -n "$old_library"; then func_append newdlprefiles " $dir/$old_library" # Keep a list of preopened convenience libraries to check # that they are being used correctly in the link pass. test -z "$libdir" && \ func_append dlpreconveniencelibs " $dir/$old_library" # Otherwise, use the dlname, so that lt_dlopen finds it. elif test -n "$dlname"; then func_append newdlprefiles " $dir/$dlname" else func_append newdlprefiles " $dir/$linklib" fi ;; esac fi # $pass = dlpreopen if test -z "$libdir"; then # Link the convenience library if test lib = "$linkmode"; then deplibs="$dir/$old_library $deplibs" elif test prog,link = "$linkmode,$pass"; then compile_deplibs="$dir/$old_library $compile_deplibs" finalize_deplibs="$dir/$old_library $finalize_deplibs" else deplibs="$lib $deplibs" # used for prog,scan pass fi continue fi if test prog = "$linkmode" && test link != "$pass"; then func_append newlib_search_path " $ladir" deplibs="$lib $deplibs" linkalldeplibs=false if test no != "$link_all_deplibs" || test -z "$library_names" || test no = "$build_libtool_libs"; then linkalldeplibs=: fi tmp_libs= for deplib in $dependency_libs; do case $deplib in -L*) func_stripname '-L' '' "$deplib" func_resolve_sysroot "$func_stripname_result" func_append newlib_search_path " $func_resolve_sysroot_result" ;; esac # Need to link against all dependency_libs? if $linkalldeplibs; then deplibs="$deplib $deplibs" else # Need to hardcode shared library paths # or/and link against static libraries newdependency_libs="$deplib $newdependency_libs" fi if $opt_preserve_dup_deps; then case "$tmp_libs " in *" $deplib "*) func_append specialdeplibs " $deplib" ;; esac fi func_append tmp_libs " $deplib" done # for deplib continue fi # $linkmode = prog... if test prog,link = "$linkmode,$pass"; then if test -n "$library_names" && { { test no = "$prefer_static_libs" || test built,yes = "$prefer_static_libs,$installed"; } || test -z "$old_library"; }; then # We need to hardcode the library path if test -n "$shlibpath_var" && test -z "$avoidtemprpath"; then # Make sure the rpath contains only unique directories. case $temp_rpath: in *"$absdir:"*) ;; *) func_append temp_rpath "$absdir:" ;; esac fi # Hardcode the library path. # Skip directories that are in the system default run-time # search path. case " $sys_lib_dlsearch_path " in *" $absdir "*) ;; *) case "$compile_rpath " in *" $absdir "*) ;; *) func_append compile_rpath " $absdir" ;; esac ;; esac case " $sys_lib_dlsearch_path " in *" $libdir "*) ;; *) case "$finalize_rpath " in *" $libdir "*) ;; *) func_append finalize_rpath " $libdir" ;; esac ;; esac fi # $linkmode,$pass = prog,link... if $alldeplibs && { test pass_all = "$deplibs_check_method" || { test yes = "$build_libtool_libs" && test -n "$library_names"; }; }; then # We only need to search for static libraries continue fi fi link_static=no # Whether the deplib will be linked statically use_static_libs=$prefer_static_libs if test built = "$use_static_libs" && test yes = "$installed"; then use_static_libs=no fi if test -n "$library_names" && { test no = "$use_static_libs" || test -z "$old_library"; }; then case $host in *cygwin* | *mingw* | *cegcc* | *os2*) # No point in relinking DLLs because paths are not encoded func_append notinst_deplibs " $lib" need_relink=no ;; *) if test no = "$installed"; then func_append notinst_deplibs " $lib" need_relink=yes fi ;; esac # This is a shared library # Warn about portability, can't link against -module's on some # systems (darwin). Don't bleat about dlopened modules though! dlopenmodule= for dlpremoduletest in $dlprefiles; do if test "X$dlpremoduletest" = "X$lib"; then dlopenmodule=$dlpremoduletest break fi done if test -z "$dlopenmodule" && test yes = "$shouldnotlink" && test link = "$pass"; then echo if test prog = "$linkmode"; then $ECHO "*** Warning: Linking the executable $output against the loadable module" else $ECHO "*** Warning: Linking the shared library $output against the loadable module" fi $ECHO "*** $linklib is not portable!" fi if test lib = "$linkmode" && test yes = "$hardcode_into_libs"; then # Hardcode the library path. # Skip directories that are in the system default run-time # search path. case " $sys_lib_dlsearch_path " in *" $absdir "*) ;; *) case "$compile_rpath " in *" $absdir "*) ;; *) func_append compile_rpath " $absdir" ;; esac ;; esac case " $sys_lib_dlsearch_path " in *" $libdir "*) ;; *) case "$finalize_rpath " in *" $libdir "*) ;; *) func_append finalize_rpath " $libdir" ;; esac ;; esac fi if test -n "$old_archive_from_expsyms_cmds"; then # figure out the soname set dummy $library_names shift realname=$1 shift libname=`eval "\\$ECHO \"$libname_spec\""` # use dlname if we got it. it's perfectly good, no? if test -n "$dlname"; then soname=$dlname elif test -n "$soname_spec"; then # bleh windows case $host in *cygwin* | mingw* | *cegcc* | *os2*) func_arith $current - $age major=$func_arith_result versuffix=-$major ;; esac eval soname=\"$soname_spec\" else soname=$realname fi # Make a new name for the extract_expsyms_cmds to use soroot=$soname func_basename "$soroot" soname=$func_basename_result func_stripname 'lib' '.dll' "$soname" newlib=libimp-$func_stripname_result.a # If the library has no export list, then create one now if test -f "$output_objdir/$soname-def"; then : else func_verbose "extracting exported symbol list from '$soname'" func_execute_cmds "$extract_expsyms_cmds" 'exit $?' fi # Create $newlib if test -f "$output_objdir/$newlib"; then :; else func_verbose "generating import library for '$soname'" func_execute_cmds "$old_archive_from_expsyms_cmds" 'exit $?' fi # make sure the library variables are pointing to the new library dir=$output_objdir linklib=$newlib fi # test -n "$old_archive_from_expsyms_cmds" if test prog = "$linkmode" || test relink != "$opt_mode"; then add_shlibpath= add_dir= add= lib_linked=yes case $hardcode_action in immediate | unsupported) if test no = "$hardcode_direct"; then add=$dir/$linklib case $host in *-*-sco3.2v5.0.[024]*) add_dir=-L$dir ;; *-*-sysv4*uw2*) add_dir=-L$dir ;; *-*-sysv5OpenUNIX* | *-*-sysv5UnixWare7.[01].[10]* | \ *-*-unixware7*) add_dir=-L$dir ;; *-*-darwin* ) # if the lib is a (non-dlopened) module then we cannot # link against it, someone is ignoring the earlier warnings if /usr/bin/file -L $add 2> /dev/null | $GREP ": [^:]* bundle" >/dev/null; then if test "X$dlopenmodule" != "X$lib"; then $ECHO "*** Warning: lib $linklib is a module, not a shared library" if test -z "$old_library"; then echo echo "*** And there doesn't seem to be a static archive available" echo "*** The link will probably fail, sorry" else add=$dir/$old_library fi elif test -n "$old_library"; then add=$dir/$old_library fi fi esac elif test no = "$hardcode_minus_L"; then case $host in *-*-sunos*) add_shlibpath=$dir ;; esac add_dir=-L$dir add=-l$name elif test no = "$hardcode_shlibpath_var"; then add_shlibpath=$dir add=-l$name else lib_linked=no fi ;; relink) if test yes = "$hardcode_direct" && test no = "$hardcode_direct_absolute"; then add=$dir/$linklib elif test yes = "$hardcode_minus_L"; then add_dir=-L$absdir # Try looking first in the location we're being installed to. if test -n "$inst_prefix_dir"; then case $libdir in [\\/]*) func_append add_dir " -L$inst_prefix_dir$libdir" ;; esac fi add=-l$name elif test yes = "$hardcode_shlibpath_var"; then add_shlibpath=$dir add=-l$name else lib_linked=no fi ;; *) lib_linked=no ;; esac if test yes != "$lib_linked"; then func_fatal_configuration "unsupported hardcode properties" fi if test -n "$add_shlibpath"; then case :$compile_shlibpath: in *":$add_shlibpath:"*) ;; *) func_append compile_shlibpath "$add_shlibpath:" ;; esac fi if test prog = "$linkmode"; then test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs" test -n "$add" && compile_deplibs="$add $compile_deplibs" else test -n "$add_dir" && deplibs="$add_dir $deplibs" test -n "$add" && deplibs="$add $deplibs" if test yes != "$hardcode_direct" && test yes != "$hardcode_minus_L" && test yes = "$hardcode_shlibpath_var"; then case :$finalize_shlibpath: in *":$libdir:"*) ;; *) func_append finalize_shlibpath "$libdir:" ;; esac fi fi fi if test prog = "$linkmode" || test relink = "$opt_mode"; then add_shlibpath= add_dir= add= # Finalize command for both is simple: just hardcode it. if test yes = "$hardcode_direct" && test no = "$hardcode_direct_absolute"; then add=$libdir/$linklib elif test yes = "$hardcode_minus_L"; then add_dir=-L$libdir add=-l$name elif test yes = "$hardcode_shlibpath_var"; then case :$finalize_shlibpath: in *":$libdir:"*) ;; *) func_append finalize_shlibpath "$libdir:" ;; esac add=-l$name elif test yes = "$hardcode_automatic"; then if test -n "$inst_prefix_dir" && test -f "$inst_prefix_dir$libdir/$linklib"; then add=$inst_prefix_dir$libdir/$linklib else add=$libdir/$linklib fi else # We cannot seem to hardcode it, guess we'll fake it. add_dir=-L$libdir # Try looking first in the location we're being installed to. if test -n "$inst_prefix_dir"; then case $libdir in [\\/]*) func_append add_dir " -L$inst_prefix_dir$libdir" ;; esac fi add=-l$name fi if test prog = "$linkmode"; then test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs" test -n "$add" && finalize_deplibs="$add $finalize_deplibs" else test -n "$add_dir" && deplibs="$add_dir $deplibs" test -n "$add" && deplibs="$add $deplibs" fi fi elif test prog = "$linkmode"; then # Here we assume that one of hardcode_direct or hardcode_minus_L # is not unsupported. This is valid on all known static and # shared platforms. if test unsupported != "$hardcode_direct"; then test -n "$old_library" && linklib=$old_library compile_deplibs="$dir/$linklib $compile_deplibs" finalize_deplibs="$dir/$linklib $finalize_deplibs" else compile_deplibs="-l$name -L$dir $compile_deplibs" finalize_deplibs="-l$name -L$dir $finalize_deplibs" fi elif test yes = "$build_libtool_libs"; then # Not a shared library if test pass_all != "$deplibs_check_method"; then # We're trying link a shared library against a static one # but the system doesn't support it. # Just print a warning and add the library to dependency_libs so # that the program can be linked against the static library. echo $ECHO "*** Warning: This system cannot link to static lib archive $lib." echo "*** I have the capability to make that library automatically link in when" echo "*** you link to this library. But I can only do this if you have a" echo "*** shared version of the library, which you do not appear to have." if test yes = "$module"; then echo "*** But as you try to build a module library, libtool will still create " echo "*** a static module, that should work as long as the dlopening application" echo "*** is linked with the -dlopen flag to resolve symbols at runtime." if test -z "$global_symbol_pipe"; then echo echo "*** However, this would only work if libtool was able to extract symbol" echo "*** lists from a program, using 'nm' or equivalent, but libtool could" echo "*** not find such a program. So, this module is probably useless." echo "*** 'nm' from GNU binutils and a full rebuild may help." fi if test no = "$build_old_libs"; then build_libtool_libs=module build_old_libs=yes else build_libtool_libs=no fi fi else deplibs="$dir/$old_library $deplibs" link_static=yes fi fi # link shared/static library? if test lib = "$linkmode"; then if test -n "$dependency_libs" && { test yes != "$hardcode_into_libs" || test yes = "$build_old_libs" || test yes = "$link_static"; }; then # Extract -R from dependency_libs temp_deplibs= for libdir in $dependency_libs; do case $libdir in -R*) func_stripname '-R' '' "$libdir" temp_xrpath=$func_stripname_result case " $xrpath " in *" $temp_xrpath "*) ;; *) func_append xrpath " $temp_xrpath";; esac;; *) func_append temp_deplibs " $libdir";; esac done dependency_libs=$temp_deplibs fi func_append newlib_search_path " $absdir" # Link against this library test no = "$link_static" && newdependency_libs="$abs_ladir/$laname $newdependency_libs" # ... and its dependency_libs tmp_libs= for deplib in $dependency_libs; do newdependency_libs="$deplib $newdependency_libs" case $deplib in -L*) func_stripname '-L' '' "$deplib" func_resolve_sysroot "$func_stripname_result";; *) func_resolve_sysroot "$deplib" ;; esac if $opt_preserve_dup_deps; then case "$tmp_libs " in *" $func_resolve_sysroot_result "*) func_append specialdeplibs " $func_resolve_sysroot_result" ;; esac fi func_append tmp_libs " $func_resolve_sysroot_result" done if test no != "$link_all_deplibs"; then # Add the search paths of all dependency libraries for deplib in $dependency_libs; do path= case $deplib in -L*) path=$deplib ;; *.la) func_resolve_sysroot "$deplib" deplib=$func_resolve_sysroot_result func_dirname "$deplib" "" "." dir=$func_dirname_result # We need an absolute path. case $dir in [\\/]* | [A-Za-z]:[\\/]*) absdir=$dir ;; *) absdir=`cd "$dir" && pwd` if test -z "$absdir"; then func_warning "cannot determine absolute directory name of '$dir'" absdir=$dir fi ;; esac if $GREP "^installed=no" $deplib > /dev/null; then case $host in *-*-darwin*) depdepl= eval deplibrary_names=`$SED -n -e 's/^library_names=\(.*\)$/\1/p' $deplib` if test -n "$deplibrary_names"; then for tmp in $deplibrary_names; do depdepl=$tmp done if test -f "$absdir/$objdir/$depdepl"; then depdepl=$absdir/$objdir/$depdepl darwin_install_name=`$OTOOL -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'` if test -z "$darwin_install_name"; then darwin_install_name=`$OTOOL64 -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'` fi func_append compiler_flags " $wl-dylib_file $wl$darwin_install_name:$depdepl" func_append linker_flags " -dylib_file $darwin_install_name:$depdepl" path= fi fi ;; *) path=-L$absdir/$objdir ;; esac else eval libdir=`$SED -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` test -z "$libdir" && \ func_fatal_error "'$deplib' is not a valid libtool archive" test "$absdir" != "$libdir" && \ func_warning "'$deplib' seems to be moved" path=-L$absdir fi ;; esac case " $deplibs " in *" $path "*) ;; *) deplibs="$path $deplibs" ;; esac done fi # link_all_deplibs != no fi # linkmode = lib done # for deplib in $libs if test link = "$pass"; then if test prog = "$linkmode"; then compile_deplibs="$new_inherited_linker_flags $compile_deplibs" finalize_deplibs="$new_inherited_linker_flags $finalize_deplibs" else compiler_flags="$compiler_flags "`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` fi fi dependency_libs=$newdependency_libs if test dlpreopen = "$pass"; then # Link the dlpreopened libraries before other libraries for deplib in $save_deplibs; do deplibs="$deplib $deplibs" done fi if test dlopen != "$pass"; then test conv = "$pass" || { # Make sure lib_search_path contains only unique directories. lib_search_path= for dir in $newlib_search_path; do case "$lib_search_path " in *" $dir "*) ;; *) func_append lib_search_path " $dir" ;; esac done newlib_search_path= } if test prog,link = "$linkmode,$pass"; then vars="compile_deplibs finalize_deplibs" else vars=deplibs fi for var in $vars dependency_libs; do # Add libraries to $var in reverse order eval tmp_libs=\"\$$var\" new_libs= for deplib in $tmp_libs; do # FIXME: Pedantically, this is the right thing to do, so # that some nasty dependency loop isn't accidentally # broken: #new_libs="$deplib $new_libs" # Pragmatically, this seems to cause very few problems in # practice: case $deplib in -L*) new_libs="$deplib $new_libs" ;; -R*) ;; *) # And here is the reason: when a library appears more # than once as an explicit dependence of a library, or # is implicitly linked in more than once by the # compiler, it is considered special, and multiple # occurrences thereof are not removed. Compare this # with having the same library being listed as a # dependency of multiple other libraries: in this case, # we know (pedantically, we assume) the library does not # need to be listed more than once, so we keep only the # last copy. This is not always right, but it is rare # enough that we require users that really mean to play # such unportable linking tricks to link the library # using -Wl,-lname, so that libtool does not consider it # for duplicate removal. case " $specialdeplibs " in *" $deplib "*) new_libs="$deplib $new_libs" ;; *) case " $new_libs " in *" $deplib "*) ;; *) new_libs="$deplib $new_libs" ;; esac ;; esac ;; esac done tmp_libs= for deplib in $new_libs; do case $deplib in -L*) case " $tmp_libs " in *" $deplib "*) ;; *) func_append tmp_libs " $deplib" ;; esac ;; *) func_append tmp_libs " $deplib" ;; esac done eval $var=\"$tmp_libs\" done # for var fi # Add Sun CC postdeps if required: test CXX = "$tagname" && { case $host_os in linux*) case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C++ 5.9 func_suncc_cstd_abi if test no != "$suncc_use_cstd_abi"; then func_append postdeps ' -library=Cstd -library=Crun' fi ;; esac ;; solaris*) func_cc_basename "$CC" case $func_cc_basename_result in CC* | sunCC*) func_suncc_cstd_abi if test no != "$suncc_use_cstd_abi"; then func_append postdeps ' -library=Cstd -library=Crun' fi ;; esac ;; esac } # Last step: remove runtime libs from dependency_libs # (they stay in deplibs) tmp_libs= for i in $dependency_libs; do case " $predeps $postdeps $compiler_lib_search_path " in *" $i "*) i= ;; esac if test -n "$i"; then func_append tmp_libs " $i" fi done dependency_libs=$tmp_libs done # for pass if test prog = "$linkmode"; then dlfiles=$newdlfiles fi if test prog = "$linkmode" || test lib = "$linkmode"; then dlprefiles=$newdlprefiles fi case $linkmode in oldlib) if test -n "$dlfiles$dlprefiles" || test no != "$dlself"; then func_warning "'-dlopen' is ignored for archives" fi case " $deplibs" in *\ -l* | *\ -L*) func_warning "'-l' and '-L' are ignored for archives" ;; esac test -n "$rpath" && \ func_warning "'-rpath' is ignored for archives" test -n "$xrpath" && \ func_warning "'-R' is ignored for archives" test -n "$vinfo" && \ func_warning "'-version-info/-version-number' is ignored for archives" test -n "$release" && \ func_warning "'-release' is ignored for archives" test -n "$export_symbols$export_symbols_regex" && \ func_warning "'-export-symbols' is ignored for archives" # Now set the variables for building old libraries. build_libtool_libs=no oldlibs=$output func_append objs "$old_deplibs" ;; lib) # Make sure we only generate libraries of the form 'libNAME.la'. case $outputname in lib*) func_stripname 'lib' '.la' "$outputname" name=$func_stripname_result eval shared_ext=\"$shrext_cmds\" eval libname=\"$libname_spec\" ;; *) test no = "$module" \ && func_fatal_help "libtool library '$output' must begin with 'lib'" if test no != "$need_lib_prefix"; then # Add the "lib" prefix for modules if required func_stripname '' '.la' "$outputname" name=$func_stripname_result eval shared_ext=\"$shrext_cmds\" eval libname=\"$libname_spec\" else func_stripname '' '.la' "$outputname" libname=$func_stripname_result fi ;; esac if test -n "$objs"; then if test pass_all != "$deplibs_check_method"; then func_fatal_error "cannot build libtool library '$output' from non-libtool objects on this host:$objs" else echo $ECHO "*** Warning: Linking the shared library $output against the non-libtool" $ECHO "*** objects $objs is not portable!" func_append libobjs " $objs" fi fi test no = "$dlself" \ || func_warning "'-dlopen self' is ignored for libtool libraries" set dummy $rpath shift test 1 -lt "$#" \ && func_warning "ignoring multiple '-rpath's for a libtool library" install_libdir=$1 oldlibs= if test -z "$rpath"; then if test yes = "$build_libtool_libs"; then # Building a libtool convenience library. # Some compilers have problems with a '.al' extension so # convenience libraries should have the same extension an # archive normally would. oldlibs="$output_objdir/$libname.$libext $oldlibs" build_libtool_libs=convenience build_old_libs=yes fi test -n "$vinfo" && \ func_warning "'-version-info/-version-number' is ignored for convenience libraries" test -n "$release" && \ func_warning "'-release' is ignored for convenience libraries" else # Parse the version information argument. save_ifs=$IFS; IFS=: set dummy $vinfo 0 0 0 shift IFS=$save_ifs test -n "$7" && \ func_fatal_help "too many parameters to '-version-info'" # convert absolute version numbers to libtool ages # this retains compatibility with .la files and attempts # to make the code below a bit more comprehensible case $vinfo_number in yes) number_major=$1 number_minor=$2 number_revision=$3 # # There are really only two kinds -- those that # use the current revision as the major version # and those that subtract age and use age as # a minor version. But, then there is irix # that has an extra 1 added just for fun # case $version_type in # correct linux to gnu/linux during the next big refactor darwin|freebsd-elf|linux|osf|windows|none) func_arith $number_major + $number_minor current=$func_arith_result age=$number_minor revision=$number_revision ;; freebsd-aout|qnx|sunos) current=$number_major revision=$number_minor age=0 ;; irix|nonstopux) func_arith $number_major + $number_minor current=$func_arith_result age=$number_minor revision=$number_minor lt_irix_increment=no ;; *) func_fatal_configuration "$modename: unknown library version type '$version_type'" ;; esac ;; no) current=$1 revision=$2 age=$3 ;; esac # Check that each of the things are valid numbers. case $current in 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; *) func_error "CURRENT '$current' must be a nonnegative integer" func_fatal_error "'$vinfo' is not valid version information" ;; esac case $revision in 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; *) func_error "REVISION '$revision' must be a nonnegative integer" func_fatal_error "'$vinfo' is not valid version information" ;; esac case $age in 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; *) func_error "AGE '$age' must be a nonnegative integer" func_fatal_error "'$vinfo' is not valid version information" ;; esac if test "$age" -gt "$current"; then func_error "AGE '$age' is greater than the current interface number '$current'" func_fatal_error "'$vinfo' is not valid version information" fi # Calculate the version variables. major= versuffix= verstring= case $version_type in none) ;; darwin) # Like Linux, but with the current version available in # verstring for coding it into the library header func_arith $current - $age major=.$func_arith_result versuffix=$major.$age.$revision # Darwin ld doesn't like 0 for these options... func_arith $current + 1 minor_current=$func_arith_result xlcverstring="$wl-compatibility_version $wl$minor_current $wl-current_version $wl$minor_current.$revision" verstring="-compatibility_version $minor_current -current_version $minor_current.$revision" # On Darwin other compilers case $CC in nagfor*) verstring="$wl-compatibility_version $wl$minor_current $wl-current_version $wl$minor_current.$revision" ;; *) verstring="-compatibility_version $minor_current -current_version $minor_current.$revision" ;; esac ;; freebsd-aout) major=.$current versuffix=.$current.$revision ;; freebsd-elf) func_arith $current - $age major=.$func_arith_result versuffix=$major.$age.$revision ;; irix | nonstopux) if test no = "$lt_irix_increment"; then func_arith $current - $age else func_arith $current - $age + 1 fi major=$func_arith_result case $version_type in nonstopux) verstring_prefix=nonstopux ;; *) verstring_prefix=sgi ;; esac verstring=$verstring_prefix$major.$revision # Add in all the interfaces that we are compatible with. loop=$revision while test 0 -ne "$loop"; do func_arith $revision - $loop iface=$func_arith_result func_arith $loop - 1 loop=$func_arith_result verstring=$verstring_prefix$major.$iface:$verstring done # Before this point, $major must not contain '.'. major=.$major versuffix=$major.$revision ;; linux) # correct to gnu/linux during the next big refactor func_arith $current - $age major=.$func_arith_result versuffix=$major.$age.$revision ;; osf) func_arith $current - $age major=.$func_arith_result versuffix=.$current.$age.$revision verstring=$current.$age.$revision # Add in all the interfaces that we are compatible with. loop=$age while test 0 -ne "$loop"; do func_arith $current - $loop iface=$func_arith_result func_arith $loop - 1 loop=$func_arith_result verstring=$verstring:$iface.0 done # Make executables depend on our current version. func_append verstring ":$current.0" ;; qnx) major=.$current versuffix=.$current ;; sco) major=.$current versuffix=.$current ;; sunos) major=.$current versuffix=.$current.$revision ;; windows) # Use '-' rather than '.', since we only want one # extension on DOS 8.3 file systems. func_arith $current - $age major=$func_arith_result versuffix=-$major ;; *) func_fatal_configuration "unknown library version type '$version_type'" ;; esac # Clear the version info if we defaulted, and they specified a release. if test -z "$vinfo" && test -n "$release"; then major= case $version_type in darwin) # we can't check for "0.0" in archive_cmds due to quoting # problems, so we reset it completely verstring= ;; *) verstring=0.0 ;; esac if test no = "$need_version"; then versuffix= else versuffix=.0.0 fi fi # Remove version info from name if versioning should be avoided if test yes,no = "$avoid_version,$need_version"; then major= versuffix= verstring= fi # Check to see if the archive will have undefined symbols. if test yes = "$allow_undefined"; then if test unsupported = "$allow_undefined_flag"; then if test yes = "$build_old_libs"; then func_warning "undefined symbols not allowed in $host shared libraries; building static only" build_libtool_libs=no else func_fatal_error "can't build $host shared library unless -no-undefined is specified" fi fi else # Don't allow undefined symbols. allow_undefined_flag=$no_undefined_flag fi fi func_generate_dlsyms "$libname" "$libname" : func_append libobjs " $symfileobj" test " " = "$libobjs" && libobjs= if test relink != "$opt_mode"; then # Remove our outputs, but don't remove object files since they # may have been created when compiling PIC objects. removelist= tempremovelist=`$ECHO "$output_objdir/*"` for p in $tempremovelist; do case $p in *.$objext | *.gcno) ;; $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/$libname$release.*) if test -n "$precious_files_regex"; then if $ECHO "$p" | $EGREP -e "$precious_files_regex" >/dev/null 2>&1 then continue fi fi func_append removelist " $p" ;; *) ;; esac done test -n "$removelist" && \ func_show_eval "${RM}r \$removelist" fi # Now set the variables for building old libraries. if test yes = "$build_old_libs" && test convenience != "$build_libtool_libs"; then func_append oldlibs " $output_objdir/$libname.$libext" # Transform .lo files to .o files. oldobjs="$objs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.$libext$/d; $lo2o" | $NL2SP` fi # Eliminate all temporary directories. #for path in $notinst_path; do # lib_search_path=`$ECHO "$lib_search_path " | $SED "s% $path % %g"` # deplibs=`$ECHO "$deplibs " | $SED "s% -L$path % %g"` # dependency_libs=`$ECHO "$dependency_libs " | $SED "s% -L$path % %g"` #done if test -n "$xrpath"; then # If the user specified any rpath flags, then add them. temp_xrpath= for libdir in $xrpath; do func_replace_sysroot "$libdir" func_append temp_xrpath " -R$func_replace_sysroot_result" case "$finalize_rpath " in *" $libdir "*) ;; *) func_append finalize_rpath " $libdir" ;; esac done if test yes != "$hardcode_into_libs" || test yes = "$build_old_libs"; then dependency_libs="$temp_xrpath $dependency_libs" fi fi # Make sure dlfiles contains only unique files that won't be dlpreopened old_dlfiles=$dlfiles dlfiles= for lib in $old_dlfiles; do case " $dlprefiles $dlfiles " in *" $lib "*) ;; *) func_append dlfiles " $lib" ;; esac done # Make sure dlprefiles contains only unique files old_dlprefiles=$dlprefiles dlprefiles= for lib in $old_dlprefiles; do case "$dlprefiles " in *" $lib "*) ;; *) func_append dlprefiles " $lib" ;; esac done if test yes = "$build_libtool_libs"; then if test -n "$rpath"; then case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos* | *-cegcc* | *-*-haiku*) # these systems don't actually have a c library (as such)! ;; *-*-rhapsody* | *-*-darwin1.[012]) # Rhapsody C library is in the System framework func_append deplibs " System.ltframework" ;; *-*-netbsd*) # Don't link with libc until the a.out ld.so is fixed. ;; *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) # Do not include libc due to us having libc/libc_r. ;; *-*-sco3.2v5* | *-*-sco5v6*) # Causes problems with __ctype ;; *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) # Compiler inserts libc in the correct place for threads to work ;; *) # Add libc to deplibs on all other systems if necessary. if test yes = "$build_libtool_need_lc"; then func_append deplibs " -lc" fi ;; esac fi # Transform deplibs into only deplibs that can be linked in shared. name_save=$name libname_save=$libname release_save=$release versuffix_save=$versuffix major_save=$major # I'm not sure if I'm treating the release correctly. I think # release should show up in the -l (ie -lgmp5) so we don't want to # add it in twice. Is that correct? release= versuffix= major= newdeplibs= droppeddeps=no case $deplibs_check_method in pass_all) # Don't check for shared/static. Everything works. # This might be a little naive. We might want to check # whether the library exists or not. But this is on # osf3 & osf4 and I'm not really sure... Just # implementing what was already the behavior. newdeplibs=$deplibs ;; test_compile) # This code stresses the "libraries are programs" paradigm to its # limits. Maybe even breaks it. We compile a program, linking it # against the deplibs as a proxy for the library. Then we can check # whether they linked in statically or dynamically with ldd. $opt_dry_run || $RM conftest.c cat > conftest.c </dev/null` $nocaseglob else potential_libs=`ls $i/$libnameglob[.-]* 2>/dev/null` fi for potent_lib in $potential_libs; do # Follow soft links. if ls -lLd "$potent_lib" 2>/dev/null | $GREP " -> " >/dev/null; then continue fi # The statement above tries to avoid entering an # endless loop below, in case of cyclic links. # We might still enter an endless loop, since a link # loop can be closed while we follow links, # but so what? potlib=$potent_lib while test -h "$potlib" 2>/dev/null; do potliblink=`ls -ld $potlib | $SED 's/.* -> //'` case $potliblink in [\\/]* | [A-Za-z]:[\\/]*) potlib=$potliblink;; *) potlib=`$ECHO "$potlib" | $SED 's|[^/]*$||'`"$potliblink";; esac done if eval $file_magic_cmd \"\$potlib\" 2>/dev/null | $SED -e 10q | $EGREP "$file_magic_regex" > /dev/null; then func_append newdeplibs " $a_deplib" a_deplib= break 2 fi done done fi if test -n "$a_deplib"; then droppeddeps=yes echo $ECHO "*** Warning: linker path does not have real file for library $a_deplib." echo "*** I have the capability to make that library automatically link in when" echo "*** you link to this library. But I can only do this if you have a" echo "*** shared version of the library, which you do not appear to have" echo "*** because I did check the linker path looking for a file starting" if test -z "$potlib"; then $ECHO "*** with $libname but no candidates were found. (...for file magic test)" else $ECHO "*** with $libname and none of the candidates passed a file format test" $ECHO "*** using a file magic. Last file checked: $potlib" fi fi ;; *) # Add a -L argument. func_append newdeplibs " $a_deplib" ;; esac done # Gone through all deplibs. ;; match_pattern*) set dummy $deplibs_check_method; shift match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"` for a_deplib in $deplibs; do case $a_deplib in -l*) func_stripname -l '' "$a_deplib" name=$func_stripname_result if test yes = "$allow_libtool_libs_with_static_runtimes"; then case " $predeps $postdeps " in *" $a_deplib "*) func_append newdeplibs " $a_deplib" a_deplib= ;; esac fi if test -n "$a_deplib"; then libname=`eval "\\$ECHO \"$libname_spec\""` for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do potential_libs=`ls $i/$libname[.-]* 2>/dev/null` for potent_lib in $potential_libs; do potlib=$potent_lib # see symlink-check above in file_magic test if eval "\$ECHO \"$potent_lib\"" 2>/dev/null | $SED 10q | \ $EGREP "$match_pattern_regex" > /dev/null; then func_append newdeplibs " $a_deplib" a_deplib= break 2 fi done done fi if test -n "$a_deplib"; then droppeddeps=yes echo $ECHO "*** Warning: linker path does not have real file for library $a_deplib." echo "*** I have the capability to make that library automatically link in when" echo "*** you link to this library. But I can only do this if you have a" echo "*** shared version of the library, which you do not appear to have" echo "*** because I did check the linker path looking for a file starting" if test -z "$potlib"; then $ECHO "*** with $libname but no candidates were found. (...for regex pattern test)" else $ECHO "*** with $libname and none of the candidates passed a file format test" $ECHO "*** using a regex pattern. Last file checked: $potlib" fi fi ;; *) # Add a -L argument. func_append newdeplibs " $a_deplib" ;; esac done # Gone through all deplibs. ;; none | unknown | *) newdeplibs= tmp_deplibs=`$ECHO " $deplibs" | $SED 's/ -lc$//; s/ -[LR][^ ]*//g'` if test yes = "$allow_libtool_libs_with_static_runtimes"; then for i in $predeps $postdeps; do # can't use Xsed below, because $i might contain '/' tmp_deplibs=`$ECHO " $tmp_deplibs" | $SED "s|$i||"` done fi case $tmp_deplibs in *[!\ \ ]*) echo if test none = "$deplibs_check_method"; then echo "*** Warning: inter-library dependencies are not supported in this platform." else echo "*** Warning: inter-library dependencies are not known to be supported." fi echo "*** All declared inter-library dependencies are being dropped." droppeddeps=yes ;; esac ;; esac versuffix=$versuffix_save major=$major_save release=$release_save libname=$libname_save name=$name_save case $host in *-*-rhapsody* | *-*-darwin1.[012]) # On Rhapsody replace the C library with the System framework newdeplibs=`$ECHO " $newdeplibs" | $SED 's/ -lc / System.ltframework /'` ;; esac if test yes = "$droppeddeps"; then if test yes = "$module"; then echo echo "*** Warning: libtool could not satisfy all declared inter-library" $ECHO "*** dependencies of module $libname. Therefore, libtool will create" echo "*** a static module, that should work as long as the dlopening" echo "*** application is linked with the -dlopen flag." if test -z "$global_symbol_pipe"; then echo echo "*** However, this would only work if libtool was able to extract symbol" echo "*** lists from a program, using 'nm' or equivalent, but libtool could" echo "*** not find such a program. So, this module is probably useless." echo "*** 'nm' from GNU binutils and a full rebuild may help." fi if test no = "$build_old_libs"; then oldlibs=$output_objdir/$libname.$libext build_libtool_libs=module build_old_libs=yes else build_libtool_libs=no fi else echo "*** The inter-library dependencies that have been dropped here will be" echo "*** automatically added whenever a program is linked with this library" echo "*** or is declared to -dlopen it." if test no = "$allow_undefined"; then echo echo "*** Since this library must not contain undefined symbols," echo "*** because either the platform does not support them or" echo "*** it was explicitly requested with -no-undefined," echo "*** libtool will only create a static version of it." if test no = "$build_old_libs"; then oldlibs=$output_objdir/$libname.$libext build_libtool_libs=module build_old_libs=yes else build_libtool_libs=no fi fi fi fi # Done checking deplibs! deplibs=$newdeplibs fi # Time to change all our "foo.ltframework" stuff back to "-framework foo" case $host in *-*-darwin*) newdeplibs=`$ECHO " $newdeplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` new_inherited_linker_flags=`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` deplibs=`$ECHO " $deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` ;; esac # move library search paths that coincide with paths to not yet # installed libraries to the beginning of the library search list new_libs= for path in $notinst_path; do case " $new_libs " in *" -L$path/$objdir "*) ;; *) case " $deplibs " in *" -L$path/$objdir "*) func_append new_libs " -L$path/$objdir" ;; esac ;; esac done for deplib in $deplibs; do case $deplib in -L*) case " $new_libs " in *" $deplib "*) ;; *) func_append new_libs " $deplib" ;; esac ;; *) func_append new_libs " $deplib" ;; esac done deplibs=$new_libs # All the library-specific variables (install_libdir is set above). library_names= old_library= dlname= # Test again, we may have decided not to build it any more if test yes = "$build_libtool_libs"; then # Remove $wl instances when linking with ld. # FIXME: should test the right _cmds variable. case $archive_cmds in *\$LD\ *) wl= ;; esac if test yes = "$hardcode_into_libs"; then # Hardcode the library paths hardcode_libdirs= dep_rpath= rpath=$finalize_rpath test relink = "$opt_mode" || rpath=$compile_rpath$rpath for libdir in $rpath; do if test -n "$hardcode_libdir_flag_spec"; then if test -n "$hardcode_libdir_separator"; then func_replace_sysroot "$libdir" libdir=$func_replace_sysroot_result if test -z "$hardcode_libdirs"; then hardcode_libdirs=$libdir else # Just accumulate the unique libdirs. case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) ;; *) func_append hardcode_libdirs "$hardcode_libdir_separator$libdir" ;; esac fi else eval flag=\"$hardcode_libdir_flag_spec\" func_append dep_rpath " $flag" fi elif test -n "$runpath_var"; then case "$perm_rpath " in *" $libdir "*) ;; *) func_append perm_rpath " $libdir" ;; esac fi done # Substitute the hardcoded libdirs into the rpath. if test -n "$hardcode_libdir_separator" && test -n "$hardcode_libdirs"; then libdir=$hardcode_libdirs eval "dep_rpath=\"$hardcode_libdir_flag_spec\"" fi if test -n "$runpath_var" && test -n "$perm_rpath"; then # We should set the runpath_var. rpath= for dir in $perm_rpath; do func_append rpath "$dir:" done eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var" fi test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs" fi shlibpath=$finalize_shlibpath test relink = "$opt_mode" || shlibpath=$compile_shlibpath$shlibpath if test -n "$shlibpath"; then eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var" fi # Get the real and link names of the library. eval shared_ext=\"$shrext_cmds\" eval library_names=\"$library_names_spec\" set dummy $library_names shift realname=$1 shift if test -n "$soname_spec"; then eval soname=\"$soname_spec\" else soname=$realname fi if test -z "$dlname"; then dlname=$soname fi lib=$output_objdir/$realname linknames= for link do func_append linknames " $link" done # Use standard objects if they are pic test -z "$pic_flag" && libobjs=`$ECHO "$libobjs" | $SP2NL | $SED "$lo2o" | $NL2SP` test "X$libobjs" = "X " && libobjs= delfiles= if test -n "$export_symbols" && test -n "$include_expsyms"; then $opt_dry_run || cp "$export_symbols" "$output_objdir/$libname.uexp" export_symbols=$output_objdir/$libname.uexp func_append delfiles " $export_symbols" fi orig_export_symbols= case $host_os in cygwin* | mingw* | cegcc*) if test -n "$export_symbols" && test -z "$export_symbols_regex"; then # exporting using user supplied symfile func_dll_def_p "$export_symbols" || { # and it's NOT already a .def file. Must figure out # which of the given symbols are data symbols and tag # them as such. So, trigger use of export_symbols_cmds. # export_symbols gets reassigned inside the "prepare # the list of exported symbols" if statement, so the # include_expsyms logic still works. orig_export_symbols=$export_symbols export_symbols= always_export_symbols=yes } fi ;; esac # Prepare the list of exported symbols if test -z "$export_symbols"; then if test yes = "$always_export_symbols" || test -n "$export_symbols_regex"; then func_verbose "generating symbol list for '$libname.la'" export_symbols=$output_objdir/$libname.exp $opt_dry_run || $RM $export_symbols cmds=$export_symbols_cmds save_ifs=$IFS; IFS='~' for cmd1 in $cmds; do IFS=$save_ifs # Take the normal branch if the nm_file_list_spec branch # doesn't work or if tool conversion is not needed. case $nm_file_list_spec~$to_tool_file_cmd in *~func_convert_file_noop | *~func_convert_file_msys_to_w32 | ~*) try_normal_branch=yes eval cmd=\"$cmd1\" func_len " $cmd" len=$func_len_result ;; *) try_normal_branch=no ;; esac if test yes = "$try_normal_branch" \ && { test "$len" -lt "$max_cmd_len" \ || test "$max_cmd_len" -le -1; } then func_show_eval "$cmd" 'exit $?' skipped_export=false elif test -n "$nm_file_list_spec"; then func_basename "$output" output_la=$func_basename_result save_libobjs=$libobjs save_output=$output output=$output_objdir/$output_la.nm func_to_tool_file "$output" libobjs=$nm_file_list_spec$func_to_tool_file_result func_append delfiles " $output" func_verbose "creating $NM input file list: $output" for obj in $save_libobjs; do func_to_tool_file "$obj" $ECHO "$func_to_tool_file_result" done > "$output" eval cmd=\"$cmd1\" func_show_eval "$cmd" 'exit $?' output=$save_output libobjs=$save_libobjs skipped_export=false else # The command line is too long to execute in one step. func_verbose "using reloadable object file for export list..." skipped_export=: # Break out early, otherwise skipped_export may be # set to false by a later but shorter cmd. break fi done IFS=$save_ifs if test -n "$export_symbols_regex" && test : != "$skipped_export"; then func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' func_show_eval '$MV "${export_symbols}T" "$export_symbols"' fi fi fi if test -n "$export_symbols" && test -n "$include_expsyms"; then tmp_export_symbols=$export_symbols test -n "$orig_export_symbols" && tmp_export_symbols=$orig_export_symbols $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"' fi if test : != "$skipped_export" && test -n "$orig_export_symbols"; then # The given exports_symbols file has to be filtered, so filter it. func_verbose "filter symbol list for '$libname.la' to tag DATA exports" # FIXME: $output_objdir/$libname.filter potentially contains lots of # 's' commands, which not all seds can handle. GNU sed should be fine # though. Also, the filter scales superlinearly with the number of # global variables. join(1) would be nice here, but unfortunately # isn't a blessed tool. $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter func_append delfiles " $export_symbols $output_objdir/$libname.filter" export_symbols=$output_objdir/$libname.def $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols fi tmp_deplibs= for test_deplib in $deplibs; do case " $convenience " in *" $test_deplib "*) ;; *) func_append tmp_deplibs " $test_deplib" ;; esac done deplibs=$tmp_deplibs if test -n "$convenience"; then if test -n "$whole_archive_flag_spec" && test yes = "$compiler_needs_object" && test -z "$libobjs"; then # extract the archives, so we have objects to list. # TODO: could optimize this to just extract one archive. whole_archive_flag_spec= fi if test -n "$whole_archive_flag_spec"; then save_libobjs=$libobjs eval libobjs=\"\$libobjs $whole_archive_flag_spec\" test "X$libobjs" = "X " && libobjs= else gentop=$output_objdir/${outputname}x func_append generated " $gentop" func_extract_archives $gentop $convenience func_append libobjs " $func_extract_archives_result" test "X$libobjs" = "X " && libobjs= fi fi if test yes = "$thread_safe" && test -n "$thread_safe_flag_spec"; then eval flag=\"$thread_safe_flag_spec\" func_append linker_flags " $flag" fi # Make a backup of the uninstalled library when relinking if test relink = "$opt_mode"; then $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}U && $MV $realname ${realname}U)' || exit $? fi # Do each of the archive commands. if test yes = "$module" && test -n "$module_cmds"; then if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then eval test_cmds=\"$module_expsym_cmds\" cmds=$module_expsym_cmds else eval test_cmds=\"$module_cmds\" cmds=$module_cmds fi else if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then eval test_cmds=\"$archive_expsym_cmds\" cmds=$archive_expsym_cmds else eval test_cmds=\"$archive_cmds\" cmds=$archive_cmds fi fi if test : != "$skipped_export" && func_len " $test_cmds" && len=$func_len_result && test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then : else # The command line is too long to link in one step, link piecewise # or, if using GNU ld and skipped_export is not :, use a linker # script. # Save the value of $output and $libobjs because we want to # use them later. If we have whole_archive_flag_spec, we # want to use save_libobjs as it was before # whole_archive_flag_spec was expanded, because we can't # assume the linker understands whole_archive_flag_spec. # This may have to be revisited, in case too many # convenience libraries get linked in and end up exceeding # the spec. if test -z "$convenience" || test -z "$whole_archive_flag_spec"; then save_libobjs=$libobjs fi save_output=$output func_basename "$output" output_la=$func_basename_result # Clear the reloadable object creation command queue and # initialize k to one. test_cmds= concat_cmds= objlist= last_robj= k=1 if test -n "$save_libobjs" && test : != "$skipped_export" && test yes = "$with_gnu_ld"; then output=$output_objdir/$output_la.lnkscript func_verbose "creating GNU ld script: $output" echo 'INPUT (' > $output for obj in $save_libobjs do func_to_tool_file "$obj" $ECHO "$func_to_tool_file_result" >> $output done echo ')' >> $output func_append delfiles " $output" func_to_tool_file "$output" output=$func_to_tool_file_result elif test -n "$save_libobjs" && test : != "$skipped_export" && test -n "$file_list_spec"; then output=$output_objdir/$output_la.lnk func_verbose "creating linker input file list: $output" : > $output set x $save_libobjs shift firstobj= if test yes = "$compiler_needs_object"; then firstobj="$1 " shift fi for obj do func_to_tool_file "$obj" $ECHO "$func_to_tool_file_result" >> $output done func_append delfiles " $output" func_to_tool_file "$output" output=$firstobj\"$file_list_spec$func_to_tool_file_result\" else if test -n "$save_libobjs"; then func_verbose "creating reloadable object files..." output=$output_objdir/$output_la-$k.$objext eval test_cmds=\"$reload_cmds\" func_len " $test_cmds" len0=$func_len_result len=$len0 # Loop over the list of objects to be linked. for obj in $save_libobjs do func_len " $obj" func_arith $len + $func_len_result len=$func_arith_result if test -z "$objlist" || test "$len" -lt "$max_cmd_len"; then func_append objlist " $obj" else # The command $test_cmds is almost too long, add a # command to the queue. if test 1 -eq "$k"; then # The first file doesn't have a previous command to add. reload_objs=$objlist eval concat_cmds=\"$reload_cmds\" else # All subsequent reloadable object files will link in # the last one created. reload_objs="$objlist $last_robj" eval concat_cmds=\"\$concat_cmds~$reload_cmds~\$RM $last_robj\" fi last_robj=$output_objdir/$output_la-$k.$objext func_arith $k + 1 k=$func_arith_result output=$output_objdir/$output_la-$k.$objext objlist=" $obj" func_len " $last_robj" func_arith $len0 + $func_len_result len=$func_arith_result fi done # Handle the remaining objects by creating one last # reloadable object file. All subsequent reloadable object # files will link in the last one created. test -z "$concat_cmds" || concat_cmds=$concat_cmds~ reload_objs="$objlist $last_robj" eval concat_cmds=\"\$concat_cmds$reload_cmds\" if test -n "$last_robj"; then eval concat_cmds=\"\$concat_cmds~\$RM $last_robj\" fi func_append delfiles " $output" else output= fi ${skipped_export-false} && { func_verbose "generating symbol list for '$libname.la'" export_symbols=$output_objdir/$libname.exp $opt_dry_run || $RM $export_symbols libobjs=$output # Append the command to create the export file. test -z "$concat_cmds" || concat_cmds=$concat_cmds~ eval concat_cmds=\"\$concat_cmds$export_symbols_cmds\" if test -n "$last_robj"; then eval concat_cmds=\"\$concat_cmds~\$RM $last_robj\" fi } test -n "$save_libobjs" && func_verbose "creating a temporary reloadable object file: $output" # Loop through the commands generated above and execute them. save_ifs=$IFS; IFS='~' for cmd in $concat_cmds; do IFS=$save_ifs $opt_quiet || { func_quote_for_expand "$cmd" eval "func_echo $func_quote_for_expand_result" } $opt_dry_run || eval "$cmd" || { lt_exit=$? # Restore the uninstalled library and exit if test relink = "$opt_mode"; then ( cd "$output_objdir" && \ $RM "${realname}T" && \ $MV "${realname}U" "$realname" ) fi exit $lt_exit } done IFS=$save_ifs if test -n "$export_symbols_regex" && ${skipped_export-false}; then func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' func_show_eval '$MV "${export_symbols}T" "$export_symbols"' fi fi ${skipped_export-false} && { if test -n "$export_symbols" && test -n "$include_expsyms"; then tmp_export_symbols=$export_symbols test -n "$orig_export_symbols" && tmp_export_symbols=$orig_export_symbols $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"' fi if test -n "$orig_export_symbols"; then # The given exports_symbols file has to be filtered, so filter it. func_verbose "filter symbol list for '$libname.la' to tag DATA exports" # FIXME: $output_objdir/$libname.filter potentially contains lots of # 's' commands, which not all seds can handle. GNU sed should be fine # though. Also, the filter scales superlinearly with the number of # global variables. join(1) would be nice here, but unfortunately # isn't a blessed tool. $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter func_append delfiles " $export_symbols $output_objdir/$libname.filter" export_symbols=$output_objdir/$libname.def $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols fi } libobjs=$output # Restore the value of output. output=$save_output if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then eval libobjs=\"\$libobjs $whole_archive_flag_spec\" test "X$libobjs" = "X " && libobjs= fi # Expand the library linking commands again to reset the # value of $libobjs for piecewise linking. # Do each of the archive commands. if test yes = "$module" && test -n "$module_cmds"; then if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then cmds=$module_expsym_cmds else cmds=$module_cmds fi else if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then cmds=$archive_expsym_cmds else cmds=$archive_cmds fi fi fi if test -n "$delfiles"; then # Append the command to remove temporary files to $cmds. eval cmds=\"\$cmds~\$RM $delfiles\" fi # Add any objects from preloaded convenience libraries if test -n "$dlprefiles"; then gentop=$output_objdir/${outputname}x func_append generated " $gentop" func_extract_archives $gentop $dlprefiles func_append libobjs " $func_extract_archives_result" test "X$libobjs" = "X " && libobjs= fi save_ifs=$IFS; IFS='~' for cmd in $cmds; do IFS=$sp$nl eval cmd=\"$cmd\" IFS=$save_ifs $opt_quiet || { func_quote_for_expand "$cmd" eval "func_echo $func_quote_for_expand_result" } $opt_dry_run || eval "$cmd" || { lt_exit=$? # Restore the uninstalled library and exit if test relink = "$opt_mode"; then ( cd "$output_objdir" && \ $RM "${realname}T" && \ $MV "${realname}U" "$realname" ) fi exit $lt_exit } done IFS=$save_ifs # Restore the uninstalled library and exit if test relink = "$opt_mode"; then $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}T && $MV $realname ${realname}T && $MV ${realname}U $realname)' || exit $? if test -n "$convenience"; then if test -z "$whole_archive_flag_spec"; then func_show_eval '${RM}r "$gentop"' fi fi exit $EXIT_SUCCESS fi # Create links to the real library. for linkname in $linknames; do if test "$realname" != "$linkname"; then func_show_eval '(cd "$output_objdir" && $RM "$linkname" && $LN_S "$realname" "$linkname")' 'exit $?' fi done # If -module or -export-dynamic was specified, set the dlname. if test yes = "$module" || test yes = "$export_dynamic"; then # On all known operating systems, these are identical. dlname=$soname fi fi ;; obj) if test -n "$dlfiles$dlprefiles" || test no != "$dlself"; then func_warning "'-dlopen' is ignored for objects" fi case " $deplibs" in *\ -l* | *\ -L*) func_warning "'-l' and '-L' are ignored for objects" ;; esac test -n "$rpath" && \ func_warning "'-rpath' is ignored for objects" test -n "$xrpath" && \ func_warning "'-R' is ignored for objects" test -n "$vinfo" && \ func_warning "'-version-info' is ignored for objects" test -n "$release" && \ func_warning "'-release' is ignored for objects" case $output in *.lo) test -n "$objs$old_deplibs" && \ func_fatal_error "cannot build library object '$output' from non-libtool objects" libobj=$output func_lo2o "$libobj" obj=$func_lo2o_result ;; *) libobj= obj=$output ;; esac # Delete the old objects. $opt_dry_run || $RM $obj $libobj # Objects from convenience libraries. This assumes # single-version convenience libraries. Whenever we create # different ones for PIC/non-PIC, this we'll have to duplicate # the extraction. reload_conv_objs= gentop= # if reload_cmds runs $LD directly, get rid of -Wl from # whole_archive_flag_spec and hope we can get by with turning comma # into space. case $reload_cmds in *\$LD[\ \$]*) wl= ;; esac if test -n "$convenience"; then if test -n "$whole_archive_flag_spec"; then eval tmp_whole_archive_flags=\"$whole_archive_flag_spec\" test -n "$wl" || tmp_whole_archive_flags=`$ECHO "$tmp_whole_archive_flags" | $SED 's|,| |g'` reload_conv_objs=$reload_objs\ $tmp_whole_archive_flags else gentop=$output_objdir/${obj}x func_append generated " $gentop" func_extract_archives $gentop $convenience reload_conv_objs="$reload_objs $func_extract_archives_result" fi fi # If we're not building shared, we need to use non_pic_objs test yes = "$build_libtool_libs" || libobjs=$non_pic_objects # Create the old-style object. reload_objs=$objs$old_deplibs' '`$ECHO "$libobjs" | $SP2NL | $SED "/\.$libext$/d; /\.lib$/d; $lo2o" | $NL2SP`' '$reload_conv_objs output=$obj func_execute_cmds "$reload_cmds" 'exit $?' # Exit if we aren't doing a library object file. if test -z "$libobj"; then if test -n "$gentop"; then func_show_eval '${RM}r "$gentop"' fi exit $EXIT_SUCCESS fi test yes = "$build_libtool_libs" || { if test -n "$gentop"; then func_show_eval '${RM}r "$gentop"' fi # Create an invalid libtool object if no PIC, so that we don't # accidentally link it into a program. # $show "echo timestamp > $libobj" # $opt_dry_run || eval "echo timestamp > $libobj" || exit $? exit $EXIT_SUCCESS } if test -n "$pic_flag" || test default != "$pic_mode"; then # Only do commands if we really have different PIC objects. reload_objs="$libobjs $reload_conv_objs" output=$libobj func_execute_cmds "$reload_cmds" 'exit $?' fi if test -n "$gentop"; then func_show_eval '${RM}r "$gentop"' fi exit $EXIT_SUCCESS ;; prog) case $host in *cygwin*) func_stripname '' '.exe' "$output" output=$func_stripname_result.exe;; esac test -n "$vinfo" && \ func_warning "'-version-info' is ignored for programs" test -n "$release" && \ func_warning "'-release' is ignored for programs" $preload \ && test unknown,unknown,unknown = "$dlopen_support,$dlopen_self,$dlopen_self_static" \ && func_warning "'LT_INIT([dlopen])' not used. Assuming no dlopen support." case $host in *-*-rhapsody* | *-*-darwin1.[012]) # On Rhapsody replace the C library is the System framework compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's/ -lc / System.ltframework /'` finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED 's/ -lc / System.ltframework /'` ;; esac case $host in *-*-darwin*) # Don't allow lazy linking, it breaks C++ global constructors # But is supposedly fixed on 10.4 or later (yay!). if test CXX = "$tagname"; then case ${MACOSX_DEPLOYMENT_TARGET-10.0} in 10.[0123]) func_append compile_command " $wl-bind_at_load" func_append finalize_command " $wl-bind_at_load" ;; esac fi # Time to change all our "foo.ltframework" stuff back to "-framework foo" compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` ;; esac # move library search paths that coincide with paths to not yet # installed libraries to the beginning of the library search list new_libs= for path in $notinst_path; do case " $new_libs " in *" -L$path/$objdir "*) ;; *) case " $compile_deplibs " in *" -L$path/$objdir "*) func_append new_libs " -L$path/$objdir" ;; esac ;; esac done for deplib in $compile_deplibs; do case $deplib in -L*) case " $new_libs " in *" $deplib "*) ;; *) func_append new_libs " $deplib" ;; esac ;; *) func_append new_libs " $deplib" ;; esac done compile_deplibs=$new_libs func_append compile_command " $compile_deplibs" func_append finalize_command " $finalize_deplibs" if test -n "$rpath$xrpath"; then # If the user specified any rpath flags, then add them. for libdir in $rpath $xrpath; do # This is the magic to use -rpath. case "$finalize_rpath " in *" $libdir "*) ;; *) func_append finalize_rpath " $libdir" ;; esac done fi # Now hardcode the library paths rpath= hardcode_libdirs= for libdir in $compile_rpath $finalize_rpath; do if test -n "$hardcode_libdir_flag_spec"; then if test -n "$hardcode_libdir_separator"; then if test -z "$hardcode_libdirs"; then hardcode_libdirs=$libdir else # Just accumulate the unique libdirs. case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) ;; *) func_append hardcode_libdirs "$hardcode_libdir_separator$libdir" ;; esac fi else eval flag=\"$hardcode_libdir_flag_spec\" func_append rpath " $flag" fi elif test -n "$runpath_var"; then case "$perm_rpath " in *" $libdir "*) ;; *) func_append perm_rpath " $libdir" ;; esac fi case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) testbindir=`$ECHO "$libdir" | $SED -e 's*/lib$*/bin*'` case :$dllsearchpath: in *":$libdir:"*) ;; ::) dllsearchpath=$libdir;; *) func_append dllsearchpath ":$libdir";; esac case :$dllsearchpath: in *":$testbindir:"*) ;; ::) dllsearchpath=$testbindir;; *) func_append dllsearchpath ":$testbindir";; esac ;; esac done # Substitute the hardcoded libdirs into the rpath. if test -n "$hardcode_libdir_separator" && test -n "$hardcode_libdirs"; then libdir=$hardcode_libdirs eval rpath=\" $hardcode_libdir_flag_spec\" fi compile_rpath=$rpath rpath= hardcode_libdirs= for libdir in $finalize_rpath; do if test -n "$hardcode_libdir_flag_spec"; then if test -n "$hardcode_libdir_separator"; then if test -z "$hardcode_libdirs"; then hardcode_libdirs=$libdir else # Just accumulate the unique libdirs. case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) ;; *) func_append hardcode_libdirs "$hardcode_libdir_separator$libdir" ;; esac fi else eval flag=\"$hardcode_libdir_flag_spec\" func_append rpath " $flag" fi elif test -n "$runpath_var"; then case "$finalize_perm_rpath " in *" $libdir "*) ;; *) func_append finalize_perm_rpath " $libdir" ;; esac fi done # Substitute the hardcoded libdirs into the rpath. if test -n "$hardcode_libdir_separator" && test -n "$hardcode_libdirs"; then libdir=$hardcode_libdirs eval rpath=\" $hardcode_libdir_flag_spec\" fi finalize_rpath=$rpath if test -n "$libobjs" && test yes = "$build_old_libs"; then # Transform all the library objects into standard objects. compile_command=`$ECHO "$compile_command" | $SP2NL | $SED "$lo2o" | $NL2SP` finalize_command=`$ECHO "$finalize_command" | $SP2NL | $SED "$lo2o" | $NL2SP` fi func_generate_dlsyms "$outputname" "@PROGRAM@" false # template prelinking step if test -n "$prelink_cmds"; then func_execute_cmds "$prelink_cmds" 'exit $?' fi wrappers_required=: case $host in *cegcc* | *mingw32ce*) # Disable wrappers for cegcc and mingw32ce hosts, we are cross compiling anyway. wrappers_required=false ;; *cygwin* | *mingw* ) test yes = "$build_libtool_libs" || wrappers_required=false ;; *) if test no = "$need_relink" || test yes != "$build_libtool_libs"; then wrappers_required=false fi ;; esac $wrappers_required || { # Replace the output file specification. compile_command=`$ECHO "$compile_command" | $SED 's%@OUTPUT@%'"$output"'%g'` link_command=$compile_command$compile_rpath # We have no uninstalled library dependencies, so finalize right now. exit_status=0 func_show_eval "$link_command" 'exit_status=$?' if test -n "$postlink_cmds"; then func_to_tool_file "$output" postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'` func_execute_cmds "$postlink_cmds" 'exit $?' fi # Delete the generated files. if test -f "$output_objdir/${outputname}S.$objext"; then func_show_eval '$RM "$output_objdir/${outputname}S.$objext"' fi exit $exit_status } if test -n "$compile_shlibpath$finalize_shlibpath"; then compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command" fi if test -n "$finalize_shlibpath"; then finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command" fi compile_var= finalize_var= if test -n "$runpath_var"; then if test -n "$perm_rpath"; then # We should set the runpath_var. rpath= for dir in $perm_rpath; do func_append rpath "$dir:" done compile_var="$runpath_var=\"$rpath\$$runpath_var\" " fi if test -n "$finalize_perm_rpath"; then # We should set the runpath_var. rpath= for dir in $finalize_perm_rpath; do func_append rpath "$dir:" done finalize_var="$runpath_var=\"$rpath\$$runpath_var\" " fi fi if test yes = "$no_install"; then # We don't need to create a wrapper script. link_command=$compile_var$compile_command$compile_rpath # Replace the output file specification. link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output"'%g'` # Delete the old output file. $opt_dry_run || $RM $output # Link the executable and exit func_show_eval "$link_command" 'exit $?' if test -n "$postlink_cmds"; then func_to_tool_file "$output" postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'` func_execute_cmds "$postlink_cmds" 'exit $?' fi exit $EXIT_SUCCESS fi case $hardcode_action,$fast_install in relink,*) # Fast installation is not supported link_command=$compile_var$compile_command$compile_rpath relink_command=$finalize_var$finalize_command$finalize_rpath func_warning "this platform does not like uninstalled shared libraries" func_warning "'$output' will be relinked during installation" ;; *,yes) link_command=$finalize_var$compile_command$finalize_rpath relink_command=`$ECHO "$compile_var$compile_command$compile_rpath" | $SED 's%@OUTPUT@%\$progdir/\$file%g'` ;; *,no) link_command=$compile_var$compile_command$compile_rpath relink_command=$finalize_var$finalize_command$finalize_rpath ;; *,needless) link_command=$finalize_var$compile_command$finalize_rpath relink_command= ;; esac # Replace the output file specification. link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'` # Delete the old output files. $opt_dry_run || $RM $output $output_objdir/$outputname $output_objdir/lt-$outputname func_show_eval "$link_command" 'exit $?' if test -n "$postlink_cmds"; then func_to_tool_file "$output_objdir/$outputname" postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'` func_execute_cmds "$postlink_cmds" 'exit $?' fi # Now create the wrapper script. func_verbose "creating $output" # Quote the relink command for shipping. if test -n "$relink_command"; then # Preserve any variables that may affect compiler behavior for var in $variables_saved_for_relink; do if eval test -z \"\${$var+set}\"; then relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command" elif eval var_value=\$$var; test -z "$var_value"; then relink_command="$var=; export $var; $relink_command" else func_quote_for_eval "$var_value" relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command" fi done relink_command="(cd `pwd`; $relink_command)" relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"` fi # Only actually do things if not in dry run mode. $opt_dry_run || { # win32 will think the script is a binary if it has # a .exe suffix, so we strip it off here. case $output in *.exe) func_stripname '' '.exe' "$output" output=$func_stripname_result ;; esac # test for cygwin because mv fails w/o .exe extensions case $host in *cygwin*) exeext=.exe func_stripname '' '.exe' "$outputname" outputname=$func_stripname_result ;; *) exeext= ;; esac case $host in *cygwin* | *mingw* ) func_dirname_and_basename "$output" "" "." output_name=$func_basename_result output_path=$func_dirname_result cwrappersource=$output_path/$objdir/lt-$output_name.c cwrapper=$output_path/$output_name.exe $RM $cwrappersource $cwrapper trap "$RM $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15 func_emit_cwrapperexe_src > $cwrappersource # The wrapper executable is built using the $host compiler, # because it contains $host paths and files. If cross- # compiling, it, like the target executable, must be # executed on the $host or under an emulation environment. $opt_dry_run || { $LTCC $LTCFLAGS -o $cwrapper $cwrappersource $STRIP $cwrapper } # Now, create the wrapper script for func_source use: func_ltwrapper_scriptname $cwrapper $RM $func_ltwrapper_scriptname_result trap "$RM $func_ltwrapper_scriptname_result; exit $EXIT_FAILURE" 1 2 15 $opt_dry_run || { # note: this script will not be executed, so do not chmod. if test "x$build" = "x$host"; then $cwrapper --lt-dump-script > $func_ltwrapper_scriptname_result else func_emit_wrapper no > $func_ltwrapper_scriptname_result fi } ;; * ) $RM $output trap "$RM $output; exit $EXIT_FAILURE" 1 2 15 func_emit_wrapper no > $output chmod +x $output ;; esac } exit $EXIT_SUCCESS ;; esac # See if we need to build an old-fashioned archive. for oldlib in $oldlibs; do case $build_libtool_libs in convenience) oldobjs="$libobjs_save $symfileobj" addlibs=$convenience build_libtool_libs=no ;; module) oldobjs=$libobjs_save addlibs=$old_convenience build_libtool_libs=no ;; *) oldobjs="$old_deplibs $non_pic_objects" $preload && test -f "$symfileobj" \ && func_append oldobjs " $symfileobj" addlibs=$old_convenience ;; esac if test -n "$addlibs"; then gentop=$output_objdir/${outputname}x func_append generated " $gentop" func_extract_archives $gentop $addlibs func_append oldobjs " $func_extract_archives_result" fi # Do each command in the archive commands. if test -n "$old_archive_from_new_cmds" && test yes = "$build_libtool_libs"; then cmds=$old_archive_from_new_cmds else # Add any objects from preloaded convenience libraries if test -n "$dlprefiles"; then gentop=$output_objdir/${outputname}x func_append generated " $gentop" func_extract_archives $gentop $dlprefiles func_append oldobjs " $func_extract_archives_result" fi # POSIX demands no paths to be encoded in archives. We have # to avoid creating archives with duplicate basenames if we # might have to extract them afterwards, e.g., when creating a # static archive out of a convenience library, or when linking # the entirety of a libtool archive into another (currently # not supported by libtool). if (for obj in $oldobjs do func_basename "$obj" $ECHO "$func_basename_result" done | sort | sort -uc >/dev/null 2>&1); then : else echo "copying selected object files to avoid basename conflicts..." gentop=$output_objdir/${outputname}x func_append generated " $gentop" func_mkdir_p "$gentop" save_oldobjs=$oldobjs oldobjs= counter=1 for obj in $save_oldobjs do func_basename "$obj" objbase=$func_basename_result case " $oldobjs " in " ") oldobjs=$obj ;; *[\ /]"$objbase "*) while :; do # Make sure we don't pick an alternate name that also # overlaps. newobj=lt$counter-$objbase func_arith $counter + 1 counter=$func_arith_result case " $oldobjs " in *[\ /]"$newobj "*) ;; *) if test ! -f "$gentop/$newobj"; then break; fi ;; esac done func_show_eval "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj" func_append oldobjs " $gentop/$newobj" ;; *) func_append oldobjs " $obj" ;; esac done fi func_to_tool_file "$oldlib" func_convert_file_msys_to_w32 tool_oldlib=$func_to_tool_file_result eval cmds=\"$old_archive_cmds\" func_len " $cmds" len=$func_len_result if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then cmds=$old_archive_cmds elif test -n "$archiver_list_spec"; then func_verbose "using command file archive linking..." for obj in $oldobjs do func_to_tool_file "$obj" $ECHO "$func_to_tool_file_result" done > $output_objdir/$libname.libcmd func_to_tool_file "$output_objdir/$libname.libcmd" oldobjs=" $archiver_list_spec$func_to_tool_file_result" cmds=$old_archive_cmds else # the command line is too long to link in one step, link in parts func_verbose "using piecewise archive linking..." save_RANLIB=$RANLIB RANLIB=: objlist= concat_cmds= save_oldobjs=$oldobjs oldobjs= # Is there a better way of finding the last object in the list? for obj in $save_oldobjs do last_oldobj=$obj done eval test_cmds=\"$old_archive_cmds\" func_len " $test_cmds" len0=$func_len_result len=$len0 for obj in $save_oldobjs do func_len " $obj" func_arith $len + $func_len_result len=$func_arith_result func_append objlist " $obj" if test "$len" -lt "$max_cmd_len"; then : else # the above command should be used before it gets too long oldobjs=$objlist if test "$obj" = "$last_oldobj"; then RANLIB=$save_RANLIB fi test -z "$concat_cmds" || concat_cmds=$concat_cmds~ eval concat_cmds=\"\$concat_cmds$old_archive_cmds\" objlist= len=$len0 fi done RANLIB=$save_RANLIB oldobjs=$objlist if test -z "$oldobjs"; then eval cmds=\"\$concat_cmds\" else eval cmds=\"\$concat_cmds~\$old_archive_cmds\" fi fi fi func_execute_cmds "$cmds" 'exit $?' done test -n "$generated" && \ func_show_eval "${RM}r$generated" # Now create the libtool archive. case $output in *.la) old_library= test yes = "$build_old_libs" && old_library=$libname.$libext func_verbose "creating $output" # Preserve any variables that may affect compiler behavior for var in $variables_saved_for_relink; do if eval test -z \"\${$var+set}\"; then relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command" elif eval var_value=\$$var; test -z "$var_value"; then relink_command="$var=; export $var; $relink_command" else func_quote_for_eval "$var_value" relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command" fi done # Quote the link command for shipping. relink_command="(cd `pwd`; $SHELL \"$progpath\" $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)" relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"` if test yes = "$hardcode_automatic"; then relink_command= fi # Only create the output if not a dry run. $opt_dry_run || { for installed in no yes; do if test yes = "$installed"; then if test -z "$install_libdir"; then break fi output=$output_objdir/${outputname}i # Replace all uninstalled libtool libraries with the installed ones newdependency_libs= for deplib in $dependency_libs; do case $deplib in *.la) func_basename "$deplib" name=$func_basename_result func_resolve_sysroot "$deplib" eval libdir=`$SED -n -e 's/^libdir=\(.*\)$/\1/p' $func_resolve_sysroot_result` test -z "$libdir" && \ func_fatal_error "'$deplib' is not a valid libtool archive" func_append newdependency_libs " ${lt_sysroot:+=}$libdir/$name" ;; -L*) func_stripname -L '' "$deplib" func_replace_sysroot "$func_stripname_result" func_append newdependency_libs " -L$func_replace_sysroot_result" ;; -R*) func_stripname -R '' "$deplib" func_replace_sysroot "$func_stripname_result" func_append newdependency_libs " -R$func_replace_sysroot_result" ;; *) func_append newdependency_libs " $deplib" ;; esac done dependency_libs=$newdependency_libs newdlfiles= for lib in $dlfiles; do case $lib in *.la) func_basename "$lib" name=$func_basename_result eval libdir=`$SED -n -e 's/^libdir=\(.*\)$/\1/p' $lib` test -z "$libdir" && \ func_fatal_error "'$lib' is not a valid libtool archive" func_append newdlfiles " ${lt_sysroot:+=}$libdir/$name" ;; *) func_append newdlfiles " $lib" ;; esac done dlfiles=$newdlfiles newdlprefiles= for lib in $dlprefiles; do case $lib in *.la) # Only pass preopened files to the pseudo-archive (for # eventual linking with the app. that links it) if we # didn't already link the preopened objects directly into # the library: func_basename "$lib" name=$func_basename_result eval libdir=`$SED -n -e 's/^libdir=\(.*\)$/\1/p' $lib` test -z "$libdir" && \ func_fatal_error "'$lib' is not a valid libtool archive" func_append newdlprefiles " ${lt_sysroot:+=}$libdir/$name" ;; esac done dlprefiles=$newdlprefiles else newdlfiles= for lib in $dlfiles; do case $lib in [\\/]* | [A-Za-z]:[\\/]*) abs=$lib ;; *) abs=`pwd`"/$lib" ;; esac func_append newdlfiles " $abs" done dlfiles=$newdlfiles newdlprefiles= for lib in $dlprefiles; do case $lib in [\\/]* | [A-Za-z]:[\\/]*) abs=$lib ;; *) abs=`pwd`"/$lib" ;; esac func_append newdlprefiles " $abs" done dlprefiles=$newdlprefiles fi $RM $output # place dlname in correct position for cygwin # In fact, it would be nice if we could use this code for all target # systems that can't hard-code library paths into their executables # and that have no shared library path variable independent of PATH, # but it turns out we can't easily determine that from inspecting # libtool variables, so we have to hard-code the OSs to which it # applies here; at the moment, that means platforms that use the PE # object format with DLL files. See the long comment at the top of # tests/bindir.at for full details. tdlname=$dlname case $host,$output,$installed,$module,$dlname in *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll | *cegcc*,*lai,yes,no,*.dll) # If a -bindir argument was supplied, place the dll there. if test -n "$bindir"; then func_relative_path "$install_libdir" "$bindir" tdlname=$func_relative_path_result/$dlname else # Otherwise fall back on heuristic. tdlname=../bin/$dlname fi ;; esac $ECHO > $output "\ # $outputname - a libtool library file # Generated by $PROGRAM (GNU $PACKAGE) $VERSION # # Please DO NOT delete this file! # It is necessary for linking the library. # The name that we can dlopen(3). dlname='$tdlname' # Names of this library. library_names='$library_names' # The name of the static archive. old_library='$old_library' # Linker flags that cannot go in dependency_libs. inherited_linker_flags='$new_inherited_linker_flags' # Libraries that this one depends upon. dependency_libs='$dependency_libs' # Names of additional weak libraries provided by this library weak_library_names='$weak_libs' # Version information for $libname. current=$current age=$age revision=$revision # Is this an already installed library? installed=$installed # Should we warn about portability when linking against -modules? shouldnotlink=$module # Files to dlopen/dlpreopen dlopen='$dlfiles' dlpreopen='$dlprefiles' # Directory that this library needs to be installed in: libdir='$install_libdir'" if test no,yes = "$installed,$need_relink"; then $ECHO >> $output "\ relink_command=\"$relink_command\"" fi done } # Do a symbolic link so that the libtool archive can be found in # LD_LIBRARY_PATH before the program is installed. func_show_eval '( cd "$output_objdir" && $RM "$outputname" && $LN_S "../$outputname" "$outputname" )' 'exit $?' ;; esac exit $EXIT_SUCCESS } if test link = "$opt_mode" || test relink = "$opt_mode"; then func_mode_link ${1+"$@"} fi # func_mode_uninstall arg... func_mode_uninstall () { $debug_cmd RM=$nonopt files= rmforce=false exit_status=0 # This variable tells wrapper scripts just to set variables rather # than running their programs. libtool_install_magic=$magic for arg do case $arg in -f) func_append RM " $arg"; rmforce=: ;; -*) func_append RM " $arg" ;; *) func_append files " $arg" ;; esac done test -z "$RM" && \ func_fatal_help "you must specify an RM program" rmdirs= for file in $files; do func_dirname "$file" "" "." dir=$func_dirname_result if test . = "$dir"; then odir=$objdir else odir=$dir/$objdir fi func_basename "$file" name=$func_basename_result test uninstall = "$opt_mode" && odir=$dir # Remember odir for removal later, being careful to avoid duplicates if test clean = "$opt_mode"; then case " $rmdirs " in *" $odir "*) ;; *) func_append rmdirs " $odir" ;; esac fi # Don't error if the file doesn't exist and rm -f was used. if { test -L "$file"; } >/dev/null 2>&1 || { test -h "$file"; } >/dev/null 2>&1 || test -f "$file"; then : elif test -d "$file"; then exit_status=1 continue elif $rmforce; then continue fi rmfiles=$file case $name in *.la) # Possibly a libtool archive, so verify it. if func_lalib_p "$file"; then func_source $dir/$name # Delete the libtool libraries and symlinks. for n in $library_names; do func_append rmfiles " $odir/$n" done test -n "$old_library" && func_append rmfiles " $odir/$old_library" case $opt_mode in clean) case " $library_names " in *" $dlname "*) ;; *) test -n "$dlname" && func_append rmfiles " $odir/$dlname" ;; esac test -n "$libdir" && func_append rmfiles " $odir/$name $odir/${name}i" ;; uninstall) if test -n "$library_names"; then # Do each command in the postuninstall commands. func_execute_cmds "$postuninstall_cmds" '$rmforce || exit_status=1' fi if test -n "$old_library"; then # Do each command in the old_postuninstall commands. func_execute_cmds "$old_postuninstall_cmds" '$rmforce || exit_status=1' fi # FIXME: should reinstall the best remaining shared library. ;; esac fi ;; *.lo) # Possibly a libtool object, so verify it. if func_lalib_p "$file"; then # Read the .lo file func_source $dir/$name # Add PIC object to the list of files to remove. if test -n "$pic_object" && test none != "$pic_object"; then func_append rmfiles " $dir/$pic_object" fi # Add non-PIC object to the list of files to remove. if test -n "$non_pic_object" && test none != "$non_pic_object"; then func_append rmfiles " $dir/$non_pic_object" fi fi ;; *) if test clean = "$opt_mode"; then noexename=$name case $file in *.exe) func_stripname '' '.exe' "$file" file=$func_stripname_result func_stripname '' '.exe' "$name" noexename=$func_stripname_result # $file with .exe has already been added to rmfiles, # add $file without .exe func_append rmfiles " $file" ;; esac # Do a test to see if this is a libtool program. if func_ltwrapper_p "$file"; then if func_ltwrapper_executable_p "$file"; then func_ltwrapper_scriptname "$file" relink_command= func_source $func_ltwrapper_scriptname_result func_append rmfiles " $func_ltwrapper_scriptname_result" else relink_command= func_source $dir/$noexename fi # note $name still contains .exe if it was in $file originally # as does the version of $file that was added into $rmfiles func_append rmfiles " $odir/$name $odir/${name}S.$objext" if test yes = "$fast_install" && test -n "$relink_command"; then func_append rmfiles " $odir/lt-$name" fi if test "X$noexename" != "X$name"; then func_append rmfiles " $odir/lt-$noexename.c" fi fi fi ;; esac func_show_eval "$RM $rmfiles" 'exit_status=1' done # Try to remove the $objdir's in the directories where we deleted files for dir in $rmdirs; do if test -d "$dir"; then func_show_eval "rmdir $dir >/dev/null 2>&1" fi done exit $exit_status } if test uninstall = "$opt_mode" || test clean = "$opt_mode"; then func_mode_uninstall ${1+"$@"} fi test -z "$opt_mode" && { help=$generic_help func_fatal_help "you must specify a MODE" } test -z "$exec_cmd" && \ func_fatal_help "invalid operation mode '$opt_mode'" if test -n "$exec_cmd"; then eval exec "$exec_cmd" exit $EXIT_FAILURE fi exit $exit_status # The TAGs below are defined such that we never get into a situation # where we disable both kinds of libraries. Given conflicting # choices, we go for a static library, that is the most portable, # since we can't tell whether shared libraries were disabled because # the user asked for that or because the platform doesn't support # them. This is particularly important on AIX, because we don't # support having both static and shared libraries enabled at the same # time on that platform, so we default to a shared-only configuration. # If a disable-shared tag is given, we'll fallback to a static-only # configuration. But we'll never go from static-only to shared-only. # ### BEGIN LIBTOOL TAG CONFIG: disable-shared build_libtool_libs=no build_old_libs=yes # ### END LIBTOOL TAG CONFIG: disable-shared # ### BEGIN LIBTOOL TAG CONFIG: disable-static build_old_libs=`case $build_libtool_libs in yes) echo no;; *) echo yes;; esac` # ### END LIBTOOL TAG CONFIG: disable-static # Local Variables: # mode:shell-script # sh-indentation:2 # End: ario-1.6/AUTHORS0000644000175000017500000000012313226723442010304 00000000000000Main Developer: Marc Pavot Contributors: Justus Winter ario-1.6/missing0000755000175000017500000001533013157351331010636 00000000000000#! /bin/sh # Common wrapper for a few potentially missing GNU programs. scriptversion=2013-10-28.13; # UTC # Copyright (C) 1996-2014 Free Software Foundation, Inc. # Originally written by Fran,cois Pinard , 1996. # 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, 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, see . # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. if test $# -eq 0; then echo 1>&2 "Try '$0 --help' for more information" exit 1 fi case $1 in --is-lightweight) # Used by our autoconf macros to check whether the available missing # script is modern enough. exit 0 ;; --run) # Back-compat with the calling convention used by older automake. shift ;; -h|--h|--he|--hel|--help) echo "\ $0 [OPTION]... PROGRAM [ARGUMENT]... Run 'PROGRAM [ARGUMENT]...', returning a proper advice when this fails due to PROGRAM being missing or too old. Options: -h, --help display this help and exit -v, --version output version information and exit Supported PROGRAM values: aclocal autoconf autoheader autom4te automake makeinfo bison yacc flex lex help2man Version suffixes to PROGRAM as well as the prefixes 'gnu-', 'gnu', and 'g' are ignored when checking the name. Send bug reports to ." exit $? ;; -v|--v|--ve|--ver|--vers|--versi|--versio|--version) echo "missing $scriptversion (GNU Automake)" exit $? ;; -*) echo 1>&2 "$0: unknown '$1' option" echo 1>&2 "Try '$0 --help' for more information" exit 1 ;; esac # Run the given program, remember its exit status. "$@"; st=$? # If it succeeded, we are done. test $st -eq 0 && exit 0 # Also exit now if we it failed (or wasn't found), and '--version' was # passed; such an option is passed most likely to detect whether the # program is present and works. case $2 in --version|--help) exit $st;; esac # Exit code 63 means version mismatch. This often happens when the user # tries to use an ancient version of a tool on a file that requires a # minimum version. if test $st -eq 63; then msg="probably too old" elif test $st -eq 127; then # Program was missing. msg="missing on your system" else # Program was found and executed, but failed. Give up. exit $st fi perl_URL=http://www.perl.org/ flex_URL=http://flex.sourceforge.net/ gnu_software_URL=http://www.gnu.org/software program_details () { case $1 in aclocal|automake) echo "The '$1' program is part of the GNU Automake package:" echo "<$gnu_software_URL/automake>" echo "It also requires GNU Autoconf, GNU m4 and Perl in order to run:" echo "<$gnu_software_URL/autoconf>" echo "<$gnu_software_URL/m4/>" echo "<$perl_URL>" ;; autoconf|autom4te|autoheader) echo "The '$1' program is part of the GNU Autoconf package:" echo "<$gnu_software_URL/autoconf/>" echo "It also requires GNU m4 and Perl in order to run:" echo "<$gnu_software_URL/m4/>" echo "<$perl_URL>" ;; esac } give_advice () { # Normalize program name to check for. normalized_program=`echo "$1" | sed ' s/^gnu-//; t s/^gnu//; t s/^g//; t'` printf '%s\n' "'$1' is $msg." configure_deps="'configure.ac' or m4 files included by 'configure.ac'" case $normalized_program in autoconf*) echo "You should only need it if you modified 'configure.ac'," echo "or m4 files included by it." program_details 'autoconf' ;; autoheader*) echo "You should only need it if you modified 'acconfig.h' or" echo "$configure_deps." program_details 'autoheader' ;; automake*) echo "You should only need it if you modified 'Makefile.am' or" echo "$configure_deps." program_details 'automake' ;; aclocal*) echo "You should only need it if you modified 'acinclude.m4' or" echo "$configure_deps." program_details 'aclocal' ;; autom4te*) echo "You might have modified some maintainer files that require" echo "the 'autom4te' program to be rebuilt." program_details 'autom4te' ;; bison*|yacc*) echo "You should only need it if you modified a '.y' file." echo "You may want to install the GNU Bison package:" echo "<$gnu_software_URL/bison/>" ;; lex*|flex*) echo "You should only need it if you modified a '.l' file." echo "You may want to install the Fast Lexical Analyzer package:" echo "<$flex_URL>" ;; help2man*) echo "You should only need it if you modified a dependency" \ "of a man page." echo "You may want to install the GNU Help2man package:" echo "<$gnu_software_URL/help2man/>" ;; makeinfo*) echo "You should only need it if you modified a '.texi' file, or" echo "any other file indirectly affecting the aspect of the manual." echo "You might want to install the Texinfo package:" echo "<$gnu_software_URL/texinfo/>" echo "The spurious makeinfo call might also be the consequence of" echo "using a buggy 'make' (AIX, DU, IRIX), in which case you might" echo "want to install GNU make:" echo "<$gnu_software_URL/make/>" ;; *) echo "You might have modified some files without having the proper" echo "tools for further handling them. Check the 'README' file, it" echo "often tells you about the needed prerequisites for installing" echo "this package. You may also peek at any GNU archive site, in" echo "case some other package contains this missing '$1' program." ;; esac } give_advice "$1" | sed -e '1s/^/WARNING: /' \ -e '2,$s/^/ /' >&2 # Propagate the correct exit status (expected to be 127 for a program # not found, 63 for a program that failed due to version mismatch). exit $st # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC" # time-stamp-end: "; # UTC" # End: ario-1.6/configure.ac0000644000175000017500000003107413226745571011542 00000000000000AC_PREREQ(2.59) m4_define(ario_version,1.6) AC_INIT([Ario], [ario_version], [marc.pavot@gmail.com], [ario]) AM_CONFIG_HEADER(config.h) AM_INIT_AUTOMAKE([subdir-objects]) m4_ifdef([AM_SILENT_RULES],[AM_SILENT_RULES([yes])]) AC_PROG_CC AC_PROG_INSTALL AC_STDC_HEADERS AM_PROG_LIBTOOL dnl ================================================================ dnl i18n dnl ================================================================ IT_PROG_INTLTOOL(0.35.5) GETTEXT_PACKAGE=ario AC_SUBST(GETTEXT_PACKAGE) AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE,"$GETTEXT_PACKAGE", [Gettext package]) AM_GLIB_GNU_GETTEXT dnl ================================================================ dnl Dependencies dnl ================================================================ PKG_CHECK_MODULES(DEPS, [gtk+-3.0 glib-2.0 >= 2.4 gobject-2.0 >= 2.4 gmodule-2.0 gthread-2.0 gio-2.0 libxml-2.0 libcurl]) AC_SUBST(DEPS_CFLAGS) AC_SUBST(DEPS_LIBS) AC_SUBST(CFLAGS) AC_SUBST(LDFLAGS) AC_PATH_PROG(GLIB_MKENUMS, glib-mkenums) dnl ================================================================ dnl Warnings dnl ================================================================ WARN_CFLAGS="-Wall \ -Wall -Wimplicit -Wunused-label \ -Wmissing-declarations -Wmissing-prototypes \ -Wnested-externs -Wpointer-arith \ -Wcast-align -Wpointer-sign \ -Wclobbered -Wempty-body -Wignored-qualifiers \ -Wmissing-parameter-type \ -Wold-style-declaration -Woverride-init \ -Wsign-compare -Wtype-limits -Wuninitialized \ -Wold-style-definition" for option in $WARN_CFLAGS; do SAVE_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS $option" AC_MSG_CHECKING([whether gcc understands $option]) AC_TRY_COMPILE([], [], has_option=yes, has_option=no,) if test x$has_option = xyes; then WARNINGS="$WARNINGS $option" fi AC_MSG_RESULT($has_option) CFLAGS="$SAVE_CFLAGS" unset has_option unset SAVE_CFLAGS done unset option dnl ================================================================ dnl Debugging information dnl ================================================================ AC_ARG_ENABLE(debug, AC_HELP_STRING([--enable-debug], [Add runtime debugging information (slower)])) if test x"$enable_debug" = xyes; then AC_DEFINE(DEBUG, 1, [Add runtime debugging information (slower)]) fi dnl ================================================================ dnl XMMS2 support dnl ================================================================ AC_ARG_ENABLE(xmms2, AC_HELP_STRING([--enable-xmms2], [Add support of XMMS2 (VERY EXPERIMENTAL)])) if test x"$enable_xmms2" = xyes; then AC_DEFINE(ENABLE_XMMS2, 1, [Add support of XMMS2 (VERY EXPERIMENTAL)]) PKG_CHECK_MODULES(XMMS2, xmms2-client xmms2-client-glib) AC_SUBST(XMMS2_CFLAGS) AC_SUBST(XMMS2_LIBS) fi AM_CONDITIONAL(USE_XMMS2, test x${enable_xmms2} = xyes) dnl ================================================================ dnl libmpdclient2 dnl ================================================================ AC_ARG_ENABLE(libmpdclient2, AC_HELP_STRING([--disable-libmpdclient2], [Disable use libmpdclient2 (embedded version of libmpdclient zill be used)])) if test x"$enable_libmpdclient2" != xno; then AC_DEFINE(ENABLE_LIBMPDCLIENT2, 1, [Use libmpdclient2]) PKG_CHECK_MODULES(LIBMPDCLIENT2, [libmpdclient >= 2.0]) AC_SUBST(LIBMPDCLIENT2_CFLAGS) AC_SUBST(LIBMPDCLIENT2_LIBS) fi AM_CONDITIONAL(USE_LIBMPDCLIENT2, test x${enable_libmpdclient2} != xno) dnl ================================================================ dnl Python plugins dnl ================================================================ AC_ARG_ENABLE(python, AC_HELP_STRING([--enable-python], [Enable python plugins support])) if test x"$enable_python" = xyes; then AC_DEFINE(ENABLE_PYTHON, 1, [Enable python plugins support]) fi if test "x$enable_python" = "xyes"; then AM_PATH_PYTHON([2.3],[],[no]) if test "x$PYTHON" = "x:"; then enable_python=no fi fi if test "x$enable_python" = "xyes"; then PY_PREFIX=`$PYTHON -c 'import sys ; print sys.prefix'` PY_EXEC_PREFIX=`$PYTHON -c 'import sys ; print sys.exec_prefix'` PYTHON_LIBS="-lpython$PYTHON_VERSION" PYTHON_LIB_LOC="-L$PY_EXEC_PREFIX/lib/python$PYTHON_VERSION/config" PYTHON_CFLAGS="-I$PY_PREFIX/include/python$PYTHON_VERSION" PYTHON_MAKEFILE="$PY_EXEC_PREFIX/lib/python$PYTHON_VERSION/config/Makefile" PYTHON_LOCALMODLIBS=`sed -n -e 's/^LOCALMODLIBS=\(.*\)/\1/p' $PYTHON_MAKEFILE` PYTHON_BASEMODLIBS=`sed -n -e 's/^BASEMODLIBS=\(.*\)/\1/p' $PYTHON_MAKEFILE` PYTHON_OTHER_LIBS=`sed -n -e 's/^LIBS=\(.*\)/\1/p' $PYTHON_MAKEFILE` PYTHON_EXTRA_LIBS="$PYTHON_LOCALMODLIBS $PYTHON_BASEMODLIBS $PYTHON_OTHER_LIBS" AC_SUBST([PYTHON_LIBS]) AC_SUBST([PYTHON_LIB_LOC]) AC_SUBST([PYTHON_CFLAGS]) AC_SUBST([PYTHON_EXTRA_LIBS]) PKG_CHECK_MODULES([PYGTK], [pygobject-2.0 >= 2.11.5 pygtk-2.0 >= 2.8.0]) AC_SUBST([PYGTK_CFLAGS]) AC_SUBST([PYGTK_LIBS]) AC_MSG_CHECKING([for pygtk defs]) PYGTK_DEFSDIR=`$PKG_CONFIG --variable=defsdir pygtk-2.0` AC_MSG_RESULT([$PYGTK_DEFSDIR]) AC_MSG_CHECKING([for pygtk codegen]) PYGTK_CODEGEN="$PYTHON `$PKG_CONFIG --variable=codegendir pygtk-2.0`/codegen.py" AC_MSG_RESULT([$PYGTK_CODEGEN]) AC_MSG_CHECKING([for pygtk h2def]) PYGTK_H2DEF="$PYTHON `$PKG_CONFIG --variable=codegendir pygtk-2.0`/h2def.py" AC_MSG_RESULT([$PYGTK_H2DEF]) AC_SUBST([PYGTK_DEFSDIR]) AC_SUBST([PYGTK_CODEGEN]) AC_SUBST([PYGTK_H2DEF]) fi AM_CONDITIONAL(ENABLE_PYTHON, test x"$enable_python" = xyes) # Silence warning: ar: 'u' modifier ignored since 'D' is the default AC_SUBST(AR_FLAGS, [cr]) dnl ================================================================ dnl Search dnl ================================================================ AC_ARG_ENABLE(search, AC_HELP_STRING([--disable-search], [Disable support of search view])) if test x"$enable_search" != xno; then AC_DEFINE(ENABLE_SEARCH, 1, [Add support of search view]) fi dnl ================================================================ dnl MPD idle mode dnl ================================================================ AC_ARG_ENABLE(mpdidle, AC_HELP_STRING([--disable-mpdidle], [Disable MPD idle mode (MPD idle mode reduces CPU and network usage)])) if test x"$enable_mpdidle" != xno; then AC_DEFINE(ENABLE_MPDIDLE, 1, [Use MPD idle mode (reduces CPU and network usage but still experimental)]) fi AM_CONDITIONAL(MPD_GLIB, test x"$enable_mpdidle" != xno) dnl ================================================================ dnl Stored Playlists dnl ================================================================ AC_ARG_ENABLE(playlists, AC_HELP_STRING([--disable-playlists], [Disable support of playlists])) if test x"$enable_playlists" != xno; then AC_DEFINE(ENABLE_STOREDPLAYLISTS, 1, [Add support of playlists]) fi dnl ================================================================ dnl DBUS dnl ================================================================ AC_ARG_ENABLE(dbus, AC_HELP_STRING([--disable-dbus], [Disable support of dbus])) if test x"$enable_dbus" != xno; then PKG_CHECK_MODULES(DBUS, [dbus-glib-1 >= 0.35]) DBUS_CFLAGS="$DBUS_CFLAGS -DDBUS_API_SUBJECT_TO_CHANGE" DBUS_GLIB_BIN="`$PKG_CONFIG --variable=exec_prefix dbus-glib-1`/bin" AC_SUBST(DBUS_GLIB_BIN) fi AM_CONDITIONAL(USE_DBUS, test x"$enable_dbus" != xno) dnl ================================================================ dnl Avahi dnl ================================================================ AC_ARG_ENABLE(avahi, AC_HELP_STRING([--disable-avahi], [Disable support of avahi])) if test x"$enable_avahi" != xno; then AC_DEFINE(ENABLE_AVAHI, 1, [Add support of avahi]) PKG_CHECK_MODULES(AVAHI, [avahi-client avahi-glib]) AC_SUBST(AVAHI_CFLAGS) AC_SUBST(AVAHI_LIBS) fi AM_CONDITIONAL(USE_AVAHI, test x"$enable_avahi" != xno) dnl ================================================================ dnl Taglib dnl ================================================================ AC_ARG_ENABLE(taglib, AC_HELP_STRING([--disable-taglib], [Disable support of Taglib])) if test x"$enable_taglib" != xno; then AC_DEFINE(ENABLE_TAGLIB, 1, [Add support of taglib]) PKG_CHECK_MODULES(TAGLIB, [taglib_c]) AC_SUBST(TAGLIB_CFLAGS) AC_SUBST(TAGLIB_LIBS) fi dnl ================================================================ dnl Deprecations dnl ================================================================ AC_ARG_ENABLE(deprecations, AC_HELP_STRING([--enable-deprecations], [Warn about deprecated usages])) if test x"$enable_deprecations" = xyes; then WARNINGS="$WARNINGS -DG_DISABLE_DEPRECATED \ -DGDK_DISABLE_DEPRECATED \ -DGTK_DISABLE_SINGLE_INCLUDES \ -DGDK_PIXBUF_DISABLE_DEPRECATED \ -DGTK_DISABLE_DEPRECATED \ -DGSEAL_ENABLE \ -DG_DISABLE_SINGLE_INCLUDES" fi AC_SUBST(WARNINGS) PLUGINDIR='${libdir}/ario/plugins' AC_SUBST(PLUGINDIR) PLUGIN_DATA_DIR='${pkgdatadir}/plugins' AC_SUBST(PLUGIN_DATA_DIR) AC_OUTPUT([ Makefile bindings/Makefile bindings/python/Makefile src/Makefile data/Makefile data/icons/Makefile data/icons/hicolor/Makefile data/icons/hicolor/16x16/Makefile data/icons/hicolor/16x16/apps/Makefile data/icons/hicolor/22x22/Makefile data/icons/hicolor/22x22/apps/Makefile data/icons/hicolor/24x24/Makefile data/icons/hicolor/24x24/apps/Makefile data/icons/hicolor/32x32/Makefile data/icons/hicolor/32x32/apps/Makefile data/icons/hicolor/48x48/Makefile data/icons/hicolor/48x48/apps/Makefile data/icons/hicolor/64x64/Makefile data/icons/hicolor/64x64/apps/Makefile data/icons/hicolor/72x72/Makefile data/icons/hicolor/72x72/apps/Makefile data/icons/hicolor/96x96/Makefile data/icons/hicolor/96x96/apps/Makefile data/icons/hicolor/128x128/Makefile data/icons/hicolor/128x128/apps/Makefile data/icons/hicolor/256x256/Makefile data/icons/hicolor/256x256/apps/Makefile data/icons/hicolor/scalable/Makefile data/icons/hicolor/scalable/apps/Makefile plugins/Makefile plugins/filesystem/Makefile plugins/information/Makefile plugins/mmkeys/Makefile plugins/radios/Makefile po/Makefile.in data/ario.desktop.in ]) echo "" echo "" echo "-------------- Options --------------" if test x${enable_debug} = xyes; then echo "Debug information is: ENABLED" else echo "Debug information is: DISABLED (--enable-debug)" fi if test x${enable_xmms2} = xyes; then echo "XMMS2 support (VERY EXPERIMENTAL) is: ENABLED" else echo "XMMS2 support (VERY EXPERIMENTAL) is: DISABLED (--enable-xmms2)" fi if test x${enable_python} = xyes; then echo "Python plugins support (Experimental) is: ENABLED" else echo "Python plugins support (Experimental) is: DISABLED (--enable-python)" fi if test x${enable_search} != xno; then echo "Search view support is: ENABLED (--disable-search)" else echo "Search view support is: DISABLED" fi if test x${enable_avahi} != xno; then echo "Avahi support is: ENABLED (--disable-avahi)" else echo "Avahi support is: DISABLED" fi if test x${enable_dbus} != xno; then echo "DBUS support is: ENABLED (--disable-dbus)" else echo "DBUS support is: DISABLED" fi if test x${enable_playlists} != xno; then echo "Playlists support is: ENABLED (--disable-playlists)" else echo "Playlists support is: DISABLED" fi if test x${enable_mpdidle} != xno; then echo "MPD 'idle' mode support is: ENABLED (--enable-mpdidle)" else echo "MPD 'idle' mode support is: DISABLED" fi if test x${enable_taglib} != xno; then echo "Taglib support is: ENABLED (--disable-taglib)" else echo "Taglib support is: DISABLED" fi if test x${enable_libmpdclient2} != xno; then echo "libmpdclient2 support is: ENABLED (--enable-libmpdclient2)" else echo "libmpdclient2 support is: DISABLED" fi ario-1.6/aclocal.m40000644000175000017500000146512413226745575011130 00000000000000# generated automatically by aclocal 1.15.1 -*- Autoconf -*- # Copyright (C) 1996-2017 Free Software Foundation, Inc. # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. m4_ifndef([AC_CONFIG_MACRO_DIRS], [m4_defun([_AM_CONFIG_MACRO_DIRS], [])m4_defun([AC_CONFIG_MACRO_DIRS], [_AM_CONFIG_MACRO_DIRS($@)])]) m4_ifndef([AC_AUTOCONF_VERSION], [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.69],, [m4_warning([this file was generated for autoconf 2.69. You have another version of autoconf. It may work, but is not guaranteed to. If you have problems, you may need to regenerate the build system entirely. To do so, use the procedure documented by the package, typically 'autoreconf'.])]) # Copyright (C) 1995-2002 Free Software Foundation, Inc. # Copyright (C) 2001-2003,2004 Red Hat, Inc. # # This file is free software, distributed under the terms of the GNU # General Public License. As a special exception to the GNU General # Public License, this file may be distributed as part of a program # that contains a configuration script generated by Autoconf, under # the same distribution terms as the rest of that program. # # This file can be copied and used freely without restrictions. It can # be used in projects which are not available under the GNU Public License # but which still want to provide support for the GNU gettext functionality. # # Macro to add for using GNU gettext. # Ulrich Drepper , 1995, 1996 # # Modified to never use included libintl. # Owen Taylor , 12/15/1998 # # Major rework to remove unused code # Owen Taylor , 12/11/2002 # # Added better handling of ALL_LINGUAS from GNU gettext version # written by Bruno Haible, Owen Taylor 5/30/3002 # # Modified to require ngettext # Matthias Clasen 08/06/2004 # # We need this here as well, since someone might use autoconf-2.5x # to configure GLib then an older version to configure a package # using AM_GLIB_GNU_GETTEXT AC_PREREQ(2.53) dnl dnl We go to great lengths to make sure that aclocal won't dnl try to pull in the installed version of these macros dnl when running aclocal in the glib directory. dnl m4_copy([AC_DEFUN],[glib_DEFUN]) m4_copy([AC_REQUIRE],[glib_REQUIRE]) dnl dnl At the end, if we're not within glib, we'll define the public dnl definitions in terms of our private definitions. dnl # GLIB_LC_MESSAGES #-------------------- glib_DEFUN([GLIB_LC_MESSAGES], [AC_CHECK_HEADERS([locale.h]) if test $ac_cv_header_locale_h = yes; then AC_CACHE_CHECK([for LC_MESSAGES], am_cv_val_LC_MESSAGES, [AC_TRY_LINK([#include ], [return LC_MESSAGES], am_cv_val_LC_MESSAGES=yes, am_cv_val_LC_MESSAGES=no)]) if test $am_cv_val_LC_MESSAGES = yes; then AC_DEFINE(HAVE_LC_MESSAGES, 1, [Define if your file defines LC_MESSAGES.]) fi fi]) # GLIB_PATH_PROG_WITH_TEST #---------------------------- dnl GLIB_PATH_PROG_WITH_TEST(VARIABLE, PROG-TO-CHECK-FOR, dnl TEST-PERFORMED-ON-FOUND_PROGRAM [, VALUE-IF-NOT-FOUND [, PATH]]) glib_DEFUN([GLIB_PATH_PROG_WITH_TEST], [# Extract the first word of "$2", so it can be a program name with args. set dummy $2; ac_word=[$]2 AC_MSG_CHECKING([for $ac_word]) AC_CACHE_VAL(ac_cv_path_$1, [case "[$]$1" in /*) ac_cv_path_$1="[$]$1" # Let the user override the test with a path. ;; *) IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" for ac_dir in ifelse([$5], , $PATH, [$5]); do test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/$ac_word; then if [$3]; then ac_cv_path_$1="$ac_dir/$ac_word" break fi fi done IFS="$ac_save_ifs" dnl If no 4th arg is given, leave the cache variable unset, dnl so AC_PATH_PROGS will keep looking. ifelse([$4], , , [ test -z "[$]ac_cv_path_$1" && ac_cv_path_$1="$4" ])dnl ;; esac])dnl $1="$ac_cv_path_$1" if test ifelse([$4], , [-n "[$]$1"], ["[$]$1" != "$4"]); then AC_MSG_RESULT([$]$1) else AC_MSG_RESULT(no) fi AC_SUBST($1)dnl ]) dnl Checks for special options needed on Mac OS X. dnl Defines INTL_MACOSX_LIBS. dnl dnl Copied from intlmacosx.m4 in gettext, GPL. dnl Copyright (C) 2004-2013 Free Software Foundation, Inc. glib_DEFUN([glib_gt_INTL_MACOSX], [ dnl Check for API introduced in Mac OS X 10.2. AC_CACHE_CHECK([for CFPreferencesCopyAppValue], [gt_cv_func_CFPreferencesCopyAppValue], [gt_save_LIBS="$LIBS" LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation" AC_LINK_IFELSE( [AC_LANG_PROGRAM( [[#include ]], [[CFPreferencesCopyAppValue(NULL, NULL)]])], [gt_cv_func_CFPreferencesCopyAppValue=yes], [gt_cv_func_CFPreferencesCopyAppValue=no]) LIBS="$gt_save_LIBS"]) if test $gt_cv_func_CFPreferencesCopyAppValue = yes; then AC_DEFINE([HAVE_CFPREFERENCESCOPYAPPVALUE], [1], [Define to 1 if you have the Mac OS X function CFPreferencesCopyAppValue in the CoreFoundation framework.]) fi dnl Check for API introduced in Mac OS X 10.3. AC_CACHE_CHECK([for CFLocaleCopyCurrent], [gt_cv_func_CFLocaleCopyCurrent], [gt_save_LIBS="$LIBS" LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation" AC_LINK_IFELSE( [AC_LANG_PROGRAM( [[#include ]], [[CFLocaleCopyCurrent();]])], [gt_cv_func_CFLocaleCopyCurrent=yes], [gt_cv_func_CFLocaleCopyCurrent=no]) LIBS="$gt_save_LIBS"]) if test $gt_cv_func_CFLocaleCopyCurrent = yes; then AC_DEFINE([HAVE_CFLOCALECOPYCURRENT], [1], [Define to 1 if you have the Mac OS X function CFLocaleCopyCurrent in the CoreFoundation framework.]) fi INTL_MACOSX_LIBS= if test $gt_cv_func_CFPreferencesCopyAppValue = yes || test $gt_cv_func_CFLocaleCopyCurrent = yes; then INTL_MACOSX_LIBS="-Wl,-framework -Wl,CoreFoundation" fi AC_SUBST([INTL_MACOSX_LIBS]) ]) # GLIB_WITH_NLS #----------------- glib_DEFUN([GLIB_WITH_NLS], dnl NLS is obligatory [USE_NLS=yes AC_SUBST(USE_NLS) gt_cv_have_gettext=no CATOBJEXT=NONE XGETTEXT=: INTLLIBS= glib_gt_INTL_MACOSX AC_CHECK_HEADER(libintl.h, [gt_cv_func_dgettext_libintl="no" libintl_extra_libs="" # # First check in libc # AC_CACHE_CHECK([for ngettext in libc], gt_cv_func_ngettext_libc, [AC_TRY_LINK([ #include ], [return !ngettext ("","", 1)], gt_cv_func_ngettext_libc=yes, gt_cv_func_ngettext_libc=no) ]) if test "$gt_cv_func_ngettext_libc" = "yes" ; then AC_CACHE_CHECK([for dgettext in libc], gt_cv_func_dgettext_libc, [AC_TRY_LINK([ #include ], [return !dgettext ("","")], gt_cv_func_dgettext_libc=yes, gt_cv_func_dgettext_libc=no) ]) fi if test "$gt_cv_func_ngettext_libc" = "yes" ; then AC_CHECK_FUNCS(bind_textdomain_codeset) fi # # If we don't have everything we want, check in libintl # if test "$gt_cv_func_dgettext_libc" != "yes" \ || test "$gt_cv_func_ngettext_libc" != "yes" \ || test "$ac_cv_func_bind_textdomain_codeset" != "yes" ; then AC_CHECK_LIB(intl, bindtextdomain, [AC_CHECK_LIB(intl, ngettext, [AC_CHECK_LIB(intl, dgettext, gt_cv_func_dgettext_libintl=yes)])]) if test "$gt_cv_func_dgettext_libintl" != "yes" ; then AC_MSG_CHECKING([if -liconv is needed to use gettext]) AC_MSG_RESULT([]) AC_CHECK_LIB(intl, ngettext, [AC_CHECK_LIB(intl, dcgettext, [gt_cv_func_dgettext_libintl=yes libintl_extra_libs=-liconv], :,-liconv)], :,-liconv) fi # # If we found libintl, then check in it for bind_textdomain_codeset(); # we'll prefer libc if neither have bind_textdomain_codeset(), # and both have dgettext and ngettext # if test "$gt_cv_func_dgettext_libintl" = "yes" ; then glib_save_LIBS="$LIBS" LIBS="$LIBS -lintl $libintl_extra_libs" unset ac_cv_func_bind_textdomain_codeset AC_CHECK_FUNCS(bind_textdomain_codeset) LIBS="$glib_save_LIBS" if test "$ac_cv_func_bind_textdomain_codeset" = "yes" ; then gt_cv_func_dgettext_libc=no else if test "$gt_cv_func_dgettext_libc" = "yes" \ && test "$gt_cv_func_ngettext_libc" = "yes"; then gt_cv_func_dgettext_libintl=no fi fi fi fi if test "$gt_cv_func_dgettext_libc" = "yes" \ || test "$gt_cv_func_dgettext_libintl" = "yes"; then gt_cv_have_gettext=yes fi if test "$gt_cv_func_dgettext_libintl" = "yes"; then INTLLIBS="-lintl $libintl_extra_libs $INTL_MACOSX_LIBS" fi if test "$gt_cv_have_gettext" = "yes"; then AC_DEFINE(HAVE_GETTEXT,1, [Define if the GNU gettext() function is already present or preinstalled.]) GLIB_PATH_PROG_WITH_TEST(MSGFMT, msgfmt, [test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"], no)dnl if test "$MSGFMT" != "no"; then glib_save_LIBS="$LIBS" LIBS="$LIBS $INTLLIBS" AC_CHECK_FUNCS(dcgettext) MSGFMT_OPTS= AC_MSG_CHECKING([if msgfmt accepts -c]) GLIB_RUN_PROG([$MSGFMT -c -o /dev/null],[ msgid "" msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Project-Id-Version: test 1.0\n" "PO-Revision-Date: 2007-02-15 12:01+0100\n" "Last-Translator: test \n" "Language-Team: C \n" "MIME-Version: 1.0\n" "Content-Transfer-Encoding: 8bit\n" ], [MSGFMT_OPTS=-c; AC_MSG_RESULT([yes])], [AC_MSG_RESULT([no])]) AC_SUBST(MSGFMT_OPTS) AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT) GLIB_PATH_PROG_WITH_TEST(XGETTEXT, xgettext, [test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"], :) AC_TRY_LINK(, [extern int _nl_msg_cat_cntr; return _nl_msg_cat_cntr], [CATOBJEXT=.gmo DATADIRNAME=share], [case $host in *-*-solaris*) dnl On Solaris, if bind_textdomain_codeset is in libc, dnl GNU format message catalog is always supported, dnl since both are added to the libc all together. dnl Hence, we'd like to go with DATADIRNAME=share and dnl and CATOBJEXT=.gmo in this case. AC_CHECK_FUNC(bind_textdomain_codeset, [CATOBJEXT=.gmo DATADIRNAME=share], [CATOBJEXT=.mo DATADIRNAME=lib]) ;; *-*-openbsd*) CATOBJEXT=.mo DATADIRNAME=share ;; *) CATOBJEXT=.mo DATADIRNAME=lib ;; esac]) LIBS="$glib_save_LIBS" INSTOBJEXT=.mo else gt_cv_have_gettext=no fi fi ]) if test "$gt_cv_have_gettext" = "yes" ; then AC_DEFINE(ENABLE_NLS, 1, [always defined to indicate that i18n is enabled]) fi dnl Test whether we really found GNU xgettext. if test "$XGETTEXT" != ":"; then dnl If it is not GNU xgettext we define it as : so that the dnl Makefiles still can work. if $XGETTEXT --omit-header /dev/null 2> /dev/null; then : ; else AC_MSG_RESULT( [found xgettext program is not GNU xgettext; ignore it]) XGETTEXT=":" fi fi # We need to process the po/ directory. POSUB=po AC_OUTPUT_COMMANDS( [case "$CONFIG_FILES" in *po/Makefile.in*) sed -e "/POTFILES =/r po/POTFILES" po/Makefile.in > po/Makefile esac]) dnl These rules are solely for the distribution goal. While doing this dnl we only have to keep exactly one list of the available catalogs dnl in configure.ac. for lang in $ALL_LINGUAS; do GMOFILES="$GMOFILES $lang.gmo" POFILES="$POFILES $lang.po" done dnl Make all variables we use known to autoconf. AC_SUBST(CATALOGS) AC_SUBST(CATOBJEXT) AC_SUBST(DATADIRNAME) AC_SUBST(GMOFILES) AC_SUBST(INSTOBJEXT) AC_SUBST(INTLLIBS) AC_SUBST(PO_IN_DATADIR_TRUE) AC_SUBST(PO_IN_DATADIR_FALSE) AC_SUBST(POFILES) AC_SUBST(POSUB) ]) # AM_GLIB_GNU_GETTEXT # ------------------- # Do checks necessary for use of gettext. If a suitable implementation # of gettext is found in either in libintl or in the C library, # it will set INTLLIBS to the libraries needed for use of gettext # and AC_DEFINE() HAVE_GETTEXT and ENABLE_NLS. (The shell variable # gt_cv_have_gettext will be set to "yes".) It will also call AC_SUBST() # on various variables needed by the Makefile.in.in installed by # glib-gettextize. dnl AU_DEFUN([GLIB_GNU_GETTEXT], [AC_REQUIRE([AC_PROG_CC])dnl GLIB_LC_MESSAGES GLIB_WITH_NLS if test "$gt_cv_have_gettext" = "yes"; then if test "x$ALL_LINGUAS" = "x"; then LINGUAS= else AC_MSG_CHECKING(for catalogs to be installed) NEW_LINGUAS= for presentlang in $ALL_LINGUAS; do useit=no if test "%UNSET%" != "${LINGUAS-%UNSET%}"; then desiredlanguages="$LINGUAS" else desiredlanguages="$ALL_LINGUAS" fi for desiredlang in $desiredlanguages; do # Use the presentlang catalog if desiredlang is # a. equal to presentlang, or # b. a variant of presentlang (because in this case, # presentlang can be used as a fallback for messages # which are not translated in the desiredlang catalog). case "$desiredlang" in "$presentlang"*) useit=yes;; esac done if test $useit = yes; then NEW_LINGUAS="$NEW_LINGUAS $presentlang" fi done LINGUAS=$NEW_LINGUAS AC_MSG_RESULT($LINGUAS) fi dnl Construct list of names of catalog files to be constructed. if test -n "$LINGUAS"; then for lang in $LINGUAS; do CATALOGS="$CATALOGS $lang$CATOBJEXT"; done fi fi dnl If the AC_CONFIG_AUX_DIR macro for autoconf is used we possibly dnl find the mkinstalldirs script in another subdir but ($top_srcdir). dnl Try to locate is. MKINSTALLDIRS= if test -n "$ac_aux_dir"; then MKINSTALLDIRS="$ac_aux_dir/mkinstalldirs" fi if test -z "$MKINSTALLDIRS"; then MKINSTALLDIRS="\$(top_srcdir)/mkinstalldirs" fi AC_SUBST(MKINSTALLDIRS) dnl Generate list of files to be processed by xgettext which will dnl be included in po/Makefile. test -d po || mkdir po if test "x$srcdir" != "x."; then if test "x`echo $srcdir | sed 's@/.*@@'`" = "x"; then posrcprefix="$srcdir/" else posrcprefix="../$srcdir/" fi else posrcprefix="../" fi rm -f po/POTFILES sed -e "/^#/d" -e "/^\$/d" -e "s,.*, $posrcprefix& \\\\," -e "\$s/\(.*\) \\\\/\1/" \ < $srcdir/po/POTFILES.in > po/POTFILES ], [[$0: This macro is deprecated. You should use upstream gettext instead.]]) # AM_GLIB_DEFINE_LOCALEDIR(VARIABLE) # ------------------------------- # Define VARIABLE to the location where catalog files will # be installed by po/Makefile. glib_DEFUN([GLIB_DEFINE_LOCALEDIR], [glib_REQUIRE([GLIB_GNU_GETTEXT])dnl glib_save_prefix="$prefix" glib_save_exec_prefix="$exec_prefix" glib_save_datarootdir="$datarootdir" test "x$prefix" = xNONE && prefix=$ac_default_prefix test "x$exec_prefix" = xNONE && exec_prefix=$prefix datarootdir=`eval echo "${datarootdir}"` if test "x$CATOBJEXT" = "x.mo" ; then localedir=`eval echo "${libdir}/locale"` else localedir=`eval echo "${datadir}/locale"` fi prefix="$glib_save_prefix" exec_prefix="$glib_save_exec_prefix" datarootdir="$glib_save_datarootdir" AC_DEFINE_UNQUOTED($1, "$localedir", [Define the location where the catalogs will be installed]) ]) dnl dnl Now the definitions that aclocal will find dnl ifdef(glib_configure_ac,[],[ AC_DEFUN([AM_GLIB_GNU_GETTEXT],[GLIB_GNU_GETTEXT($@)]) AC_DEFUN([AM_GLIB_DEFINE_LOCALEDIR],[GLIB_DEFINE_LOCALEDIR($@)]) ])dnl # GLIB_RUN_PROG(PROGRAM, TEST-FILE, [ACTION-IF-PASS], [ACTION-IF-FAIL]) # # Create a temporary file with TEST-FILE as its contents and pass the # file name to PROGRAM. Perform ACTION-IF-PASS if PROGRAM exits with # 0 and perform ACTION-IF-FAIL for any other exit status. AC_DEFUN([GLIB_RUN_PROG], [cat >conftest.foo <<_ACEOF $2 _ACEOF if AC_RUN_LOG([$1 conftest.foo]); then m4_ifval([$3], [$3], [:]) m4_ifvaln([$4], [else $4])dnl echo "$as_me: failed input was:" >&AS_MESSAGE_LOG_FD sed 's/^/| /' conftest.foo >&AS_MESSAGE_LOG_FD fi]) dnl IT_PROG_INTLTOOL([MINIMUM-VERSION], [no-xml]) # serial 42 IT_PROG_INTLTOOL AC_DEFUN([IT_PROG_INTLTOOL], [ AC_PREREQ([2.50])dnl AC_REQUIRE([AM_NLS])dnl case "$am__api_version" in 1.[01234]) AC_MSG_ERROR([Automake 1.5 or newer is required to use intltool]) ;; *) ;; esac INTLTOOL_REQUIRED_VERSION_AS_INT=`echo $1 | awk -F. '{ print $ 1 * 1000 + $ 2 * 100 + $ 3; }'` INTLTOOL_APPLIED_VERSION=`intltool-update --version | head -1 | cut -d" " -f3` INTLTOOL_APPLIED_VERSION_AS_INT=`echo $INTLTOOL_APPLIED_VERSION | awk -F. '{ print $ 1 * 1000 + $ 2 * 100 + $ 3; }'` if test -n "$1"; then AC_MSG_CHECKING([for intltool >= $1]) AC_MSG_RESULT([$INTLTOOL_APPLIED_VERSION found]) test "$INTLTOOL_APPLIED_VERSION_AS_INT" -ge "$INTLTOOL_REQUIRED_VERSION_AS_INT" || AC_MSG_ERROR([Your intltool is too old. You need intltool $1 or later.]) fi AC_PATH_PROG(INTLTOOL_UPDATE, [intltool-update]) AC_PATH_PROG(INTLTOOL_MERGE, [intltool-merge]) AC_PATH_PROG(INTLTOOL_EXTRACT, [intltool-extract]) if test -z "$INTLTOOL_UPDATE" -o -z "$INTLTOOL_MERGE" -o -z "$INTLTOOL_EXTRACT"; then AC_MSG_ERROR([The intltool scripts were not found. Please install intltool.]) fi if test -z "$AM_DEFAULT_VERBOSITY"; then AM_DEFAULT_VERBOSITY=1 fi AC_SUBST([AM_DEFAULT_VERBOSITY]) INTLTOOL_V_MERGE='$(INTLTOOL__v_MERGE_$(V))' INTLTOOL__v_MERGE_='$(INTLTOOL__v_MERGE_$(AM_DEFAULT_VERBOSITY))' INTLTOOL__v_MERGE_0='@echo " ITMRG " [$]@;' AC_SUBST(INTLTOOL_V_MERGE) AC_SUBST(INTLTOOL__v_MERGE_) AC_SUBST(INTLTOOL__v_MERGE_0) INTLTOOL_V_MERGE_OPTIONS='$(intltool__v_merge_options_$(V))' intltool__v_merge_options_='$(intltool__v_merge_options_$(AM_DEFAULT_VERBOSITY))' intltool__v_merge_options_0='-q' AC_SUBST(INTLTOOL_V_MERGE_OPTIONS) AC_SUBST(intltool__v_merge_options_) AC_SUBST(intltool__v_merge_options_0) INTLTOOL_DESKTOP_RULE='%.desktop: %.desktop.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_DIRECTORY_RULE='%.directory: %.directory.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_KEYS_RULE='%.keys: %.keys.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -k -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_PROP_RULE='%.prop: %.prop.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_OAF_RULE='%.oaf: %.oaf.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -o -p $(top_srcdir)/po $< [$]@' INTLTOOL_PONG_RULE='%.pong: %.pong.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_SERVER_RULE='%.server: %.server.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -o -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_SHEET_RULE='%.sheet: %.sheet.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_SOUNDLIST_RULE='%.soundlist: %.soundlist.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_UI_RULE='%.ui: %.ui.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_XML_RULE='%.xml: %.xml.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' if test "$INTLTOOL_APPLIED_VERSION_AS_INT" -ge 5000; then INTLTOOL_XML_NOMERGE_RULE='%.xml: %.xml.in $(INTLTOOL_MERGE) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u --no-translations $< [$]@' else INTLTOOL_XML_NOMERGE_RULE='%.xml: %.xml.in $(INTLTOOL_MERGE) ; $(INTLTOOL_V_MERGE)_it_tmp_dir=tmp.intltool.[$][$]RANDOM && mkdir [$][$]_it_tmp_dir && LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u [$][$]_it_tmp_dir $< [$]@ && rmdir [$][$]_it_tmp_dir' fi INTLTOOL_XAM_RULE='%.xam: %.xml.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_KBD_RULE='%.kbd: %.kbd.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -m -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_CAVES_RULE='%.caves: %.caves.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_SCHEMAS_RULE='%.schemas: %.schemas.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -s -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_THEME_RULE='%.theme: %.theme.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_SERVICE_RULE='%.service: %.service.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_POLICY_RULE='%.policy: %.policy.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' _IT_SUBST(INTLTOOL_DESKTOP_RULE) _IT_SUBST(INTLTOOL_DIRECTORY_RULE) _IT_SUBST(INTLTOOL_KEYS_RULE) _IT_SUBST(INTLTOOL_PROP_RULE) _IT_SUBST(INTLTOOL_OAF_RULE) _IT_SUBST(INTLTOOL_PONG_RULE) _IT_SUBST(INTLTOOL_SERVER_RULE) _IT_SUBST(INTLTOOL_SHEET_RULE) _IT_SUBST(INTLTOOL_SOUNDLIST_RULE) _IT_SUBST(INTLTOOL_UI_RULE) _IT_SUBST(INTLTOOL_XAM_RULE) _IT_SUBST(INTLTOOL_KBD_RULE) _IT_SUBST(INTLTOOL_XML_RULE) _IT_SUBST(INTLTOOL_XML_NOMERGE_RULE) _IT_SUBST(INTLTOOL_CAVES_RULE) _IT_SUBST(INTLTOOL_SCHEMAS_RULE) _IT_SUBST(INTLTOOL_THEME_RULE) _IT_SUBST(INTLTOOL_SERVICE_RULE) _IT_SUBST(INTLTOOL_POLICY_RULE) # Check the gettext tools to make sure they are GNU AC_PATH_PROG(XGETTEXT, xgettext) AC_PATH_PROG(MSGMERGE, msgmerge) AC_PATH_PROG(MSGFMT, msgfmt) AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT) if test -z "$XGETTEXT" -o -z "$MSGMERGE" -o -z "$MSGFMT"; then AC_MSG_ERROR([GNU gettext tools not found; required for intltool]) fi xgversion="`$XGETTEXT --version|grep '(GNU ' 2> /dev/null`" mmversion="`$MSGMERGE --version|grep '(GNU ' 2> /dev/null`" mfversion="`$MSGFMT --version|grep '(GNU ' 2> /dev/null`" if test -z "$xgversion" -o -z "$mmversion" -o -z "$mfversion"; then AC_MSG_ERROR([GNU gettext tools not found; required for intltool]) fi AC_PATH_PROG(INTLTOOL_PERL, perl) if test -z "$INTLTOOL_PERL"; then AC_MSG_ERROR([perl not found]) fi AC_MSG_CHECKING([for perl >= 5.8.1]) $INTLTOOL_PERL -e "use 5.8.1;" > /dev/null 2>&1 if test $? -ne 0; then AC_MSG_ERROR([perl 5.8.1 is required for intltool]) else IT_PERL_VERSION=`$INTLTOOL_PERL -e "printf '%vd', $^V"` AC_MSG_RESULT([$IT_PERL_VERSION]) fi if test "x$2" != "xno-xml"; then AC_MSG_CHECKING([for XML::Parser]) if `$INTLTOOL_PERL -e "require XML::Parser" 2>/dev/null`; then AC_MSG_RESULT([ok]) else AC_MSG_ERROR([XML::Parser perl module is required for intltool]) fi fi # Substitute ALL_LINGUAS so we can use it in po/Makefile AC_SUBST(ALL_LINGUAS) IT_PO_SUBDIR([po]) ]) # IT_PO_SUBDIR(DIRNAME) # --------------------- # All po subdirs have to be declared with this macro; the subdir "po" is # declared by IT_PROG_INTLTOOL. # AC_DEFUN([IT_PO_SUBDIR], [AC_PREREQ([2.53])dnl We use ac_top_srcdir inside AC_CONFIG_COMMANDS. dnl dnl The following CONFIG_COMMANDS should be executed at the very end dnl of config.status. AC_CONFIG_COMMANDS_PRE([ AC_CONFIG_COMMANDS([$1/stamp-it], [ if [ ! grep "^# INTLTOOL_MAKEFILE$" "$1/Makefile.in" > /dev/null ]; then AC_MSG_ERROR([$1/Makefile.in.in was not created by intltoolize.]) fi rm -f "$1/stamp-it" "$1/stamp-it.tmp" "$1/POTFILES" "$1/Makefile.tmp" >"$1/stamp-it.tmp" [sed '/^#/d s/^[[].*] *// /^[ ]*$/d '"s|^| $ac_top_srcdir/|" \ "$srcdir/$1/POTFILES.in" | sed '$!s/$/ \\/' >"$1/POTFILES" ] [sed '/^POTFILES =/,/[^\\]$/ { /^POTFILES =/!d r $1/POTFILES } ' "$1/Makefile.in" >"$1/Makefile"] rm -f "$1/Makefile.tmp" mv "$1/stamp-it.tmp" "$1/stamp-it" ]) ])dnl ]) # _IT_SUBST(VARIABLE) # ------------------- # Abstract macro to do either _AM_SUBST_NOTMAKE or AC_SUBST # AC_DEFUN([_IT_SUBST], [ AC_SUBST([$1]) m4_ifdef([_AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE([$1])]) ] ) # deprecated macros AU_ALIAS([AC_PROG_INTLTOOL], [IT_PROG_INTLTOOL]) # A hint is needed for aclocal from Automake <= 1.9.4: # AC_DEFUN([AC_PROG_INTLTOOL], ...) # libtool.m4 - Configure libtool for the host system. -*-Autoconf-*- # # Copyright (C) 1996-2001, 2003-2015 Free Software Foundation, Inc. # Written by Gordon Matzigkeit, 1996 # # This file is free software; the Free Software Foundation gives # unlimited permission to copy and/or distribute it, with or without # modifications, as long as this notice is preserved. m4_define([_LT_COPYING], [dnl # Copyright (C) 2014 Free Software Foundation, Inc. # This is free software; see the source for copying conditions. There is NO # warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. # GNU Libtool 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 of the License, or # (at your option) any later version. # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program or library that is built # using GNU Libtool, you may include this file under the same # distribution terms that you use for the rest of that program. # # GNU Libtool 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, see . ]) # serial 58 LT_INIT # LT_PREREQ(VERSION) # ------------------ # Complain and exit if this libtool version is less that VERSION. m4_defun([LT_PREREQ], [m4_if(m4_version_compare(m4_defn([LT_PACKAGE_VERSION]), [$1]), -1, [m4_default([$3], [m4_fatal([Libtool version $1 or higher is required], 63)])], [$2])]) # _LT_CHECK_BUILDDIR # ------------------ # Complain if the absolute build directory name contains unusual characters m4_defun([_LT_CHECK_BUILDDIR], [case `pwd` in *\ * | *\ *) AC_MSG_WARN([Libtool does not cope well with whitespace in `pwd`]) ;; esac ]) # LT_INIT([OPTIONS]) # ------------------ AC_DEFUN([LT_INIT], [AC_PREREQ([2.62])dnl We use AC_PATH_PROGS_FEATURE_CHECK AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl AC_BEFORE([$0], [LT_LANG])dnl AC_BEFORE([$0], [LT_OUTPUT])dnl AC_BEFORE([$0], [LTDL_INIT])dnl m4_require([_LT_CHECK_BUILDDIR])dnl dnl Autoconf doesn't catch unexpanded LT_ macros by default: m4_pattern_forbid([^_?LT_[A-Z_]+$])dnl m4_pattern_allow([^(_LT_EOF|LT_DLGLOBAL|LT_DLLAZY_OR_NOW|LT_MULTI_MODULE)$])dnl dnl aclocal doesn't pull ltoptions.m4, ltsugar.m4, or ltversion.m4 dnl unless we require an AC_DEFUNed macro: AC_REQUIRE([LTOPTIONS_VERSION])dnl AC_REQUIRE([LTSUGAR_VERSION])dnl AC_REQUIRE([LTVERSION_VERSION])dnl AC_REQUIRE([LTOBSOLETE_VERSION])dnl m4_require([_LT_PROG_LTMAIN])dnl _LT_SHELL_INIT([SHELL=${CONFIG_SHELL-/bin/sh}]) dnl Parse OPTIONS _LT_SET_OPTIONS([$0], [$1]) # This can be used to rebuild libtool when needed LIBTOOL_DEPS=$ltmain # Always use our own libtool. LIBTOOL='$(SHELL) $(top_builddir)/libtool' AC_SUBST(LIBTOOL)dnl _LT_SETUP # Only expand once: m4_define([LT_INIT]) ])# LT_INIT # Old names: AU_ALIAS([AC_PROG_LIBTOOL], [LT_INIT]) AU_ALIAS([AM_PROG_LIBTOOL], [LT_INIT]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_PROG_LIBTOOL], []) dnl AC_DEFUN([AM_PROG_LIBTOOL], []) # _LT_PREPARE_CC_BASENAME # ----------------------- m4_defun([_LT_PREPARE_CC_BASENAME], [ # Calculate cc_basename. Skip known compiler wrappers and cross-prefix. func_cc_basename () { for cc_temp in @S|@*""; do case $cc_temp in compile | *[[\\/]]compile | ccache | *[[\\/]]ccache ) ;; distcc | *[[\\/]]distcc | purify | *[[\\/]]purify ) ;; \-*) ;; *) break;; esac done func_cc_basename_result=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"` } ])# _LT_PREPARE_CC_BASENAME # _LT_CC_BASENAME(CC) # ------------------- # It would be clearer to call AC_REQUIREs from _LT_PREPARE_CC_BASENAME, # but that macro is also expanded into generated libtool script, which # arranges for $SED and $ECHO to be set by different means. m4_defun([_LT_CC_BASENAME], [m4_require([_LT_PREPARE_CC_BASENAME])dnl AC_REQUIRE([_LT_DECL_SED])dnl AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH])dnl func_cc_basename $1 cc_basename=$func_cc_basename_result ]) # _LT_FILEUTILS_DEFAULTS # ---------------------- # It is okay to use these file commands and assume they have been set # sensibly after 'm4_require([_LT_FILEUTILS_DEFAULTS])'. m4_defun([_LT_FILEUTILS_DEFAULTS], [: ${CP="cp -f"} : ${MV="mv -f"} : ${RM="rm -f"} ])# _LT_FILEUTILS_DEFAULTS # _LT_SETUP # --------- m4_defun([_LT_SETUP], [AC_REQUIRE([AC_CANONICAL_HOST])dnl AC_REQUIRE([AC_CANONICAL_BUILD])dnl AC_REQUIRE([_LT_PREPARE_SED_QUOTE_VARS])dnl AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH])dnl _LT_DECL([], [PATH_SEPARATOR], [1], [The PATH separator for the build system])dnl dnl _LT_DECL([], [host_alias], [0], [The host system])dnl _LT_DECL([], [host], [0])dnl _LT_DECL([], [host_os], [0])dnl dnl _LT_DECL([], [build_alias], [0], [The build system])dnl _LT_DECL([], [build], [0])dnl _LT_DECL([], [build_os], [0])dnl dnl AC_REQUIRE([AC_PROG_CC])dnl AC_REQUIRE([LT_PATH_LD])dnl AC_REQUIRE([LT_PATH_NM])dnl dnl AC_REQUIRE([AC_PROG_LN_S])dnl test -z "$LN_S" && LN_S="ln -s" _LT_DECL([], [LN_S], [1], [Whether we need soft or hard links])dnl dnl AC_REQUIRE([LT_CMD_MAX_LEN])dnl _LT_DECL([objext], [ac_objext], [0], [Object file suffix (normally "o")])dnl _LT_DECL([], [exeext], [0], [Executable file suffix (normally "")])dnl dnl m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_CHECK_SHELL_FEATURES])dnl m4_require([_LT_PATH_CONVERSION_FUNCTIONS])dnl m4_require([_LT_CMD_RELOAD])dnl m4_require([_LT_CHECK_MAGIC_METHOD])dnl m4_require([_LT_CHECK_SHAREDLIB_FROM_LINKLIB])dnl m4_require([_LT_CMD_OLD_ARCHIVE])dnl m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl m4_require([_LT_WITH_SYSROOT])dnl m4_require([_LT_CMD_TRUNCATE])dnl _LT_CONFIG_LIBTOOL_INIT([ # See if we are running on zsh, and set the options that allow our # commands through without removal of \ escapes INIT. if test -n "\${ZSH_VERSION+set}"; then setopt NO_GLOB_SUBST fi ]) if test -n "${ZSH_VERSION+set}"; then setopt NO_GLOB_SUBST fi _LT_CHECK_OBJDIR m4_require([_LT_TAG_COMPILER])dnl case $host_os in aix3*) # AIX sometimes has problems with the GCC collect2 program. For some # reason, if we set the COLLECT_NAMES environment variable, the problems # vanish in a puff of smoke. if test set != "${COLLECT_NAMES+set}"; then COLLECT_NAMES= export COLLECT_NAMES fi ;; esac # Global variables: ofile=libtool can_build_shared=yes # All known linkers require a '.a' archive for static linking (except MSVC, # which needs '.lib'). libext=a with_gnu_ld=$lt_cv_prog_gnu_ld old_CC=$CC old_CFLAGS=$CFLAGS # Set sane defaults for various variables test -z "$CC" && CC=cc test -z "$LTCC" && LTCC=$CC test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS test -z "$LD" && LD=ld test -z "$ac_objext" && ac_objext=o _LT_CC_BASENAME([$compiler]) # Only perform the check for file, if the check method requires it test -z "$MAGIC_CMD" && MAGIC_CMD=file case $deplibs_check_method in file_magic*) if test "$file_magic_cmd" = '$MAGIC_CMD'; then _LT_PATH_MAGIC fi ;; esac # Use C for the default configuration in the libtool script LT_SUPPORTED_TAG([CC]) _LT_LANG_C_CONFIG _LT_LANG_DEFAULT_CONFIG _LT_CONFIG_COMMANDS ])# _LT_SETUP # _LT_PREPARE_SED_QUOTE_VARS # -------------------------- # Define a few sed substitution that help us do robust quoting. m4_defun([_LT_PREPARE_SED_QUOTE_VARS], [# Backslashify metacharacters that are still active within # double-quoted strings. sed_quote_subst='s/\([["`$\\]]\)/\\\1/g' # Same as above, but do not quote variable references. double_quote_subst='s/\([["`\\]]\)/\\\1/g' # Sed substitution to delay expansion of an escaped shell variable in a # double_quote_subst'ed string. delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' # Sed substitution to delay expansion of an escaped single quote. delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g' # Sed substitution to avoid accidental globbing in evaled expressions no_glob_subst='s/\*/\\\*/g' ]) # _LT_PROG_LTMAIN # --------------- # Note that this code is called both from 'configure', and 'config.status' # now that we use AC_CONFIG_COMMANDS to generate libtool. Notably, # 'config.status' has no value for ac_aux_dir unless we are using Automake, # so we pass a copy along to make sure it has a sensible value anyway. m4_defun([_LT_PROG_LTMAIN], [m4_ifdef([AC_REQUIRE_AUX_FILE], [AC_REQUIRE_AUX_FILE([ltmain.sh])])dnl _LT_CONFIG_LIBTOOL_INIT([ac_aux_dir='$ac_aux_dir']) ltmain=$ac_aux_dir/ltmain.sh ])# _LT_PROG_LTMAIN # So that we can recreate a full libtool script including additional # tags, we accumulate the chunks of code to send to AC_CONFIG_COMMANDS # in macros and then make a single call at the end using the 'libtool' # label. # _LT_CONFIG_LIBTOOL_INIT([INIT-COMMANDS]) # ---------------------------------------- # Register INIT-COMMANDS to be passed to AC_CONFIG_COMMANDS later. m4_define([_LT_CONFIG_LIBTOOL_INIT], [m4_ifval([$1], [m4_append([_LT_OUTPUT_LIBTOOL_INIT], [$1 ])])]) # Initialize. m4_define([_LT_OUTPUT_LIBTOOL_INIT]) # _LT_CONFIG_LIBTOOL([COMMANDS]) # ------------------------------ # Register COMMANDS to be passed to AC_CONFIG_COMMANDS later. m4_define([_LT_CONFIG_LIBTOOL], [m4_ifval([$1], [m4_append([_LT_OUTPUT_LIBTOOL_COMMANDS], [$1 ])])]) # Initialize. m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS]) # _LT_CONFIG_SAVE_COMMANDS([COMMANDS], [INIT_COMMANDS]) # ----------------------------------------------------- m4_defun([_LT_CONFIG_SAVE_COMMANDS], [_LT_CONFIG_LIBTOOL([$1]) _LT_CONFIG_LIBTOOL_INIT([$2]) ]) # _LT_FORMAT_COMMENT([COMMENT]) # ----------------------------- # Add leading comment marks to the start of each line, and a trailing # full-stop to the whole comment if one is not present already. m4_define([_LT_FORMAT_COMMENT], [m4_ifval([$1], [ m4_bpatsubst([m4_bpatsubst([$1], [^ *], [# ])], [['`$\]], [\\\&])]m4_bmatch([$1], [[!?.]$], [], [.]) )]) # _LT_DECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION], [IS-TAGGED?]) # ------------------------------------------------------------------- # CONFIGNAME is the name given to the value in the libtool script. # VARNAME is the (base) name used in the configure script. # VALUE may be 0, 1 or 2 for a computed quote escaped value based on # VARNAME. Any other value will be used directly. m4_define([_LT_DECL], [lt_if_append_uniq([lt_decl_varnames], [$2], [, ], [lt_dict_add_subkey([lt_decl_dict], [$2], [libtool_name], [m4_ifval([$1], [$1], [$2])]) lt_dict_add_subkey([lt_decl_dict], [$2], [value], [$3]) m4_ifval([$4], [lt_dict_add_subkey([lt_decl_dict], [$2], [description], [$4])]) lt_dict_add_subkey([lt_decl_dict], [$2], [tagged?], [m4_ifval([$5], [yes], [no])])]) ]) # _LT_TAGDECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION]) # -------------------------------------------------------- m4_define([_LT_TAGDECL], [_LT_DECL([$1], [$2], [$3], [$4], [yes])]) # lt_decl_tag_varnames([SEPARATOR], [VARNAME1...]) # ------------------------------------------------ m4_define([lt_decl_tag_varnames], [_lt_decl_filter([tagged?], [yes], $@)]) # _lt_decl_filter(SUBKEY, VALUE, [SEPARATOR], [VARNAME1..]) # --------------------------------------------------------- m4_define([_lt_decl_filter], [m4_case([$#], [0], [m4_fatal([$0: too few arguments: $#])], [1], [m4_fatal([$0: too few arguments: $#: $1])], [2], [lt_dict_filter([lt_decl_dict], [$1], [$2], [], lt_decl_varnames)], [3], [lt_dict_filter([lt_decl_dict], [$1], [$2], [$3], lt_decl_varnames)], [lt_dict_filter([lt_decl_dict], $@)])[]dnl ]) # lt_decl_quote_varnames([SEPARATOR], [VARNAME1...]) # -------------------------------------------------- m4_define([lt_decl_quote_varnames], [_lt_decl_filter([value], [1], $@)]) # lt_decl_dquote_varnames([SEPARATOR], [VARNAME1...]) # --------------------------------------------------- m4_define([lt_decl_dquote_varnames], [_lt_decl_filter([value], [2], $@)]) # lt_decl_varnames_tagged([SEPARATOR], [VARNAME1...]) # --------------------------------------------------- m4_define([lt_decl_varnames_tagged], [m4_assert([$# <= 2])dnl _$0(m4_quote(m4_default([$1], [[, ]])), m4_ifval([$2], [[$2]], [m4_dquote(lt_decl_tag_varnames)]), m4_split(m4_normalize(m4_quote(_LT_TAGS)), [ ]))]) m4_define([_lt_decl_varnames_tagged], [m4_ifval([$3], [lt_combine([$1], [$2], [_], $3)])]) # lt_decl_all_varnames([SEPARATOR], [VARNAME1...]) # ------------------------------------------------ m4_define([lt_decl_all_varnames], [_$0(m4_quote(m4_default([$1], [[, ]])), m4_if([$2], [], m4_quote(lt_decl_varnames), m4_quote(m4_shift($@))))[]dnl ]) m4_define([_lt_decl_all_varnames], [lt_join($@, lt_decl_varnames_tagged([$1], lt_decl_tag_varnames([[, ]], m4_shift($@))))dnl ]) # _LT_CONFIG_STATUS_DECLARE([VARNAME]) # ------------------------------------ # Quote a variable value, and forward it to 'config.status' so that its # declaration there will have the same value as in 'configure'. VARNAME # must have a single quote delimited value for this to work. m4_define([_LT_CONFIG_STATUS_DECLARE], [$1='`$ECHO "$][$1" | $SED "$delay_single_quote_subst"`']) # _LT_CONFIG_STATUS_DECLARATIONS # ------------------------------ # We delimit libtool config variables with single quotes, so when # we write them to config.status, we have to be sure to quote all # embedded single quotes properly. In configure, this macro expands # each variable declared with _LT_DECL (and _LT_TAGDECL) into: # # ='`$ECHO "$" | $SED "$delay_single_quote_subst"`' m4_defun([_LT_CONFIG_STATUS_DECLARATIONS], [m4_foreach([_lt_var], m4_quote(lt_decl_all_varnames), [m4_n([_LT_CONFIG_STATUS_DECLARE(_lt_var)])])]) # _LT_LIBTOOL_TAGS # ---------------- # Output comment and list of tags supported by the script m4_defun([_LT_LIBTOOL_TAGS], [_LT_FORMAT_COMMENT([The names of the tagged configurations supported by this script])dnl available_tags='_LT_TAGS'dnl ]) # _LT_LIBTOOL_DECLARE(VARNAME, [TAG]) # ----------------------------------- # Extract the dictionary values for VARNAME (optionally with TAG) and # expand to a commented shell variable setting: # # # Some comment about what VAR is for. # visible_name=$lt_internal_name m4_define([_LT_LIBTOOL_DECLARE], [_LT_FORMAT_COMMENT(m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [description])))[]dnl m4_pushdef([_libtool_name], m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [libtool_name])))[]dnl m4_case(m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [value])), [0], [_libtool_name=[$]$1], [1], [_libtool_name=$lt_[]$1], [2], [_libtool_name=$lt_[]$1], [_libtool_name=lt_dict_fetch([lt_decl_dict], [$1], [value])])[]dnl m4_ifval([$2], [_$2])[]m4_popdef([_libtool_name])[]dnl ]) # _LT_LIBTOOL_CONFIG_VARS # ----------------------- # Produce commented declarations of non-tagged libtool config variables # suitable for insertion in the LIBTOOL CONFIG section of the 'libtool' # script. Tagged libtool config variables (even for the LIBTOOL CONFIG # section) are produced by _LT_LIBTOOL_TAG_VARS. m4_defun([_LT_LIBTOOL_CONFIG_VARS], [m4_foreach([_lt_var], m4_quote(_lt_decl_filter([tagged?], [no], [], lt_decl_varnames)), [m4_n([_LT_LIBTOOL_DECLARE(_lt_var)])])]) # _LT_LIBTOOL_TAG_VARS(TAG) # ------------------------- m4_define([_LT_LIBTOOL_TAG_VARS], [m4_foreach([_lt_var], m4_quote(lt_decl_tag_varnames), [m4_n([_LT_LIBTOOL_DECLARE(_lt_var, [$1])])])]) # _LT_TAGVAR(VARNAME, [TAGNAME]) # ------------------------------ m4_define([_LT_TAGVAR], [m4_ifval([$2], [$1_$2], [$1])]) # _LT_CONFIG_COMMANDS # ------------------- # Send accumulated output to $CONFIG_STATUS. Thanks to the lists of # variables for single and double quote escaping we saved from calls # to _LT_DECL, we can put quote escaped variables declarations # into 'config.status', and then the shell code to quote escape them in # for loops in 'config.status'. Finally, any additional code accumulated # from calls to _LT_CONFIG_LIBTOOL_INIT is expanded. m4_defun([_LT_CONFIG_COMMANDS], [AC_PROVIDE_IFELSE([LT_OUTPUT], dnl If the libtool generation code has been placed in $CONFIG_LT, dnl instead of duplicating it all over again into config.status, dnl then we will have config.status run $CONFIG_LT later, so it dnl needs to know what name is stored there: [AC_CONFIG_COMMANDS([libtool], [$SHELL $CONFIG_LT || AS_EXIT(1)], [CONFIG_LT='$CONFIG_LT'])], dnl If the libtool generation code is destined for config.status, dnl expand the accumulated commands and init code now: [AC_CONFIG_COMMANDS([libtool], [_LT_OUTPUT_LIBTOOL_COMMANDS], [_LT_OUTPUT_LIBTOOL_COMMANDS_INIT])]) ])#_LT_CONFIG_COMMANDS # Initialize. m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS_INIT], [ # The HP-UX ksh and POSIX shell print the target directory to stdout # if CDPATH is set. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH sed_quote_subst='$sed_quote_subst' double_quote_subst='$double_quote_subst' delay_variable_subst='$delay_variable_subst' _LT_CONFIG_STATUS_DECLARATIONS LTCC='$LTCC' LTCFLAGS='$LTCFLAGS' compiler='$compiler_DEFAULT' # A function that is used when there is no print builtin or printf. func_fallback_echo () { eval 'cat <<_LTECHO_EOF \$[]1 _LTECHO_EOF' } # Quote evaled strings. for var in lt_decl_all_varnames([[ \ ]], lt_decl_quote_varnames); do case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in *[[\\\\\\\`\\"\\\$]]*) eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" ## exclude from sc_prohibit_nested_quotes ;; *) eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" ;; esac done # Double-quote double-evaled strings. for var in lt_decl_all_varnames([[ \ ]], lt_decl_dquote_varnames); do case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in *[[\\\\\\\`\\"\\\$]]*) eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" ## exclude from sc_prohibit_nested_quotes ;; *) eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" ;; esac done _LT_OUTPUT_LIBTOOL_INIT ]) # _LT_GENERATED_FILE_INIT(FILE, [COMMENT]) # ------------------------------------ # Generate a child script FILE with all initialization necessary to # reuse the environment learned by the parent script, and make the # file executable. If COMMENT is supplied, it is inserted after the # '#!' sequence but before initialization text begins. After this # macro, additional text can be appended to FILE to form the body of # the child script. The macro ends with non-zero status if the # file could not be fully written (such as if the disk is full). m4_ifdef([AS_INIT_GENERATED], [m4_defun([_LT_GENERATED_FILE_INIT],[AS_INIT_GENERATED($@)])], [m4_defun([_LT_GENERATED_FILE_INIT], [m4_require([AS_PREPARE])]dnl [m4_pushdef([AS_MESSAGE_LOG_FD])]dnl [lt_write_fail=0 cat >$1 <<_ASEOF || lt_write_fail=1 #! $SHELL # Generated by $as_me. $2 SHELL=\${CONFIG_SHELL-$SHELL} export SHELL _ASEOF cat >>$1 <<\_ASEOF || lt_write_fail=1 AS_SHELL_SANITIZE _AS_PREPARE exec AS_MESSAGE_FD>&1 _ASEOF test 0 = "$lt_write_fail" && chmod +x $1[]dnl m4_popdef([AS_MESSAGE_LOG_FD])])])# _LT_GENERATED_FILE_INIT # LT_OUTPUT # --------- # This macro allows early generation of the libtool script (before # AC_OUTPUT is called), incase it is used in configure for compilation # tests. AC_DEFUN([LT_OUTPUT], [: ${CONFIG_LT=./config.lt} AC_MSG_NOTICE([creating $CONFIG_LT]) _LT_GENERATED_FILE_INIT(["$CONFIG_LT"], [# Run this file to recreate a libtool stub with the current configuration.]) cat >>"$CONFIG_LT" <<\_LTEOF lt_cl_silent=false exec AS_MESSAGE_LOG_FD>>config.log { echo AS_BOX([Running $as_me.]) } >&AS_MESSAGE_LOG_FD lt_cl_help="\ '$as_me' creates a local libtool stub from the current configuration, for use in further configure time tests before the real libtool is generated. Usage: $[0] [[OPTIONS]] -h, --help print this help, then exit -V, --version print version number, then exit -q, --quiet do not print progress messages -d, --debug don't remove temporary files Report bugs to ." lt_cl_version="\ m4_ifset([AC_PACKAGE_NAME], [AC_PACKAGE_NAME ])config.lt[]dnl m4_ifset([AC_PACKAGE_VERSION], [ AC_PACKAGE_VERSION]) configured by $[0], generated by m4_PACKAGE_STRING. Copyright (C) 2011 Free Software Foundation, Inc. This config.lt script is free software; the Free Software Foundation gives unlimited permision to copy, distribute and modify it." while test 0 != $[#] do case $[1] in --version | --v* | -V ) echo "$lt_cl_version"; exit 0 ;; --help | --h* | -h ) echo "$lt_cl_help"; exit 0 ;; --debug | --d* | -d ) debug=: ;; --quiet | --q* | --silent | --s* | -q ) lt_cl_silent=: ;; -*) AC_MSG_ERROR([unrecognized option: $[1] Try '$[0] --help' for more information.]) ;; *) AC_MSG_ERROR([unrecognized argument: $[1] Try '$[0] --help' for more information.]) ;; esac shift done if $lt_cl_silent; then exec AS_MESSAGE_FD>/dev/null fi _LTEOF cat >>"$CONFIG_LT" <<_LTEOF _LT_OUTPUT_LIBTOOL_COMMANDS_INIT _LTEOF cat >>"$CONFIG_LT" <<\_LTEOF AC_MSG_NOTICE([creating $ofile]) _LT_OUTPUT_LIBTOOL_COMMANDS AS_EXIT(0) _LTEOF chmod +x "$CONFIG_LT" # configure is writing to config.log, but config.lt does its own redirection, # appending to config.log, which fails on DOS, as config.log is still kept # open by configure. Here we exec the FD to /dev/null, effectively closing # config.log, so it can be properly (re)opened and appended to by config.lt. lt_cl_success=: test yes = "$silent" && lt_config_lt_args="$lt_config_lt_args --quiet" exec AS_MESSAGE_LOG_FD>/dev/null $SHELL "$CONFIG_LT" $lt_config_lt_args || lt_cl_success=false exec AS_MESSAGE_LOG_FD>>config.log $lt_cl_success || AS_EXIT(1) ])# LT_OUTPUT # _LT_CONFIG(TAG) # --------------- # If TAG is the built-in tag, create an initial libtool script with a # default configuration from the untagged config vars. Otherwise add code # to config.status for appending the configuration named by TAG from the # matching tagged config vars. m4_defun([_LT_CONFIG], [m4_require([_LT_FILEUTILS_DEFAULTS])dnl _LT_CONFIG_SAVE_COMMANDS([ m4_define([_LT_TAG], m4_if([$1], [], [C], [$1]))dnl m4_if(_LT_TAG, [C], [ # See if we are running on zsh, and set the options that allow our # commands through without removal of \ escapes. if test -n "${ZSH_VERSION+set}"; then setopt NO_GLOB_SUBST fi cfgfile=${ofile}T trap "$RM \"$cfgfile\"; exit 1" 1 2 15 $RM "$cfgfile" cat <<_LT_EOF >> "$cfgfile" #! $SHELL # Generated automatically by $as_me ($PACKAGE) $VERSION # NOTE: Changes made to this file will be lost: look at ltmain.sh. # Provide generalized library-building support services. # Written by Gordon Matzigkeit, 1996 _LT_COPYING _LT_LIBTOOL_TAGS # Configured defaults for sys_lib_dlsearch_path munging. : \${LT_SYS_LIBRARY_PATH="$configure_time_lt_sys_library_path"} # ### BEGIN LIBTOOL CONFIG _LT_LIBTOOL_CONFIG_VARS _LT_LIBTOOL_TAG_VARS # ### END LIBTOOL CONFIG _LT_EOF cat <<'_LT_EOF' >> "$cfgfile" # ### BEGIN FUNCTIONS SHARED WITH CONFIGURE _LT_PREPARE_MUNGE_PATH_LIST _LT_PREPARE_CC_BASENAME # ### END FUNCTIONS SHARED WITH CONFIGURE _LT_EOF case $host_os in aix3*) cat <<\_LT_EOF >> "$cfgfile" # AIX sometimes has problems with the GCC collect2 program. For some # reason, if we set the COLLECT_NAMES environment variable, the problems # vanish in a puff of smoke. if test set != "${COLLECT_NAMES+set}"; then COLLECT_NAMES= export COLLECT_NAMES fi _LT_EOF ;; esac _LT_PROG_LTMAIN # We use sed instead of cat because bash on DJGPP gets confused if # if finds mixed CR/LF and LF-only lines. Since sed operates in # text mode, it properly converts lines to CR/LF. This bash problem # is reportedly fixed, but why not run on old versions too? sed '$q' "$ltmain" >> "$cfgfile" \ || (rm -f "$cfgfile"; exit 1) mv -f "$cfgfile" "$ofile" || (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") chmod +x "$ofile" ], [cat <<_LT_EOF >> "$ofile" dnl Unfortunately we have to use $1 here, since _LT_TAG is not expanded dnl in a comment (ie after a #). # ### BEGIN LIBTOOL TAG CONFIG: $1 _LT_LIBTOOL_TAG_VARS(_LT_TAG) # ### END LIBTOOL TAG CONFIG: $1 _LT_EOF ])dnl /m4_if ], [m4_if([$1], [], [ PACKAGE='$PACKAGE' VERSION='$VERSION' RM='$RM' ofile='$ofile'], []) ])dnl /_LT_CONFIG_SAVE_COMMANDS ])# _LT_CONFIG # LT_SUPPORTED_TAG(TAG) # --------------------- # Trace this macro to discover what tags are supported by the libtool # --tag option, using: # autoconf --trace 'LT_SUPPORTED_TAG:$1' AC_DEFUN([LT_SUPPORTED_TAG], []) # C support is built-in for now m4_define([_LT_LANG_C_enabled], []) m4_define([_LT_TAGS], []) # LT_LANG(LANG) # ------------- # Enable libtool support for the given language if not already enabled. AC_DEFUN([LT_LANG], [AC_BEFORE([$0], [LT_OUTPUT])dnl m4_case([$1], [C], [_LT_LANG(C)], [C++], [_LT_LANG(CXX)], [Go], [_LT_LANG(GO)], [Java], [_LT_LANG(GCJ)], [Fortran 77], [_LT_LANG(F77)], [Fortran], [_LT_LANG(FC)], [Windows Resource], [_LT_LANG(RC)], [m4_ifdef([_LT_LANG_]$1[_CONFIG], [_LT_LANG($1)], [m4_fatal([$0: unsupported language: "$1"])])])dnl ])# LT_LANG # _LT_LANG(LANGNAME) # ------------------ m4_defun([_LT_LANG], [m4_ifdef([_LT_LANG_]$1[_enabled], [], [LT_SUPPORTED_TAG([$1])dnl m4_append([_LT_TAGS], [$1 ])dnl m4_define([_LT_LANG_]$1[_enabled], [])dnl _LT_LANG_$1_CONFIG($1)])dnl ])# _LT_LANG m4_ifndef([AC_PROG_GO], [ # NOTE: This macro has been submitted for inclusion into # # GNU Autoconf as AC_PROG_GO. When it is available in # # a released version of Autoconf we should remove this # # macro and use it instead. # m4_defun([AC_PROG_GO], [AC_LANG_PUSH(Go)dnl AC_ARG_VAR([GOC], [Go compiler command])dnl AC_ARG_VAR([GOFLAGS], [Go compiler flags])dnl _AC_ARG_VAR_LDFLAGS()dnl AC_CHECK_TOOL(GOC, gccgo) if test -z "$GOC"; then if test -n "$ac_tool_prefix"; then AC_CHECK_PROG(GOC, [${ac_tool_prefix}gccgo], [${ac_tool_prefix}gccgo]) fi fi if test -z "$GOC"; then AC_CHECK_PROG(GOC, gccgo, gccgo, false) fi ])#m4_defun ])#m4_ifndef # _LT_LANG_DEFAULT_CONFIG # ----------------------- m4_defun([_LT_LANG_DEFAULT_CONFIG], [AC_PROVIDE_IFELSE([AC_PROG_CXX], [LT_LANG(CXX)], [m4_define([AC_PROG_CXX], defn([AC_PROG_CXX])[LT_LANG(CXX)])]) AC_PROVIDE_IFELSE([AC_PROG_F77], [LT_LANG(F77)], [m4_define([AC_PROG_F77], defn([AC_PROG_F77])[LT_LANG(F77)])]) AC_PROVIDE_IFELSE([AC_PROG_FC], [LT_LANG(FC)], [m4_define([AC_PROG_FC], defn([AC_PROG_FC])[LT_LANG(FC)])]) dnl The call to [A][M_PROG_GCJ] is quoted like that to stop aclocal dnl pulling things in needlessly. AC_PROVIDE_IFELSE([AC_PROG_GCJ], [LT_LANG(GCJ)], [AC_PROVIDE_IFELSE([A][M_PROG_GCJ], [LT_LANG(GCJ)], [AC_PROVIDE_IFELSE([LT_PROG_GCJ], [LT_LANG(GCJ)], [m4_ifdef([AC_PROG_GCJ], [m4_define([AC_PROG_GCJ], defn([AC_PROG_GCJ])[LT_LANG(GCJ)])]) m4_ifdef([A][M_PROG_GCJ], [m4_define([A][M_PROG_GCJ], defn([A][M_PROG_GCJ])[LT_LANG(GCJ)])]) m4_ifdef([LT_PROG_GCJ], [m4_define([LT_PROG_GCJ], defn([LT_PROG_GCJ])[LT_LANG(GCJ)])])])])]) AC_PROVIDE_IFELSE([AC_PROG_GO], [LT_LANG(GO)], [m4_define([AC_PROG_GO], defn([AC_PROG_GO])[LT_LANG(GO)])]) AC_PROVIDE_IFELSE([LT_PROG_RC], [LT_LANG(RC)], [m4_define([LT_PROG_RC], defn([LT_PROG_RC])[LT_LANG(RC)])]) ])# _LT_LANG_DEFAULT_CONFIG # Obsolete macros: AU_DEFUN([AC_LIBTOOL_CXX], [LT_LANG(C++)]) AU_DEFUN([AC_LIBTOOL_F77], [LT_LANG(Fortran 77)]) AU_DEFUN([AC_LIBTOOL_FC], [LT_LANG(Fortran)]) AU_DEFUN([AC_LIBTOOL_GCJ], [LT_LANG(Java)]) AU_DEFUN([AC_LIBTOOL_RC], [LT_LANG(Windows Resource)]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_CXX], []) dnl AC_DEFUN([AC_LIBTOOL_F77], []) dnl AC_DEFUN([AC_LIBTOOL_FC], []) dnl AC_DEFUN([AC_LIBTOOL_GCJ], []) dnl AC_DEFUN([AC_LIBTOOL_RC], []) # _LT_TAG_COMPILER # ---------------- m4_defun([_LT_TAG_COMPILER], [AC_REQUIRE([AC_PROG_CC])dnl _LT_DECL([LTCC], [CC], [1], [A C compiler])dnl _LT_DECL([LTCFLAGS], [CFLAGS], [1], [LTCC compiler flags])dnl _LT_TAGDECL([CC], [compiler], [1], [A language specific compiler])dnl _LT_TAGDECL([with_gcc], [GCC], [0], [Is the compiler the GNU compiler?])dnl # If no C compiler was specified, use CC. LTCC=${LTCC-"$CC"} # If no C compiler flags were specified, use CFLAGS. LTCFLAGS=${LTCFLAGS-"$CFLAGS"} # Allow CC to be a program name with arguments. compiler=$CC ])# _LT_TAG_COMPILER # _LT_COMPILER_BOILERPLATE # ------------------------ # Check for compiler boilerplate output or warnings with # the simple compiler test code. m4_defun([_LT_COMPILER_BOILERPLATE], [m4_require([_LT_DECL_SED])dnl ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" >conftest.$ac_ext eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_compiler_boilerplate=`cat conftest.err` $RM conftest* ])# _LT_COMPILER_BOILERPLATE # _LT_LINKER_BOILERPLATE # ---------------------- # Check for linker boilerplate output or warnings with # the simple link test code. m4_defun([_LT_LINKER_BOILERPLATE], [m4_require([_LT_DECL_SED])dnl ac_outfile=conftest.$ac_objext echo "$lt_simple_link_test_code" >conftest.$ac_ext eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_linker_boilerplate=`cat conftest.err` $RM -r conftest* ])# _LT_LINKER_BOILERPLATE # _LT_REQUIRED_DARWIN_CHECKS # ------------------------- m4_defun_once([_LT_REQUIRED_DARWIN_CHECKS],[ case $host_os in rhapsody* | darwin*) AC_CHECK_TOOL([DSYMUTIL], [dsymutil], [:]) AC_CHECK_TOOL([NMEDIT], [nmedit], [:]) AC_CHECK_TOOL([LIPO], [lipo], [:]) AC_CHECK_TOOL([OTOOL], [otool], [:]) AC_CHECK_TOOL([OTOOL64], [otool64], [:]) _LT_DECL([], [DSYMUTIL], [1], [Tool to manipulate archived DWARF debug symbol files on Mac OS X]) _LT_DECL([], [NMEDIT], [1], [Tool to change global to local symbols on Mac OS X]) _LT_DECL([], [LIPO], [1], [Tool to manipulate fat objects and archives on Mac OS X]) _LT_DECL([], [OTOOL], [1], [ldd/readelf like tool for Mach-O binaries on Mac OS X]) _LT_DECL([], [OTOOL64], [1], [ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4]) AC_CACHE_CHECK([for -single_module linker flag],[lt_cv_apple_cc_single_mod], [lt_cv_apple_cc_single_mod=no if test -z "$LT_MULTI_MODULE"; then # By default we will add the -single_module flag. You can override # by either setting the environment variable LT_MULTI_MODULE # non-empty at configure time, or by adding -multi_module to the # link flags. rm -rf libconftest.dylib* echo "int foo(void){return 1;}" > conftest.c echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ -dynamiclib -Wl,-single_module conftest.c" >&AS_MESSAGE_LOG_FD $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ -dynamiclib -Wl,-single_module conftest.c 2>conftest.err _lt_result=$? # If there is a non-empty error log, and "single_module" # appears in it, assume the flag caused a linker warning if test -s conftest.err && $GREP single_module conftest.err; then cat conftest.err >&AS_MESSAGE_LOG_FD # Otherwise, if the output was created with a 0 exit code from # the compiler, it worked. elif test -f libconftest.dylib && test 0 = "$_lt_result"; then lt_cv_apple_cc_single_mod=yes else cat conftest.err >&AS_MESSAGE_LOG_FD fi rm -rf libconftest.dylib* rm -f conftest.* fi]) AC_CACHE_CHECK([for -exported_symbols_list linker flag], [lt_cv_ld_exported_symbols_list], [lt_cv_ld_exported_symbols_list=no save_LDFLAGS=$LDFLAGS echo "_main" > conftest.sym LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym" AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])], [lt_cv_ld_exported_symbols_list=yes], [lt_cv_ld_exported_symbols_list=no]) LDFLAGS=$save_LDFLAGS ]) AC_CACHE_CHECK([for -force_load linker flag],[lt_cv_ld_force_load], [lt_cv_ld_force_load=no cat > conftest.c << _LT_EOF int forced_loaded() { return 2;} _LT_EOF echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&AS_MESSAGE_LOG_FD $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&AS_MESSAGE_LOG_FD echo "$AR cru libconftest.a conftest.o" >&AS_MESSAGE_LOG_FD $AR cru libconftest.a conftest.o 2>&AS_MESSAGE_LOG_FD echo "$RANLIB libconftest.a" >&AS_MESSAGE_LOG_FD $RANLIB libconftest.a 2>&AS_MESSAGE_LOG_FD cat > conftest.c << _LT_EOF int main() { return 0;} _LT_EOF echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&AS_MESSAGE_LOG_FD $LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err _lt_result=$? if test -s conftest.err && $GREP force_load conftest.err; then cat conftest.err >&AS_MESSAGE_LOG_FD elif test -f conftest && test 0 = "$_lt_result" && $GREP forced_load conftest >/dev/null 2>&1; then lt_cv_ld_force_load=yes else cat conftest.err >&AS_MESSAGE_LOG_FD fi rm -f conftest.err libconftest.a conftest conftest.c rm -rf conftest.dSYM ]) case $host_os in rhapsody* | darwin1.[[012]]) _lt_dar_allow_undefined='$wl-undefined ${wl}suppress' ;; darwin1.*) _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;; darwin*) # darwin 5.x on # if running on 10.5 or later, the deployment target defaults # to the OS version, if on x86, and 10.4, the deployment # target defaults to 10.4. Don't you love it? case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in 10.0,*86*-darwin8*|10.0,*-darwin[[91]]*) _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;; 10.[[012]][[,.]]*) _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;; 10.*) _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;; esac ;; esac if test yes = "$lt_cv_apple_cc_single_mod"; then _lt_dar_single_mod='$single_module' fi if test yes = "$lt_cv_ld_exported_symbols_list"; then _lt_dar_export_syms=' $wl-exported_symbols_list,$output_objdir/$libname-symbols.expsym' else _lt_dar_export_syms='~$NMEDIT -s $output_objdir/$libname-symbols.expsym $lib' fi if test : != "$DSYMUTIL" && test no = "$lt_cv_ld_force_load"; then _lt_dsymutil='~$DSYMUTIL $lib || :' else _lt_dsymutil= fi ;; esac ]) # _LT_DARWIN_LINKER_FEATURES([TAG]) # --------------------------------- # Checks for linker and compiler features on darwin m4_defun([_LT_DARWIN_LINKER_FEATURES], [ m4_require([_LT_REQUIRED_DARWIN_CHECKS]) _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_automatic, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported if test yes = "$lt_cv_ld_force_load"; then _LT_TAGVAR(whole_archive_flag_spec, $1)='`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience $wl-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`' m4_case([$1], [F77], [_LT_TAGVAR(compiler_needs_object, $1)=yes], [FC], [_LT_TAGVAR(compiler_needs_object, $1)=yes]) else _LT_TAGVAR(whole_archive_flag_spec, $1)='' fi _LT_TAGVAR(link_all_deplibs, $1)=yes _LT_TAGVAR(allow_undefined_flag, $1)=$_lt_dar_allow_undefined case $cc_basename in ifort*|nagfor*) _lt_dar_can_shared=yes ;; *) _lt_dar_can_shared=$GCC ;; esac if test yes = "$_lt_dar_can_shared"; then output_verbose_link_cmd=func_echo_all _LT_TAGVAR(archive_cmds, $1)="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dsymutil" _LT_TAGVAR(module_cmds, $1)="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dsymutil" _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dar_export_syms$_lt_dsymutil" _LT_TAGVAR(module_expsym_cmds, $1)="sed -e 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dar_export_syms$_lt_dsymutil" m4_if([$1], [CXX], [ if test yes != "$lt_cv_apple_cc_single_mod"; then _LT_TAGVAR(archive_cmds, $1)="\$CC -r -keep_private_externs -nostdlib -o \$lib-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$lib-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring$_lt_dsymutil" _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC -r -keep_private_externs -nostdlib -o \$lib-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$lib-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring$_lt_dar_export_syms$_lt_dsymutil" fi ],[]) else _LT_TAGVAR(ld_shlibs, $1)=no fi ]) # _LT_SYS_MODULE_PATH_AIX([TAGNAME]) # ---------------------------------- # Links a minimal program and checks the executable # for the system default hardcoded library path. In most cases, # this is /usr/lib:/lib, but when the MPI compilers are used # the location of the communication and MPI libs are included too. # If we don't find anything, use the default library path according # to the aix ld manual. # Store the results from the different compilers for each TAGNAME. # Allow to override them for all tags through lt_cv_aix_libpath. m4_defun([_LT_SYS_MODULE_PATH_AIX], [m4_require([_LT_DECL_SED])dnl if test set = "${lt_cv_aix_libpath+set}"; then aix_libpath=$lt_cv_aix_libpath else AC_CACHE_VAL([_LT_TAGVAR([lt_cv_aix_libpath_], [$1])], [AC_LINK_IFELSE([AC_LANG_PROGRAM],[ lt_aix_libpath_sed='[ /Import File Strings/,/^$/ { /^0/ { s/^0 *\([^ ]*\) *$/\1/ p } }]' _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` # Check for a 64-bit object if we didn't find anything. if test -z "$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])"; then _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` fi],[]) if test -z "$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])"; then _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=/usr/lib:/lib fi ]) aix_libpath=$_LT_TAGVAR([lt_cv_aix_libpath_], [$1]) fi ])# _LT_SYS_MODULE_PATH_AIX # _LT_SHELL_INIT(ARG) # ------------------- m4_define([_LT_SHELL_INIT], [m4_divert_text([M4SH-INIT], [$1 ])])# _LT_SHELL_INIT # _LT_PROG_ECHO_BACKSLASH # ----------------------- # Find how we can fake an echo command that does not interpret backslash. # In particular, with Autoconf 2.60 or later we add some code to the start # of the generated configure script that will find a shell with a builtin # printf (that we can use as an echo command). m4_defun([_LT_PROG_ECHO_BACKSLASH], [ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO AC_MSG_CHECKING([how to print strings]) # Test print first, because it will be a builtin if present. if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \ test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then ECHO='print -r --' elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then ECHO='printf %s\n' else # Use this function as a fallback that always works. func_fallback_echo () { eval 'cat <<_LTECHO_EOF $[]1 _LTECHO_EOF' } ECHO='func_fallback_echo' fi # func_echo_all arg... # Invoke $ECHO with all args, space-separated. func_echo_all () { $ECHO "$*" } case $ECHO in printf*) AC_MSG_RESULT([printf]) ;; print*) AC_MSG_RESULT([print -r]) ;; *) AC_MSG_RESULT([cat]) ;; esac m4_ifdef([_AS_DETECT_SUGGESTED], [_AS_DETECT_SUGGESTED([ test -n "${ZSH_VERSION+set}${BASH_VERSION+set}" || ( ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO PATH=/empty FPATH=/empty; export PATH FPATH test "X`printf %s $ECHO`" = "X$ECHO" \ || test "X`print -r -- $ECHO`" = "X$ECHO" )])]) _LT_DECL([], [SHELL], [1], [Shell to use when invoking shell scripts]) _LT_DECL([], [ECHO], [1], [An echo program that protects backslashes]) ])# _LT_PROG_ECHO_BACKSLASH # _LT_WITH_SYSROOT # ---------------- AC_DEFUN([_LT_WITH_SYSROOT], [AC_MSG_CHECKING([for sysroot]) AC_ARG_WITH([sysroot], [AS_HELP_STRING([--with-sysroot@<:@=DIR@:>@], [Search for dependent libraries within DIR (or the compiler's sysroot if not specified).])], [], [with_sysroot=no]) dnl lt_sysroot will always be passed unquoted. We quote it here dnl in case the user passed a directory name. lt_sysroot= case $with_sysroot in #( yes) if test yes = "$GCC"; then lt_sysroot=`$CC --print-sysroot 2>/dev/null` fi ;; #( /*) lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"` ;; #( no|'') ;; #( *) AC_MSG_RESULT([$with_sysroot]) AC_MSG_ERROR([The sysroot must be an absolute path.]) ;; esac AC_MSG_RESULT([${lt_sysroot:-no}]) _LT_DECL([], [lt_sysroot], [0], [The root where to search for ]dnl [dependent libraries, and where our libraries should be installed.])]) # _LT_ENABLE_LOCK # --------------- m4_defun([_LT_ENABLE_LOCK], [AC_ARG_ENABLE([libtool-lock], [AS_HELP_STRING([--disable-libtool-lock], [avoid locking (might break parallel builds)])]) test no = "$enable_libtool_lock" || enable_libtool_lock=yes # Some flags need to be propagated to the compiler or linker for good # libtool support. case $host in ia64-*-hpux*) # Find out what ABI is being produced by ac_compile, and set mode # options accordingly. echo 'int i;' > conftest.$ac_ext if AC_TRY_EVAL(ac_compile); then case `/usr/bin/file conftest.$ac_objext` in *ELF-32*) HPUX_IA64_MODE=32 ;; *ELF-64*) HPUX_IA64_MODE=64 ;; esac fi rm -rf conftest* ;; *-*-irix6*) # Find out what ABI is being produced by ac_compile, and set linker # options accordingly. echo '[#]line '$LINENO' "configure"' > conftest.$ac_ext if AC_TRY_EVAL(ac_compile); then if test yes = "$lt_cv_prog_gnu_ld"; then case `/usr/bin/file conftest.$ac_objext` in *32-bit*) LD="${LD-ld} -melf32bsmip" ;; *N32*) LD="${LD-ld} -melf32bmipn32" ;; *64-bit*) LD="${LD-ld} -melf64bmip" ;; esac else case `/usr/bin/file conftest.$ac_objext` in *32-bit*) LD="${LD-ld} -32" ;; *N32*) LD="${LD-ld} -n32" ;; *64-bit*) LD="${LD-ld} -64" ;; esac fi fi rm -rf conftest* ;; mips64*-*linux*) # Find out what ABI is being produced by ac_compile, and set linker # options accordingly. echo '[#]line '$LINENO' "configure"' > conftest.$ac_ext if AC_TRY_EVAL(ac_compile); then emul=elf case `/usr/bin/file conftest.$ac_objext` in *32-bit*) emul="${emul}32" ;; *64-bit*) emul="${emul}64" ;; esac case `/usr/bin/file conftest.$ac_objext` in *MSB*) emul="${emul}btsmip" ;; *LSB*) emul="${emul}ltsmip" ;; esac case `/usr/bin/file conftest.$ac_objext` in *N32*) emul="${emul}n32" ;; esac LD="${LD-ld} -m $emul" fi rm -rf conftest* ;; x86_64-*kfreebsd*-gnu|x86_64-*linux*|powerpc*-*linux*| \ s390*-*linux*|s390*-*tpf*|sparc*-*linux*) # Find out what ABI is being produced by ac_compile, and set linker # options accordingly. Note that the listed cases only cover the # situations where additional linker options are needed (such as when # doing 32-bit compilation for a host where ld defaults to 64-bit, or # vice versa); the common cases where no linker options are needed do # not appear in the list. echo 'int i;' > conftest.$ac_ext if AC_TRY_EVAL(ac_compile); then case `/usr/bin/file conftest.o` in *32-bit*) case $host in x86_64-*kfreebsd*-gnu) LD="${LD-ld} -m elf_i386_fbsd" ;; x86_64-*linux*) case `/usr/bin/file conftest.o` in *x86-64*) LD="${LD-ld} -m elf32_x86_64" ;; *) LD="${LD-ld} -m elf_i386" ;; esac ;; powerpc64le-*linux*) LD="${LD-ld} -m elf32lppclinux" ;; powerpc64-*linux*) LD="${LD-ld} -m elf32ppclinux" ;; s390x-*linux*) LD="${LD-ld} -m elf_s390" ;; sparc64-*linux*) LD="${LD-ld} -m elf32_sparc" ;; esac ;; *64-bit*) case $host in x86_64-*kfreebsd*-gnu) LD="${LD-ld} -m elf_x86_64_fbsd" ;; x86_64-*linux*) LD="${LD-ld} -m elf_x86_64" ;; powerpcle-*linux*) LD="${LD-ld} -m elf64lppc" ;; powerpc-*linux*) LD="${LD-ld} -m elf64ppc" ;; s390*-*linux*|s390*-*tpf*) LD="${LD-ld} -m elf64_s390" ;; sparc*-*linux*) LD="${LD-ld} -m elf64_sparc" ;; esac ;; esac fi rm -rf conftest* ;; *-*-sco3.2v5*) # On SCO OpenServer 5, we need -belf to get full-featured binaries. SAVE_CFLAGS=$CFLAGS CFLAGS="$CFLAGS -belf" AC_CACHE_CHECK([whether the C compiler needs -belf], lt_cv_cc_needs_belf, [AC_LANG_PUSH(C) AC_LINK_IFELSE([AC_LANG_PROGRAM([[]],[[]])],[lt_cv_cc_needs_belf=yes],[lt_cv_cc_needs_belf=no]) AC_LANG_POP]) if test yes != "$lt_cv_cc_needs_belf"; then # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf CFLAGS=$SAVE_CFLAGS fi ;; *-*solaris*) # Find out what ABI is being produced by ac_compile, and set linker # options accordingly. echo 'int i;' > conftest.$ac_ext if AC_TRY_EVAL(ac_compile); then case `/usr/bin/file conftest.o` in *64-bit*) case $lt_cv_prog_gnu_ld in yes*) case $host in i?86-*-solaris*|x86_64-*-solaris*) LD="${LD-ld} -m elf_x86_64" ;; sparc*-*-solaris*) LD="${LD-ld} -m elf64_sparc" ;; esac # GNU ld 2.21 introduced _sol2 emulations. Use them if available. if ${LD-ld} -V | grep _sol2 >/dev/null 2>&1; then LD=${LD-ld}_sol2 fi ;; *) if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then LD="${LD-ld} -64" fi ;; esac ;; esac fi rm -rf conftest* ;; esac need_locks=$enable_libtool_lock ])# _LT_ENABLE_LOCK # _LT_PROG_AR # ----------- m4_defun([_LT_PROG_AR], [AC_CHECK_TOOLS(AR, [ar], false) : ${AR=ar} : ${AR_FLAGS=cru} _LT_DECL([], [AR], [1], [The archiver]) _LT_DECL([], [AR_FLAGS], [1], [Flags to create an archive]) AC_CACHE_CHECK([for archiver @FILE support], [lt_cv_ar_at_file], [lt_cv_ar_at_file=no AC_COMPILE_IFELSE([AC_LANG_PROGRAM], [echo conftest.$ac_objext > conftest.lst lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&AS_MESSAGE_LOG_FD' AC_TRY_EVAL([lt_ar_try]) if test 0 -eq "$ac_status"; then # Ensure the archiver fails upon bogus file names. rm -f conftest.$ac_objext libconftest.a AC_TRY_EVAL([lt_ar_try]) if test 0 -ne "$ac_status"; then lt_cv_ar_at_file=@ fi fi rm -f conftest.* libconftest.a ]) ]) if test no = "$lt_cv_ar_at_file"; then archiver_list_spec= else archiver_list_spec=$lt_cv_ar_at_file fi _LT_DECL([], [archiver_list_spec], [1], [How to feed a file listing to the archiver]) ])# _LT_PROG_AR # _LT_CMD_OLD_ARCHIVE # ------------------- m4_defun([_LT_CMD_OLD_ARCHIVE], [_LT_PROG_AR AC_CHECK_TOOL(STRIP, strip, :) test -z "$STRIP" && STRIP=: _LT_DECL([], [STRIP], [1], [A symbol stripping program]) AC_CHECK_TOOL(RANLIB, ranlib, :) test -z "$RANLIB" && RANLIB=: _LT_DECL([], [RANLIB], [1], [Commands used to install an old-style archive]) # Determine commands to create old-style static archives. old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs' old_postinstall_cmds='chmod 644 $oldlib' old_postuninstall_cmds= if test -n "$RANLIB"; then case $host_os in bitrig* | openbsd*) old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$tool_oldlib" ;; *) old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$tool_oldlib" ;; esac old_archive_cmds="$old_archive_cmds~\$RANLIB \$tool_oldlib" fi case $host_os in darwin*) lock_old_archive_extraction=yes ;; *) lock_old_archive_extraction=no ;; esac _LT_DECL([], [old_postinstall_cmds], [2]) _LT_DECL([], [old_postuninstall_cmds], [2]) _LT_TAGDECL([], [old_archive_cmds], [2], [Commands used to build an old-style archive]) _LT_DECL([], [lock_old_archive_extraction], [0], [Whether to use a lock for old archive extraction]) ])# _LT_CMD_OLD_ARCHIVE # _LT_COMPILER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS, # [OUTPUT-FILE], [ACTION-SUCCESS], [ACTION-FAILURE]) # ---------------------------------------------------------------- # Check whether the given compiler option works AC_DEFUN([_LT_COMPILER_OPTION], [m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_DECL_SED])dnl AC_CACHE_CHECK([$1], [$2], [$2=no m4_if([$4], , [ac_outfile=conftest.$ac_objext], [ac_outfile=$4]) echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="$3" ## exclude from sc_useless_quotes_in_assignment # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. # The option is referenced via a variable to avoid confusing sed. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&AS_MESSAGE_LOG_FD) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&AS_MESSAGE_LOG_FD echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then $2=yes fi fi $RM conftest* ]) if test yes = "[$]$2"; then m4_if([$5], , :, [$5]) else m4_if([$6], , :, [$6]) fi ])# _LT_COMPILER_OPTION # Old name: AU_ALIAS([AC_LIBTOOL_COMPILER_OPTION], [_LT_COMPILER_OPTION]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_COMPILER_OPTION], []) # _LT_LINKER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS, # [ACTION-SUCCESS], [ACTION-FAILURE]) # ---------------------------------------------------- # Check whether the given linker option works AC_DEFUN([_LT_LINKER_OPTION], [m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_DECL_SED])dnl AC_CACHE_CHECK([$1], [$2], [$2=no save_LDFLAGS=$LDFLAGS LDFLAGS="$LDFLAGS $3" echo "$lt_simple_link_test_code" > conftest.$ac_ext if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then # The linker can only warn and ignore the option if not recognized # So say no if there are warnings if test -s conftest.err; then # Append any errors to the config.log. cat conftest.err 1>&AS_MESSAGE_LOG_FD $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if diff conftest.exp conftest.er2 >/dev/null; then $2=yes fi else $2=yes fi fi $RM -r conftest* LDFLAGS=$save_LDFLAGS ]) if test yes = "[$]$2"; then m4_if([$4], , :, [$4]) else m4_if([$5], , :, [$5]) fi ])# _LT_LINKER_OPTION # Old name: AU_ALIAS([AC_LIBTOOL_LINKER_OPTION], [_LT_LINKER_OPTION]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_LINKER_OPTION], []) # LT_CMD_MAX_LEN #--------------- AC_DEFUN([LT_CMD_MAX_LEN], [AC_REQUIRE([AC_CANONICAL_HOST])dnl # find the maximum length of command line arguments AC_MSG_CHECKING([the maximum length of command line arguments]) AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl i=0 teststring=ABCD case $build_os in msdosdjgpp*) # On DJGPP, this test can blow up pretty badly due to problems in libc # (any single argument exceeding 2000 bytes causes a buffer overrun # during glob expansion). Even if it were fixed, the result of this # check would be larger than it should be. lt_cv_sys_max_cmd_len=12288; # 12K is about right ;; gnu*) # Under GNU Hurd, this test is not required because there is # no limit to the length of command line arguments. # Libtool will interpret -1 as no limit whatsoever lt_cv_sys_max_cmd_len=-1; ;; cygwin* | mingw* | cegcc*) # On Win9x/ME, this test blows up -- it succeeds, but takes # about 5 minutes as the teststring grows exponentially. # Worse, since 9x/ME are not pre-emptively multitasking, # you end up with a "frozen" computer, even though with patience # the test eventually succeeds (with a max line length of 256k). # Instead, let's just punt: use the minimum linelength reported by # all of the supported platforms: 8192 (on NT/2K/XP). lt_cv_sys_max_cmd_len=8192; ;; mint*) # On MiNT this can take a long time and run out of memory. lt_cv_sys_max_cmd_len=8192; ;; amigaos*) # On AmigaOS with pdksh, this test takes hours, literally. # So we just punt and use a minimum line length of 8192. lt_cv_sys_max_cmd_len=8192; ;; bitrig* | darwin* | dragonfly* | freebsd* | netbsd* | openbsd*) # This has been around since 386BSD, at least. Likely further. if test -x /sbin/sysctl; then lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax` elif test -x /usr/sbin/sysctl; then lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax` else lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs fi # And add a safety zone lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` ;; interix*) # We know the value 262144 and hardcode it with a safety zone (like BSD) lt_cv_sys_max_cmd_len=196608 ;; os2*) # The test takes a long time on OS/2. lt_cv_sys_max_cmd_len=8192 ;; osf*) # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not # nice to cause kernel panics so lets avoid the loop below. # First set a reasonable default. lt_cv_sys_max_cmd_len=16384 # if test -x /sbin/sysconfig; then case `/sbin/sysconfig -q proc exec_disable_arg_limit` in *1*) lt_cv_sys_max_cmd_len=-1 ;; esac fi ;; sco3.2v5*) lt_cv_sys_max_cmd_len=102400 ;; sysv5* | sco5v6* | sysv4.2uw2*) kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null` if test -n "$kargmax"; then lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[[ ]]//'` else lt_cv_sys_max_cmd_len=32768 fi ;; *) lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null` if test -n "$lt_cv_sys_max_cmd_len" && \ test undefined != "$lt_cv_sys_max_cmd_len"; then lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` else # Make teststring a little bigger before we do anything with it. # a 1K string should be a reasonable start. for i in 1 2 3 4 5 6 7 8; do teststring=$teststring$teststring done SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}} # If test is not a shell built-in, we'll probably end up computing a # maximum length that is only half of the actual maximum length, but # we can't tell. while { test X`env echo "$teststring$teststring" 2>/dev/null` \ = "X$teststring$teststring"; } >/dev/null 2>&1 && test 17 != "$i" # 1/2 MB should be enough do i=`expr $i + 1` teststring=$teststring$teststring done # Only check the string length outside the loop. lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1` teststring= # Add a significant safety factor because C++ compilers can tack on # massive amounts of additional arguments before passing them to the # linker. It appears as though 1/2 is a usable value. lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2` fi ;; esac ]) if test -n "$lt_cv_sys_max_cmd_len"; then AC_MSG_RESULT($lt_cv_sys_max_cmd_len) else AC_MSG_RESULT(none) fi max_cmd_len=$lt_cv_sys_max_cmd_len _LT_DECL([], [max_cmd_len], [0], [What is the maximum length of a command?]) ])# LT_CMD_MAX_LEN # Old name: AU_ALIAS([AC_LIBTOOL_SYS_MAX_CMD_LEN], [LT_CMD_MAX_LEN]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_SYS_MAX_CMD_LEN], []) # _LT_HEADER_DLFCN # ---------------- m4_defun([_LT_HEADER_DLFCN], [AC_CHECK_HEADERS([dlfcn.h], [], [], [AC_INCLUDES_DEFAULT])dnl ])# _LT_HEADER_DLFCN # _LT_TRY_DLOPEN_SELF (ACTION-IF-TRUE, ACTION-IF-TRUE-W-USCORE, # ACTION-IF-FALSE, ACTION-IF-CROSS-COMPILING) # ---------------------------------------------------------------- m4_defun([_LT_TRY_DLOPEN_SELF], [m4_require([_LT_HEADER_DLFCN])dnl if test yes = "$cross_compiling"; then : [$4] else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF [#line $LINENO "configure" #include "confdefs.h" #if HAVE_DLFCN_H #include #endif #include #ifdef RTLD_GLOBAL # define LT_DLGLOBAL RTLD_GLOBAL #else # ifdef DL_GLOBAL # define LT_DLGLOBAL DL_GLOBAL # else # define LT_DLGLOBAL 0 # endif #endif /* We may have to define LT_DLLAZY_OR_NOW in the command line if we find out it does not work in some platform. */ #ifndef LT_DLLAZY_OR_NOW # ifdef RTLD_LAZY # define LT_DLLAZY_OR_NOW RTLD_LAZY # else # ifdef DL_LAZY # define LT_DLLAZY_OR_NOW DL_LAZY # else # ifdef RTLD_NOW # define LT_DLLAZY_OR_NOW RTLD_NOW # else # ifdef DL_NOW # define LT_DLLAZY_OR_NOW DL_NOW # else # define LT_DLLAZY_OR_NOW 0 # endif # endif # endif # endif #endif /* When -fvisibility=hidden is used, assume the code has been annotated correspondingly for the symbols needed. */ #if defined __GNUC__ && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) int fnord () __attribute__((visibility("default"))); #endif int fnord () { return 42; } int main () { void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); int status = $lt_dlunknown; if (self) { if (dlsym (self,"fnord")) status = $lt_dlno_uscore; else { if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; else puts (dlerror ()); } /* dlclose (self); */ } else puts (dlerror ()); return status; }] _LT_EOF if AC_TRY_EVAL(ac_link) && test -s "conftest$ac_exeext" 2>/dev/null; then (./conftest; exit; ) >&AS_MESSAGE_LOG_FD 2>/dev/null lt_status=$? case x$lt_status in x$lt_dlno_uscore) $1 ;; x$lt_dlneed_uscore) $2 ;; x$lt_dlunknown|x*) $3 ;; esac else : # compilation failed $3 fi fi rm -fr conftest* ])# _LT_TRY_DLOPEN_SELF # LT_SYS_DLOPEN_SELF # ------------------ AC_DEFUN([LT_SYS_DLOPEN_SELF], [m4_require([_LT_HEADER_DLFCN])dnl if test yes != "$enable_dlopen"; then enable_dlopen=unknown enable_dlopen_self=unknown enable_dlopen_self_static=unknown else lt_cv_dlopen=no lt_cv_dlopen_libs= case $host_os in beos*) lt_cv_dlopen=load_add_on lt_cv_dlopen_libs= lt_cv_dlopen_self=yes ;; mingw* | pw32* | cegcc*) lt_cv_dlopen=LoadLibrary lt_cv_dlopen_libs= ;; cygwin*) lt_cv_dlopen=dlopen lt_cv_dlopen_libs= ;; darwin*) # if libdl is installed we need to link against it AC_CHECK_LIB([dl], [dlopen], [lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-ldl],[ lt_cv_dlopen=dyld lt_cv_dlopen_libs= lt_cv_dlopen_self=yes ]) ;; tpf*) # Don't try to run any link tests for TPF. We know it's impossible # because TPF is a cross-compiler, and we know how we open DSOs. lt_cv_dlopen=dlopen lt_cv_dlopen_libs= lt_cv_dlopen_self=no ;; *) AC_CHECK_FUNC([shl_load], [lt_cv_dlopen=shl_load], [AC_CHECK_LIB([dld], [shl_load], [lt_cv_dlopen=shl_load lt_cv_dlopen_libs=-ldld], [AC_CHECK_FUNC([dlopen], [lt_cv_dlopen=dlopen], [AC_CHECK_LIB([dl], [dlopen], [lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-ldl], [AC_CHECK_LIB([svld], [dlopen], [lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-lsvld], [AC_CHECK_LIB([dld], [dld_link], [lt_cv_dlopen=dld_link lt_cv_dlopen_libs=-ldld]) ]) ]) ]) ]) ]) ;; esac if test no = "$lt_cv_dlopen"; then enable_dlopen=no else enable_dlopen=yes fi case $lt_cv_dlopen in dlopen) save_CPPFLAGS=$CPPFLAGS test yes = "$ac_cv_header_dlfcn_h" && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" save_LDFLAGS=$LDFLAGS wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" save_LIBS=$LIBS LIBS="$lt_cv_dlopen_libs $LIBS" AC_CACHE_CHECK([whether a program can dlopen itself], lt_cv_dlopen_self, [dnl _LT_TRY_DLOPEN_SELF( lt_cv_dlopen_self=yes, lt_cv_dlopen_self=yes, lt_cv_dlopen_self=no, lt_cv_dlopen_self=cross) ]) if test yes = "$lt_cv_dlopen_self"; then wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\" AC_CACHE_CHECK([whether a statically linked program can dlopen itself], lt_cv_dlopen_self_static, [dnl _LT_TRY_DLOPEN_SELF( lt_cv_dlopen_self_static=yes, lt_cv_dlopen_self_static=yes, lt_cv_dlopen_self_static=no, lt_cv_dlopen_self_static=cross) ]) fi CPPFLAGS=$save_CPPFLAGS LDFLAGS=$save_LDFLAGS LIBS=$save_LIBS ;; esac case $lt_cv_dlopen_self in yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; *) enable_dlopen_self=unknown ;; esac case $lt_cv_dlopen_self_static in yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; *) enable_dlopen_self_static=unknown ;; esac fi _LT_DECL([dlopen_support], [enable_dlopen], [0], [Whether dlopen is supported]) _LT_DECL([dlopen_self], [enable_dlopen_self], [0], [Whether dlopen of programs is supported]) _LT_DECL([dlopen_self_static], [enable_dlopen_self_static], [0], [Whether dlopen of statically linked programs is supported]) ])# LT_SYS_DLOPEN_SELF # Old name: AU_ALIAS([AC_LIBTOOL_DLOPEN_SELF], [LT_SYS_DLOPEN_SELF]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_DLOPEN_SELF], []) # _LT_COMPILER_C_O([TAGNAME]) # --------------------------- # Check to see if options -c and -o are simultaneously supported by compiler. # This macro does not hard code the compiler like AC_PROG_CC_C_O. m4_defun([_LT_COMPILER_C_O], [m4_require([_LT_DECL_SED])dnl m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_TAG_COMPILER])dnl AC_CACHE_CHECK([if $compiler supports -c -o file.$ac_objext], [_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)], [_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=no $RM -r conftest 2>/dev/null mkdir conftest cd conftest mkdir out echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-o out/conftest2.$ac_objext" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&AS_MESSAGE_LOG_FD) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&AS_MESSAGE_LOG_FD echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then _LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes fi fi chmod u+w . 2>&AS_MESSAGE_LOG_FD $RM conftest* # SGI C++ compiler will create directory out/ii_files/ for # template instantiation test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files $RM out/* && rmdir out cd .. $RM -r conftest $RM conftest* ]) _LT_TAGDECL([compiler_c_o], [lt_cv_prog_compiler_c_o], [1], [Does compiler simultaneously support -c and -o options?]) ])# _LT_COMPILER_C_O # _LT_COMPILER_FILE_LOCKS([TAGNAME]) # ---------------------------------- # Check to see if we can do hard links to lock some files if needed m4_defun([_LT_COMPILER_FILE_LOCKS], [m4_require([_LT_ENABLE_LOCK])dnl m4_require([_LT_FILEUTILS_DEFAULTS])dnl _LT_COMPILER_C_O([$1]) hard_links=nottested if test no = "$_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)" && test no != "$need_locks"; then # do not overwrite the value of need_locks provided by the user AC_MSG_CHECKING([if we can lock with hard links]) hard_links=yes $RM conftest* ln conftest.a conftest.b 2>/dev/null && hard_links=no touch conftest.a ln conftest.a conftest.b 2>&5 || hard_links=no ln conftest.a conftest.b 2>/dev/null && hard_links=no AC_MSG_RESULT([$hard_links]) if test no = "$hard_links"; then AC_MSG_WARN(['$CC' does not support '-c -o', so 'make -j' may be unsafe]) need_locks=warn fi else need_locks=no fi _LT_DECL([], [need_locks], [1], [Must we lock files when doing compilation?]) ])# _LT_COMPILER_FILE_LOCKS # _LT_CHECK_OBJDIR # ---------------- m4_defun([_LT_CHECK_OBJDIR], [AC_CACHE_CHECK([for objdir], [lt_cv_objdir], [rm -f .libs 2>/dev/null mkdir .libs 2>/dev/null if test -d .libs; then lt_cv_objdir=.libs else # MS-DOS does not allow filenames that begin with a dot. lt_cv_objdir=_libs fi rmdir .libs 2>/dev/null]) objdir=$lt_cv_objdir _LT_DECL([], [objdir], [0], [The name of the directory that contains temporary libtool files])dnl m4_pattern_allow([LT_OBJDIR])dnl AC_DEFINE_UNQUOTED([LT_OBJDIR], "$lt_cv_objdir/", [Define to the sub-directory where libtool stores uninstalled libraries.]) ])# _LT_CHECK_OBJDIR # _LT_LINKER_HARDCODE_LIBPATH([TAGNAME]) # -------------------------------------- # Check hardcoding attributes. m4_defun([_LT_LINKER_HARDCODE_LIBPATH], [AC_MSG_CHECKING([how to hardcode library paths into programs]) _LT_TAGVAR(hardcode_action, $1)= if test -n "$_LT_TAGVAR(hardcode_libdir_flag_spec, $1)" || test -n "$_LT_TAGVAR(runpath_var, $1)" || test yes = "$_LT_TAGVAR(hardcode_automatic, $1)"; then # We can hardcode non-existent directories. if test no != "$_LT_TAGVAR(hardcode_direct, $1)" && # If the only mechanism to avoid hardcoding is shlibpath_var, we # have to relink, otherwise we might link with an installed library # when we should be linking with a yet-to-be-installed one ## test no != "$_LT_TAGVAR(hardcode_shlibpath_var, $1)" && test no != "$_LT_TAGVAR(hardcode_minus_L, $1)"; then # Linking always hardcodes the temporary library directory. _LT_TAGVAR(hardcode_action, $1)=relink else # We can link without hardcoding, and we can hardcode nonexisting dirs. _LT_TAGVAR(hardcode_action, $1)=immediate fi else # We cannot hardcode anything, or else we can only hardcode existing # directories. _LT_TAGVAR(hardcode_action, $1)=unsupported fi AC_MSG_RESULT([$_LT_TAGVAR(hardcode_action, $1)]) if test relink = "$_LT_TAGVAR(hardcode_action, $1)" || test yes = "$_LT_TAGVAR(inherit_rpath, $1)"; then # Fast installation is not supported enable_fast_install=no elif test yes = "$shlibpath_overrides_runpath" || test no = "$enable_shared"; then # Fast installation is not necessary enable_fast_install=needless fi _LT_TAGDECL([], [hardcode_action], [0], [How to hardcode a shared library path into an executable]) ])# _LT_LINKER_HARDCODE_LIBPATH # _LT_CMD_STRIPLIB # ---------------- m4_defun([_LT_CMD_STRIPLIB], [m4_require([_LT_DECL_EGREP]) striplib= old_striplib= AC_MSG_CHECKING([whether stripping libraries is possible]) if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" test -z "$striplib" && striplib="$STRIP --strip-unneeded" AC_MSG_RESULT([yes]) else # FIXME - insert some real tests, host_os isn't really good enough case $host_os in darwin*) if test -n "$STRIP"; then striplib="$STRIP -x" old_striplib="$STRIP -S" AC_MSG_RESULT([yes]) else AC_MSG_RESULT([no]) fi ;; *) AC_MSG_RESULT([no]) ;; esac fi _LT_DECL([], [old_striplib], [1], [Commands to strip libraries]) _LT_DECL([], [striplib], [1]) ])# _LT_CMD_STRIPLIB # _LT_PREPARE_MUNGE_PATH_LIST # --------------------------- # Make sure func_munge_path_list() is defined correctly. m4_defun([_LT_PREPARE_MUNGE_PATH_LIST], [[# func_munge_path_list VARIABLE PATH # ----------------------------------- # VARIABLE is name of variable containing _space_ separated list of # directories to be munged by the contents of PATH, which is string # having a format: # "DIR[:DIR]:" # string "DIR[ DIR]" will be prepended to VARIABLE # ":DIR[:DIR]" # string "DIR[ DIR]" will be appended to VARIABLE # "DIRP[:DIRP]::[DIRA:]DIRA" # string "DIRP[ DIRP]" will be prepended to VARIABLE and string # "DIRA[ DIRA]" will be appended to VARIABLE # "DIR[:DIR]" # VARIABLE will be replaced by "DIR[ DIR]" func_munge_path_list () { case x@S|@2 in x) ;; *:) eval @S|@1=\"`$ECHO @S|@2 | $SED 's/:/ /g'` \@S|@@S|@1\" ;; x:*) eval @S|@1=\"\@S|@@S|@1 `$ECHO @S|@2 | $SED 's/:/ /g'`\" ;; *::*) eval @S|@1=\"\@S|@@S|@1\ `$ECHO @S|@2 | $SED -e 's/.*:://' -e 's/:/ /g'`\" eval @S|@1=\"`$ECHO @S|@2 | $SED -e 's/::.*//' -e 's/:/ /g'`\ \@S|@@S|@1\" ;; *) eval @S|@1=\"`$ECHO @S|@2 | $SED 's/:/ /g'`\" ;; esac } ]])# _LT_PREPARE_PATH_LIST # _LT_SYS_DYNAMIC_LINKER([TAG]) # ----------------------------- # PORTME Fill in your ld.so characteristics m4_defun([_LT_SYS_DYNAMIC_LINKER], [AC_REQUIRE([AC_CANONICAL_HOST])dnl m4_require([_LT_DECL_EGREP])dnl m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_DECL_OBJDUMP])dnl m4_require([_LT_DECL_SED])dnl m4_require([_LT_CHECK_SHELL_FEATURES])dnl m4_require([_LT_PREPARE_MUNGE_PATH_LIST])dnl AC_MSG_CHECKING([dynamic linker characteristics]) m4_if([$1], [], [ if test yes = "$GCC"; then case $host_os in darwin*) lt_awk_arg='/^libraries:/,/LR/' ;; *) lt_awk_arg='/^libraries:/' ;; esac case $host_os in mingw* | cegcc*) lt_sed_strip_eq='s|=\([[A-Za-z]]:\)|\1|g' ;; *) lt_sed_strip_eq='s|=/|/|g' ;; esac lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e $lt_sed_strip_eq` case $lt_search_path_spec in *\;*) # if the path contains ";" then we assume it to be the separator # otherwise default to the standard path separator (i.e. ":") - it is # assumed that no part of a normal pathname contains ";" but that should # okay in the real world where ";" in dirpaths is itself problematic. lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED 's/;/ /g'` ;; *) lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED "s/$PATH_SEPARATOR/ /g"` ;; esac # Ok, now we have the path, separated by spaces, we can step through it # and add multilib dir if necessary... lt_tmp_lt_search_path_spec= lt_multi_os_dir=/`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null` # ...but if some path component already ends with the multilib dir we assume # that all is fine and trust -print-search-dirs as is (GCC 4.2? or newer). case "$lt_multi_os_dir; $lt_search_path_spec " in "/; "* | "/.; "* | "/./; "* | *"$lt_multi_os_dir "* | *"$lt_multi_os_dir/ "*) lt_multi_os_dir= ;; esac for lt_sys_path in $lt_search_path_spec; do if test -d "$lt_sys_path$lt_multi_os_dir"; then lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path$lt_multi_os_dir" elif test -n "$lt_multi_os_dir"; then test -d "$lt_sys_path" && \ lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path" fi done lt_search_path_spec=`$ECHO "$lt_tmp_lt_search_path_spec" | awk ' BEGIN {RS = " "; FS = "/|\n";} { lt_foo = ""; lt_count = 0; for (lt_i = NF; lt_i > 0; lt_i--) { if ($lt_i != "" && $lt_i != ".") { if ($lt_i == "..") { lt_count++; } else { if (lt_count == 0) { lt_foo = "/" $lt_i lt_foo; } else { lt_count--; } } } } if (lt_foo != "") { lt_freq[[lt_foo]]++; } if (lt_freq[[lt_foo]] == 1) { print lt_foo; } }'` # AWK program above erroneously prepends '/' to C:/dos/paths # for these hosts. case $host_os in mingw* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\ $SED 's|/\([[A-Za-z]]:\)|\1|g'` ;; esac sys_lib_search_path_spec=`$ECHO "$lt_search_path_spec" | $lt_NL2SP` else sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" fi]) library_names_spec= libname_spec='lib$name' soname_spec= shrext_cmds=.so postinstall_cmds= postuninstall_cmds= finish_cmds= finish_eval= shlibpath_var= shlibpath_overrides_runpath=unknown version_type=none dynamic_linker="$host_os ld.so" sys_lib_dlsearch_path_spec="/lib /usr/lib" need_lib_prefix=unknown hardcode_into_libs=no # when you set need_version to no, make sure it does not cause -set_version # flags to be left without arguments need_version=unknown AC_ARG_VAR([LT_SYS_LIBRARY_PATH], [User-defined run-time library search path.]) case $host_os in aix3*) version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='$libname$release$shared_ext$versuffix $libname.a' shlibpath_var=LIBPATH # AIX 3 has no versioning support, so we append a major version to the name. soname_spec='$libname$release$shared_ext$major' ;; aix[[4-9]]*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no hardcode_into_libs=yes if test ia64 = "$host_cpu"; then # AIX 5 supports IA64 library_names_spec='$libname$release$shared_ext$major $libname$release$shared_ext$versuffix $libname$shared_ext' shlibpath_var=LD_LIBRARY_PATH else # With GCC up to 2.95.x, collect2 would create an import file # for dependence libraries. The import file would start with # the line '#! .'. This would cause the generated library to # depend on '.', always an invalid library. This was fixed in # development snapshots of GCC prior to 3.0. case $host_os in aix4 | aix4.[[01]] | aix4.[[01]].*) if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' echo ' yes ' echo '#endif'; } | $CC -E - | $GREP yes > /dev/null; then : else can_build_shared=no fi ;; esac # Using Import Files as archive members, it is possible to support # filename-based versioning of shared library archives on AIX. While # this would work for both with and without runtime linking, it will # prevent static linking of such archives. So we do filename-based # shared library versioning with .so extension only, which is used # when both runtime linking and shared linking is enabled. # Unfortunately, runtime linking may impact performance, so we do # not want this to be the default eventually. Also, we use the # versioned .so libs for executables only if there is the -brtl # linker flag in LDFLAGS as well, or --with-aix-soname=svr4 only. # To allow for filename-based versioning support, we need to create # libNAME.so.V as an archive file, containing: # *) an Import File, referring to the versioned filename of the # archive as well as the shared archive member, telling the # bitwidth (32 or 64) of that shared object, and providing the # list of exported symbols of that shared object, eventually # decorated with the 'weak' keyword # *) the shared object with the F_LOADONLY flag set, to really avoid # it being seen by the linker. # At run time we better use the real file rather than another symlink, # but for link time we create the symlink libNAME.so -> libNAME.so.V case $with_aix_soname,$aix_use_runtimelinking in # AIX (on Power*) has no versioning support, so currently we cannot hardcode correct # soname into executable. Probably we can add versioning support to # collect2, so additional links can be useful in future. aix,yes) # traditional libtool dynamic_linker='AIX unversionable lib.so' # If using run time linking (on AIX 4.2 or later) use lib.so # instead of lib.a to let people know that these are not # typical AIX shared libraries. library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' ;; aix,no) # traditional AIX only dynamic_linker='AIX lib.a[(]lib.so.V[)]' # We preserve .a as extension for shared libraries through AIX4.2 # and later when we are not doing run time linking. library_names_spec='$libname$release.a $libname.a' soname_spec='$libname$release$shared_ext$major' ;; svr4,*) # full svr4 only dynamic_linker="AIX lib.so.V[(]$shared_archive_member_spec.o[)]" library_names_spec='$libname$release$shared_ext$major $libname$shared_ext' # We do not specify a path in Import Files, so LIBPATH fires. shlibpath_overrides_runpath=yes ;; *,yes) # both, prefer svr4 dynamic_linker="AIX lib.so.V[(]$shared_archive_member_spec.o[)], lib.a[(]lib.so.V[)]" library_names_spec='$libname$release$shared_ext$major $libname$shared_ext' # unpreferred sharedlib libNAME.a needs extra handling postinstall_cmds='test -n "$linkname" || linkname="$realname"~func_stripname "" ".so" "$linkname"~$install_shared_prog "$dir/$func_stripname_result.$libext" "$destdir/$func_stripname_result.$libext"~test -z "$tstripme" || test -z "$striplib" || $striplib "$destdir/$func_stripname_result.$libext"' postuninstall_cmds='for n in $library_names $old_library; do :; done~func_stripname "" ".so" "$n"~test "$func_stripname_result" = "$n" || func_append rmfiles " $odir/$func_stripname_result.$libext"' # We do not specify a path in Import Files, so LIBPATH fires. shlibpath_overrides_runpath=yes ;; *,no) # both, prefer aix dynamic_linker="AIX lib.a[(]lib.so.V[)], lib.so.V[(]$shared_archive_member_spec.o[)]" library_names_spec='$libname$release.a $libname.a' soname_spec='$libname$release$shared_ext$major' # unpreferred sharedlib libNAME.so.V and symlink libNAME.so need extra handling postinstall_cmds='test -z "$dlname" || $install_shared_prog $dir/$dlname $destdir/$dlname~test -z "$tstripme" || test -z "$striplib" || $striplib $destdir/$dlname~test -n "$linkname" || linkname=$realname~func_stripname "" ".a" "$linkname"~(cd "$destdir" && $LN_S -f $dlname $func_stripname_result.so)' postuninstall_cmds='test -z "$dlname" || func_append rmfiles " $odir/$dlname"~for n in $old_library $library_names; do :; done~func_stripname "" ".a" "$n"~func_append rmfiles " $odir/$func_stripname_result.so"' ;; esac shlibpath_var=LIBPATH fi ;; amigaos*) case $host_cpu in powerpc) # Since July 2007 AmigaOS4 officially supports .so libraries. # When compiling the executable, add -use-dynld -Lsobjs: to the compileline. library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' ;; m68k) library_names_spec='$libname.ixlibrary $libname.a' # Create ${libname}_ixlibrary.a entries in /sys/libs. finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([[^/]]*\)\.ixlibrary$%\1%'\''`; $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' ;; esac ;; beos*) library_names_spec='$libname$shared_ext' dynamic_linker="$host_os ld.so" shlibpath_var=LIBRARY_PATH ;; bsdi[[45]]*) version_type=linux # correct to gnu/linux during the next big refactor need_version=no library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" # the default ld.so.conf also contains /usr/contrib/lib and # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow # libtool to hard-code these into programs ;; cygwin* | mingw* | pw32* | cegcc*) version_type=windows shrext_cmds=.dll need_version=no need_lib_prefix=no case $GCC,$cc_basename in yes,*) # gcc library_names_spec='$libname.dll.a' # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \$file`~ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; echo \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog $dir/$dlname \$dldir/$dlname~ chmod a+x \$dldir/$dlname~ if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; fi' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ dlpath=$dir/\$dldll~ $RM \$dlpath' shlibpath_overrides_runpath=yes case $host_os in cygwin*) # Cygwin DLLs use 'cyg' prefix rather than 'lib' soname_spec='`echo $libname | sed -e 's/^lib/cyg/'``echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext' m4_if([$1], [],[ sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api"]) ;; mingw* | cegcc*) # MinGW DLLs use traditional 'lib' prefix soname_spec='$libname`echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext' ;; pw32*) # pw32 DLLs use 'pw' prefix rather than 'lib' library_names_spec='`echo $libname | sed -e 's/^lib/pw/'``echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext' ;; esac dynamic_linker='Win32 ld.exe' ;; *,cl*) # Native MSVC libname_spec='$name' soname_spec='$libname`echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext' library_names_spec='$libname.dll.lib' case $build_os in mingw*) sys_lib_search_path_spec= lt_save_ifs=$IFS IFS=';' for lt_path in $LIB do IFS=$lt_save_ifs # Let DOS variable expansion print the short 8.3 style file name. lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"` sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path" done IFS=$lt_save_ifs # Convert to MSYS style. sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([[a-zA-Z]]\\):| /\\1|g' -e 's|^ ||'` ;; cygwin*) # Convert to unix form, then to dos form, then back to unix form # but this time dos style (no spaces!) so that the unix form looks # like /cygdrive/c/PROGRA~1:/cygdr... sys_lib_search_path_spec=`cygpath --path --unix "$LIB"` sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null` sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` ;; *) sys_lib_search_path_spec=$LIB if $ECHO "$sys_lib_search_path_spec" | [$GREP ';[c-zC-Z]:/' >/dev/null]; then # It is most probably a Windows format PATH. sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` else sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` fi # FIXME: find the short name or the path components, as spaces are # common. (e.g. "Program Files" -> "PROGRA~1") ;; esac # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \$file`~ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; echo \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog $dir/$dlname \$dldir/$dlname' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ dlpath=$dir/\$dldll~ $RM \$dlpath' shlibpath_overrides_runpath=yes dynamic_linker='Win32 link.exe' ;; *) # Assume MSVC wrapper library_names_spec='$libname`echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext $libname.lib' dynamic_linker='Win32 ld.exe' ;; esac # FIXME: first we should search . and the directory the executable is in shlibpath_var=PATH ;; darwin* | rhapsody*) dynamic_linker="$host_os dyld" version_type=darwin need_lib_prefix=no need_version=no library_names_spec='$libname$release$major$shared_ext $libname$shared_ext' soname_spec='$libname$release$major$shared_ext' shlibpath_overrides_runpath=yes shlibpath_var=DYLD_LIBRARY_PATH shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' m4_if([$1], [],[ sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib"]) sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' ;; dgux*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' shlibpath_var=LD_LIBRARY_PATH ;; freebsd* | dragonfly*) # DragonFly does not have aout. When/if they implement a new # versioning mechanism, adjust this. if test -x /usr/bin/objformat; then objformat=`/usr/bin/objformat` else case $host_os in freebsd[[23]].*) objformat=aout ;; *) objformat=elf ;; esac fi version_type=freebsd-$objformat case $version_type in freebsd-elf*) library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' need_version=no need_lib_prefix=no ;; freebsd-*) library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix' need_version=yes ;; esac shlibpath_var=LD_LIBRARY_PATH case $host_os in freebsd2.*) shlibpath_overrides_runpath=yes ;; freebsd3.[[01]]* | freebsdelf3.[[01]]*) shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; freebsd3.[[2-9]]* | freebsdelf3.[[2-9]]* | \ freebsd4.[[0-5]] | freebsdelf4.[[0-5]] | freebsd4.1.1 | freebsdelf4.1.1) shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; *) # from 4.6 on, and DragonFly shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; esac ;; haiku*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no dynamic_linker="$host_os runtime_loader" library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' shlibpath_var=LIBRARY_PATH shlibpath_overrides_runpath=no sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib' hardcode_into_libs=yes ;; hpux9* | hpux10* | hpux11*) # Give a soname corresponding to the major version so that dld.sl refuses to # link against other versions. version_type=sunos need_lib_prefix=no need_version=no case $host_cpu in ia64*) shrext_cmds='.so' hardcode_into_libs=yes dynamic_linker="$host_os dld.so" shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' if test 32 = "$HPUX_IA64_MODE"; then sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" sys_lib_dlsearch_path_spec=/usr/lib/hpux32 else sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" sys_lib_dlsearch_path_spec=/usr/lib/hpux64 fi ;; hppa*64*) shrext_cmds='.sl' hardcode_into_libs=yes dynamic_linker="$host_os dld.sl" shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; *) shrext_cmds='.sl' dynamic_linker="$host_os dld.sl" shlibpath_var=SHLIB_PATH shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' ;; esac # HP-UX runs *really* slowly unless shared libraries are mode 555, ... postinstall_cmds='chmod 555 $lib' # or fails outright, so override atomically: install_override_mode=555 ;; interix[[3-9]]*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; irix5* | irix6* | nonstopux*) case $host_os in nonstopux*) version_type=nonstopux ;; *) if test yes = "$lt_cv_prog_gnu_ld"; then version_type=linux # correct to gnu/linux during the next big refactor else version_type=irix fi ;; esac need_lib_prefix=no need_version=no soname_spec='$libname$release$shared_ext$major' library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$release$shared_ext $libname$shared_ext' case $host_os in irix5* | nonstopux*) libsuff= shlibsuff= ;; *) case $LD in # libtool.m4 will add one of these switches to LD *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") libsuff= shlibsuff= libmagic=32-bit;; *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") libsuff=32 shlibsuff=N32 libmagic=N32;; *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") libsuff=64 shlibsuff=64 libmagic=64-bit;; *) libsuff= shlibsuff= libmagic=never-match;; esac ;; esac shlibpath_var=LD_LIBRARY${shlibsuff}_PATH shlibpath_overrides_runpath=no sys_lib_search_path_spec="/usr/lib$libsuff /lib$libsuff /usr/local/lib$libsuff" sys_lib_dlsearch_path_spec="/usr/lib$libsuff /lib$libsuff" hardcode_into_libs=yes ;; # No shared lib support for Linux oldld, aout, or coff. linux*oldld* | linux*aout* | linux*coff*) dynamic_linker=no ;; linux*android*) version_type=none # Android doesn't support versioned libraries. need_lib_prefix=no need_version=no library_names_spec='$libname$release$shared_ext' soname_spec='$libname$release$shared_ext' finish_cmds= shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes # This implies no fast_install, which is unacceptable. # Some rework will be needed to allow for fast_install # before this can be enabled. hardcode_into_libs=yes dynamic_linker='Android linker' # Don't embed -rpath directories since the linker doesn't support them. _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' ;; # This must be glibc/ELF. linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no # Some binutils ld are patched to set DT_RUNPATH AC_CACHE_VAL([lt_cv_shlibpath_overrides_runpath], [lt_cv_shlibpath_overrides_runpath=no save_LDFLAGS=$LDFLAGS save_libdir=$libdir eval "libdir=/foo; wl=\"$_LT_TAGVAR(lt_prog_compiler_wl, $1)\"; \ LDFLAGS=\"\$LDFLAGS $_LT_TAGVAR(hardcode_libdir_flag_spec, $1)\"" AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])], [AS_IF([ ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null], [lt_cv_shlibpath_overrides_runpath=yes])]) LDFLAGS=$save_LDFLAGS libdir=$save_libdir ]) shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath # This implies no fast_install, which is unacceptable. # Some rework will be needed to allow for fast_install # before this can be enabled. hardcode_into_libs=yes # Ideally, we could use ldconfig to report *all* directores which are # searched for libraries, however this is still not possible. Aside from not # being certain /sbin/ldconfig is available, command # 'ldconfig -N -X -v | grep ^/' on 64bit Fedora does not report /usr/lib64, # even though it is searched at run-time. Try to do the best guess by # appending ld.so.conf contents (and includes) to the search path. if test -f /etc/ld.so.conf; then lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \[$]2)); skip = 1; } { if (!skip) print \[$]0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '` sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" fi # We used to test for /lib/ld.so.1 and disable shared libraries on # powerpc, because MkLinux only supported shared libraries with the # GNU dynamic linker. Since this was broken with cross compilers, # most powerpc-linux boxes support dynamic linking these days and # people can always --disable-shared, the test was removed, and we # assume the GNU/Linux dynamic linker is in use. dynamic_linker='GNU/Linux ld.so' ;; netbsdelf*-gnu) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='NetBSD ld.elf_so' ;; netbsd*) version_type=sunos need_lib_prefix=no need_version=no if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' dynamic_linker='NetBSD (a.out) ld.so' else library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' dynamic_linker='NetBSD ld.elf_so' fi shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; newsos6) version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes ;; *nto* | *qnx*) version_type=qnx need_lib_prefix=no need_version=no library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='ldqnx.so' ;; openbsd* | bitrig*) version_type=sunos sys_lib_dlsearch_path_spec=/usr/lib need_lib_prefix=no if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then need_version=no else need_version=yes fi library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes ;; os2*) libname_spec='$name' version_type=windows shrext_cmds=.dll need_version=no need_lib_prefix=no # OS/2 can only load a DLL with a base name of 8 characters or less. soname_spec='`test -n "$os2dllname" && libname="$os2dllname"; v=$($ECHO $release$versuffix | tr -d .-); n=$($ECHO $libname | cut -b -$((8 - ${#v})) | tr . _); $ECHO $n$v`$shared_ext' library_names_spec='${libname}_dll.$libext' dynamic_linker='OS/2 ld.exe' shlibpath_var=BEGINLIBPATH sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec postinstall_cmds='base_file=`basename \$file`~ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; $ECHO \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog $dir/$dlname \$dldir/$dlname~ chmod a+x \$dldir/$dlname~ if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; fi' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; $ECHO \$dlname'\''`~ dlpath=$dir/\$dldll~ $RM \$dlpath' ;; osf3* | osf4* | osf5*) version_type=osf need_lib_prefix=no need_version=no soname_spec='$libname$release$shared_ext$major' library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; rdos*) dynamic_linker=no ;; solaris*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes # ldd complains unless libraries are executable postinstall_cmds='chmod +x $lib' ;; sunos4*) version_type=sunos library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix' finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes if test yes = "$with_gnu_ld"; then need_lib_prefix=no fi need_version=yes ;; sysv4 | sysv4.3*) version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' shlibpath_var=LD_LIBRARY_PATH case $host_vendor in sni) shlibpath_overrides_runpath=no need_lib_prefix=no runpath_var=LD_RUN_PATH ;; siemens) need_lib_prefix=no ;; motorola) need_lib_prefix=no need_version=no shlibpath_overrides_runpath=no sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' ;; esac ;; sysv4*MP*) if test -d /usr/nec; then version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='$libname$shared_ext.$versuffix $libname$shared_ext.$major $libname$shared_ext' soname_spec='$libname$shared_ext.$major' shlibpath_var=LD_LIBRARY_PATH fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) version_type=sco need_lib_prefix=no need_version=no library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes if test yes = "$with_gnu_ld"; then sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' else sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' case $host_os in sco3.2v5*) sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" ;; esac fi sys_lib_dlsearch_path_spec='/usr/lib' ;; tpf*) # TPF is a cross-target only. Preferred cross-host = GNU/Linux. version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; uts4*) version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' shlibpath_var=LD_LIBRARY_PATH ;; *) dynamic_linker=no ;; esac AC_MSG_RESULT([$dynamic_linker]) test no = "$dynamic_linker" && can_build_shared=no variables_saved_for_relink="PATH $shlibpath_var $runpath_var" if test yes = "$GCC"; then variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" fi if test set = "${lt_cv_sys_lib_search_path_spec+set}"; then sys_lib_search_path_spec=$lt_cv_sys_lib_search_path_spec fi if test set = "${lt_cv_sys_lib_dlsearch_path_spec+set}"; then sys_lib_dlsearch_path_spec=$lt_cv_sys_lib_dlsearch_path_spec fi # remember unaugmented sys_lib_dlsearch_path content for libtool script decls... configure_time_dlsearch_path=$sys_lib_dlsearch_path_spec # ... but it needs LT_SYS_LIBRARY_PATH munging for other configure-time code func_munge_path_list sys_lib_dlsearch_path_spec "$LT_SYS_LIBRARY_PATH" # to be used as default LT_SYS_LIBRARY_PATH value in generated libtool configure_time_lt_sys_library_path=$LT_SYS_LIBRARY_PATH _LT_DECL([], [variables_saved_for_relink], [1], [Variables whose values should be saved in libtool wrapper scripts and restored at link time]) _LT_DECL([], [need_lib_prefix], [0], [Do we need the "lib" prefix for modules?]) _LT_DECL([], [need_version], [0], [Do we need a version for libraries?]) _LT_DECL([], [version_type], [0], [Library versioning type]) _LT_DECL([], [runpath_var], [0], [Shared library runtime path variable]) _LT_DECL([], [shlibpath_var], [0],[Shared library path variable]) _LT_DECL([], [shlibpath_overrides_runpath], [0], [Is shlibpath searched before the hard-coded library search path?]) _LT_DECL([], [libname_spec], [1], [Format of library name prefix]) _LT_DECL([], [library_names_spec], [1], [[List of archive names. First name is the real one, the rest are links. The last name is the one that the linker finds with -lNAME]]) _LT_DECL([], [soname_spec], [1], [[The coded name of the library, if different from the real name]]) _LT_DECL([], [install_override_mode], [1], [Permission mode override for installation of shared libraries]) _LT_DECL([], [postinstall_cmds], [2], [Command to use after installation of a shared archive]) _LT_DECL([], [postuninstall_cmds], [2], [Command to use after uninstallation of a shared archive]) _LT_DECL([], [finish_cmds], [2], [Commands used to finish a libtool library installation in a directory]) _LT_DECL([], [finish_eval], [1], [[As "finish_cmds", except a single script fragment to be evaled but not shown]]) _LT_DECL([], [hardcode_into_libs], [0], [Whether we should hardcode library paths into libraries]) _LT_DECL([], [sys_lib_search_path_spec], [2], [Compile-time system search path for libraries]) _LT_DECL([sys_lib_dlsearch_path_spec], [configure_time_dlsearch_path], [2], [Detected run-time system search path for libraries]) _LT_DECL([], [configure_time_lt_sys_library_path], [2], [Explicit LT_SYS_LIBRARY_PATH set during ./configure time]) ])# _LT_SYS_DYNAMIC_LINKER # _LT_PATH_TOOL_PREFIX(TOOL) # -------------------------- # find a file program that can recognize shared library AC_DEFUN([_LT_PATH_TOOL_PREFIX], [m4_require([_LT_DECL_EGREP])dnl AC_MSG_CHECKING([for $1]) AC_CACHE_VAL(lt_cv_path_MAGIC_CMD, [case $MAGIC_CMD in [[\\/*] | ?:[\\/]*]) lt_cv_path_MAGIC_CMD=$MAGIC_CMD # Let the user override the test with a path. ;; *) lt_save_MAGIC_CMD=$MAGIC_CMD lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR dnl $ac_dummy forces splitting on constant user-supplied paths. dnl POSIX.2 word splitting is done only on the output of word expansions, dnl not every word. This closes a longstanding sh security hole. ac_dummy="m4_if([$2], , $PATH, [$2])" for ac_dir in $ac_dummy; do IFS=$lt_save_ifs test -z "$ac_dir" && ac_dir=. if test -f "$ac_dir/$1"; then lt_cv_path_MAGIC_CMD=$ac_dir/"$1" if test -n "$file_magic_test_file"; then case $deplibs_check_method in "file_magic "*) file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` MAGIC_CMD=$lt_cv_path_MAGIC_CMD if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | $EGREP "$file_magic_regex" > /dev/null; then : else cat <<_LT_EOF 1>&2 *** Warning: the command libtool uses to detect shared libraries, *** $file_magic_cmd, produces output that libtool cannot recognize. *** The result is that libtool may fail to recognize shared libraries *** as such. This will affect the creation of libtool libraries that *** depend on shared libraries, but programs linked with such libtool *** libraries will work regardless of this problem. Nevertheless, you *** may want to report the problem to your system manager and/or to *** bug-libtool@gnu.org _LT_EOF fi ;; esac fi break fi done IFS=$lt_save_ifs MAGIC_CMD=$lt_save_MAGIC_CMD ;; esac]) MAGIC_CMD=$lt_cv_path_MAGIC_CMD if test -n "$MAGIC_CMD"; then AC_MSG_RESULT($MAGIC_CMD) else AC_MSG_RESULT(no) fi _LT_DECL([], [MAGIC_CMD], [0], [Used to examine libraries when file_magic_cmd begins with "file"])dnl ])# _LT_PATH_TOOL_PREFIX # Old name: AU_ALIAS([AC_PATH_TOOL_PREFIX], [_LT_PATH_TOOL_PREFIX]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_PATH_TOOL_PREFIX], []) # _LT_PATH_MAGIC # -------------- # find a file program that can recognize a shared library m4_defun([_LT_PATH_MAGIC], [_LT_PATH_TOOL_PREFIX(${ac_tool_prefix}file, /usr/bin$PATH_SEPARATOR$PATH) if test -z "$lt_cv_path_MAGIC_CMD"; then if test -n "$ac_tool_prefix"; then _LT_PATH_TOOL_PREFIX(file, /usr/bin$PATH_SEPARATOR$PATH) else MAGIC_CMD=: fi fi ])# _LT_PATH_MAGIC # LT_PATH_LD # ---------- # find the pathname to the GNU or non-GNU linker AC_DEFUN([LT_PATH_LD], [AC_REQUIRE([AC_PROG_CC])dnl AC_REQUIRE([AC_CANONICAL_HOST])dnl AC_REQUIRE([AC_CANONICAL_BUILD])dnl m4_require([_LT_DECL_SED])dnl m4_require([_LT_DECL_EGREP])dnl m4_require([_LT_PROG_ECHO_BACKSLASH])dnl AC_ARG_WITH([gnu-ld], [AS_HELP_STRING([--with-gnu-ld], [assume the C compiler uses GNU ld @<:@default=no@:>@])], [test no = "$withval" || with_gnu_ld=yes], [with_gnu_ld=no])dnl ac_prog=ld if test yes = "$GCC"; then # Check if gcc -print-prog-name=ld gives a path. AC_MSG_CHECKING([for ld used by $CC]) case $host in *-*-mingw*) # gcc leaves a trailing carriage return, which upsets mingw ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; *) ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; esac case $ac_prog in # Accept absolute paths. [[\\/]]* | ?:[[\\/]]*) re_direlt='/[[^/]][[^/]]*/\.\./' # Canonicalize the pathname of ld ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'` while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"` done test -z "$LD" && LD=$ac_prog ;; "") # If it fails, then pretend we aren't using GCC. ac_prog=ld ;; *) # If it is relative, then search for the first ld in PATH. with_gnu_ld=unknown ;; esac elif test yes = "$with_gnu_ld"; then AC_MSG_CHECKING([for GNU ld]) else AC_MSG_CHECKING([for non-GNU ld]) fi AC_CACHE_VAL(lt_cv_path_LD, [if test -z "$LD"; then lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR for ac_dir in $PATH; do IFS=$lt_save_ifs test -z "$ac_dir" && ac_dir=. if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then lt_cv_path_LD=$ac_dir/$ac_prog # Check to see if the program is GNU ld. I'd rather use --version, # but apparently some variants of GNU ld only accept -v. # Break only if it was the GNU/non-GNU ld that we prefer. case `"$lt_cv_path_LD" -v 2>&1 &1 conftest.i cat conftest.i conftest.i >conftest2.i : ${lt_DD:=$DD} AC_PATH_PROGS_FEATURE_CHECK([lt_DD], [dd], [if "$ac_path_lt_DD" bs=32 count=1 conftest.out 2>/dev/null; then cmp -s conftest.i conftest.out \ && ac_cv_path_lt_DD="$ac_path_lt_DD" ac_path_lt_DD_found=: fi]) rm -f conftest.i conftest2.i conftest.out]) ])# _LT_PATH_DD # _LT_CMD_TRUNCATE # ---------------- # find command to truncate a binary pipe m4_defun([_LT_CMD_TRUNCATE], [m4_require([_LT_PATH_DD]) AC_CACHE_CHECK([how to truncate binary pipes], [lt_cv_truncate_bin], [printf 0123456789abcdef0123456789abcdef >conftest.i cat conftest.i conftest.i >conftest2.i lt_cv_truncate_bin= if "$ac_cv_path_lt_DD" bs=32 count=1 conftest.out 2>/dev/null; then cmp -s conftest.i conftest.out \ && lt_cv_truncate_bin="$ac_cv_path_lt_DD bs=4096 count=1" fi rm -f conftest.i conftest2.i conftest.out test -z "$lt_cv_truncate_bin" && lt_cv_truncate_bin="$SED -e 4q"]) _LT_DECL([lt_truncate_bin], [lt_cv_truncate_bin], [1], [Command to truncate a binary pipe]) ])# _LT_CMD_TRUNCATE # _LT_CHECK_MAGIC_METHOD # ---------------------- # how to check for library dependencies # -- PORTME fill in with the dynamic library characteristics m4_defun([_LT_CHECK_MAGIC_METHOD], [m4_require([_LT_DECL_EGREP]) m4_require([_LT_DECL_OBJDUMP]) AC_CACHE_CHECK([how to recognize dependent libraries], lt_cv_deplibs_check_method, [lt_cv_file_magic_cmd='$MAGIC_CMD' lt_cv_file_magic_test_file= lt_cv_deplibs_check_method='unknown' # Need to set the preceding variable on all platforms that support # interlibrary dependencies. # 'none' -- dependencies not supported. # 'unknown' -- same as none, but documents that we really don't know. # 'pass_all' -- all dependencies passed with no checks. # 'test_compile' -- check by making test program. # 'file_magic [[regex]]' -- check by looking for files in library path # that responds to the $file_magic_cmd with a given extended regex. # If you have 'file' or equivalent on your system and you're not sure # whether 'pass_all' will *always* work, you probably want this one. case $host_os in aix[[4-9]]*) lt_cv_deplibs_check_method=pass_all ;; beos*) lt_cv_deplibs_check_method=pass_all ;; bsdi[[45]]*) lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib)' lt_cv_file_magic_cmd='/usr/bin/file -L' lt_cv_file_magic_test_file=/shlib/libc.so ;; cygwin*) # func_win32_libid is a shell function defined in ltmain.sh lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' lt_cv_file_magic_cmd='func_win32_libid' ;; mingw* | pw32*) # Base MSYS/MinGW do not provide the 'file' command needed by # func_win32_libid shell function, so use a weaker test based on 'objdump', # unless we find 'file', for example because we are cross-compiling. if ( file / ) >/dev/null 2>&1; then lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' lt_cv_file_magic_cmd='func_win32_libid' else # Keep this pattern in sync with the one in func_win32_libid. lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' lt_cv_file_magic_cmd='$OBJDUMP -f' fi ;; cegcc*) # use the weaker test based on 'objdump'. See mingw*. lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?' lt_cv_file_magic_cmd='$OBJDUMP -f' ;; darwin* | rhapsody*) lt_cv_deplibs_check_method=pass_all ;; freebsd* | dragonfly*) if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then case $host_cpu in i*86 ) # Not sure whether the presence of OpenBSD here was a mistake. # Let's accept both of them until this is cleared up. lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[[3-9]]86 (compact )?demand paged shared library' lt_cv_file_magic_cmd=/usr/bin/file lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` ;; esac else lt_cv_deplibs_check_method=pass_all fi ;; haiku*) lt_cv_deplibs_check_method=pass_all ;; hpux10.20* | hpux11*) lt_cv_file_magic_cmd=/usr/bin/file case $host_cpu in ia64*) lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|ELF-[[0-9]][[0-9]]) shared object file - IA64' lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so ;; hppa*64*) [lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF[ -][0-9][0-9])(-bit)?( [LM]SB)? shared object( file)?[, -]* PA-RISC [0-9]\.[0-9]'] lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl ;; *) lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|PA-RISC[[0-9]]\.[[0-9]]) shared library' lt_cv_file_magic_test_file=/usr/lib/libc.sl ;; esac ;; interix[[3-9]]*) # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|\.a)$' ;; irix5* | irix6* | nonstopux*) case $LD in *-32|*"-32 ") libmagic=32-bit;; *-n32|*"-n32 ") libmagic=N32;; *-64|*"-64 ") libmagic=64-bit;; *) libmagic=never-match;; esac lt_cv_deplibs_check_method=pass_all ;; # This must be glibc/ELF. linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) lt_cv_deplibs_check_method=pass_all ;; netbsd* | netbsdelf*-gnu) if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$' else lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|_pic\.a)$' fi ;; newos6*) lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (executable|dynamic lib)' lt_cv_file_magic_cmd=/usr/bin/file lt_cv_file_magic_test_file=/usr/lib/libnls.so ;; *nto* | *qnx*) lt_cv_deplibs_check_method=pass_all ;; openbsd* | bitrig*) if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|\.so|_pic\.a)$' else lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$' fi ;; osf3* | osf4* | osf5*) lt_cv_deplibs_check_method=pass_all ;; rdos*) lt_cv_deplibs_check_method=pass_all ;; solaris*) lt_cv_deplibs_check_method=pass_all ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) lt_cv_deplibs_check_method=pass_all ;; sysv4 | sysv4.3*) case $host_vendor in motorola) lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib) M[[0-9]][[0-9]]* Version [[0-9]]' lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*` ;; ncr) lt_cv_deplibs_check_method=pass_all ;; sequent) lt_cv_file_magic_cmd='/bin/file' lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB (shared object|dynamic lib )' ;; sni) lt_cv_file_magic_cmd='/bin/file' lt_cv_deplibs_check_method="file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB dynamic lib" lt_cv_file_magic_test_file=/lib/libc.so ;; siemens) lt_cv_deplibs_check_method=pass_all ;; pc) lt_cv_deplibs_check_method=pass_all ;; esac ;; tpf*) lt_cv_deplibs_check_method=pass_all ;; os2*) lt_cv_deplibs_check_method=pass_all ;; esac ]) file_magic_glob= want_nocaseglob=no if test "$build" = "$host"; then case $host_os in mingw* | pw32*) if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then want_nocaseglob=yes else file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[[\1]]\/[[\1]]\/g;/g"` fi ;; esac fi file_magic_cmd=$lt_cv_file_magic_cmd deplibs_check_method=$lt_cv_deplibs_check_method test -z "$deplibs_check_method" && deplibs_check_method=unknown _LT_DECL([], [deplibs_check_method], [1], [Method to check whether dependent libraries are shared objects]) _LT_DECL([], [file_magic_cmd], [1], [Command to use when deplibs_check_method = "file_magic"]) _LT_DECL([], [file_magic_glob], [1], [How to find potential files when deplibs_check_method = "file_magic"]) _LT_DECL([], [want_nocaseglob], [1], [Find potential files using nocaseglob when deplibs_check_method = "file_magic"]) ])# _LT_CHECK_MAGIC_METHOD # LT_PATH_NM # ---------- # find the pathname to a BSD- or MS-compatible name lister AC_DEFUN([LT_PATH_NM], [AC_REQUIRE([AC_PROG_CC])dnl AC_CACHE_CHECK([for BSD- or MS-compatible name lister (nm)], lt_cv_path_NM, [if test -n "$NM"; then # Let the user override the test. lt_cv_path_NM=$NM else lt_nm_to_check=${ac_tool_prefix}nm if test -n "$ac_tool_prefix" && test "$build" = "$host"; then lt_nm_to_check="$lt_nm_to_check nm" fi for lt_tmp_nm in $lt_nm_to_check; do lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do IFS=$lt_save_ifs test -z "$ac_dir" && ac_dir=. tmp_nm=$ac_dir/$lt_tmp_nm if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext"; then # Check to see if the nm accepts a BSD-compat flag. # Adding the 'sed 1q' prevents false positives on HP-UX, which says: # nm: unknown option "B" ignored # Tru64's nm complains that /dev/null is an invalid object file # MSYS converts /dev/null to NUL, MinGW nm treats NUL as empty case $build_os in mingw*) lt_bad_file=conftest.nm/nofile ;; *) lt_bad_file=/dev/null ;; esac case `"$tmp_nm" -B $lt_bad_file 2>&1 | sed '1q'` in *$lt_bad_file* | *'Invalid file or object type'*) lt_cv_path_NM="$tmp_nm -B" break 2 ;; *) case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in */dev/null*) lt_cv_path_NM="$tmp_nm -p" break 2 ;; *) lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but continue # so that we can try to find one that supports BSD flags ;; esac ;; esac fi done IFS=$lt_save_ifs done : ${lt_cv_path_NM=no} fi]) if test no != "$lt_cv_path_NM"; then NM=$lt_cv_path_NM else # Didn't find any BSD compatible name lister, look for dumpbin. if test -n "$DUMPBIN"; then : # Let the user override the test. else AC_CHECK_TOOLS(DUMPBIN, [dumpbin "link -dump"], :) case `$DUMPBIN -symbols -headers /dev/null 2>&1 | sed '1q'` in *COFF*) DUMPBIN="$DUMPBIN -symbols -headers" ;; *) DUMPBIN=: ;; esac fi AC_SUBST([DUMPBIN]) if test : != "$DUMPBIN"; then NM=$DUMPBIN fi fi test -z "$NM" && NM=nm AC_SUBST([NM]) _LT_DECL([], [NM], [1], [A BSD- or MS-compatible name lister])dnl AC_CACHE_CHECK([the name lister ($NM) interface], [lt_cv_nm_interface], [lt_cv_nm_interface="BSD nm" echo "int some_variable = 0;" > conftest.$ac_ext (eval echo "\"\$as_me:$LINENO: $ac_compile\"" >&AS_MESSAGE_LOG_FD) (eval "$ac_compile" 2>conftest.err) cat conftest.err >&AS_MESSAGE_LOG_FD (eval echo "\"\$as_me:$LINENO: $NM \\\"conftest.$ac_objext\\\"\"" >&AS_MESSAGE_LOG_FD) (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) cat conftest.err >&AS_MESSAGE_LOG_FD (eval echo "\"\$as_me:$LINENO: output\"" >&AS_MESSAGE_LOG_FD) cat conftest.out >&AS_MESSAGE_LOG_FD if $GREP 'External.*some_variable' conftest.out > /dev/null; then lt_cv_nm_interface="MS dumpbin" fi rm -f conftest*]) ])# LT_PATH_NM # Old names: AU_ALIAS([AM_PROG_NM], [LT_PATH_NM]) AU_ALIAS([AC_PROG_NM], [LT_PATH_NM]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AM_PROG_NM], []) dnl AC_DEFUN([AC_PROG_NM], []) # _LT_CHECK_SHAREDLIB_FROM_LINKLIB # -------------------------------- # how to determine the name of the shared library # associated with a specific link library. # -- PORTME fill in with the dynamic library characteristics m4_defun([_LT_CHECK_SHAREDLIB_FROM_LINKLIB], [m4_require([_LT_DECL_EGREP]) m4_require([_LT_DECL_OBJDUMP]) m4_require([_LT_DECL_DLLTOOL]) AC_CACHE_CHECK([how to associate runtime and link libraries], lt_cv_sharedlib_from_linklib_cmd, [lt_cv_sharedlib_from_linklib_cmd='unknown' case $host_os in cygwin* | mingw* | pw32* | cegcc*) # two different shell functions defined in ltmain.sh; # decide which one to use based on capabilities of $DLLTOOL case `$DLLTOOL --help 2>&1` in *--identify-strict*) lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib ;; *) lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback ;; esac ;; *) # fallback: assume linklib IS sharedlib lt_cv_sharedlib_from_linklib_cmd=$ECHO ;; esac ]) sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO _LT_DECL([], [sharedlib_from_linklib_cmd], [1], [Command to associate shared and link libraries]) ])# _LT_CHECK_SHAREDLIB_FROM_LINKLIB # _LT_PATH_MANIFEST_TOOL # ---------------------- # locate the manifest tool m4_defun([_LT_PATH_MANIFEST_TOOL], [AC_CHECK_TOOL(MANIFEST_TOOL, mt, :) test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt AC_CACHE_CHECK([if $MANIFEST_TOOL is a manifest tool], [lt_cv_path_mainfest_tool], [lt_cv_path_mainfest_tool=no echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&AS_MESSAGE_LOG_FD $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out cat conftest.err >&AS_MESSAGE_LOG_FD if $GREP 'Manifest Tool' conftest.out > /dev/null; then lt_cv_path_mainfest_tool=yes fi rm -f conftest*]) if test yes != "$lt_cv_path_mainfest_tool"; then MANIFEST_TOOL=: fi _LT_DECL([], [MANIFEST_TOOL], [1], [Manifest tool])dnl ])# _LT_PATH_MANIFEST_TOOL # _LT_DLL_DEF_P([FILE]) # --------------------- # True iff FILE is a Windows DLL '.def' file. # Keep in sync with func_dll_def_p in the libtool script AC_DEFUN([_LT_DLL_DEF_P], [dnl test DEF = "`$SED -n dnl -e '\''s/^[[ ]]*//'\'' dnl Strip leading whitespace -e '\''/^\(;.*\)*$/d'\'' dnl Delete empty lines and comments -e '\''s/^\(EXPORTS\|LIBRARY\)\([[ ]].*\)*$/DEF/p'\'' dnl -e q dnl Only consider the first "real" line $1`" dnl ])# _LT_DLL_DEF_P # LT_LIB_M # -------- # check for math library AC_DEFUN([LT_LIB_M], [AC_REQUIRE([AC_CANONICAL_HOST])dnl LIBM= case $host in *-*-beos* | *-*-cegcc* | *-*-cygwin* | *-*-haiku* | *-*-pw32* | *-*-darwin*) # These system don't have libm, or don't need it ;; *-ncr-sysv4.3*) AC_CHECK_LIB(mw, _mwvalidcheckl, LIBM=-lmw) AC_CHECK_LIB(m, cos, LIBM="$LIBM -lm") ;; *) AC_CHECK_LIB(m, cos, LIBM=-lm) ;; esac AC_SUBST([LIBM]) ])# LT_LIB_M # Old name: AU_ALIAS([AC_CHECK_LIBM], [LT_LIB_M]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_CHECK_LIBM], []) # _LT_COMPILER_NO_RTTI([TAGNAME]) # ------------------------------- m4_defun([_LT_COMPILER_NO_RTTI], [m4_require([_LT_TAG_COMPILER])dnl _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)= if test yes = "$GCC"; then case $cc_basename in nvcc*) _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -Xcompiler -fno-builtin' ;; *) _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' ;; esac _LT_COMPILER_OPTION([if $compiler supports -fno-rtti -fno-exceptions], lt_cv_prog_compiler_rtti_exceptions, [-fno-rtti -fno-exceptions], [], [_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)="$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) -fno-rtti -fno-exceptions"]) fi _LT_TAGDECL([no_builtin_flag], [lt_prog_compiler_no_builtin_flag], [1], [Compiler flag to turn off builtin functions]) ])# _LT_COMPILER_NO_RTTI # _LT_CMD_GLOBAL_SYMBOLS # ---------------------- m4_defun([_LT_CMD_GLOBAL_SYMBOLS], [AC_REQUIRE([AC_CANONICAL_HOST])dnl AC_REQUIRE([AC_PROG_CC])dnl AC_REQUIRE([AC_PROG_AWK])dnl AC_REQUIRE([LT_PATH_NM])dnl AC_REQUIRE([LT_PATH_LD])dnl m4_require([_LT_DECL_SED])dnl m4_require([_LT_DECL_EGREP])dnl m4_require([_LT_TAG_COMPILER])dnl # Check for command to grab the raw symbol name followed by C symbol from nm. AC_MSG_CHECKING([command to parse $NM output from $compiler object]) AC_CACHE_VAL([lt_cv_sys_global_symbol_pipe], [ # These are sane defaults that work on at least a few old systems. # [They come from Ultrix. What could be older than Ultrix?!! ;)] # Character class describing NM global symbol codes. symcode='[[BCDEGRST]]' # Regexp to match symbols that can be accessed directly from C. sympat='\([[_A-Za-z]][[_A-Za-z0-9]]*\)' # Define system-specific variables. case $host_os in aix*) symcode='[[BCDT]]' ;; cygwin* | mingw* | pw32* | cegcc*) symcode='[[ABCDGISTW]]' ;; hpux*) if test ia64 = "$host_cpu"; then symcode='[[ABCDEGRST]]' fi ;; irix* | nonstopux*) symcode='[[BCDEGRST]]' ;; osf*) symcode='[[BCDEGQRST]]' ;; solaris*) symcode='[[BDRT]]' ;; sco3.2v5*) symcode='[[DT]]' ;; sysv4.2uw2*) symcode='[[DT]]' ;; sysv5* | sco5v6* | unixware* | OpenUNIX*) symcode='[[ABDT]]' ;; sysv4) symcode='[[DFNSTU]]' ;; esac # If we're using GNU nm, then use its standard symbol codes. case `$NM -V 2>&1` in *GNU* | *'with BFD'*) symcode='[[ABCDGIRSTW]]' ;; esac if test "$lt_cv_nm_interface" = "MS dumpbin"; then # Gets list of data symbols to import. lt_cv_sys_global_symbol_to_import="sed -n -e 's/^I .* \(.*\)$/\1/p'" # Adjust the below global symbol transforms to fixup imported variables. lt_cdecl_hook=" -e 's/^I .* \(.*\)$/extern __declspec(dllimport) char \1;/p'" lt_c_name_hook=" -e 's/^I .* \(.*\)$/ {\"\1\", (void *) 0},/p'" lt_c_name_lib_hook="\ -e 's/^I .* \(lib.*\)$/ {\"\1\", (void *) 0},/p'\ -e 's/^I .* \(.*\)$/ {\"lib\1\", (void *) 0},/p'" else # Disable hooks by default. lt_cv_sys_global_symbol_to_import= lt_cdecl_hook= lt_c_name_hook= lt_c_name_lib_hook= fi # Transform an extracted symbol line into a proper C declaration. # Some systems (esp. on ia64) link data and code symbols differently, # so use this general approach. lt_cv_sys_global_symbol_to_cdecl="sed -n"\ $lt_cdecl_hook\ " -e 's/^T .* \(.*\)$/extern int \1();/p'"\ " -e 's/^$symcode$symcode* .* \(.*\)$/extern char \1;/p'" # Transform an extracted symbol line into symbol name and symbol address lt_cv_sys_global_symbol_to_c_name_address="sed -n"\ $lt_c_name_hook\ " -e 's/^: \(.*\) .*$/ {\"\1\", (void *) 0},/p'"\ " -e 's/^$symcode$symcode* .* \(.*\)$/ {\"\1\", (void *) \&\1},/p'" # Transform an extracted symbol line into symbol name with lib prefix and # symbol address. lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n"\ $lt_c_name_lib_hook\ " -e 's/^: \(.*\) .*$/ {\"\1\", (void *) 0},/p'"\ " -e 's/^$symcode$symcode* .* \(lib.*\)$/ {\"\1\", (void *) \&\1},/p'"\ " -e 's/^$symcode$symcode* .* \(.*\)$/ {\"lib\1\", (void *) \&\1},/p'" # Handle CRLF in mingw tool chain opt_cr= case $build_os in mingw*) opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp ;; esac # Try without a prefix underscore, then with it. for ac_symprfx in "" "_"; do # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol. symxfrm="\\1 $ac_symprfx\\2 \\2" # Write the raw and C identifiers. if test "$lt_cv_nm_interface" = "MS dumpbin"; then # Fake it for dumpbin and say T for any non-static function, # D for any global variable and I for any imported variable. # Also find C++ and __fastcall symbols from MSVC++, # which start with @ or ?. lt_cv_sys_global_symbol_pipe="$AWK ['"\ " {last_section=section; section=\$ 3};"\ " /^COFF SYMBOL TABLE/{for(i in hide) delete hide[i]};"\ " /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\ " /^ *Symbol name *: /{split(\$ 0,sn,\":\"); si=substr(sn[2],2)};"\ " /^ *Type *: code/{print \"T\",si,substr(si,length(prfx))};"\ " /^ *Type *: data/{print \"I\",si,substr(si,length(prfx))};"\ " \$ 0!~/External *\|/{next};"\ " / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\ " {if(hide[section]) next};"\ " {f=\"D\"}; \$ 0~/\(\).*\|/{f=\"T\"};"\ " {split(\$ 0,a,/\||\r/); split(a[2],s)};"\ " s[1]~/^[@?]/{print f,s[1],s[1]; next};"\ " s[1]~prfx {split(s[1],t,\"@\"); print f,t[1],substr(t[1],length(prfx))}"\ " ' prfx=^$ac_symprfx]" else lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[[ ]]\($symcode$symcode*\)[[ ]][[ ]]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" fi lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'" # Check to see that the pipe works correctly. pipe_works=no rm -f conftest* cat > conftest.$ac_ext <<_LT_EOF #ifdef __cplusplus extern "C" { #endif char nm_test_var; void nm_test_func(void); void nm_test_func(void){} #ifdef __cplusplus } #endif int main(){nm_test_var='a';nm_test_func();return(0);} _LT_EOF if AC_TRY_EVAL(ac_compile); then # Now try to grab the symbols. nlist=conftest.nm if AC_TRY_EVAL(NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist) && test -s "$nlist"; then # Try sorting and uniquifying the output. if sort "$nlist" | uniq > "$nlist"T; then mv -f "$nlist"T "$nlist" else rm -f "$nlist"T fi # Make sure that we snagged all the symbols we need. if $GREP ' nm_test_var$' "$nlist" >/dev/null; then if $GREP ' nm_test_func$' "$nlist" >/dev/null; then cat <<_LT_EOF > conftest.$ac_ext /* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ #if defined _WIN32 || defined __CYGWIN__ || defined _WIN32_WCE /* DATA imports from DLLs on WIN32 can't be const, because runtime relocations are performed -- see ld's documentation on pseudo-relocs. */ # define LT@&t@_DLSYM_CONST #elif defined __osf__ /* This system does not cope well with relocations in const data. */ # define LT@&t@_DLSYM_CONST #else # define LT@&t@_DLSYM_CONST const #endif #ifdef __cplusplus extern "C" { #endif _LT_EOF # Now generate the symbol file. eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext' cat <<_LT_EOF >> conftest.$ac_ext /* The mapping between symbol names and symbols. */ LT@&t@_DLSYM_CONST struct { const char *name; void *address; } lt__PROGRAM__LTX_preloaded_symbols[[]] = { { "@PROGRAM@", (void *) 0 }, _LT_EOF $SED "s/^$symcode$symcode* .* \(.*\)$/ {\"\1\", (void *) \&\1},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext cat <<\_LT_EOF >> conftest.$ac_ext {0, (void *) 0} }; /* This works around a problem in FreeBSD linker */ #ifdef FREEBSD_WORKAROUND static const void *lt_preloaded_setup() { return lt__PROGRAM__LTX_preloaded_symbols; } #endif #ifdef __cplusplus } #endif _LT_EOF # Now try linking the two files. mv conftest.$ac_objext conftstm.$ac_objext lt_globsym_save_LIBS=$LIBS lt_globsym_save_CFLAGS=$CFLAGS LIBS=conftstm.$ac_objext CFLAGS="$CFLAGS$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)" if AC_TRY_EVAL(ac_link) && test -s conftest$ac_exeext; then pipe_works=yes fi LIBS=$lt_globsym_save_LIBS CFLAGS=$lt_globsym_save_CFLAGS else echo "cannot find nm_test_func in $nlist" >&AS_MESSAGE_LOG_FD fi else echo "cannot find nm_test_var in $nlist" >&AS_MESSAGE_LOG_FD fi else echo "cannot run $lt_cv_sys_global_symbol_pipe" >&AS_MESSAGE_LOG_FD fi else echo "$progname: failed program was:" >&AS_MESSAGE_LOG_FD cat conftest.$ac_ext >&5 fi rm -rf conftest* conftst* # Do not use the global_symbol_pipe unless it works. if test yes = "$pipe_works"; then break else lt_cv_sys_global_symbol_pipe= fi done ]) if test -z "$lt_cv_sys_global_symbol_pipe"; then lt_cv_sys_global_symbol_to_cdecl= fi if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then AC_MSG_RESULT(failed) else AC_MSG_RESULT(ok) fi # Response file support. if test "$lt_cv_nm_interface" = "MS dumpbin"; then nm_file_list_spec='@' elif $NM --help 2>/dev/null | grep '[[@]]FILE' >/dev/null; then nm_file_list_spec='@' fi _LT_DECL([global_symbol_pipe], [lt_cv_sys_global_symbol_pipe], [1], [Take the output of nm and produce a listing of raw symbols and C names]) _LT_DECL([global_symbol_to_cdecl], [lt_cv_sys_global_symbol_to_cdecl], [1], [Transform the output of nm in a proper C declaration]) _LT_DECL([global_symbol_to_import], [lt_cv_sys_global_symbol_to_import], [1], [Transform the output of nm into a list of symbols to manually relocate]) _LT_DECL([global_symbol_to_c_name_address], [lt_cv_sys_global_symbol_to_c_name_address], [1], [Transform the output of nm in a C name address pair]) _LT_DECL([global_symbol_to_c_name_address_lib_prefix], [lt_cv_sys_global_symbol_to_c_name_address_lib_prefix], [1], [Transform the output of nm in a C name address pair when lib prefix is needed]) _LT_DECL([nm_interface], [lt_cv_nm_interface], [1], [The name lister interface]) _LT_DECL([], [nm_file_list_spec], [1], [Specify filename containing input files for $NM]) ]) # _LT_CMD_GLOBAL_SYMBOLS # _LT_COMPILER_PIC([TAGNAME]) # --------------------------- m4_defun([_LT_COMPILER_PIC], [m4_require([_LT_TAG_COMPILER])dnl _LT_TAGVAR(lt_prog_compiler_wl, $1)= _LT_TAGVAR(lt_prog_compiler_pic, $1)= _LT_TAGVAR(lt_prog_compiler_static, $1)= m4_if([$1], [CXX], [ # C++ specific cases for pic, static, wl, etc. if test yes = "$GXX"; then _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' case $host_os in aix*) # All AIX code is PIC. if test ia64 = "$host_cpu"; then # AIX 5 now supports IA64 processor _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' fi _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; m68k) # FIXME: we need at least 68020 code to build shared libraries, but # adding the '-m68020' flag to GCC prevents building anything better, # like '-m68040'. _LT_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4' ;; esac ;; beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; mingw* | cygwin* | os2* | pw32* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). # Although the cygwin gcc ignores -fPIC, still need this for old-style # (--disable-auto-import) libraries m4_if([$1], [GCJ], [], [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) case $host_os in os2*) _LT_TAGVAR(lt_prog_compiler_static, $1)='$wl-static' ;; esac ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' ;; *djgpp*) # DJGPP does not support shared libraries at all _LT_TAGVAR(lt_prog_compiler_pic, $1)= ;; haiku*) # PIC is the default for Haiku. # The "-static" flag exists, but is broken. _LT_TAGVAR(lt_prog_compiler_static, $1)= ;; interix[[3-9]]*) # Interix 3.x gcc -fpic/-fPIC options generate broken code. # Instead, we relocate shared libraries at runtime. ;; sysv4*MP*) if test -d /usr/nec; then _LT_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic fi ;; hpux*) # PIC is the default for 64-bit PA HP-UX, but not for 32-bit # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag # sets the default TLS model and affects inlining. case $host_cpu in hppa*64*) ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; esac ;; *qnx* | *nto*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; esac else case $host_os in aix[[4-9]]*) # All AIX code is PIC. if test ia64 = "$host_cpu"; then # AIX 5 now supports IA64 processor _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' else _LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp' fi ;; chorus*) case $cc_basename in cxch68*) # Green Hills C++ Compiler # _LT_TAGVAR(lt_prog_compiler_static, $1)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a" ;; esac ;; mingw* | cygwin* | os2* | pw32* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). m4_if([$1], [GCJ], [], [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) ;; dgux*) case $cc_basename in ec++*) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' ;; ghcx*) # Green Hills C++ Compiler _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' ;; *) ;; esac ;; freebsd* | dragonfly*) # FreeBSD uses GNU C++ ;; hpux9* | hpux10* | hpux11*) case $cc_basename in CC*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_static, $1)='$wl-a ${wl}archive' if test ia64 != "$host_cpu"; then _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' fi ;; aCC*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_static, $1)='$wl-a ${wl}archive' case $host_cpu in hppa*64*|ia64*) # +Z the default ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' ;; esac ;; *) ;; esac ;; interix*) # This is c89, which is MS Visual C++ (no shared libs) # Anyone wants to do a port? ;; irix5* | irix6* | nonstopux*) case $cc_basename in CC*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' # CC pic flag -KPIC is the default. ;; *) ;; esac ;; linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) case $cc_basename in KCC*) # KAI C++ Compiler _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; ecpc* ) # old Intel C++ for x86_64, which still supported -KPIC. _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' ;; icpc* ) # Intel C++, used to be incompatible with GCC. # ICC 10 doesn't accept -KPIC any more. _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' ;; pgCC* | pgcpp*) # Portland Group C++ compiler _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; cxx*) # Compaq C++ # Make sure the PIC flag is empty. It appears that all Alpha # Linux and Compaq Tru64 Unix objects are PIC. _LT_TAGVAR(lt_prog_compiler_pic, $1)= _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; xlc* | xlC* | bgxl[[cC]]* | mpixl[[cC]]*) # IBM XL 8.0, 9.0 on PPC and BlueGene _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink' ;; *) case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C++ 5.9 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' ;; esac ;; esac ;; lynxos*) ;; m88k*) ;; mvs*) case $cc_basename in cxx*) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-W c,exportall' ;; *) ;; esac ;; netbsd* | netbsdelf*-gnu) ;; *qnx* | *nto*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' ;; osf3* | osf4* | osf5*) case $cc_basename in KCC*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,' ;; RCC*) # Rational C++ 2.4.1 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' ;; cxx*) # Digital/Compaq C++ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' # Make sure the PIC flag is empty. It appears that all Alpha # Linux and Compaq Tru64 Unix objects are PIC. _LT_TAGVAR(lt_prog_compiler_pic, $1)= _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; *) ;; esac ;; psos*) ;; solaris*) case $cc_basename in CC* | sunCC*) # Sun C++ 4.2, 5.x and Centerline C++ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' ;; gcx*) # Green Hills C++ Compiler _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' ;; *) ;; esac ;; sunos4*) case $cc_basename in CC*) # Sun C++ 4.x _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; lcc*) # Lucid _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' ;; *) ;; esac ;; sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) case $cc_basename in CC*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; esac ;; tandem*) case $cc_basename in NCC*) # NonStop-UX NCC 3.20 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' ;; *) ;; esac ;; vxworks*) ;; *) _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no ;; esac fi ], [ if test yes = "$GCC"; then _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' case $host_os in aix*) # All AIX code is PIC. if test ia64 = "$host_cpu"; then # AIX 5 now supports IA64 processor _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' fi _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; m68k) # FIXME: we need at least 68020 code to build shared libraries, but # adding the '-m68020' flag to GCC prevents building anything better, # like '-m68040'. _LT_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4' ;; esac ;; beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; mingw* | cygwin* | pw32* | os2* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). # Although the cygwin gcc ignores -fPIC, still need this for old-style # (--disable-auto-import) libraries m4_if([$1], [GCJ], [], [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) case $host_os in os2*) _LT_TAGVAR(lt_prog_compiler_static, $1)='$wl-static' ;; esac ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' ;; haiku*) # PIC is the default for Haiku. # The "-static" flag exists, but is broken. _LT_TAGVAR(lt_prog_compiler_static, $1)= ;; hpux*) # PIC is the default for 64-bit PA HP-UX, but not for 32-bit # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag # sets the default TLS model and affects inlining. case $host_cpu in hppa*64*) # +Z the default ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; esac ;; interix[[3-9]]*) # Interix 3.x gcc -fpic/-fPIC options generate broken code. # Instead, we relocate shared libraries at runtime. ;; msdosdjgpp*) # Just because we use GCC doesn't mean we suddenly get shared libraries # on systems that don't support them. _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no enable_shared=no ;; *nto* | *qnx*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' ;; sysv4*MP*) if test -d /usr/nec; then _LT_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic fi ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; esac case $cc_basename in nvcc*) # Cuda Compiler Driver 2.2 _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Xlinker ' if test -n "$_LT_TAGVAR(lt_prog_compiler_pic, $1)"; then _LT_TAGVAR(lt_prog_compiler_pic, $1)="-Xcompiler $_LT_TAGVAR(lt_prog_compiler_pic, $1)" fi ;; esac else # PORTME Check for flag to pass linker flags through the system compiler. case $host_os in aix*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' if test ia64 = "$host_cpu"; then # AIX 5 now supports IA64 processor _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' else _LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp' fi ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' case $cc_basename in nagfor*) # NAG Fortran compiler _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,-Wl,,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; esac ;; mingw* | cygwin* | pw32* | os2* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). m4_if([$1], [GCJ], [], [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) case $host_os in os2*) _LT_TAGVAR(lt_prog_compiler_static, $1)='$wl-static' ;; esac ;; hpux9* | hpux10* | hpux11*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but # not for PA HP-UX. case $host_cpu in hppa*64*|ia64*) # +Z the default ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' ;; esac # Is there a better lt_prog_compiler_static that works with the bundled CC? _LT_TAGVAR(lt_prog_compiler_static, $1)='$wl-a ${wl}archive' ;; irix5* | irix6* | nonstopux*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' # PIC (with -KPIC) is the default. _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) case $cc_basename in # old Intel for x86_64, which still supported -KPIC. ecc*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' ;; # icc used to be incompatible with GCC. # ICC 10 doesn't accept -KPIC any more. icc* | ifort*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' ;; # Lahey Fortran 8.1. lf95*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='--shared' _LT_TAGVAR(lt_prog_compiler_static, $1)='--static' ;; nagfor*) # NAG Fortran compiler _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,-Wl,,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; tcc*) # Fabrice Bellard et al's Tiny C Compiler _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' ;; pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*) # Portland Group compilers (*not* the Pentium gcc compiler, # which looks to be a dead project) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; ccc*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' # All Alpha code is PIC. _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; xl* | bgxl* | bgf* | mpixl*) # IBM XL C 8.0/Fortran 10.1, 11.1 on PPC and BlueGene _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink' ;; *) case `$CC -V 2>&1 | sed 5q` in *Sun\ Ceres\ Fortran* | *Sun*Fortran*\ [[1-7]].* | *Sun*Fortran*\ 8.[[0-3]]*) # Sun Fortran 8.3 passes all unrecognized flags to the linker _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' _LT_TAGVAR(lt_prog_compiler_wl, $1)='' ;; *Sun\ F* | *Sun*Fortran*) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' ;; *Sun\ C*) # Sun C 5.9 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' ;; *Intel*\ [[CF]]*Compiler*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' ;; *Portland\ Group*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; esac ;; esac ;; newsos6) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; *nto* | *qnx*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' ;; osf3* | osf4* | osf5*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' # All OSF/1 code is PIC. _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; rdos*) _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; solaris*) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' case $cc_basename in f77* | f90* | f95* | sunf77* | sunf90* | sunf95*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ';; *) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,';; esac ;; sunos4*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; sysv4 | sysv4.2uw2* | sysv4.3*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; sysv4*MP*) if test -d /usr/nec; then _LT_TAGVAR(lt_prog_compiler_pic, $1)='-Kconform_pic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' fi ;; sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; unicos*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no ;; uts4*) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; *) _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no ;; esac fi ]) case $host_os in # For platforms that do not support PIC, -DPIC is meaningless: *djgpp*) _LT_TAGVAR(lt_prog_compiler_pic, $1)= ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)="$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t@m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])" ;; esac AC_CACHE_CHECK([for $compiler option to produce PIC], [_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)], [_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)=$_LT_TAGVAR(lt_prog_compiler_pic, $1)]) _LT_TAGVAR(lt_prog_compiler_pic, $1)=$_LT_TAGVAR(lt_cv_prog_compiler_pic, $1) # # Check to make sure the PIC flag actually works. # if test -n "$_LT_TAGVAR(lt_prog_compiler_pic, $1)"; then _LT_COMPILER_OPTION([if $compiler PIC flag $_LT_TAGVAR(lt_prog_compiler_pic, $1) works], [_LT_TAGVAR(lt_cv_prog_compiler_pic_works, $1)], [$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t@m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])], [], [case $_LT_TAGVAR(lt_prog_compiler_pic, $1) in "" | " "*) ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)=" $_LT_TAGVAR(lt_prog_compiler_pic, $1)" ;; esac], [_LT_TAGVAR(lt_prog_compiler_pic, $1)= _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no]) fi _LT_TAGDECL([pic_flag], [lt_prog_compiler_pic], [1], [Additional compiler flags for building library objects]) _LT_TAGDECL([wl], [lt_prog_compiler_wl], [1], [How to pass a linker flag through the compiler]) # # Check to make sure the static flag actually works. # wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1) eval lt_tmp_static_flag=\"$_LT_TAGVAR(lt_prog_compiler_static, $1)\" _LT_LINKER_OPTION([if $compiler static flag $lt_tmp_static_flag works], _LT_TAGVAR(lt_cv_prog_compiler_static_works, $1), $lt_tmp_static_flag, [], [_LT_TAGVAR(lt_prog_compiler_static, $1)=]) _LT_TAGDECL([link_static_flag], [lt_prog_compiler_static], [1], [Compiler flag to prevent dynamic linking]) ])# _LT_COMPILER_PIC # _LT_LINKER_SHLIBS([TAGNAME]) # ---------------------------- # See if the linker supports building shared libraries. m4_defun([_LT_LINKER_SHLIBS], [AC_REQUIRE([LT_PATH_LD])dnl AC_REQUIRE([LT_PATH_NM])dnl m4_require([_LT_PATH_MANIFEST_TOOL])dnl m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_DECL_EGREP])dnl m4_require([_LT_DECL_SED])dnl m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl m4_require([_LT_TAG_COMPILER])dnl AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries]) m4_if([$1], [CXX], [ _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'] case $host_os in aix[[4-9]]*) # If we're using GNU nm, then we don't want the "-C" option. # -C means demangle to GNU nm, but means don't demangle to AIX nm. # Without the "-l" option, or with the "-B" option, AIX nm treats # weak defined symbols like other global defined symbols, whereas # GNU nm marks them as "W". # While the 'weak' keyword is ignored in the Export File, we need # it in the Import File for the 'aix-soname' feature, so we have # to replace the "-B" option with "-P" for AIX nm. if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { if (\$ 2 == "W") { print \$ 3 " weak" } else { print \$ 3 } } }'\'' | sort -u > $export_symbols' else _LT_TAGVAR(export_symbols_cmds, $1)='`func_echo_all $NM | $SED -e '\''s/B\([[^B]]*\)$/P\1/'\''` -PCpgl $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) && ([substr](\$ 1,1,1) != ".")) { if ((\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) { print \$ 1 " weak" } else { print \$ 1 } } }'\'' | sort -u > $export_symbols' fi ;; pw32*) _LT_TAGVAR(export_symbols_cmds, $1)=$ltdll_cmds ;; cygwin* | mingw* | cegcc*) case $cc_basename in cl*) _LT_TAGVAR(exclude_expsyms, $1)='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*' ;; *) _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols' _LT_TAGVAR(exclude_expsyms, $1)=['[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname'] ;; esac ;; linux* | k*bsd*-gnu | gnu*) _LT_TAGVAR(link_all_deplibs, $1)=no ;; *) _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' ;; esac ], [ runpath_var= _LT_TAGVAR(allow_undefined_flag, $1)= _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(archive_cmds, $1)= _LT_TAGVAR(archive_expsym_cmds, $1)= _LT_TAGVAR(compiler_needs_object, $1)=no _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no _LT_TAGVAR(export_dynamic_flag_spec, $1)= _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' _LT_TAGVAR(hardcode_automatic, $1)=no _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_TAGVAR(hardcode_libdir_separator, $1)= _LT_TAGVAR(hardcode_minus_L, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported _LT_TAGVAR(inherit_rpath, $1)=no _LT_TAGVAR(link_all_deplibs, $1)=unknown _LT_TAGVAR(module_cmds, $1)= _LT_TAGVAR(module_expsym_cmds, $1)= _LT_TAGVAR(old_archive_from_new_cmds, $1)= _LT_TAGVAR(old_archive_from_expsyms_cmds, $1)= _LT_TAGVAR(thread_safe_flag_spec, $1)= _LT_TAGVAR(whole_archive_flag_spec, $1)= # include_expsyms should be a list of space-separated symbols to be *always* # included in the symbol list _LT_TAGVAR(include_expsyms, $1)= # exclude_expsyms can be an extended regexp of symbols to exclude # it will be wrapped by ' (' and ')$', so one must not match beginning or # end of line. Example: 'a|bc|.*d.*' will exclude the symbols 'a' and 'bc', # as well as any symbol that contains 'd'. _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'] # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out # platforms (ab)use it in PIC code, but their linkers get confused if # the symbol is explicitly referenced. Since portable code cannot # rely on this symbol name, it's probably fine to never include it in # preloaded symbol tables. # Exclude shared library initialization/finalization symbols. dnl Note also adjust exclude_expsyms for C++ above. extract_expsyms_cmds= case $host_os in cygwin* | mingw* | pw32* | cegcc*) # FIXME: the MSVC++ port hasn't been tested in a loooong time # When not using gcc, we currently assume that we are using # Microsoft Visual C++. if test yes != "$GCC"; then with_gnu_ld=no fi ;; interix*) # we just hope/assume this is gcc and not c89 (= MSVC++) with_gnu_ld=yes ;; openbsd* | bitrig*) with_gnu_ld=no ;; linux* | k*bsd*-gnu | gnu*) _LT_TAGVAR(link_all_deplibs, $1)=no ;; esac _LT_TAGVAR(ld_shlibs, $1)=yes # On some targets, GNU ld is compatible enough with the native linker # that we're better off using the native interface for both. lt_use_gnu_ld_interface=no if test yes = "$with_gnu_ld"; then case $host_os in aix*) # The AIX port of GNU ld has always aspired to compatibility # with the native linker. However, as the warning in the GNU ld # block says, versions before 2.19.5* couldn't really create working # shared libraries, regardless of the interface used. case `$LD -v 2>&1` in *\ \(GNU\ Binutils\)\ 2.19.5*) ;; *\ \(GNU\ Binutils\)\ 2.[[2-9]]*) ;; *\ \(GNU\ Binutils\)\ [[3-9]]*) ;; *) lt_use_gnu_ld_interface=yes ;; esac ;; *) lt_use_gnu_ld_interface=yes ;; esac fi if test yes = "$lt_use_gnu_ld_interface"; then # If archive_cmds runs LD, not CC, wlarc should be empty wlarc='$wl' # Set some defaults for GNU ld with shared library support. These # are reset later if shared libraries are not supported. Putting them # here allows them to be overridden if necessary. runpath_var=LD_RUN_PATH _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-dynamic' # ancient GNU ld didn't support --whole-archive et. al. if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then _LT_TAGVAR(whole_archive_flag_spec, $1)=$wlarc'--whole-archive$convenience '$wlarc'--no-whole-archive' else _LT_TAGVAR(whole_archive_flag_spec, $1)= fi supports_anon_versioning=no case `$LD -v | $SED -e 's/([^)]\+)\s\+//' 2>&1` in *GNU\ gold*) supports_anon_versioning=yes ;; *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.10.*) ;; # catch versions < 2.11 *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... *\ 2.11.*) ;; # other 2.11 versions *) supports_anon_versioning=yes ;; esac # See if GNU ld supports shared libraries. case $host_os in aix[[3-9]]*) # On AIX/PPC, the GNU linker is very broken if test ia64 != "$host_cpu"; then _LT_TAGVAR(ld_shlibs, $1)=no cat <<_LT_EOF 1>&2 *** Warning: the GNU linker, at least up to release 2.19, is reported *** to be unable to reliably create shared libraries on AIX. *** Therefore, libtool is disabling shared libraries support. If you *** really care for shared libraries, you may want to install binutils *** 2.20 or above, or modify your PATH so that a non-GNU linker is found. *** You will then need to restart the configuration process. _LT_EOF fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='' ;; m68k) _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_minus_L, $1)=yes ;; esac ;; beos*) if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then _LT_TAGVAR(allow_undefined_flag, $1)=unsupported # Joseph Beckenbach says some releases of gcc # support --undefined. This deserves some investigation. FIXME _LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; cygwin* | mingw* | pw32* | cegcc*) # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, # as there is no search path for DLLs. _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-all-symbols' _LT_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols' _LT_TAGVAR(exclude_expsyms, $1)=['[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname'] if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' # If the export-symbols file already is a .def file, use it as # is; otherwise, prepend EXPORTS... _LT_TAGVAR(archive_expsym_cmds, $1)='if _LT_DLL_DEF_P([$export_symbols]); then cp $export_symbols $output_objdir/$soname.def; else echo EXPORTS > $output_objdir/$soname.def; cat $export_symbols >> $output_objdir/$soname.def; fi~ $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; haiku*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' _LT_TAGVAR(link_all_deplibs, $1)=yes ;; os2*) _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(allow_undefined_flag, $1)=unsupported shrext_cmds=.dll _LT_TAGVAR(archive_cmds, $1)='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ $ECHO EXPORTS >> $output_objdir/$libname.def~ emxexp $libobjs | $SED /"_DLL_InitTerm"/d >> $output_objdir/$libname.def~ $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ emximp -o $lib $output_objdir/$libname.def' _LT_TAGVAR(archive_expsym_cmds, $1)='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ $ECHO EXPORTS >> $output_objdir/$libname.def~ prefix_cmds="$SED"~ if test EXPORTS = "`$SED 1q $export_symbols`"; then prefix_cmds="$prefix_cmds -e 1d"; fi~ prefix_cmds="$prefix_cmds -e \"s/^\(.*\)$/_\1/g\""~ cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~ $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ emximp -o $lib $output_objdir/$libname.def' _LT_TAGVAR(old_archive_From_new_cmds, $1)='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def' _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes ;; interix[[3-9]]*) _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E' # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. # Instead, shared libraries are loaded at an image base (0x10000000 by # default) and relocated if they conflict, which is a slow very memory # consuming and fragmenting process. To avoid this, we pick a random, # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link # time. Moving up from 0x10000000 also allows more sbrk(2) space. _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s|^|_|" $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--retain-symbols-file,$output_objdir/$soname.expsym $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' ;; gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu) tmp_diet=no if test linux-dietlibc = "$host_os"; then case $cc_basename in diet\ *) tmp_diet=yes;; # linux-dietlibc with static linking (!diet-dyn) esac fi if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \ && test no = "$tmp_diet" then tmp_addflag=' $pic_flag' tmp_sharedflag='-shared' case $cc_basename,$host_cpu in pgcc*) # Portland Group C compiler _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' tmp_addflag=' $pic_flag' ;; pgf77* | pgf90* | pgf95* | pgfortran*) # Portland Group f77 and f90 compilers _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' tmp_addflag=' $pic_flag -Mnomain' ;; ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 tmp_addflag=' -i_dynamic' ;; efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 tmp_addflag=' -i_dynamic -nofor_main' ;; ifc* | ifort*) # Intel Fortran compiler tmp_addflag=' -nofor_main' ;; lf95*) # Lahey Fortran 8.1 _LT_TAGVAR(whole_archive_flag_spec, $1)= tmp_sharedflag='--shared' ;; nagfor*) # NAGFOR 5.3 tmp_sharedflag='-Wl,-shared' ;; xl[[cC]]* | bgxl[[cC]]* | mpixl[[cC]]*) # IBM XL C 8.0 on PPC (deal with xlf below) tmp_sharedflag='-qmkshrobj' tmp_addflag= ;; nvcc*) # Cuda Compiler Driver 2.2 _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' _LT_TAGVAR(compiler_needs_object, $1)=yes ;; esac case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C 5.9 _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' _LT_TAGVAR(compiler_needs_object, $1)=yes tmp_sharedflag='-G' ;; *Sun\ F*) # Sun Fortran 8.3 tmp_sharedflag='-G' ;; esac _LT_TAGVAR(archive_cmds, $1)='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' if test yes = "$supports_anon_versioning"; then _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~ $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-version-script $wl$output_objdir/$libname.ver -o $lib' fi case $cc_basename in tcc*) _LT_TAGVAR(export_dynamic_flag_spec, $1)='-rdynamic' ;; xlf* | bgf* | bgxlf* | mpixlf*) # IBM XL Fortran 10.1 on PPC cannot create shared libs itself _LT_TAGVAR(whole_archive_flag_spec, $1)='--whole-archive$convenience --no-whole-archive' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' _LT_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib' if test yes = "$supports_anon_versioning"; then _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~ $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' fi ;; esac else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; netbsd* | netbsdelf*-gnu) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' wlarc= else _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' fi ;; solaris*) if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then _LT_TAGVAR(ld_shlibs, $1)=no cat <<_LT_EOF 1>&2 *** Warning: The releases 2.8.* of the GNU linker cannot reliably *** create shared libraries on Solaris systems. Therefore, libtool *** is disabling shared libraries support. We urge you to upgrade GNU *** binutils to release 2.9.1 or newer. Another option is to modify *** your PATH or compiler configuration so that the native linker is *** used, and then restart. _LT_EOF elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) case `$LD -v 2>&1` in *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.1[[0-5]].*) _LT_TAGVAR(ld_shlibs, $1)=no cat <<_LT_EOF 1>&2 *** Warning: Releases of the GNU linker prior to 2.16.91.0.3 cannot *** reliably create shared libraries on SCO systems. Therefore, libtool *** is disabling shared libraries support. We urge you to upgrade GNU *** binutils to release 2.16.91.0.3 or newer. Another option is to modify *** your PATH or compiler configuration so that the native linker is *** used, and then restart. _LT_EOF ;; *) # For security reasons, it is highly recommended that you always # use absolute paths for naming shared libraries, and exclude the # DT_RUNPATH tag from executables and libraries. But doing so # requires that you compile everything twice, which is a pain. if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; esac ;; sunos4*) _LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' wlarc= _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; *) if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; esac if test no = "$_LT_TAGVAR(ld_shlibs, $1)"; then runpath_var= _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_TAGVAR(export_dynamic_flag_spec, $1)= _LT_TAGVAR(whole_archive_flag_spec, $1)= fi else # PORTME fill in a description of your system's linker (not GNU ld) case $host_os in aix3*) _LT_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_TAGVAR(always_export_symbols, $1)=yes _LT_TAGVAR(archive_expsym_cmds, $1)='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' # Note: this linker hardcodes the directories in LIBPATH if there # are no directories specified by -L. _LT_TAGVAR(hardcode_minus_L, $1)=yes if test yes = "$GCC" && test -z "$lt_prog_compiler_static"; then # Neither direct hardcoding nor static linking is supported with a # broken collect2. _LT_TAGVAR(hardcode_direct, $1)=unsupported fi ;; aix[[4-9]]*) if test ia64 = "$host_cpu"; then # On IA64, the linker does run time linking by default, so we don't # have to do anything special. aix_use_runtimelinking=no exp_sym_flag='-Bexport' no_entry_flag= else # If we're using GNU nm, then we don't want the "-C" option. # -C means demangle to GNU nm, but means don't demangle to AIX nm. # Without the "-l" option, or with the "-B" option, AIX nm treats # weak defined symbols like other global defined symbols, whereas # GNU nm marks them as "W". # While the 'weak' keyword is ignored in the Export File, we need # it in the Import File for the 'aix-soname' feature, so we have # to replace the "-B" option with "-P" for AIX nm. if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { if (\$ 2 == "W") { print \$ 3 " weak" } else { print \$ 3 } } }'\'' | sort -u > $export_symbols' else _LT_TAGVAR(export_symbols_cmds, $1)='`func_echo_all $NM | $SED -e '\''s/B\([[^B]]*\)$/P\1/'\''` -PCpgl $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) && ([substr](\$ 1,1,1) != ".")) { if ((\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) { print \$ 1 " weak" } else { print \$ 1 } } }'\'' | sort -u > $export_symbols' fi aix_use_runtimelinking=no # Test if we are trying to use run time linking or normal # AIX style linking. If -brtl is somewhere in LDFLAGS, we # have runtime linking enabled, and use it for executables. # For shared libraries, we enable/disable runtime linking # depending on the kind of the shared library created - # when "with_aix_soname,aix_use_runtimelinking" is: # "aix,no" lib.a(lib.so.V) shared, rtl:no, for executables # "aix,yes" lib.so shared, rtl:yes, for executables # lib.a static archive # "both,no" lib.so.V(shr.o) shared, rtl:yes # lib.a(lib.so.V) shared, rtl:no, for executables # "both,yes" lib.so.V(shr.o) shared, rtl:yes, for executables # lib.a(lib.so.V) shared, rtl:no # "svr4,*" lib.so.V(shr.o) shared, rtl:yes, for executables # lib.a static archive case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*) for ld_flag in $LDFLAGS; do if (test x-brtl = "x$ld_flag" || test x-Wl,-brtl = "x$ld_flag"); then aix_use_runtimelinking=yes break fi done if test svr4,no = "$with_aix_soname,$aix_use_runtimelinking"; then # With aix-soname=svr4, we create the lib.so.V shared archives only, # so we don't have lib.a shared libs to link our executables. # We have to force runtime linking in this case. aix_use_runtimelinking=yes LDFLAGS="$LDFLAGS -Wl,-brtl" fi ;; esac exp_sym_flag='-bexport' no_entry_flag='-bnoentry' fi # When large executables or shared objects are built, AIX ld can # have problems creating the table of contents. If linking a library # or program results in "error TOC overflow" add -mminimal-toc to # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. _LT_TAGVAR(archive_cmds, $1)='' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_direct_absolute, $1)=yes _LT_TAGVAR(hardcode_libdir_separator, $1)=':' _LT_TAGVAR(link_all_deplibs, $1)=yes _LT_TAGVAR(file_list_spec, $1)='$wl-f,' case $with_aix_soname,$aix_use_runtimelinking in aix,*) ;; # traditional, no import file svr4,* | *,yes) # use import file # The Import File defines what to hardcode. _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=no ;; esac if test yes = "$GCC"; then case $host_os in aix4.[[012]]|aix4.[[012]].*) # We only want to do this on AIX 4.2 and lower, the check # below for broken collect2 doesn't work under 4.3+ collect2name=`$CC -print-prog-name=collect2` if test -f "$collect2name" && strings "$collect2name" | $GREP resolve_lib_name >/dev/null then # We have reworked collect2 : else # We have old collect2 _LT_TAGVAR(hardcode_direct, $1)=unsupported # It fails to find uninstalled libraries when the uninstalled # path is not listed in the libpath. Setting hardcode_minus_L # to unsupported forces relinking _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)= fi ;; esac shared_flag='-shared' if test yes = "$aix_use_runtimelinking"; then shared_flag="$shared_flag "'$wl-G' fi # Need to ensure runtime linking is disabled for the traditional # shared library, or the linker may eventually find shared libraries # /with/ Import File - we do not want to mix them. shared_flag_aix='-shared' shared_flag_svr4='-shared $wl-G' else # not using gcc if test ia64 = "$host_cpu"; then # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release # chokes on -Wl,-G. The following line is correct: shared_flag='-G' else if test yes = "$aix_use_runtimelinking"; then shared_flag='$wl-G' else shared_flag='$wl-bM:SRE' fi shared_flag_aix='$wl-bM:SRE' shared_flag_svr4='$wl-G' fi fi _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-bexpall' # It seems that -bexpall does not export symbols beginning with # underscore (_), so it is better to generate a list of symbols to export. _LT_TAGVAR(always_export_symbols, $1)=yes if test aix,yes = "$with_aix_soname,$aix_use_runtimelinking"; then # Warning - without using the other runtime loading flags (-brtl), # -berok will link without error, but may produce a broken library. _LT_TAGVAR(allow_undefined_flag, $1)='-berok' # Determine the default libpath from the value encoded in an # empty executable. _LT_SYS_MODULE_PATH_AIX([$1]) _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-blibpath:$libdir:'"$aix_libpath" _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs $wl'$no_entry_flag' $compiler_flags `if test -n "$allow_undefined_flag"; then func_echo_all "$wl$allow_undefined_flag"; else :; fi` $wl'$exp_sym_flag:\$export_symbols' '$shared_flag else if test ia64 = "$host_cpu"; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-R $libdir:/usr/lib:/lib' _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs" _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\$wl$no_entry_flag"' $compiler_flags $wl$allow_undefined_flag '"\$wl$exp_sym_flag:\$export_symbols" else # Determine the default libpath from the value encoded in an # empty executable. _LT_SYS_MODULE_PATH_AIX([$1]) _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-blibpath:$libdir:'"$aix_libpath" # Warning - without using the other run time loading flags, # -berok will link without error, but may produce a broken library. _LT_TAGVAR(no_undefined_flag, $1)=' $wl-bernotok' _LT_TAGVAR(allow_undefined_flag, $1)=' $wl-berok' if test yes = "$with_gnu_ld"; then # We only use this code for GNU lds that support --whole-archive. _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive$convenience $wl--no-whole-archive' else # Exported symbols can be pulled into shared objects from archives _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience' fi _LT_TAGVAR(archive_cmds_need_lc, $1)=yes _LT_TAGVAR(archive_expsym_cmds, $1)='$RM -r $output_objdir/$realname.d~$MKDIR $output_objdir/$realname.d' # -brtl affects multiple linker settings, -berok does not and is overridden later compiler_flags_filtered='`func_echo_all "$compiler_flags " | $SED -e "s%-brtl\\([[, ]]\\)%-berok\\1%g"`' if test svr4 != "$with_aix_soname"; then # This is similar to how AIX traditionally builds its shared libraries. _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$CC '$shared_flag_aix' -o $output_objdir/$realname.d/$soname $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$realname.d/$soname' fi if test aix != "$with_aix_soname"; then _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$CC '$shared_flag_svr4' -o $output_objdir/$realname.d/$shared_archive_member_spec.o $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$STRIP -e $output_objdir/$realname.d/$shared_archive_member_spec.o~( func_echo_all "#! $soname($shared_archive_member_spec.o)"; if test shr_64 = "$shared_archive_member_spec"; then func_echo_all "# 64"; else func_echo_all "# 32"; fi; cat $export_symbols ) > $output_objdir/$realname.d/$shared_archive_member_spec.imp~$AR $AR_FLAGS $output_objdir/$soname $output_objdir/$realname.d/$shared_archive_member_spec.o $output_objdir/$realname.d/$shared_archive_member_spec.imp' else # used by -dlpreopen to get the symbols _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$MV $output_objdir/$realname.d/$soname $output_objdir' fi _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$RM -r $output_objdir/$realname.d' fi fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='' ;; m68k) _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_minus_L, $1)=yes ;; esac ;; bsdi[[45]]*) _LT_TAGVAR(export_dynamic_flag_spec, $1)=-rdynamic ;; cygwin* | mingw* | pw32* | cegcc*) # When not using gcc, we currently assume that we are using # Microsoft Visual C++. # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. case $cc_basename in cl*) # Native MSVC _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' _LT_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_TAGVAR(always_export_symbols, $1)=yes _LT_TAGVAR(file_list_spec, $1)='@' # Tell ltmain to make .lib files, not .a files. libext=lib # Tell ltmain to make .dll files, not .so files. shrext_cmds=.dll # FIXME: Setting linknames here is a bad hack. _LT_TAGVAR(archive_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~linknames=' _LT_TAGVAR(archive_expsym_cmds, $1)='if _LT_DLL_DEF_P([$export_symbols]); then cp "$export_symbols" "$output_objdir/$soname.def"; echo "$tool_output_objdir$soname.def" > "$output_objdir/$soname.exp"; else $SED -e '\''s/^/-link -EXPORT:/'\'' < $export_symbols > $output_objdir/$soname.exp; fi~ $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ linknames=' # The linker will not automatically build a static lib if we build a DLL. # _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes _LT_TAGVAR(exclude_expsyms, $1)='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*' _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1,DATA/'\'' | $SED -e '\''/^[[AITW]][[ ]]/s/.*[[ ]]//'\'' | sort | uniq > $export_symbols' # Don't use ranlib _LT_TAGVAR(old_postinstall_cmds, $1)='chmod 644 $oldlib' _LT_TAGVAR(postlink_cmds, $1)='lt_outputfile="@OUTPUT@"~ lt_tool_outputfile="@TOOL_OUTPUT@"~ case $lt_outputfile in *.exe|*.EXE) ;; *) lt_outputfile=$lt_outputfile.exe lt_tool_outputfile=$lt_tool_outputfile.exe ;; esac~ if test : != "$MANIFEST_TOOL" && test -f "$lt_outputfile.manifest"; then $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; $RM "$lt_outputfile.manifest"; fi' ;; *) # Assume MSVC wrapper _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' _LT_TAGVAR(allow_undefined_flag, $1)=unsupported # Tell ltmain to make .lib files, not .a files. libext=lib # Tell ltmain to make .dll files, not .so files. shrext_cmds=.dll # FIXME: Setting linknames here is a bad hack. _LT_TAGVAR(archive_cmds, $1)='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames=' # The linker will automatically build a .lib file if we build a DLL. _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' # FIXME: Should let the user specify the lib program. _LT_TAGVAR(old_archive_cmds, $1)='lib -OUT:$oldlib$oldobjs$old_deplibs' _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes ;; esac ;; darwin* | rhapsody*) _LT_DARWIN_LINKER_FEATURES($1) ;; dgux*) _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor # support. Future versions do this automatically, but an explicit c++rt0.o # does not break anything, and helps significantly (at the cost of a little # extra space). freebsd2.2*) _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; # Unfortunately, older versions of FreeBSD 2 do not have this feature. freebsd2.*) _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; # FreeBSD 3 and greater uses gcc -shared to do shared libraries. freebsd* | dragonfly*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; hpux9*) if test yes = "$GCC"; then _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared $pic_flag $wl+b $wl$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib' else _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib' fi _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl+b $wl$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(hardcode_direct, $1)=yes # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E' ;; hpux10*) if test yes,no = "$GCC,$with_gnu_ld"; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags' else _LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' fi if test no = "$with_gnu_ld"; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl+b $wl$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_direct_absolute, $1)=yes _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. _LT_TAGVAR(hardcode_minus_L, $1)=yes fi ;; hpux11*) if test yes,no = "$GCC,$with_gnu_ld"; then case $host_cpu in hppa*64*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $wl+h $wl$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $wl+h $wl$soname $wl+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ;; esac else case $host_cpu in hppa*64*) _LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) _LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname $wl+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) m4_if($1, [], [ # Older versions of the 11.00 compiler do not understand -b yet # (HP92453-01 A.11.01.20 doesn't, HP92453-01 B.11.X.35175-35176.GP does) _LT_LINKER_OPTION([if $CC understands -b], _LT_TAGVAR(lt_cv_prog_compiler__b, $1), [-b], [_LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags'], [_LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'])], [_LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags']) ;; esac fi if test no = "$with_gnu_ld"; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl+b $wl$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: case $host_cpu in hppa*64*|ia64*) _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; *) _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_direct_absolute, $1)=yes _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. _LT_TAGVAR(hardcode_minus_L, $1)=yes ;; esac fi ;; irix5* | irix6* | nonstopux*) if test yes = "$GCC"; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' # Try to use the -exported_symbol ld option, if it does not # work, assume that -exports_file does not work either and # implicitly export all symbols. # This should be the same for all languages, so no per-tag cache variable. AC_CACHE_CHECK([whether the $host_os linker accepts -exported_symbol], [lt_cv_irix_exported_symbol], [save_LDFLAGS=$LDFLAGS LDFLAGS="$LDFLAGS -shared $wl-exported_symbol ${wl}foo $wl-update_registry $wl/dev/null" AC_LINK_IFELSE( [AC_LANG_SOURCE( [AC_LANG_CASE([C], [[int foo (void) { return 0; }]], [C++], [[int foo (void) { return 0; }]], [Fortran 77], [[ subroutine foo end]], [Fortran], [[ subroutine foo end]])])], [lt_cv_irix_exported_symbol=yes], [lt_cv_irix_exported_symbol=no]) LDFLAGS=$save_LDFLAGS]) if test yes = "$lt_cv_irix_exported_symbol"; then _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations $wl-exports_file $wl$export_symbols -o $lib' fi _LT_TAGVAR(link_all_deplibs, $1)=no else _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -exports_file $export_symbols -o $lib' fi _LT_TAGVAR(archive_cmds_need_lc, $1)='no' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(inherit_rpath, $1)=yes _LT_TAGVAR(link_all_deplibs, $1)=yes ;; linux*) case $cc_basename in tcc*) # Fabrice Bellard et al's Tiny C Compiler _LT_TAGVAR(ld_shlibs, $1)=yes _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' ;; esac ;; netbsd* | netbsdelf*-gnu) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out else _LT_TAGVAR(archive_cmds, $1)='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF fi _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; newsos6) _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; *nto* | *qnx*) ;; openbsd* | bitrig*) if test -f /usr/libexec/ld.so; then _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=yes if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags $wl-retain-symbols-file,$export_symbols' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E' else _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir' fi else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; os2*) _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(allow_undefined_flag, $1)=unsupported shrext_cmds=.dll _LT_TAGVAR(archive_cmds, $1)='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ $ECHO EXPORTS >> $output_objdir/$libname.def~ emxexp $libobjs | $SED /"_DLL_InitTerm"/d >> $output_objdir/$libname.def~ $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ emximp -o $lib $output_objdir/$libname.def' _LT_TAGVAR(archive_expsym_cmds, $1)='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ $ECHO EXPORTS >> $output_objdir/$libname.def~ prefix_cmds="$SED"~ if test EXPORTS = "`$SED 1q $export_symbols`"; then prefix_cmds="$prefix_cmds -e 1d"; fi~ prefix_cmds="$prefix_cmds -e \"s/^\(.*\)$/_\1/g\""~ cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~ $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ emximp -o $lib $output_objdir/$libname.def' _LT_TAGVAR(old_archive_From_new_cmds, $1)='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def' _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes ;; osf3*) if test yes = "$GCC"; then _LT_TAGVAR(allow_undefined_flag, $1)=' $wl-expect_unresolved $wl\*' _LT_TAGVAR(archive_cmds, $1)='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' else _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' _LT_TAGVAR(archive_cmds, $1)='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' fi _LT_TAGVAR(archive_cmds_need_lc, $1)='no' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: ;; osf4* | osf5*) # as osf3* with the addition of -msym flag if test yes = "$GCC"; then _LT_TAGVAR(allow_undefined_flag, $1)=' $wl-expect_unresolved $wl\*' _LT_TAGVAR(archive_cmds, $1)='$CC -shared$allow_undefined_flag $pic_flag $libobjs $deplibs $compiler_flags $wl-msym $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' else _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' _LT_TAGVAR(archive_cmds, $1)='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~ $CC -shared$allow_undefined_flag $wl-input $wl$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib~$RM $lib.exp' # Both c and cxx compiler support -rpath directly _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' fi _LT_TAGVAR(archive_cmds_need_lc, $1)='no' _LT_TAGVAR(hardcode_libdir_separator, $1)=: ;; solaris*) _LT_TAGVAR(no_undefined_flag, $1)=' -z defs' if test yes = "$GCC"; then wlarc='$wl' _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $wl-z ${wl}text $wl-h $wl$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -shared $pic_flag $wl-z ${wl}text $wl-M $wl$lib.exp $wl-h $wl$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' else case `$CC -V 2>&1` in *"Compilers 5.0"*) wlarc='' _LT_TAGVAR(archive_cmds, $1)='$LD -G$allow_undefined_flag -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $LD -G$allow_undefined_flag -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp' ;; *) wlarc='$wl' _LT_TAGVAR(archive_cmds, $1)='$CC -G$allow_undefined_flag -h $soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -G$allow_undefined_flag -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' ;; esac fi _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no case $host_os in solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; *) # The compiler driver will combine and reorder linker options, # but understands '-z linker_flag'. GCC discards it without '$wl', # but is careful enough not to reorder. # Supported since Solaris 2.6 (maybe 2.5.1?) if test yes = "$GCC"; then _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl-z ${wl}allextract$convenience $wl-z ${wl}defaultextract' else _LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract' fi ;; esac _LT_TAGVAR(link_all_deplibs, $1)=yes ;; sunos4*) if test sequent = "$host_vendor"; then # Use $CC to link under sequent, because it throws in some extra .o # files that make .init and .fini sections work. _LT_TAGVAR(archive_cmds, $1)='$CC -G $wl-h $soname -o $lib $libobjs $deplibs $compiler_flags' else _LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' fi _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; sysv4) case $host_vendor in sni) _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_direct, $1)=yes # is this really true??? ;; siemens) ## LD is ld it makes a PLAMLIB ## CC just makes a GrossModule. _LT_TAGVAR(archive_cmds, $1)='$LD -G -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(reload_cmds, $1)='$CC -r -o $output$reload_objs' _LT_TAGVAR(hardcode_direct, $1)=no ;; motorola) _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_direct, $1)=no #Motorola manual says yes, but my tests say they lie ;; esac runpath_var='LD_RUN_PATH' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; sysv4.3*) _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(export_dynamic_flag_spec, $1)='-Bexport' ;; sysv4*MP*) if test -d /usr/nec; then _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no runpath_var=LD_RUN_PATH hardcode_runpath_var=yes _LT_TAGVAR(ld_shlibs, $1)=yes fi ;; sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*) _LT_TAGVAR(no_undefined_flag, $1)='$wl-z,text' _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no runpath_var='LD_RUN_PATH' if test yes = "$GCC"; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' else _LT_TAGVAR(archive_cmds, $1)='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; sysv5* | sco3.2v5* | sco5v6*) # Note: We CANNOT use -z defs as we might desire, because we do not # link with -lc, and that would cause any symbols used from libc to # always be unresolved, which means just about no library would # ever link correctly. If we're not using GNU ld we use -z text # though, which does catch some bad symbols but isn't as heavy-handed # as -z defs. _LT_TAGVAR(no_undefined_flag, $1)='$wl-z,text' _LT_TAGVAR(allow_undefined_flag, $1)='$wl-z,nodefs' _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-R,$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=':' _LT_TAGVAR(link_all_deplibs, $1)=yes _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-Bexport' runpath_var='LD_RUN_PATH' if test yes = "$GCC"; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' else _LT_TAGVAR(archive_cmds, $1)='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; uts4*) _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; *) _LT_TAGVAR(ld_shlibs, $1)=no ;; esac if test sni = "$host_vendor"; then case $host in sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-Blargedynsym' ;; esac fi fi ]) AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)]) test no = "$_LT_TAGVAR(ld_shlibs, $1)" && can_build_shared=no _LT_TAGVAR(with_gnu_ld, $1)=$with_gnu_ld _LT_DECL([], [libext], [0], [Old archive suffix (normally "a")])dnl _LT_DECL([], [shrext_cmds], [1], [Shared library suffix (normally ".so")])dnl _LT_DECL([], [extract_expsyms_cmds], [2], [The commands to extract the exported symbol list from a shared archive]) # # Do we need to explicitly link libc? # case "x$_LT_TAGVAR(archive_cmds_need_lc, $1)" in x|xyes) # Assume -lc should be added _LT_TAGVAR(archive_cmds_need_lc, $1)=yes if test yes,yes = "$GCC,$enable_shared"; then case $_LT_TAGVAR(archive_cmds, $1) in *'~'*) # FIXME: we may have to deal with multi-command sequences. ;; '$CC '*) # Test whether the compiler implicitly links with -lc since on some # systems, -lgcc has to come before -lc. If gcc already passes -lc # to ld, don't add -lc before -lgcc. AC_CACHE_CHECK([whether -lc should be explicitly linked in], [lt_cv_]_LT_TAGVAR(archive_cmds_need_lc, $1), [$RM conftest* echo "$lt_simple_compile_test_code" > conftest.$ac_ext if AC_TRY_EVAL(ac_compile) 2>conftest.err; then soname=conftest lib=conftest libobjs=conftest.$ac_objext deplibs= wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1) pic_flag=$_LT_TAGVAR(lt_prog_compiler_pic, $1) compiler_flags=-v linker_flags=-v verstring= output_objdir=. libname=conftest lt_save_allow_undefined_flag=$_LT_TAGVAR(allow_undefined_flag, $1) _LT_TAGVAR(allow_undefined_flag, $1)= if AC_TRY_EVAL(_LT_TAGVAR(archive_cmds, $1) 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) then lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1)=no else lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1)=yes fi _LT_TAGVAR(allow_undefined_flag, $1)=$lt_save_allow_undefined_flag else cat conftest.err 1>&5 fi $RM conftest* ]) _LT_TAGVAR(archive_cmds_need_lc, $1)=$lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1) ;; esac fi ;; esac _LT_TAGDECL([build_libtool_need_lc], [archive_cmds_need_lc], [0], [Whether or not to add -lc for building shared libraries]) _LT_TAGDECL([allow_libtool_libs_with_static_runtimes], [enable_shared_with_static_runtimes], [0], [Whether or not to disallow shared libs when runtime libs are static]) _LT_TAGDECL([], [export_dynamic_flag_spec], [1], [Compiler flag to allow reflexive dlopens]) _LT_TAGDECL([], [whole_archive_flag_spec], [1], [Compiler flag to generate shared objects directly from archives]) _LT_TAGDECL([], [compiler_needs_object], [1], [Whether the compiler copes with passing no objects directly]) _LT_TAGDECL([], [old_archive_from_new_cmds], [2], [Create an old-style archive from a shared archive]) _LT_TAGDECL([], [old_archive_from_expsyms_cmds], [2], [Create a temporary old-style archive to link instead of a shared archive]) _LT_TAGDECL([], [archive_cmds], [2], [Commands used to build a shared archive]) _LT_TAGDECL([], [archive_expsym_cmds], [2]) _LT_TAGDECL([], [module_cmds], [2], [Commands used to build a loadable module if different from building a shared archive.]) _LT_TAGDECL([], [module_expsym_cmds], [2]) _LT_TAGDECL([], [with_gnu_ld], [1], [Whether we are building with GNU ld or not]) _LT_TAGDECL([], [allow_undefined_flag], [1], [Flag that allows shared libraries with undefined symbols to be built]) _LT_TAGDECL([], [no_undefined_flag], [1], [Flag that enforces no undefined symbols]) _LT_TAGDECL([], [hardcode_libdir_flag_spec], [1], [Flag to hardcode $libdir into a binary during linking. This must work even if $libdir does not exist]) _LT_TAGDECL([], [hardcode_libdir_separator], [1], [Whether we need a single "-rpath" flag with a separated argument]) _LT_TAGDECL([], [hardcode_direct], [0], [Set to "yes" if using DIR/libNAME$shared_ext during linking hardcodes DIR into the resulting binary]) _LT_TAGDECL([], [hardcode_direct_absolute], [0], [Set to "yes" if using DIR/libNAME$shared_ext during linking hardcodes DIR into the resulting binary and the resulting library dependency is "absolute", i.e impossible to change by setting $shlibpath_var if the library is relocated]) _LT_TAGDECL([], [hardcode_minus_L], [0], [Set to "yes" if using the -LDIR flag during linking hardcodes DIR into the resulting binary]) _LT_TAGDECL([], [hardcode_shlibpath_var], [0], [Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into the resulting binary]) _LT_TAGDECL([], [hardcode_automatic], [0], [Set to "yes" if building a shared library automatically hardcodes DIR into the library and all subsequent libraries and executables linked against it]) _LT_TAGDECL([], [inherit_rpath], [0], [Set to yes if linker adds runtime paths of dependent libraries to runtime path list]) _LT_TAGDECL([], [link_all_deplibs], [0], [Whether libtool must link a program against all its dependency libraries]) _LT_TAGDECL([], [always_export_symbols], [0], [Set to "yes" if exported symbols are required]) _LT_TAGDECL([], [export_symbols_cmds], [2], [The commands to list exported symbols]) _LT_TAGDECL([], [exclude_expsyms], [1], [Symbols that should not be listed in the preloaded symbols]) _LT_TAGDECL([], [include_expsyms], [1], [Symbols that must always be exported]) _LT_TAGDECL([], [prelink_cmds], [2], [Commands necessary for linking programs (against libraries) with templates]) _LT_TAGDECL([], [postlink_cmds], [2], [Commands necessary for finishing linking programs]) _LT_TAGDECL([], [file_list_spec], [1], [Specify filename containing input files]) dnl FIXME: Not yet implemented dnl _LT_TAGDECL([], [thread_safe_flag_spec], [1], dnl [Compiler flag to generate thread safe objects]) ])# _LT_LINKER_SHLIBS # _LT_LANG_C_CONFIG([TAG]) # ------------------------ # Ensure that the configuration variables for a C compiler are suitably # defined. These variables are subsequently used by _LT_CONFIG to write # the compiler configuration to 'libtool'. m4_defun([_LT_LANG_C_CONFIG], [m4_require([_LT_DECL_EGREP])dnl lt_save_CC=$CC AC_LANG_PUSH(C) # Source file extension for C test sources. ac_ext=c # Object file extension for compiled C test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # Code to be used in simple compile tests lt_simple_compile_test_code="int some_variable = 0;" # Code to be used in simple link tests lt_simple_link_test_code='int main(){return(0);}' _LT_TAG_COMPILER # Save the default compiler, since it gets overwritten when the other # tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP. compiler_DEFAULT=$CC # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE if test -n "$compiler"; then _LT_COMPILER_NO_RTTI($1) _LT_COMPILER_PIC($1) _LT_COMPILER_C_O($1) _LT_COMPILER_FILE_LOCKS($1) _LT_LINKER_SHLIBS($1) _LT_SYS_DYNAMIC_LINKER($1) _LT_LINKER_HARDCODE_LIBPATH($1) LT_SYS_DLOPEN_SELF _LT_CMD_STRIPLIB # Report what library types will actually be built AC_MSG_CHECKING([if libtool supports shared libraries]) AC_MSG_RESULT([$can_build_shared]) AC_MSG_CHECKING([whether to build shared libraries]) test no = "$can_build_shared" && enable_shared=no # On AIX, shared libraries and static libraries use the same namespace, and # are all built from PIC. case $host_os in aix3*) test yes = "$enable_shared" && enable_static=no if test -n "$RANLIB"; then archive_cmds="$archive_cmds~\$RANLIB \$lib" postinstall_cmds='$RANLIB $lib' fi ;; aix[[4-9]]*) if test ia64 != "$host_cpu"; then case $enable_shared,$with_aix_soname,$aix_use_runtimelinking in yes,aix,yes) ;; # shared object as lib.so file only yes,svr4,*) ;; # shared object as lib.so archive member only yes,*) enable_static=no ;; # shared object in lib.a archive as well esac fi ;; esac AC_MSG_RESULT([$enable_shared]) AC_MSG_CHECKING([whether to build static libraries]) # Make sure either enable_shared or enable_static is yes. test yes = "$enable_shared" || enable_static=yes AC_MSG_RESULT([$enable_static]) _LT_CONFIG($1) fi AC_LANG_POP CC=$lt_save_CC ])# _LT_LANG_C_CONFIG # _LT_LANG_CXX_CONFIG([TAG]) # -------------------------- # Ensure that the configuration variables for a C++ compiler are suitably # defined. These variables are subsequently used by _LT_CONFIG to write # the compiler configuration to 'libtool'. m4_defun([_LT_LANG_CXX_CONFIG], [m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_DECL_EGREP])dnl m4_require([_LT_PATH_MANIFEST_TOOL])dnl if test -n "$CXX" && ( test no != "$CXX" && ( (test g++ = "$CXX" && `g++ -v >/dev/null 2>&1` ) || (test g++ != "$CXX"))); then AC_PROG_CXXCPP else _lt_caught_CXX_error=yes fi AC_LANG_PUSH(C++) _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(allow_undefined_flag, $1)= _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(archive_expsym_cmds, $1)= _LT_TAGVAR(compiler_needs_object, $1)=no _LT_TAGVAR(export_dynamic_flag_spec, $1)= _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_TAGVAR(hardcode_libdir_separator, $1)= _LT_TAGVAR(hardcode_minus_L, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported _LT_TAGVAR(hardcode_automatic, $1)=no _LT_TAGVAR(inherit_rpath, $1)=no _LT_TAGVAR(module_cmds, $1)= _LT_TAGVAR(module_expsym_cmds, $1)= _LT_TAGVAR(link_all_deplibs, $1)=unknown _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds _LT_TAGVAR(reload_flag, $1)=$reload_flag _LT_TAGVAR(reload_cmds, $1)=$reload_cmds _LT_TAGVAR(no_undefined_flag, $1)= _LT_TAGVAR(whole_archive_flag_spec, $1)= _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no # Source file extension for C++ test sources. ac_ext=cpp # Object file extension for compiled C++ test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # No sense in running all these tests if we already determined that # the CXX compiler isn't working. Some variables (like enable_shared) # are currently assumed to apply to all compilers on this platform, # and will be corrupted by setting them based on a non-working compiler. if test yes != "$_lt_caught_CXX_error"; then # Code to be used in simple compile tests lt_simple_compile_test_code="int some_variable = 0;" # Code to be used in simple link tests lt_simple_link_test_code='int main(int, char *[[]]) { return(0); }' # ltmain only uses $CC for tagged configurations so make sure $CC is set. _LT_TAG_COMPILER # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE # Allow CC to be a program name with arguments. lt_save_CC=$CC lt_save_CFLAGS=$CFLAGS lt_save_LD=$LD lt_save_GCC=$GCC GCC=$GXX lt_save_with_gnu_ld=$with_gnu_ld lt_save_path_LD=$lt_cv_path_LD if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx else $as_unset lt_cv_prog_gnu_ld fi if test -n "${lt_cv_path_LDCXX+set}"; then lt_cv_path_LD=$lt_cv_path_LDCXX else $as_unset lt_cv_path_LD fi test -z "${LDCXX+set}" || LD=$LDCXX CC=${CXX-"c++"} CFLAGS=$CXXFLAGS compiler=$CC _LT_TAGVAR(compiler, $1)=$CC _LT_CC_BASENAME([$compiler]) if test -n "$compiler"; then # We don't want -fno-exception when compiling C++ code, so set the # no_builtin_flag separately if test yes = "$GXX"; then _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' else _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)= fi if test yes = "$GXX"; then # Set up default GNU C++ configuration LT_PATH_LD # Check if GNU C++ uses GNU ld as the underlying linker, since the # archiving commands below assume that GNU ld is being used. if test yes = "$with_gnu_ld"; then _LT_TAGVAR(archive_cmds, $1)='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-dynamic' # If archive_cmds runs LD, not CC, wlarc should be empty # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to # investigate it a little bit more. (MM) wlarc='$wl' # ancient GNU ld didn't support --whole-archive et. al. if eval "`$CC -print-prog-name=ld` --help 2>&1" | $GREP 'no-whole-archive' > /dev/null; then _LT_TAGVAR(whole_archive_flag_spec, $1)=$wlarc'--whole-archive$convenience '$wlarc'--no-whole-archive' else _LT_TAGVAR(whole_archive_flag_spec, $1)= fi else with_gnu_ld=no wlarc= # A generic and very simple default shared library creation # command for GNU C++ for the case where it uses the native # linker, instead of GNU ld. If possible, this setting should # overridden to take advantage of the native linker features on # the platform it is being used on. _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' fi # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' else GXX=no with_gnu_ld=no wlarc= fi # PORTME: fill in a description of your system's C++ link characteristics AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries]) _LT_TAGVAR(ld_shlibs, $1)=yes case $host_os in aix3*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; aix[[4-9]]*) if test ia64 = "$host_cpu"; then # On IA64, the linker does run time linking by default, so we don't # have to do anything special. aix_use_runtimelinking=no exp_sym_flag='-Bexport' no_entry_flag= else aix_use_runtimelinking=no # Test if we are trying to use run time linking or normal # AIX style linking. If -brtl is somewhere in LDFLAGS, we # have runtime linking enabled, and use it for executables. # For shared libraries, we enable/disable runtime linking # depending on the kind of the shared library created - # when "with_aix_soname,aix_use_runtimelinking" is: # "aix,no" lib.a(lib.so.V) shared, rtl:no, for executables # "aix,yes" lib.so shared, rtl:yes, for executables # lib.a static archive # "both,no" lib.so.V(shr.o) shared, rtl:yes # lib.a(lib.so.V) shared, rtl:no, for executables # "both,yes" lib.so.V(shr.o) shared, rtl:yes, for executables # lib.a(lib.so.V) shared, rtl:no # "svr4,*" lib.so.V(shr.o) shared, rtl:yes, for executables # lib.a static archive case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*) for ld_flag in $LDFLAGS; do case $ld_flag in *-brtl*) aix_use_runtimelinking=yes break ;; esac done if test svr4,no = "$with_aix_soname,$aix_use_runtimelinking"; then # With aix-soname=svr4, we create the lib.so.V shared archives only, # so we don't have lib.a shared libs to link our executables. # We have to force runtime linking in this case. aix_use_runtimelinking=yes LDFLAGS="$LDFLAGS -Wl,-brtl" fi ;; esac exp_sym_flag='-bexport' no_entry_flag='-bnoentry' fi # When large executables or shared objects are built, AIX ld can # have problems creating the table of contents. If linking a library # or program results in "error TOC overflow" add -mminimal-toc to # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. _LT_TAGVAR(archive_cmds, $1)='' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_direct_absolute, $1)=yes _LT_TAGVAR(hardcode_libdir_separator, $1)=':' _LT_TAGVAR(link_all_deplibs, $1)=yes _LT_TAGVAR(file_list_spec, $1)='$wl-f,' case $with_aix_soname,$aix_use_runtimelinking in aix,*) ;; # no import file svr4,* | *,yes) # use import file # The Import File defines what to hardcode. _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=no ;; esac if test yes = "$GXX"; then case $host_os in aix4.[[012]]|aix4.[[012]].*) # We only want to do this on AIX 4.2 and lower, the check # below for broken collect2 doesn't work under 4.3+ collect2name=`$CC -print-prog-name=collect2` if test -f "$collect2name" && strings "$collect2name" | $GREP resolve_lib_name >/dev/null then # We have reworked collect2 : else # We have old collect2 _LT_TAGVAR(hardcode_direct, $1)=unsupported # It fails to find uninstalled libraries when the uninstalled # path is not listed in the libpath. Setting hardcode_minus_L # to unsupported forces relinking _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)= fi esac shared_flag='-shared' if test yes = "$aix_use_runtimelinking"; then shared_flag=$shared_flag' $wl-G' fi # Need to ensure runtime linking is disabled for the traditional # shared library, or the linker may eventually find shared libraries # /with/ Import File - we do not want to mix them. shared_flag_aix='-shared' shared_flag_svr4='-shared $wl-G' else # not using gcc if test ia64 = "$host_cpu"; then # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release # chokes on -Wl,-G. The following line is correct: shared_flag='-G' else if test yes = "$aix_use_runtimelinking"; then shared_flag='$wl-G' else shared_flag='$wl-bM:SRE' fi shared_flag_aix='$wl-bM:SRE' shared_flag_svr4='$wl-G' fi fi _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-bexpall' # It seems that -bexpall does not export symbols beginning with # underscore (_), so it is better to generate a list of symbols to # export. _LT_TAGVAR(always_export_symbols, $1)=yes if test aix,yes = "$with_aix_soname,$aix_use_runtimelinking"; then # Warning - without using the other runtime loading flags (-brtl), # -berok will link without error, but may produce a broken library. # The "-G" linker flag allows undefined symbols. _LT_TAGVAR(no_undefined_flag, $1)='-bernotok' # Determine the default libpath from the value encoded in an empty # executable. _LT_SYS_MODULE_PATH_AIX([$1]) _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-blibpath:$libdir:'"$aix_libpath" _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs $wl'$no_entry_flag' $compiler_flags `if test -n "$allow_undefined_flag"; then func_echo_all "$wl$allow_undefined_flag"; else :; fi` $wl'$exp_sym_flag:\$export_symbols' '$shared_flag else if test ia64 = "$host_cpu"; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-R $libdir:/usr/lib:/lib' _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs" _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\$wl$no_entry_flag"' $compiler_flags $wl$allow_undefined_flag '"\$wl$exp_sym_flag:\$export_symbols" else # Determine the default libpath from the value encoded in an # empty executable. _LT_SYS_MODULE_PATH_AIX([$1]) _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-blibpath:$libdir:'"$aix_libpath" # Warning - without using the other run time loading flags, # -berok will link without error, but may produce a broken library. _LT_TAGVAR(no_undefined_flag, $1)=' $wl-bernotok' _LT_TAGVAR(allow_undefined_flag, $1)=' $wl-berok' if test yes = "$with_gnu_ld"; then # We only use this code for GNU lds that support --whole-archive. _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive$convenience $wl--no-whole-archive' else # Exported symbols can be pulled into shared objects from archives _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience' fi _LT_TAGVAR(archive_cmds_need_lc, $1)=yes _LT_TAGVAR(archive_expsym_cmds, $1)='$RM -r $output_objdir/$realname.d~$MKDIR $output_objdir/$realname.d' # -brtl affects multiple linker settings, -berok does not and is overridden later compiler_flags_filtered='`func_echo_all "$compiler_flags " | $SED -e "s%-brtl\\([[, ]]\\)%-berok\\1%g"`' if test svr4 != "$with_aix_soname"; then # This is similar to how AIX traditionally builds its shared # libraries. Need -bnortl late, we may have -brtl in LDFLAGS. _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$CC '$shared_flag_aix' -o $output_objdir/$realname.d/$soname $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$realname.d/$soname' fi if test aix != "$with_aix_soname"; then _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$CC '$shared_flag_svr4' -o $output_objdir/$realname.d/$shared_archive_member_spec.o $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$STRIP -e $output_objdir/$realname.d/$shared_archive_member_spec.o~( func_echo_all "#! $soname($shared_archive_member_spec.o)"; if test shr_64 = "$shared_archive_member_spec"; then func_echo_all "# 64"; else func_echo_all "# 32"; fi; cat $export_symbols ) > $output_objdir/$realname.d/$shared_archive_member_spec.imp~$AR $AR_FLAGS $output_objdir/$soname $output_objdir/$realname.d/$shared_archive_member_spec.o $output_objdir/$realname.d/$shared_archive_member_spec.imp' else # used by -dlpreopen to get the symbols _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$MV $output_objdir/$realname.d/$soname $output_objdir' fi _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$RM -r $output_objdir/$realname.d' fi fi ;; beos*) if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then _LT_TAGVAR(allow_undefined_flag, $1)=unsupported # Joseph Beckenbach says some releases of gcc # support --undefined. This deserves some investigation. FIXME _LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; chorus*) case $cc_basename in *) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; esac ;; cygwin* | mingw* | pw32* | cegcc*) case $GXX,$cc_basename in ,cl* | no,cl*) # Native MSVC # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' _LT_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_TAGVAR(always_export_symbols, $1)=yes _LT_TAGVAR(file_list_spec, $1)='@' # Tell ltmain to make .lib files, not .a files. libext=lib # Tell ltmain to make .dll files, not .so files. shrext_cmds=.dll # FIXME: Setting linknames here is a bad hack. _LT_TAGVAR(archive_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~linknames=' _LT_TAGVAR(archive_expsym_cmds, $1)='if _LT_DLL_DEF_P([$export_symbols]); then cp "$export_symbols" "$output_objdir/$soname.def"; echo "$tool_output_objdir$soname.def" > "$output_objdir/$soname.exp"; else $SED -e '\''s/^/-link -EXPORT:/'\'' < $export_symbols > $output_objdir/$soname.exp; fi~ $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ linknames=' # The linker will not automatically build a static lib if we build a DLL. # _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes # Don't use ranlib _LT_TAGVAR(old_postinstall_cmds, $1)='chmod 644 $oldlib' _LT_TAGVAR(postlink_cmds, $1)='lt_outputfile="@OUTPUT@"~ lt_tool_outputfile="@TOOL_OUTPUT@"~ case $lt_outputfile in *.exe|*.EXE) ;; *) lt_outputfile=$lt_outputfile.exe lt_tool_outputfile=$lt_tool_outputfile.exe ;; esac~ func_to_tool_file "$lt_outputfile"~ if test : != "$MANIFEST_TOOL" && test -f "$lt_outputfile.manifest"; then $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; $RM "$lt_outputfile.manifest"; fi' ;; *) # g++ # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, # as there is no search path for DLLs. _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-all-symbols' _LT_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' # If the export-symbols file already is a .def file, use it as # is; otherwise, prepend EXPORTS... _LT_TAGVAR(archive_expsym_cmds, $1)='if _LT_DLL_DEF_P([$export_symbols]); then cp $export_symbols $output_objdir/$soname.def; else echo EXPORTS > $output_objdir/$soname.def; cat $export_symbols >> $output_objdir/$soname.def; fi~ $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; esac ;; darwin* | rhapsody*) _LT_DARWIN_LINKER_FEATURES($1) ;; os2*) _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(allow_undefined_flag, $1)=unsupported shrext_cmds=.dll _LT_TAGVAR(archive_cmds, $1)='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ $ECHO EXPORTS >> $output_objdir/$libname.def~ emxexp $libobjs | $SED /"_DLL_InitTerm"/d >> $output_objdir/$libname.def~ $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ emximp -o $lib $output_objdir/$libname.def' _LT_TAGVAR(archive_expsym_cmds, $1)='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ $ECHO EXPORTS >> $output_objdir/$libname.def~ prefix_cmds="$SED"~ if test EXPORTS = "`$SED 1q $export_symbols`"; then prefix_cmds="$prefix_cmds -e 1d"; fi~ prefix_cmds="$prefix_cmds -e \"s/^\(.*\)$/_\1/g\""~ cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~ $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ emximp -o $lib $output_objdir/$libname.def' _LT_TAGVAR(old_archive_From_new_cmds, $1)='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def' _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes ;; dgux*) case $cc_basename in ec++*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; ghcx*) # Green Hills C++ Compiler # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; *) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; esac ;; freebsd2.*) # C++ shared libraries reported to be fairly broken before # switch to ELF _LT_TAGVAR(ld_shlibs, $1)=no ;; freebsd-elf*) _LT_TAGVAR(archive_cmds_need_lc, $1)=no ;; freebsd* | dragonfly*) # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF # conventions _LT_TAGVAR(ld_shlibs, $1)=yes ;; haiku*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' _LT_TAGVAR(link_all_deplibs, $1)=yes ;; hpux9*) _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl+b $wl$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH, # but as the default # location of the library. case $cc_basename in CC*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; aCC*) _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -b $wl+b $wl$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP "\-L"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' ;; *) if test yes = "$GXX"; then _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared -nostdlib $pic_flag $wl+b $wl$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib' else # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no fi ;; esac ;; hpux10*|hpux11*) if test no = "$with_gnu_ld"; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl+b $wl$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: case $host_cpu in hppa*64*|ia64*) ;; *) _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E' ;; esac fi case $host_cpu in hppa*64*|ia64*) _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; *) _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_direct_absolute, $1)=yes _LT_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH, # but as the default # location of the library. ;; esac case $cc_basename in CC*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; aCC*) case $host_cpu in hppa*64*) _LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; ia64*) _LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname $wl+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; esac # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP "\-L"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' ;; *) if test yes = "$GXX"; then if test no = "$with_gnu_ld"; then case $host_cpu in hppa*64*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC $wl+h $wl$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; ia64*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $pic_flag $wl+h $wl$soname $wl+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $pic_flag $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; esac fi else # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no fi ;; esac ;; interix[[3-9]]*) _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E' # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. # Instead, shared libraries are loaded at an image base (0x10000000 by # default) and relocated if they conflict, which is a slow very memory # consuming and fragmenting process. To avoid this, we pick a random, # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link # time. Moving up from 0x10000000 also allows more sbrk(2) space. _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s|^|_|" $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--retain-symbols-file,$output_objdir/$soname.expsym $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' ;; irix5* | irix6*) case $cc_basename in CC*) # SGI C++ _LT_TAGVAR(archive_cmds, $1)='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' # Archives containing C++ object files must be created using # "CC -ar", where "CC" is the IRIX C++ compiler. This is # necessary to make sure instantiated templates are included # in the archive. _LT_TAGVAR(old_archive_cmds, $1)='$CC -ar -WR,-u -o $oldlib $oldobjs' ;; *) if test yes = "$GXX"; then if test no = "$with_gnu_ld"; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' else _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` -o $lib' fi fi _LT_TAGVAR(link_all_deplibs, $1)=yes ;; esac _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(inherit_rpath, $1)=yes ;; linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) case $cc_basename in KCC*) # Kuck and Associates, Inc. (KAI) C++ Compiler # KCC will only create a shared library if the output file # ends with ".so" (or ".sl" for HP-UX), so rename the library # to its proper name (with version) after linking. _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\$tempext\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\$tempext\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib $wl-retain-symbols-file,$export_symbols; mv \$templib $lib' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | $GREP "ld"`; rm -f libconftest$shared_ext; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-dynamic' # Archives containing C++ object files must be created using # "CC -Bstatic", where "CC" is the KAI C++ compiler. _LT_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' ;; icpc* | ecpc* ) # Intel C++ with_gnu_ld=yes # version 8.0 and above of icpc choke on multiply defined symbols # if we add $predep_objects and $postdep_objects, however 7.1 and # earlier do not add the objects themselves. case `$CC -V 2>&1` in *"Version 7."*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' ;; *) # Version 8.0 or newer tmp_idyn= case $host_cpu in ia64*) tmp_idyn=' -i_dynamic';; esac _LT_TAGVAR(archive_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' ;; esac _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-dynamic' _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive$convenience $wl--no-whole-archive' ;; pgCC* | pgcpp*) # Portland Group C++ compiler case `$CC -V` in *pgCC\ [[1-5]].* | *pgcpp\ [[1-5]].*) _LT_TAGVAR(prelink_cmds, $1)='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~ compile_command="$compile_command `find $tpldir -name \*.o | sort | $NL2SP`"' _LT_TAGVAR(old_archive_cmds, $1)='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~ $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | sort | $NL2SP`~ $RANLIB $oldlib' _LT_TAGVAR(archive_cmds, $1)='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' ;; *) # Version 6 and above use weak symbols _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' ;; esac _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl--rpath $wl$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-dynamic' _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' ;; cxx*) # Compaq C++ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib $wl-retain-symbols-file $wl$export_symbols' runpath_var=LD_RUN_PATH _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "X$list" | $Xsed' ;; xl* | mpixl* | bgxl*) # IBM XL 8.0 on PPC, with GNU ld _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-dynamic' _LT_TAGVAR(archive_cmds, $1)='$CC -qmkshrobj $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' if test yes = "$supports_anon_versioning"; then _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~ $CC -qmkshrobj $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-version-script $wl$output_objdir/$libname.ver -o $lib' fi ;; *) case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C++ 5.9 _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs' _LT_TAGVAR(archive_cmds, $1)='$CC -G$allow_undefined_flag -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G$allow_undefined_flag -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-retain-symbols-file $wl$export_symbols' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' _LT_TAGVAR(compiler_needs_object, $1)=yes # Not sure whether something based on # $CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 # would be better. output_verbose_link_cmd='func_echo_all' # Archives containing C++ object files must be created using # "CC -xar", where "CC" is the Sun C++ compiler. This is # necessary to make sure instantiated templates are included # in the archive. _LT_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs' ;; esac ;; esac ;; lynxos*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; m88k*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; mvs*) case $cc_basename in cxx*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; *) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; esac ;; netbsd*) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags' wlarc= _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no fi # Workaround some broken pre-1.5 toolchains output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"' ;; *nto* | *qnx*) _LT_TAGVAR(ld_shlibs, $1)=yes ;; openbsd* | bitrig*) if test -f /usr/libexec/ld.so; then _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=yes _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir' if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`"; then _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-retain-symbols-file,$export_symbols -o $lib' _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E' _LT_TAGVAR(whole_archive_flag_spec, $1)=$wlarc'--whole-archive$convenience '$wlarc'--no-whole-archive' fi output_verbose_link_cmd=func_echo_all else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; osf3* | osf4* | osf5*) case $cc_basename in KCC*) # Kuck and Associates, Inc. (KAI) C++ Compiler # KCC will only create a shared library if the output file # ends with ".so" (or ".sl" for HP-UX), so rename the library # to its proper name (with version) after linking. _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo "$lib" | $SED -e "s/\$tempext\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: # Archives containing C++ object files must be created using # the KAI C++ compiler. case $host in osf3*) _LT_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' ;; *) _LT_TAGVAR(old_archive_cmds, $1)='$CC -o $oldlib $oldobjs' ;; esac ;; RCC*) # Rational C++ 2.4.1 # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; cxx*) case $host in osf3*) _LT_TAGVAR(allow_undefined_flag, $1)=' $wl-expect_unresolved $wl\*' _LT_TAGVAR(archive_cmds, $1)='$CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $soname `test -n "$verstring" && func_echo_all "$wl-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' ;; *) _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' _LT_TAGVAR(archive_cmds, $1)='$CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~ echo "-hidden">> $lib.exp~ $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname $wl-input $wl$lib.exp `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib~ $RM $lib.exp' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' ;; esac _LT_TAGVAR(hardcode_libdir_separator, $1)=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld" | $GREP -v "ld:"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' ;; *) if test yes,no = "$GXX,$with_gnu_ld"; then _LT_TAGVAR(allow_undefined_flag, $1)=' $wl-expect_unresolved $wl\*' case $host in osf3*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-msym $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' ;; esac _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' else # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no fi ;; esac ;; psos*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; sunos4*) case $cc_basename in CC*) # Sun C++ 4.x # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; lcc*) # Lucid # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; *) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; esac ;; solaris*) case $cc_basename in CC* | sunCC*) # Sun C++ 4.2, 5.x and Centerline C++ _LT_TAGVAR(archive_cmds_need_lc,$1)=yes _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs' _LT_TAGVAR(archive_cmds, $1)='$CC -G$allow_undefined_flag -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -G$allow_undefined_flag $wl-M $wl$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no case $host_os in solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; *) # The compiler driver will combine and reorder linker options, # but understands '-z linker_flag'. # Supported since Solaris 2.6 (maybe 2.5.1?) _LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract' ;; esac _LT_TAGVAR(link_all_deplibs, $1)=yes output_verbose_link_cmd='func_echo_all' # Archives containing C++ object files must be created using # "CC -xar", where "CC" is the Sun C++ compiler. This is # necessary to make sure instantiated templates are included # in the archive. _LT_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs' ;; gcx*) # Green Hills C++ Compiler _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-h $wl$soname -o $lib' # The C++ compiler must be used to create the archive. _LT_TAGVAR(old_archive_cmds, $1)='$CC $LDFLAGS -archive -o $oldlib $oldobjs' ;; *) # GNU C++ compiler with Solaris linker if test yes,no = "$GXX,$with_gnu_ld"; then _LT_TAGVAR(no_undefined_flag, $1)=' $wl-z ${wl}defs' if $CC --version | $GREP -v '^2\.7' > /dev/null; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-h $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -shared $pic_flag -nostdlib $wl-M $wl$lib.exp $wl-h $wl$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' else # g++ 2.7 appears to require '-G' NOT '-shared' on this # platform. _LT_TAGVAR(archive_cmds, $1)='$CC -G -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-h $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -G -nostdlib $wl-M $wl$lib.exp $wl-h $wl$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' fi _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-R $wl$libdir' case $host_os in solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; *) _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl-z ${wl}allextract$convenience $wl-z ${wl}defaultextract' ;; esac fi ;; esac ;; sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*) _LT_TAGVAR(no_undefined_flag, $1)='$wl-z,text' _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no runpath_var='LD_RUN_PATH' case $cc_basename in CC*) _LT_TAGVAR(archive_cmds, $1)='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ;; esac ;; sysv5* | sco3.2v5* | sco5v6*) # Note: We CANNOT use -z defs as we might desire, because we do not # link with -lc, and that would cause any symbols used from libc to # always be unresolved, which means just about no library would # ever link correctly. If we're not using GNU ld we use -z text # though, which does catch some bad symbols but isn't as heavy-handed # as -z defs. _LT_TAGVAR(no_undefined_flag, $1)='$wl-z,text' _LT_TAGVAR(allow_undefined_flag, $1)='$wl-z,nodefs' _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-R,$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=':' _LT_TAGVAR(link_all_deplibs, $1)=yes _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-Bexport' runpath_var='LD_RUN_PATH' case $cc_basename in CC*) _LT_TAGVAR(archive_cmds, $1)='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(old_archive_cmds, $1)='$CC -Tprelink_objects $oldobjs~ '"$_LT_TAGVAR(old_archive_cmds, $1)" _LT_TAGVAR(reload_cmds, $1)='$CC -Tprelink_objects $reload_objs~ '"$_LT_TAGVAR(reload_cmds, $1)" ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ;; esac ;; tandem*) case $cc_basename in NCC*) # NonStop-UX NCC 3.20 # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; *) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; esac ;; vxworks*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; *) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; esac AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)]) test no = "$_LT_TAGVAR(ld_shlibs, $1)" && can_build_shared=no _LT_TAGVAR(GCC, $1)=$GXX _LT_TAGVAR(LD, $1)=$LD ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... _LT_SYS_HIDDEN_LIBDEPS($1) _LT_COMPILER_PIC($1) _LT_COMPILER_C_O($1) _LT_COMPILER_FILE_LOCKS($1) _LT_LINKER_SHLIBS($1) _LT_SYS_DYNAMIC_LINKER($1) _LT_LINKER_HARDCODE_LIBPATH($1) _LT_CONFIG($1) fi # test -n "$compiler" CC=$lt_save_CC CFLAGS=$lt_save_CFLAGS LDCXX=$LD LD=$lt_save_LD GCC=$lt_save_GCC with_gnu_ld=$lt_save_with_gnu_ld lt_cv_path_LDCXX=$lt_cv_path_LD lt_cv_path_LD=$lt_save_path_LD lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld fi # test yes != "$_lt_caught_CXX_error" AC_LANG_POP ])# _LT_LANG_CXX_CONFIG # _LT_FUNC_STRIPNAME_CNF # ---------------------- # func_stripname_cnf prefix suffix name # strip PREFIX and SUFFIX off of NAME. # PREFIX and SUFFIX must not contain globbing or regex special # characters, hashes, percent signs, but SUFFIX may contain a leading # dot (in which case that matches only a dot). # # This function is identical to the (non-XSI) version of func_stripname, # except this one can be used by m4 code that may be executed by configure, # rather than the libtool script. m4_defun([_LT_FUNC_STRIPNAME_CNF],[dnl AC_REQUIRE([_LT_DECL_SED]) AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH]) func_stripname_cnf () { case @S|@2 in .*) func_stripname_result=`$ECHO "@S|@3" | $SED "s%^@S|@1%%; s%\\\\@S|@2\$%%"`;; *) func_stripname_result=`$ECHO "@S|@3" | $SED "s%^@S|@1%%; s%@S|@2\$%%"`;; esac } # func_stripname_cnf ])# _LT_FUNC_STRIPNAME_CNF # _LT_SYS_HIDDEN_LIBDEPS([TAGNAME]) # --------------------------------- # Figure out "hidden" library dependencies from verbose # compiler output when linking a shared library. # Parse the compiler output and extract the necessary # objects, libraries and library flags. m4_defun([_LT_SYS_HIDDEN_LIBDEPS], [m4_require([_LT_FILEUTILS_DEFAULTS])dnl AC_REQUIRE([_LT_FUNC_STRIPNAME_CNF])dnl # Dependencies to place before and after the object being linked: _LT_TAGVAR(predep_objects, $1)= _LT_TAGVAR(postdep_objects, $1)= _LT_TAGVAR(predeps, $1)= _LT_TAGVAR(postdeps, $1)= _LT_TAGVAR(compiler_lib_search_path, $1)= dnl we can't use the lt_simple_compile_test_code here, dnl because it contains code intended for an executable, dnl not a library. It's possible we should let each dnl tag define a new lt_????_link_test_code variable, dnl but it's only used here... m4_if([$1], [], [cat > conftest.$ac_ext <<_LT_EOF int a; void foo (void) { a = 0; } _LT_EOF ], [$1], [CXX], [cat > conftest.$ac_ext <<_LT_EOF class Foo { public: Foo (void) { a = 0; } private: int a; }; _LT_EOF ], [$1], [F77], [cat > conftest.$ac_ext <<_LT_EOF subroutine foo implicit none integer*4 a a=0 return end _LT_EOF ], [$1], [FC], [cat > conftest.$ac_ext <<_LT_EOF subroutine foo implicit none integer a a=0 return end _LT_EOF ], [$1], [GCJ], [cat > conftest.$ac_ext <<_LT_EOF public class foo { private int a; public void bar (void) { a = 0; } }; _LT_EOF ], [$1], [GO], [cat > conftest.$ac_ext <<_LT_EOF package foo func foo() { } _LT_EOF ]) _lt_libdeps_save_CFLAGS=$CFLAGS case "$CC $CFLAGS " in #( *\ -flto*\ *) CFLAGS="$CFLAGS -fno-lto" ;; *\ -fwhopr*\ *) CFLAGS="$CFLAGS -fno-whopr" ;; *\ -fuse-linker-plugin*\ *) CFLAGS="$CFLAGS -fno-use-linker-plugin" ;; esac dnl Parse the compiler output and extract the necessary dnl objects, libraries and library flags. if AC_TRY_EVAL(ac_compile); then # Parse the compiler output and extract the necessary # objects, libraries and library flags. # Sentinel used to keep track of whether or not we are before # the conftest object file. pre_test_object_deps_done=no for p in `eval "$output_verbose_link_cmd"`; do case $prev$p in -L* | -R* | -l*) # Some compilers place space between "-{L,R}" and the path. # Remove the space. if test x-L = "$p" || test x-R = "$p"; then prev=$p continue fi # Expand the sysroot to ease extracting the directories later. if test -z "$prev"; then case $p in -L*) func_stripname_cnf '-L' '' "$p"; prev=-L; p=$func_stripname_result ;; -R*) func_stripname_cnf '-R' '' "$p"; prev=-R; p=$func_stripname_result ;; -l*) func_stripname_cnf '-l' '' "$p"; prev=-l; p=$func_stripname_result ;; esac fi case $p in =*) func_stripname_cnf '=' '' "$p"; p=$lt_sysroot$func_stripname_result ;; esac if test no = "$pre_test_object_deps_done"; then case $prev in -L | -R) # Internal compiler library paths should come after those # provided the user. The postdeps already come after the # user supplied libs so there is no need to process them. if test -z "$_LT_TAGVAR(compiler_lib_search_path, $1)"; then _LT_TAGVAR(compiler_lib_search_path, $1)=$prev$p else _LT_TAGVAR(compiler_lib_search_path, $1)="${_LT_TAGVAR(compiler_lib_search_path, $1)} $prev$p" fi ;; # The "-l" case would never come before the object being # linked, so don't bother handling this case. esac else if test -z "$_LT_TAGVAR(postdeps, $1)"; then _LT_TAGVAR(postdeps, $1)=$prev$p else _LT_TAGVAR(postdeps, $1)="${_LT_TAGVAR(postdeps, $1)} $prev$p" fi fi prev= ;; *.lto.$objext) ;; # Ignore GCC LTO objects *.$objext) # This assumes that the test object file only shows up # once in the compiler output. if test "$p" = "conftest.$objext"; then pre_test_object_deps_done=yes continue fi if test no = "$pre_test_object_deps_done"; then if test -z "$_LT_TAGVAR(predep_objects, $1)"; then _LT_TAGVAR(predep_objects, $1)=$p else _LT_TAGVAR(predep_objects, $1)="$_LT_TAGVAR(predep_objects, $1) $p" fi else if test -z "$_LT_TAGVAR(postdep_objects, $1)"; then _LT_TAGVAR(postdep_objects, $1)=$p else _LT_TAGVAR(postdep_objects, $1)="$_LT_TAGVAR(postdep_objects, $1) $p" fi fi ;; *) ;; # Ignore the rest. esac done # Clean up. rm -f a.out a.exe else echo "libtool.m4: error: problem compiling $1 test program" fi $RM -f confest.$objext CFLAGS=$_lt_libdeps_save_CFLAGS # PORTME: override above test on systems where it is broken m4_if([$1], [CXX], [case $host_os in interix[[3-9]]*) # Interix 3.5 installs completely hosed .la files for C++, so rather than # hack all around it, let's just trust "g++" to DTRT. _LT_TAGVAR(predep_objects,$1)= _LT_TAGVAR(postdep_objects,$1)= _LT_TAGVAR(postdeps,$1)= ;; esac ]) case " $_LT_TAGVAR(postdeps, $1) " in *" -lc "*) _LT_TAGVAR(archive_cmds_need_lc, $1)=no ;; esac _LT_TAGVAR(compiler_lib_search_dirs, $1)= if test -n "${_LT_TAGVAR(compiler_lib_search_path, $1)}"; then _LT_TAGVAR(compiler_lib_search_dirs, $1)=`echo " ${_LT_TAGVAR(compiler_lib_search_path, $1)}" | $SED -e 's! -L! !g' -e 's!^ !!'` fi _LT_TAGDECL([], [compiler_lib_search_dirs], [1], [The directories searched by this compiler when creating a shared library]) _LT_TAGDECL([], [predep_objects], [1], [Dependencies to place before and after the objects being linked to create a shared library]) _LT_TAGDECL([], [postdep_objects], [1]) _LT_TAGDECL([], [predeps], [1]) _LT_TAGDECL([], [postdeps], [1]) _LT_TAGDECL([], [compiler_lib_search_path], [1], [The library search path used internally by the compiler when linking a shared library]) ])# _LT_SYS_HIDDEN_LIBDEPS # _LT_LANG_F77_CONFIG([TAG]) # -------------------------- # Ensure that the configuration variables for a Fortran 77 compiler are # suitably defined. These variables are subsequently used by _LT_CONFIG # to write the compiler configuration to 'libtool'. m4_defun([_LT_LANG_F77_CONFIG], [AC_LANG_PUSH(Fortran 77) if test -z "$F77" || test no = "$F77"; then _lt_disable_F77=yes fi _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(allow_undefined_flag, $1)= _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(archive_expsym_cmds, $1)= _LT_TAGVAR(export_dynamic_flag_spec, $1)= _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_TAGVAR(hardcode_libdir_separator, $1)= _LT_TAGVAR(hardcode_minus_L, $1)=no _LT_TAGVAR(hardcode_automatic, $1)=no _LT_TAGVAR(inherit_rpath, $1)=no _LT_TAGVAR(module_cmds, $1)= _LT_TAGVAR(module_expsym_cmds, $1)= _LT_TAGVAR(link_all_deplibs, $1)=unknown _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds _LT_TAGVAR(reload_flag, $1)=$reload_flag _LT_TAGVAR(reload_cmds, $1)=$reload_cmds _LT_TAGVAR(no_undefined_flag, $1)= _LT_TAGVAR(whole_archive_flag_spec, $1)= _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no # Source file extension for f77 test sources. ac_ext=f # Object file extension for compiled f77 test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # No sense in running all these tests if we already determined that # the F77 compiler isn't working. Some variables (like enable_shared) # are currently assumed to apply to all compilers on this platform, # and will be corrupted by setting them based on a non-working compiler. if test yes != "$_lt_disable_F77"; then # Code to be used in simple compile tests lt_simple_compile_test_code="\ subroutine t return end " # Code to be used in simple link tests lt_simple_link_test_code="\ program t end " # ltmain only uses $CC for tagged configurations so make sure $CC is set. _LT_TAG_COMPILER # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE # Allow CC to be a program name with arguments. lt_save_CC=$CC lt_save_GCC=$GCC lt_save_CFLAGS=$CFLAGS CC=${F77-"f77"} CFLAGS=$FFLAGS compiler=$CC _LT_TAGVAR(compiler, $1)=$CC _LT_CC_BASENAME([$compiler]) GCC=$G77 if test -n "$compiler"; then AC_MSG_CHECKING([if libtool supports shared libraries]) AC_MSG_RESULT([$can_build_shared]) AC_MSG_CHECKING([whether to build shared libraries]) test no = "$can_build_shared" && enable_shared=no # On AIX, shared libraries and static libraries use the same namespace, and # are all built from PIC. case $host_os in aix3*) test yes = "$enable_shared" && enable_static=no if test -n "$RANLIB"; then archive_cmds="$archive_cmds~\$RANLIB \$lib" postinstall_cmds='$RANLIB $lib' fi ;; aix[[4-9]]*) if test ia64 != "$host_cpu"; then case $enable_shared,$with_aix_soname,$aix_use_runtimelinking in yes,aix,yes) ;; # shared object as lib.so file only yes,svr4,*) ;; # shared object as lib.so archive member only yes,*) enable_static=no ;; # shared object in lib.a archive as well esac fi ;; esac AC_MSG_RESULT([$enable_shared]) AC_MSG_CHECKING([whether to build static libraries]) # Make sure either enable_shared or enable_static is yes. test yes = "$enable_shared" || enable_static=yes AC_MSG_RESULT([$enable_static]) _LT_TAGVAR(GCC, $1)=$G77 _LT_TAGVAR(LD, $1)=$LD ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... _LT_COMPILER_PIC($1) _LT_COMPILER_C_O($1) _LT_COMPILER_FILE_LOCKS($1) _LT_LINKER_SHLIBS($1) _LT_SYS_DYNAMIC_LINKER($1) _LT_LINKER_HARDCODE_LIBPATH($1) _LT_CONFIG($1) fi # test -n "$compiler" GCC=$lt_save_GCC CC=$lt_save_CC CFLAGS=$lt_save_CFLAGS fi # test yes != "$_lt_disable_F77" AC_LANG_POP ])# _LT_LANG_F77_CONFIG # _LT_LANG_FC_CONFIG([TAG]) # ------------------------- # Ensure that the configuration variables for a Fortran compiler are # suitably defined. These variables are subsequently used by _LT_CONFIG # to write the compiler configuration to 'libtool'. m4_defun([_LT_LANG_FC_CONFIG], [AC_LANG_PUSH(Fortran) if test -z "$FC" || test no = "$FC"; then _lt_disable_FC=yes fi _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(allow_undefined_flag, $1)= _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(archive_expsym_cmds, $1)= _LT_TAGVAR(export_dynamic_flag_spec, $1)= _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_TAGVAR(hardcode_libdir_separator, $1)= _LT_TAGVAR(hardcode_minus_L, $1)=no _LT_TAGVAR(hardcode_automatic, $1)=no _LT_TAGVAR(inherit_rpath, $1)=no _LT_TAGVAR(module_cmds, $1)= _LT_TAGVAR(module_expsym_cmds, $1)= _LT_TAGVAR(link_all_deplibs, $1)=unknown _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds _LT_TAGVAR(reload_flag, $1)=$reload_flag _LT_TAGVAR(reload_cmds, $1)=$reload_cmds _LT_TAGVAR(no_undefined_flag, $1)= _LT_TAGVAR(whole_archive_flag_spec, $1)= _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no # Source file extension for fc test sources. ac_ext=${ac_fc_srcext-f} # Object file extension for compiled fc test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # No sense in running all these tests if we already determined that # the FC compiler isn't working. Some variables (like enable_shared) # are currently assumed to apply to all compilers on this platform, # and will be corrupted by setting them based on a non-working compiler. if test yes != "$_lt_disable_FC"; then # Code to be used in simple compile tests lt_simple_compile_test_code="\ subroutine t return end " # Code to be used in simple link tests lt_simple_link_test_code="\ program t end " # ltmain only uses $CC for tagged configurations so make sure $CC is set. _LT_TAG_COMPILER # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE # Allow CC to be a program name with arguments. lt_save_CC=$CC lt_save_GCC=$GCC lt_save_CFLAGS=$CFLAGS CC=${FC-"f95"} CFLAGS=$FCFLAGS compiler=$CC GCC=$ac_cv_fc_compiler_gnu _LT_TAGVAR(compiler, $1)=$CC _LT_CC_BASENAME([$compiler]) if test -n "$compiler"; then AC_MSG_CHECKING([if libtool supports shared libraries]) AC_MSG_RESULT([$can_build_shared]) AC_MSG_CHECKING([whether to build shared libraries]) test no = "$can_build_shared" && enable_shared=no # On AIX, shared libraries and static libraries use the same namespace, and # are all built from PIC. case $host_os in aix3*) test yes = "$enable_shared" && enable_static=no if test -n "$RANLIB"; then archive_cmds="$archive_cmds~\$RANLIB \$lib" postinstall_cmds='$RANLIB $lib' fi ;; aix[[4-9]]*) if test ia64 != "$host_cpu"; then case $enable_shared,$with_aix_soname,$aix_use_runtimelinking in yes,aix,yes) ;; # shared object as lib.so file only yes,svr4,*) ;; # shared object as lib.so archive member only yes,*) enable_static=no ;; # shared object in lib.a archive as well esac fi ;; esac AC_MSG_RESULT([$enable_shared]) AC_MSG_CHECKING([whether to build static libraries]) # Make sure either enable_shared or enable_static is yes. test yes = "$enable_shared" || enable_static=yes AC_MSG_RESULT([$enable_static]) _LT_TAGVAR(GCC, $1)=$ac_cv_fc_compiler_gnu _LT_TAGVAR(LD, $1)=$LD ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... _LT_SYS_HIDDEN_LIBDEPS($1) _LT_COMPILER_PIC($1) _LT_COMPILER_C_O($1) _LT_COMPILER_FILE_LOCKS($1) _LT_LINKER_SHLIBS($1) _LT_SYS_DYNAMIC_LINKER($1) _LT_LINKER_HARDCODE_LIBPATH($1) _LT_CONFIG($1) fi # test -n "$compiler" GCC=$lt_save_GCC CC=$lt_save_CC CFLAGS=$lt_save_CFLAGS fi # test yes != "$_lt_disable_FC" AC_LANG_POP ])# _LT_LANG_FC_CONFIG # _LT_LANG_GCJ_CONFIG([TAG]) # -------------------------- # Ensure that the configuration variables for the GNU Java Compiler compiler # are suitably defined. These variables are subsequently used by _LT_CONFIG # to write the compiler configuration to 'libtool'. m4_defun([_LT_LANG_GCJ_CONFIG], [AC_REQUIRE([LT_PROG_GCJ])dnl AC_LANG_SAVE # Source file extension for Java test sources. ac_ext=java # Object file extension for compiled Java test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # Code to be used in simple compile tests lt_simple_compile_test_code="class foo {}" # Code to be used in simple link tests lt_simple_link_test_code='public class conftest { public static void main(String[[]] argv) {}; }' # ltmain only uses $CC for tagged configurations so make sure $CC is set. _LT_TAG_COMPILER # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE # Allow CC to be a program name with arguments. lt_save_CC=$CC lt_save_CFLAGS=$CFLAGS lt_save_GCC=$GCC GCC=yes CC=${GCJ-"gcj"} CFLAGS=$GCJFLAGS compiler=$CC _LT_TAGVAR(compiler, $1)=$CC _LT_TAGVAR(LD, $1)=$LD _LT_CC_BASENAME([$compiler]) # GCJ did not exist at the time GCC didn't implicitly link libc in. _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds _LT_TAGVAR(reload_flag, $1)=$reload_flag _LT_TAGVAR(reload_cmds, $1)=$reload_cmds if test -n "$compiler"; then _LT_COMPILER_NO_RTTI($1) _LT_COMPILER_PIC($1) _LT_COMPILER_C_O($1) _LT_COMPILER_FILE_LOCKS($1) _LT_LINKER_SHLIBS($1) _LT_LINKER_HARDCODE_LIBPATH($1) _LT_CONFIG($1) fi AC_LANG_RESTORE GCC=$lt_save_GCC CC=$lt_save_CC CFLAGS=$lt_save_CFLAGS ])# _LT_LANG_GCJ_CONFIG # _LT_LANG_GO_CONFIG([TAG]) # -------------------------- # Ensure that the configuration variables for the GNU Go compiler # are suitably defined. These variables are subsequently used by _LT_CONFIG # to write the compiler configuration to 'libtool'. m4_defun([_LT_LANG_GO_CONFIG], [AC_REQUIRE([LT_PROG_GO])dnl AC_LANG_SAVE # Source file extension for Go test sources. ac_ext=go # Object file extension for compiled Go test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # Code to be used in simple compile tests lt_simple_compile_test_code="package main; func main() { }" # Code to be used in simple link tests lt_simple_link_test_code='package main; func main() { }' # ltmain only uses $CC for tagged configurations so make sure $CC is set. _LT_TAG_COMPILER # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE # Allow CC to be a program name with arguments. lt_save_CC=$CC lt_save_CFLAGS=$CFLAGS lt_save_GCC=$GCC GCC=yes CC=${GOC-"gccgo"} CFLAGS=$GOFLAGS compiler=$CC _LT_TAGVAR(compiler, $1)=$CC _LT_TAGVAR(LD, $1)=$LD _LT_CC_BASENAME([$compiler]) # Go did not exist at the time GCC didn't implicitly link libc in. _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds _LT_TAGVAR(reload_flag, $1)=$reload_flag _LT_TAGVAR(reload_cmds, $1)=$reload_cmds if test -n "$compiler"; then _LT_COMPILER_NO_RTTI($1) _LT_COMPILER_PIC($1) _LT_COMPILER_C_O($1) _LT_COMPILER_FILE_LOCKS($1) _LT_LINKER_SHLIBS($1) _LT_LINKER_HARDCODE_LIBPATH($1) _LT_CONFIG($1) fi AC_LANG_RESTORE GCC=$lt_save_GCC CC=$lt_save_CC CFLAGS=$lt_save_CFLAGS ])# _LT_LANG_GO_CONFIG # _LT_LANG_RC_CONFIG([TAG]) # ------------------------- # Ensure that the configuration variables for the Windows resource compiler # are suitably defined. These variables are subsequently used by _LT_CONFIG # to write the compiler configuration to 'libtool'. m4_defun([_LT_LANG_RC_CONFIG], [AC_REQUIRE([LT_PROG_RC])dnl AC_LANG_SAVE # Source file extension for RC test sources. ac_ext=rc # Object file extension for compiled RC test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # Code to be used in simple compile tests lt_simple_compile_test_code='sample MENU { MENUITEM "&Soup", 100, CHECKED }' # Code to be used in simple link tests lt_simple_link_test_code=$lt_simple_compile_test_code # ltmain only uses $CC for tagged configurations so make sure $CC is set. _LT_TAG_COMPILER # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE # Allow CC to be a program name with arguments. lt_save_CC=$CC lt_save_CFLAGS=$CFLAGS lt_save_GCC=$GCC GCC= CC=${RC-"windres"} CFLAGS= compiler=$CC _LT_TAGVAR(compiler, $1)=$CC _LT_CC_BASENAME([$compiler]) _LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes if test -n "$compiler"; then : _LT_CONFIG($1) fi GCC=$lt_save_GCC AC_LANG_RESTORE CC=$lt_save_CC CFLAGS=$lt_save_CFLAGS ])# _LT_LANG_RC_CONFIG # LT_PROG_GCJ # ----------- AC_DEFUN([LT_PROG_GCJ], [m4_ifdef([AC_PROG_GCJ], [AC_PROG_GCJ], [m4_ifdef([A][M_PROG_GCJ], [A][M_PROG_GCJ], [AC_CHECK_TOOL(GCJ, gcj,) test set = "${GCJFLAGS+set}" || GCJFLAGS="-g -O2" AC_SUBST(GCJFLAGS)])])[]dnl ]) # Old name: AU_ALIAS([LT_AC_PROG_GCJ], [LT_PROG_GCJ]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([LT_AC_PROG_GCJ], []) # LT_PROG_GO # ---------- AC_DEFUN([LT_PROG_GO], [AC_CHECK_TOOL(GOC, gccgo,) ]) # LT_PROG_RC # ---------- AC_DEFUN([LT_PROG_RC], [AC_CHECK_TOOL(RC, windres,) ]) # Old name: AU_ALIAS([LT_AC_PROG_RC], [LT_PROG_RC]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([LT_AC_PROG_RC], []) # _LT_DECL_EGREP # -------------- # If we don't have a new enough Autoconf to choose the best grep # available, choose the one first in the user's PATH. m4_defun([_LT_DECL_EGREP], [AC_REQUIRE([AC_PROG_EGREP])dnl AC_REQUIRE([AC_PROG_FGREP])dnl test -z "$GREP" && GREP=grep _LT_DECL([], [GREP], [1], [A grep program that handles long lines]) _LT_DECL([], [EGREP], [1], [An ERE matcher]) _LT_DECL([], [FGREP], [1], [A literal string matcher]) dnl Non-bleeding-edge autoconf doesn't subst GREP, so do it here too AC_SUBST([GREP]) ]) # _LT_DECL_OBJDUMP # -------------- # If we don't have a new enough Autoconf to choose the best objdump # available, choose the one first in the user's PATH. m4_defun([_LT_DECL_OBJDUMP], [AC_CHECK_TOOL(OBJDUMP, objdump, false) test -z "$OBJDUMP" && OBJDUMP=objdump _LT_DECL([], [OBJDUMP], [1], [An object symbol dumper]) AC_SUBST([OBJDUMP]) ]) # _LT_DECL_DLLTOOL # ---------------- # Ensure DLLTOOL variable is set. m4_defun([_LT_DECL_DLLTOOL], [AC_CHECK_TOOL(DLLTOOL, dlltool, false) test -z "$DLLTOOL" && DLLTOOL=dlltool _LT_DECL([], [DLLTOOL], [1], [DLL creation program]) AC_SUBST([DLLTOOL]) ]) # _LT_DECL_SED # ------------ # Check for a fully-functional sed program, that truncates # as few characters as possible. Prefer GNU sed if found. m4_defun([_LT_DECL_SED], [AC_PROG_SED test -z "$SED" && SED=sed Xsed="$SED -e 1s/^X//" _LT_DECL([], [SED], [1], [A sed program that does not truncate output]) _LT_DECL([], [Xsed], ["\$SED -e 1s/^X//"], [Sed that helps us avoid accidentally triggering echo(1) options like -n]) ])# _LT_DECL_SED m4_ifndef([AC_PROG_SED], [ # NOTE: This macro has been submitted for inclusion into # # GNU Autoconf as AC_PROG_SED. When it is available in # # a released version of Autoconf we should remove this # # macro and use it instead. # m4_defun([AC_PROG_SED], [AC_MSG_CHECKING([for a sed that does not truncate output]) AC_CACHE_VAL(lt_cv_path_SED, [# Loop through the user's path and test for sed and gsed. # Then use that list of sed's as ones to test for truncation. as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for lt_ac_prog in sed gsed; do for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$lt_ac_prog$ac_exec_ext"; then lt_ac_sed_list="$lt_ac_sed_list $as_dir/$lt_ac_prog$ac_exec_ext" fi done done done IFS=$as_save_IFS lt_ac_max=0 lt_ac_count=0 # Add /usr/xpg4/bin/sed as it is typically found on Solaris # along with /bin/sed that truncates output. for lt_ac_sed in $lt_ac_sed_list /usr/xpg4/bin/sed; do test ! -f "$lt_ac_sed" && continue cat /dev/null > conftest.in lt_ac_count=0 echo $ECHO_N "0123456789$ECHO_C" >conftest.in # Check for GNU sed and select it if it is found. if "$lt_ac_sed" --version 2>&1 < /dev/null | grep 'GNU' > /dev/null; then lt_cv_path_SED=$lt_ac_sed break fi while true; do cat conftest.in conftest.in >conftest.tmp mv conftest.tmp conftest.in cp conftest.in conftest.nl echo >>conftest.nl $lt_ac_sed -e 's/a$//' < conftest.nl >conftest.out || break cmp -s conftest.out conftest.nl || break # 10000 chars as input seems more than enough test 10 -lt "$lt_ac_count" && break lt_ac_count=`expr $lt_ac_count + 1` if test "$lt_ac_count" -gt "$lt_ac_max"; then lt_ac_max=$lt_ac_count lt_cv_path_SED=$lt_ac_sed fi done done ]) SED=$lt_cv_path_SED AC_SUBST([SED]) AC_MSG_RESULT([$SED]) ])#AC_PROG_SED ])#m4_ifndef # Old name: AU_ALIAS([LT_AC_PROG_SED], [AC_PROG_SED]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([LT_AC_PROG_SED], []) # _LT_CHECK_SHELL_FEATURES # ------------------------ # Find out whether the shell is Bourne or XSI compatible, # or has some other useful features. m4_defun([_LT_CHECK_SHELL_FEATURES], [if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then lt_unset=unset else lt_unset=false fi _LT_DECL([], [lt_unset], [0], [whether the shell understands "unset"])dnl # test EBCDIC or ASCII case `echo X|tr X '\101'` in A) # ASCII based system # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr lt_SP2NL='tr \040 \012' lt_NL2SP='tr \015\012 \040\040' ;; *) # EBCDIC based system lt_SP2NL='tr \100 \n' lt_NL2SP='tr \r\n \100\100' ;; esac _LT_DECL([SP2NL], [lt_SP2NL], [1], [turn spaces into newlines])dnl _LT_DECL([NL2SP], [lt_NL2SP], [1], [turn newlines into spaces])dnl ])# _LT_CHECK_SHELL_FEATURES # _LT_PATH_CONVERSION_FUNCTIONS # ----------------------------- # Determine what file name conversion functions should be used by # func_to_host_file (and, implicitly, by func_to_host_path). These are needed # for certain cross-compile configurations and native mingw. m4_defun([_LT_PATH_CONVERSION_FUNCTIONS], [AC_REQUIRE([AC_CANONICAL_HOST])dnl AC_REQUIRE([AC_CANONICAL_BUILD])dnl AC_MSG_CHECKING([how to convert $build file names to $host format]) AC_CACHE_VAL(lt_cv_to_host_file_cmd, [case $host in *-*-mingw* ) case $build in *-*-mingw* ) # actually msys lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32 ;; *-*-cygwin* ) lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32 ;; * ) # otherwise, assume *nix lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32 ;; esac ;; *-*-cygwin* ) case $build in *-*-mingw* ) # actually msys lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin ;; *-*-cygwin* ) lt_cv_to_host_file_cmd=func_convert_file_noop ;; * ) # otherwise, assume *nix lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin ;; esac ;; * ) # unhandled hosts (and "normal" native builds) lt_cv_to_host_file_cmd=func_convert_file_noop ;; esac ]) to_host_file_cmd=$lt_cv_to_host_file_cmd AC_MSG_RESULT([$lt_cv_to_host_file_cmd]) _LT_DECL([to_host_file_cmd], [lt_cv_to_host_file_cmd], [0], [convert $build file names to $host format])dnl AC_MSG_CHECKING([how to convert $build file names to toolchain format]) AC_CACHE_VAL(lt_cv_to_tool_file_cmd, [#assume ordinary cross tools, or native build. lt_cv_to_tool_file_cmd=func_convert_file_noop case $host in *-*-mingw* ) case $build in *-*-mingw* ) # actually msys lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32 ;; esac ;; esac ]) to_tool_file_cmd=$lt_cv_to_tool_file_cmd AC_MSG_RESULT([$lt_cv_to_tool_file_cmd]) _LT_DECL([to_tool_file_cmd], [lt_cv_to_tool_file_cmd], [0], [convert $build files to toolchain format])dnl ])# _LT_PATH_CONVERSION_FUNCTIONS # Helper functions for option handling. -*- Autoconf -*- # # Copyright (C) 2004-2005, 2007-2009, 2011-2015 Free Software # Foundation, Inc. # Written by Gary V. Vaughan, 2004 # # This file is free software; the Free Software Foundation gives # unlimited permission to copy and/or distribute it, with or without # modifications, as long as this notice is preserved. # serial 8 ltoptions.m4 # This is to help aclocal find these macros, as it can't see m4_define. AC_DEFUN([LTOPTIONS_VERSION], [m4_if([1])]) # _LT_MANGLE_OPTION(MACRO-NAME, OPTION-NAME) # ------------------------------------------ m4_define([_LT_MANGLE_OPTION], [[_LT_OPTION_]m4_bpatsubst($1__$2, [[^a-zA-Z0-9_]], [_])]) # _LT_SET_OPTION(MACRO-NAME, OPTION-NAME) # --------------------------------------- # Set option OPTION-NAME for macro MACRO-NAME, and if there is a # matching handler defined, dispatch to it. Other OPTION-NAMEs are # saved as a flag. m4_define([_LT_SET_OPTION], [m4_define(_LT_MANGLE_OPTION([$1], [$2]))dnl m4_ifdef(_LT_MANGLE_DEFUN([$1], [$2]), _LT_MANGLE_DEFUN([$1], [$2]), [m4_warning([Unknown $1 option '$2'])])[]dnl ]) # _LT_IF_OPTION(MACRO-NAME, OPTION-NAME, IF-SET, [IF-NOT-SET]) # ------------------------------------------------------------ # Execute IF-SET if OPTION is set, IF-NOT-SET otherwise. m4_define([_LT_IF_OPTION], [m4_ifdef(_LT_MANGLE_OPTION([$1], [$2]), [$3], [$4])]) # _LT_UNLESS_OPTIONS(MACRO-NAME, OPTION-LIST, IF-NOT-SET) # ------------------------------------------------------- # Execute IF-NOT-SET unless all options in OPTION-LIST for MACRO-NAME # are set. m4_define([_LT_UNLESS_OPTIONS], [m4_foreach([_LT_Option], m4_split(m4_normalize([$2])), [m4_ifdef(_LT_MANGLE_OPTION([$1], _LT_Option), [m4_define([$0_found])])])[]dnl m4_ifdef([$0_found], [m4_undefine([$0_found])], [$3 ])[]dnl ]) # _LT_SET_OPTIONS(MACRO-NAME, OPTION-LIST) # ---------------------------------------- # OPTION-LIST is a space-separated list of Libtool options associated # with MACRO-NAME. If any OPTION has a matching handler declared with # LT_OPTION_DEFINE, dispatch to that macro; otherwise complain about # the unknown option and exit. m4_defun([_LT_SET_OPTIONS], [# Set options m4_foreach([_LT_Option], m4_split(m4_normalize([$2])), [_LT_SET_OPTION([$1], _LT_Option)]) m4_if([$1],[LT_INIT],[ dnl dnl Simply set some default values (i.e off) if boolean options were not dnl specified: _LT_UNLESS_OPTIONS([LT_INIT], [dlopen], [enable_dlopen=no ]) _LT_UNLESS_OPTIONS([LT_INIT], [win32-dll], [enable_win32_dll=no ]) dnl dnl If no reference was made to various pairs of opposing options, then dnl we run the default mode handler for the pair. For example, if neither dnl 'shared' nor 'disable-shared' was passed, we enable building of shared dnl archives by default: _LT_UNLESS_OPTIONS([LT_INIT], [shared disable-shared], [_LT_ENABLE_SHARED]) _LT_UNLESS_OPTIONS([LT_INIT], [static disable-static], [_LT_ENABLE_STATIC]) _LT_UNLESS_OPTIONS([LT_INIT], [pic-only no-pic], [_LT_WITH_PIC]) _LT_UNLESS_OPTIONS([LT_INIT], [fast-install disable-fast-install], [_LT_ENABLE_FAST_INSTALL]) _LT_UNLESS_OPTIONS([LT_INIT], [aix-soname=aix aix-soname=both aix-soname=svr4], [_LT_WITH_AIX_SONAME([aix])]) ]) ])# _LT_SET_OPTIONS # _LT_MANGLE_DEFUN(MACRO-NAME, OPTION-NAME) # ----------------------------------------- m4_define([_LT_MANGLE_DEFUN], [[_LT_OPTION_DEFUN_]m4_bpatsubst(m4_toupper([$1__$2]), [[^A-Z0-9_]], [_])]) # LT_OPTION_DEFINE(MACRO-NAME, OPTION-NAME, CODE) # ----------------------------------------------- m4_define([LT_OPTION_DEFINE], [m4_define(_LT_MANGLE_DEFUN([$1], [$2]), [$3])[]dnl ])# LT_OPTION_DEFINE # dlopen # ------ LT_OPTION_DEFINE([LT_INIT], [dlopen], [enable_dlopen=yes ]) AU_DEFUN([AC_LIBTOOL_DLOPEN], [_LT_SET_OPTION([LT_INIT], [dlopen]) AC_DIAGNOSE([obsolete], [$0: Remove this warning and the call to _LT_SET_OPTION when you put the 'dlopen' option into LT_INIT's first parameter.]) ]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_DLOPEN], []) # win32-dll # --------- # Declare package support for building win32 dll's. LT_OPTION_DEFINE([LT_INIT], [win32-dll], [enable_win32_dll=yes case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-cegcc*) AC_CHECK_TOOL(AS, as, false) AC_CHECK_TOOL(DLLTOOL, dlltool, false) AC_CHECK_TOOL(OBJDUMP, objdump, false) ;; esac test -z "$AS" && AS=as _LT_DECL([], [AS], [1], [Assembler program])dnl test -z "$DLLTOOL" && DLLTOOL=dlltool _LT_DECL([], [DLLTOOL], [1], [DLL creation program])dnl test -z "$OBJDUMP" && OBJDUMP=objdump _LT_DECL([], [OBJDUMP], [1], [Object dumper program])dnl ])# win32-dll AU_DEFUN([AC_LIBTOOL_WIN32_DLL], [AC_REQUIRE([AC_CANONICAL_HOST])dnl _LT_SET_OPTION([LT_INIT], [win32-dll]) AC_DIAGNOSE([obsolete], [$0: Remove this warning and the call to _LT_SET_OPTION when you put the 'win32-dll' option into LT_INIT's first parameter.]) ]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_WIN32_DLL], []) # _LT_ENABLE_SHARED([DEFAULT]) # ---------------------------- # implement the --enable-shared flag, and supports the 'shared' and # 'disable-shared' LT_INIT options. # DEFAULT is either 'yes' or 'no'. If omitted, it defaults to 'yes'. m4_define([_LT_ENABLE_SHARED], [m4_define([_LT_ENABLE_SHARED_DEFAULT], [m4_if($1, no, no, yes)])dnl AC_ARG_ENABLE([shared], [AS_HELP_STRING([--enable-shared@<:@=PKGS@:>@], [build shared libraries @<:@default=]_LT_ENABLE_SHARED_DEFAULT[@:>@])], [p=${PACKAGE-default} case $enableval in yes) enable_shared=yes ;; no) enable_shared=no ;; *) enable_shared=no # Look at the argument we got. We use all the common list separators. lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR, for pkg in $enableval; do IFS=$lt_save_ifs if test "X$pkg" = "X$p"; then enable_shared=yes fi done IFS=$lt_save_ifs ;; esac], [enable_shared=]_LT_ENABLE_SHARED_DEFAULT) _LT_DECL([build_libtool_libs], [enable_shared], [0], [Whether or not to build shared libraries]) ])# _LT_ENABLE_SHARED LT_OPTION_DEFINE([LT_INIT], [shared], [_LT_ENABLE_SHARED([yes])]) LT_OPTION_DEFINE([LT_INIT], [disable-shared], [_LT_ENABLE_SHARED([no])]) # Old names: AC_DEFUN([AC_ENABLE_SHARED], [_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[shared]) ]) AC_DEFUN([AC_DISABLE_SHARED], [_LT_SET_OPTION([LT_INIT], [disable-shared]) ]) AU_DEFUN([AM_ENABLE_SHARED], [AC_ENABLE_SHARED($@)]) AU_DEFUN([AM_DISABLE_SHARED], [AC_DISABLE_SHARED($@)]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AM_ENABLE_SHARED], []) dnl AC_DEFUN([AM_DISABLE_SHARED], []) # _LT_ENABLE_STATIC([DEFAULT]) # ---------------------------- # implement the --enable-static flag, and support the 'static' and # 'disable-static' LT_INIT options. # DEFAULT is either 'yes' or 'no'. If omitted, it defaults to 'yes'. m4_define([_LT_ENABLE_STATIC], [m4_define([_LT_ENABLE_STATIC_DEFAULT], [m4_if($1, no, no, yes)])dnl AC_ARG_ENABLE([static], [AS_HELP_STRING([--enable-static@<:@=PKGS@:>@], [build static libraries @<:@default=]_LT_ENABLE_STATIC_DEFAULT[@:>@])], [p=${PACKAGE-default} case $enableval in yes) enable_static=yes ;; no) enable_static=no ;; *) enable_static=no # Look at the argument we got. We use all the common list separators. lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR, for pkg in $enableval; do IFS=$lt_save_ifs if test "X$pkg" = "X$p"; then enable_static=yes fi done IFS=$lt_save_ifs ;; esac], [enable_static=]_LT_ENABLE_STATIC_DEFAULT) _LT_DECL([build_old_libs], [enable_static], [0], [Whether or not to build static libraries]) ])# _LT_ENABLE_STATIC LT_OPTION_DEFINE([LT_INIT], [static], [_LT_ENABLE_STATIC([yes])]) LT_OPTION_DEFINE([LT_INIT], [disable-static], [_LT_ENABLE_STATIC([no])]) # Old names: AC_DEFUN([AC_ENABLE_STATIC], [_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[static]) ]) AC_DEFUN([AC_DISABLE_STATIC], [_LT_SET_OPTION([LT_INIT], [disable-static]) ]) AU_DEFUN([AM_ENABLE_STATIC], [AC_ENABLE_STATIC($@)]) AU_DEFUN([AM_DISABLE_STATIC], [AC_DISABLE_STATIC($@)]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AM_ENABLE_STATIC], []) dnl AC_DEFUN([AM_DISABLE_STATIC], []) # _LT_ENABLE_FAST_INSTALL([DEFAULT]) # ---------------------------------- # implement the --enable-fast-install flag, and support the 'fast-install' # and 'disable-fast-install' LT_INIT options. # DEFAULT is either 'yes' or 'no'. If omitted, it defaults to 'yes'. m4_define([_LT_ENABLE_FAST_INSTALL], [m4_define([_LT_ENABLE_FAST_INSTALL_DEFAULT], [m4_if($1, no, no, yes)])dnl AC_ARG_ENABLE([fast-install], [AS_HELP_STRING([--enable-fast-install@<:@=PKGS@:>@], [optimize for fast installation @<:@default=]_LT_ENABLE_FAST_INSTALL_DEFAULT[@:>@])], [p=${PACKAGE-default} case $enableval in yes) enable_fast_install=yes ;; no) enable_fast_install=no ;; *) enable_fast_install=no # Look at the argument we got. We use all the common list separators. lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR, for pkg in $enableval; do IFS=$lt_save_ifs if test "X$pkg" = "X$p"; then enable_fast_install=yes fi done IFS=$lt_save_ifs ;; esac], [enable_fast_install=]_LT_ENABLE_FAST_INSTALL_DEFAULT) _LT_DECL([fast_install], [enable_fast_install], [0], [Whether or not to optimize for fast installation])dnl ])# _LT_ENABLE_FAST_INSTALL LT_OPTION_DEFINE([LT_INIT], [fast-install], [_LT_ENABLE_FAST_INSTALL([yes])]) LT_OPTION_DEFINE([LT_INIT], [disable-fast-install], [_LT_ENABLE_FAST_INSTALL([no])]) # Old names: AU_DEFUN([AC_ENABLE_FAST_INSTALL], [_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[fast-install]) AC_DIAGNOSE([obsolete], [$0: Remove this warning and the call to _LT_SET_OPTION when you put the 'fast-install' option into LT_INIT's first parameter.]) ]) AU_DEFUN([AC_DISABLE_FAST_INSTALL], [_LT_SET_OPTION([LT_INIT], [disable-fast-install]) AC_DIAGNOSE([obsolete], [$0: Remove this warning and the call to _LT_SET_OPTION when you put the 'disable-fast-install' option into LT_INIT's first parameter.]) ]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_ENABLE_FAST_INSTALL], []) dnl AC_DEFUN([AM_DISABLE_FAST_INSTALL], []) # _LT_WITH_AIX_SONAME([DEFAULT]) # ---------------------------------- # implement the --with-aix-soname flag, and support the `aix-soname=aix' # and `aix-soname=both' and `aix-soname=svr4' LT_INIT options. DEFAULT # is either `aix', `both' or `svr4'. If omitted, it defaults to `aix'. m4_define([_LT_WITH_AIX_SONAME], [m4_define([_LT_WITH_AIX_SONAME_DEFAULT], [m4_if($1, svr4, svr4, m4_if($1, both, both, aix))])dnl shared_archive_member_spec= case $host,$enable_shared in power*-*-aix[[5-9]]*,yes) AC_MSG_CHECKING([which variant of shared library versioning to provide]) AC_ARG_WITH([aix-soname], [AS_HELP_STRING([--with-aix-soname=aix|svr4|both], [shared library versioning (aka "SONAME") variant to provide on AIX, @<:@default=]_LT_WITH_AIX_SONAME_DEFAULT[@:>@.])], [case $withval in aix|svr4|both) ;; *) AC_MSG_ERROR([Unknown argument to --with-aix-soname]) ;; esac lt_cv_with_aix_soname=$with_aix_soname], [AC_CACHE_VAL([lt_cv_with_aix_soname], [lt_cv_with_aix_soname=]_LT_WITH_AIX_SONAME_DEFAULT) with_aix_soname=$lt_cv_with_aix_soname]) AC_MSG_RESULT([$with_aix_soname]) if test aix != "$with_aix_soname"; then # For the AIX way of multilib, we name the shared archive member # based on the bitwidth used, traditionally 'shr.o' or 'shr_64.o', # and 'shr.imp' or 'shr_64.imp', respectively, for the Import File. # Even when GNU compilers ignore OBJECT_MODE but need '-maix64' flag, # the AIX toolchain works better with OBJECT_MODE set (default 32). if test 64 = "${OBJECT_MODE-32}"; then shared_archive_member_spec=shr_64 else shared_archive_member_spec=shr fi fi ;; *) with_aix_soname=aix ;; esac _LT_DECL([], [shared_archive_member_spec], [0], [Shared archive member basename, for filename based shared library versioning on AIX])dnl ])# _LT_WITH_AIX_SONAME LT_OPTION_DEFINE([LT_INIT], [aix-soname=aix], [_LT_WITH_AIX_SONAME([aix])]) LT_OPTION_DEFINE([LT_INIT], [aix-soname=both], [_LT_WITH_AIX_SONAME([both])]) LT_OPTION_DEFINE([LT_INIT], [aix-soname=svr4], [_LT_WITH_AIX_SONAME([svr4])]) # _LT_WITH_PIC([MODE]) # -------------------- # implement the --with-pic flag, and support the 'pic-only' and 'no-pic' # LT_INIT options. # MODE is either 'yes' or 'no'. If omitted, it defaults to 'both'. m4_define([_LT_WITH_PIC], [AC_ARG_WITH([pic], [AS_HELP_STRING([--with-pic@<:@=PKGS@:>@], [try to use only PIC/non-PIC objects @<:@default=use both@:>@])], [lt_p=${PACKAGE-default} case $withval in yes|no) pic_mode=$withval ;; *) pic_mode=default # Look at the argument we got. We use all the common list separators. lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR, for lt_pkg in $withval; do IFS=$lt_save_ifs if test "X$lt_pkg" = "X$lt_p"; then pic_mode=yes fi done IFS=$lt_save_ifs ;; esac], [pic_mode=m4_default([$1], [default])]) _LT_DECL([], [pic_mode], [0], [What type of objects to build])dnl ])# _LT_WITH_PIC LT_OPTION_DEFINE([LT_INIT], [pic-only], [_LT_WITH_PIC([yes])]) LT_OPTION_DEFINE([LT_INIT], [no-pic], [_LT_WITH_PIC([no])]) # Old name: AU_DEFUN([AC_LIBTOOL_PICMODE], [_LT_SET_OPTION([LT_INIT], [pic-only]) AC_DIAGNOSE([obsolete], [$0: Remove this warning and the call to _LT_SET_OPTION when you put the 'pic-only' option into LT_INIT's first parameter.]) ]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_PICMODE], []) m4_define([_LTDL_MODE], []) LT_OPTION_DEFINE([LTDL_INIT], [nonrecursive], [m4_define([_LTDL_MODE], [nonrecursive])]) LT_OPTION_DEFINE([LTDL_INIT], [recursive], [m4_define([_LTDL_MODE], [recursive])]) LT_OPTION_DEFINE([LTDL_INIT], [subproject], [m4_define([_LTDL_MODE], [subproject])]) m4_define([_LTDL_TYPE], []) LT_OPTION_DEFINE([LTDL_INIT], [installable], [m4_define([_LTDL_TYPE], [installable])]) LT_OPTION_DEFINE([LTDL_INIT], [convenience], [m4_define([_LTDL_TYPE], [convenience])]) # ltsugar.m4 -- libtool m4 base layer. -*-Autoconf-*- # # Copyright (C) 2004-2005, 2007-2008, 2011-2015 Free Software # Foundation, Inc. # Written by Gary V. Vaughan, 2004 # # This file is free software; the Free Software Foundation gives # unlimited permission to copy and/or distribute it, with or without # modifications, as long as this notice is preserved. # serial 6 ltsugar.m4 # This is to help aclocal find these macros, as it can't see m4_define. AC_DEFUN([LTSUGAR_VERSION], [m4_if([0.1])]) # lt_join(SEP, ARG1, [ARG2...]) # ----------------------------- # Produce ARG1SEPARG2...SEPARGn, omitting [] arguments and their # associated separator. # Needed until we can rely on m4_join from Autoconf 2.62, since all earlier # versions in m4sugar had bugs. m4_define([lt_join], [m4_if([$#], [1], [], [$#], [2], [[$2]], [m4_if([$2], [], [], [[$2]_])$0([$1], m4_shift(m4_shift($@)))])]) m4_define([_lt_join], [m4_if([$#$2], [2], [], [m4_if([$2], [], [], [[$1$2]])$0([$1], m4_shift(m4_shift($@)))])]) # lt_car(LIST) # lt_cdr(LIST) # ------------ # Manipulate m4 lists. # These macros are necessary as long as will still need to support # Autoconf-2.59, which quotes differently. m4_define([lt_car], [[$1]]) m4_define([lt_cdr], [m4_if([$#], 0, [m4_fatal([$0: cannot be called without arguments])], [$#], 1, [], [m4_dquote(m4_shift($@))])]) m4_define([lt_unquote], $1) # lt_append(MACRO-NAME, STRING, [SEPARATOR]) # ------------------------------------------ # Redefine MACRO-NAME to hold its former content plus 'SEPARATOR''STRING'. # Note that neither SEPARATOR nor STRING are expanded; they are appended # to MACRO-NAME as is (leaving the expansion for when MACRO-NAME is invoked). # No SEPARATOR is output if MACRO-NAME was previously undefined (different # than defined and empty). # # This macro is needed until we can rely on Autoconf 2.62, since earlier # versions of m4sugar mistakenly expanded SEPARATOR but not STRING. m4_define([lt_append], [m4_define([$1], m4_ifdef([$1], [m4_defn([$1])[$3]])[$2])]) # lt_combine(SEP, PREFIX-LIST, INFIX, SUFFIX1, [SUFFIX2...]) # ---------------------------------------------------------- # Produce a SEP delimited list of all paired combinations of elements of # PREFIX-LIST with SUFFIX1 through SUFFIXn. Each element of the list # has the form PREFIXmINFIXSUFFIXn. # Needed until we can rely on m4_combine added in Autoconf 2.62. m4_define([lt_combine], [m4_if(m4_eval([$# > 3]), [1], [m4_pushdef([_Lt_sep], [m4_define([_Lt_sep], m4_defn([lt_car]))])]]dnl [[m4_foreach([_Lt_prefix], [$2], [m4_foreach([_Lt_suffix], ]m4_dquote(m4_dquote(m4_shift(m4_shift(m4_shift($@)))))[, [_Lt_sep([$1])[]m4_defn([_Lt_prefix])[$3]m4_defn([_Lt_suffix])])])])]) # lt_if_append_uniq(MACRO-NAME, VARNAME, [SEPARATOR], [UNIQ], [NOT-UNIQ]) # ----------------------------------------------------------------------- # Iff MACRO-NAME does not yet contain VARNAME, then append it (delimited # by SEPARATOR if supplied) and expand UNIQ, else NOT-UNIQ. m4_define([lt_if_append_uniq], [m4_ifdef([$1], [m4_if(m4_index([$3]m4_defn([$1])[$3], [$3$2$3]), [-1], [lt_append([$1], [$2], [$3])$4], [$5])], [lt_append([$1], [$2], [$3])$4])]) # lt_dict_add(DICT, KEY, VALUE) # ----------------------------- m4_define([lt_dict_add], [m4_define([$1($2)], [$3])]) # lt_dict_add_subkey(DICT, KEY, SUBKEY, VALUE) # -------------------------------------------- m4_define([lt_dict_add_subkey], [m4_define([$1($2:$3)], [$4])]) # lt_dict_fetch(DICT, KEY, [SUBKEY]) # ---------------------------------- m4_define([lt_dict_fetch], [m4_ifval([$3], m4_ifdef([$1($2:$3)], [m4_defn([$1($2:$3)])]), m4_ifdef([$1($2)], [m4_defn([$1($2)])]))]) # lt_if_dict_fetch(DICT, KEY, [SUBKEY], VALUE, IF-TRUE, [IF-FALSE]) # ----------------------------------------------------------------- m4_define([lt_if_dict_fetch], [m4_if(lt_dict_fetch([$1], [$2], [$3]), [$4], [$5], [$6])]) # lt_dict_filter(DICT, [SUBKEY], VALUE, [SEPARATOR], KEY, [...]) # -------------------------------------------------------------- m4_define([lt_dict_filter], [m4_if([$5], [], [], [lt_join(m4_quote(m4_default([$4], [[, ]])), lt_unquote(m4_split(m4_normalize(m4_foreach(_Lt_key, lt_car([m4_shiftn(4, $@)]), [lt_if_dict_fetch([$1], _Lt_key, [$2], [$3], [_Lt_key ])])))))])[]dnl ]) # ltversion.m4 -- version numbers -*- Autoconf -*- # # Copyright (C) 2004, 2011-2015 Free Software Foundation, Inc. # Written by Scott James Remnant, 2004 # # This file is free software; the Free Software Foundation gives # unlimited permission to copy and/or distribute it, with or without # modifications, as long as this notice is preserved. # @configure_input@ # serial 4179 ltversion.m4 # This file is part of GNU Libtool m4_define([LT_PACKAGE_VERSION], [2.4.6]) m4_define([LT_PACKAGE_REVISION], [2.4.6]) AC_DEFUN([LTVERSION_VERSION], [macro_version='2.4.6' macro_revision='2.4.6' _LT_DECL(, macro_version, 0, [Which release of libtool.m4 was used?]) _LT_DECL(, macro_revision, 0) ]) # lt~obsolete.m4 -- aclocal satisfying obsolete definitions. -*-Autoconf-*- # # Copyright (C) 2004-2005, 2007, 2009, 2011-2015 Free Software # Foundation, Inc. # Written by Scott James Remnant, 2004. # # This file is free software; the Free Software Foundation gives # unlimited permission to copy and/or distribute it, with or without # modifications, as long as this notice is preserved. # serial 5 lt~obsolete.m4 # These exist entirely to fool aclocal when bootstrapping libtool. # # In the past libtool.m4 has provided macros via AC_DEFUN (or AU_DEFUN), # which have later been changed to m4_define as they aren't part of the # exported API, or moved to Autoconf or Automake where they belong. # # The trouble is, aclocal is a bit thick. It'll see the old AC_DEFUN # in /usr/share/aclocal/libtool.m4 and remember it, then when it sees us # using a macro with the same name in our local m4/libtool.m4 it'll # pull the old libtool.m4 in (it doesn't see our shiny new m4_define # and doesn't know about Autoconf macros at all.) # # So we provide this file, which has a silly filename so it's always # included after everything else. This provides aclocal with the # AC_DEFUNs it wants, but when m4 processes it, it doesn't do anything # because those macros already exist, or will be overwritten later. # We use AC_DEFUN over AU_DEFUN for compatibility with aclocal-1.6. # # Anytime we withdraw an AC_DEFUN or AU_DEFUN, remember to add it here. # Yes, that means every name once taken will need to remain here until # we give up compatibility with versions before 1.7, at which point # we need to keep only those names which we still refer to. # This is to help aclocal find these macros, as it can't see m4_define. AC_DEFUN([LTOBSOLETE_VERSION], [m4_if([1])]) m4_ifndef([AC_LIBTOOL_LINKER_OPTION], [AC_DEFUN([AC_LIBTOOL_LINKER_OPTION])]) m4_ifndef([AC_PROG_EGREP], [AC_DEFUN([AC_PROG_EGREP])]) m4_ifndef([_LT_AC_PROG_ECHO_BACKSLASH], [AC_DEFUN([_LT_AC_PROG_ECHO_BACKSLASH])]) m4_ifndef([_LT_AC_SHELL_INIT], [AC_DEFUN([_LT_AC_SHELL_INIT])]) m4_ifndef([_LT_AC_SYS_LIBPATH_AIX], [AC_DEFUN([_LT_AC_SYS_LIBPATH_AIX])]) m4_ifndef([_LT_PROG_LTMAIN], [AC_DEFUN([_LT_PROG_LTMAIN])]) m4_ifndef([_LT_AC_TAGVAR], [AC_DEFUN([_LT_AC_TAGVAR])]) m4_ifndef([AC_LTDL_ENABLE_INSTALL], [AC_DEFUN([AC_LTDL_ENABLE_INSTALL])]) m4_ifndef([AC_LTDL_PREOPEN], [AC_DEFUN([AC_LTDL_PREOPEN])]) m4_ifndef([_LT_AC_SYS_COMPILER], [AC_DEFUN([_LT_AC_SYS_COMPILER])]) m4_ifndef([_LT_AC_LOCK], [AC_DEFUN([_LT_AC_LOCK])]) m4_ifndef([AC_LIBTOOL_SYS_OLD_ARCHIVE], [AC_DEFUN([AC_LIBTOOL_SYS_OLD_ARCHIVE])]) m4_ifndef([_LT_AC_TRY_DLOPEN_SELF], [AC_DEFUN([_LT_AC_TRY_DLOPEN_SELF])]) m4_ifndef([AC_LIBTOOL_PROG_CC_C_O], [AC_DEFUN([AC_LIBTOOL_PROG_CC_C_O])]) m4_ifndef([AC_LIBTOOL_SYS_HARD_LINK_LOCKS], [AC_DEFUN([AC_LIBTOOL_SYS_HARD_LINK_LOCKS])]) m4_ifndef([AC_LIBTOOL_OBJDIR], [AC_DEFUN([AC_LIBTOOL_OBJDIR])]) m4_ifndef([AC_LTDL_OBJDIR], [AC_DEFUN([AC_LTDL_OBJDIR])]) m4_ifndef([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH], [AC_DEFUN([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH])]) m4_ifndef([AC_LIBTOOL_SYS_LIB_STRIP], [AC_DEFUN([AC_LIBTOOL_SYS_LIB_STRIP])]) m4_ifndef([AC_PATH_MAGIC], [AC_DEFUN([AC_PATH_MAGIC])]) m4_ifndef([AC_PROG_LD_GNU], [AC_DEFUN([AC_PROG_LD_GNU])]) m4_ifndef([AC_PROG_LD_RELOAD_FLAG], [AC_DEFUN([AC_PROG_LD_RELOAD_FLAG])]) m4_ifndef([AC_DEPLIBS_CHECK_METHOD], [AC_DEFUN([AC_DEPLIBS_CHECK_METHOD])]) m4_ifndef([AC_LIBTOOL_PROG_COMPILER_NO_RTTI], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_NO_RTTI])]) m4_ifndef([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE], [AC_DEFUN([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE])]) m4_ifndef([AC_LIBTOOL_PROG_COMPILER_PIC], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_PIC])]) m4_ifndef([AC_LIBTOOL_PROG_LD_SHLIBS], [AC_DEFUN([AC_LIBTOOL_PROG_LD_SHLIBS])]) m4_ifndef([AC_LIBTOOL_POSTDEP_PREDEP], [AC_DEFUN([AC_LIBTOOL_POSTDEP_PREDEP])]) m4_ifndef([LT_AC_PROG_EGREP], [AC_DEFUN([LT_AC_PROG_EGREP])]) m4_ifndef([LT_AC_PROG_SED], [AC_DEFUN([LT_AC_PROG_SED])]) m4_ifndef([_LT_CC_BASENAME], [AC_DEFUN([_LT_CC_BASENAME])]) m4_ifndef([_LT_COMPILER_BOILERPLATE], [AC_DEFUN([_LT_COMPILER_BOILERPLATE])]) m4_ifndef([_LT_LINKER_BOILERPLATE], [AC_DEFUN([_LT_LINKER_BOILERPLATE])]) m4_ifndef([_AC_PROG_LIBTOOL], [AC_DEFUN([_AC_PROG_LIBTOOL])]) m4_ifndef([AC_LIBTOOL_SETUP], [AC_DEFUN([AC_LIBTOOL_SETUP])]) m4_ifndef([_LT_AC_CHECK_DLFCN], [AC_DEFUN([_LT_AC_CHECK_DLFCN])]) m4_ifndef([AC_LIBTOOL_SYS_DYNAMIC_LINKER], [AC_DEFUN([AC_LIBTOOL_SYS_DYNAMIC_LINKER])]) m4_ifndef([_LT_AC_TAGCONFIG], [AC_DEFUN([_LT_AC_TAGCONFIG])]) m4_ifndef([AC_DISABLE_FAST_INSTALL], [AC_DEFUN([AC_DISABLE_FAST_INSTALL])]) m4_ifndef([_LT_AC_LANG_CXX], [AC_DEFUN([_LT_AC_LANG_CXX])]) m4_ifndef([_LT_AC_LANG_F77], [AC_DEFUN([_LT_AC_LANG_F77])]) m4_ifndef([_LT_AC_LANG_GCJ], [AC_DEFUN([_LT_AC_LANG_GCJ])]) m4_ifndef([AC_LIBTOOL_LANG_C_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_C_CONFIG])]) m4_ifndef([_LT_AC_LANG_C_CONFIG], [AC_DEFUN([_LT_AC_LANG_C_CONFIG])]) m4_ifndef([AC_LIBTOOL_LANG_CXX_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_CXX_CONFIG])]) m4_ifndef([_LT_AC_LANG_CXX_CONFIG], [AC_DEFUN([_LT_AC_LANG_CXX_CONFIG])]) m4_ifndef([AC_LIBTOOL_LANG_F77_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_F77_CONFIG])]) m4_ifndef([_LT_AC_LANG_F77_CONFIG], [AC_DEFUN([_LT_AC_LANG_F77_CONFIG])]) m4_ifndef([AC_LIBTOOL_LANG_GCJ_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_GCJ_CONFIG])]) m4_ifndef([_LT_AC_LANG_GCJ_CONFIG], [AC_DEFUN([_LT_AC_LANG_GCJ_CONFIG])]) m4_ifndef([AC_LIBTOOL_LANG_RC_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_RC_CONFIG])]) m4_ifndef([_LT_AC_LANG_RC_CONFIG], [AC_DEFUN([_LT_AC_LANG_RC_CONFIG])]) m4_ifndef([AC_LIBTOOL_CONFIG], [AC_DEFUN([AC_LIBTOOL_CONFIG])]) m4_ifndef([_LT_AC_FILE_LTDLL_C], [AC_DEFUN([_LT_AC_FILE_LTDLL_C])]) m4_ifndef([_LT_REQUIRED_DARWIN_CHECKS], [AC_DEFUN([_LT_REQUIRED_DARWIN_CHECKS])]) m4_ifndef([_LT_AC_PROG_CXXCPP], [AC_DEFUN([_LT_AC_PROG_CXXCPP])]) m4_ifndef([_LT_PREPARE_SED_QUOTE_VARS], [AC_DEFUN([_LT_PREPARE_SED_QUOTE_VARS])]) m4_ifndef([_LT_PROG_ECHO_BACKSLASH], [AC_DEFUN([_LT_PROG_ECHO_BACKSLASH])]) m4_ifndef([_LT_PROG_F77], [AC_DEFUN([_LT_PROG_F77])]) m4_ifndef([_LT_PROG_FC], [AC_DEFUN([_LT_PROG_FC])]) m4_ifndef([_LT_PROG_CXX], [AC_DEFUN([_LT_PROG_CXX])]) # nls.m4 serial 5 (gettext-0.18) dnl Copyright (C) 1995-2003, 2005-2006, 2008-2014, 2016 Free Software dnl Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl dnl This file can be used in projects which are not available under dnl the GNU General Public License or the GNU Library General Public dnl License but which still want to provide support for the GNU gettext dnl functionality. dnl Please note that the actual code of the GNU gettext library is covered dnl by the GNU Library General Public License, and the rest of the GNU dnl gettext package is covered by the GNU General Public License. dnl They are *not* in the public domain. dnl Authors: dnl Ulrich Drepper , 1995-2000. dnl Bruno Haible , 2000-2003. AC_PREREQ([2.50]) AC_DEFUN([AM_NLS], [ AC_MSG_CHECKING([whether NLS is requested]) dnl Default is enabled NLS AC_ARG_ENABLE([nls], [ --disable-nls do not use Native Language Support], USE_NLS=$enableval, USE_NLS=yes) AC_MSG_RESULT([$USE_NLS]) AC_SUBST([USE_NLS]) ]) dnl pkg.m4 - Macros to locate and utilise pkg-config. -*- Autoconf -*- dnl serial 11 (pkg-config-0.29) dnl dnl Copyright © 2004 Scott James Remnant . dnl Copyright © 2012-2015 Dan Nicholson dnl dnl This program is free software; you can redistribute it and/or modify dnl it under the terms of the GNU General Public License as published by dnl the Free Software Foundation; either version 2 of the License, or dnl (at your option) any later version. dnl dnl This program is distributed in the hope that it will be useful, but dnl WITHOUT ANY WARRANTY; without even the implied warranty of dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU dnl General Public License for more details. dnl dnl You should have received a copy of the GNU General Public License dnl along with this program; if not, write to the Free Software dnl Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA dnl 02111-1307, USA. dnl dnl As a special exception to the GNU General Public License, if you dnl distribute this file as part of a program that contains a dnl configuration script generated by Autoconf, you may include it under dnl the same distribution terms that you use for the rest of that dnl program. dnl PKG_PREREQ(MIN-VERSION) dnl ----------------------- dnl Since: 0.29 dnl dnl Verify that the version of the pkg-config macros are at least dnl MIN-VERSION. Unlike PKG_PROG_PKG_CONFIG, which checks the user's dnl installed version of pkg-config, this checks the developer's version dnl of pkg.m4 when generating configure. dnl dnl To ensure that this macro is defined, also add: dnl m4_ifndef([PKG_PREREQ], dnl [m4_fatal([must install pkg-config 0.29 or later before running autoconf/autogen])]) dnl dnl See the "Since" comment for each macro you use to see what version dnl of the macros you require. m4_defun([PKG_PREREQ], [m4_define([PKG_MACROS_VERSION], [0.29]) m4_if(m4_version_compare(PKG_MACROS_VERSION, [$1]), -1, [m4_fatal([pkg.m4 version $1 or higher is required but ]PKG_MACROS_VERSION[ found])]) ])dnl PKG_PREREQ dnl PKG_PROG_PKG_CONFIG([MIN-VERSION]) dnl ---------------------------------- dnl Since: 0.16 dnl dnl Search for the pkg-config tool and set the PKG_CONFIG variable to dnl first found in the path. Checks that the version of pkg-config found dnl is at least MIN-VERSION. If MIN-VERSION is not specified, 0.9.0 is dnl used since that's the first version where most current features of dnl pkg-config existed. AC_DEFUN([PKG_PROG_PKG_CONFIG], [m4_pattern_forbid([^_?PKG_[A-Z_]+$]) m4_pattern_allow([^PKG_CONFIG(_(PATH|LIBDIR|SYSROOT_DIR|ALLOW_SYSTEM_(CFLAGS|LIBS)))?$]) m4_pattern_allow([^PKG_CONFIG_(DISABLE_UNINSTALLED|TOP_BUILD_DIR|DEBUG_SPEW)$]) AC_ARG_VAR([PKG_CONFIG], [path to pkg-config utility]) AC_ARG_VAR([PKG_CONFIG_PATH], [directories to add to pkg-config's search path]) AC_ARG_VAR([PKG_CONFIG_LIBDIR], [path overriding pkg-config's built-in search path]) if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then AC_PATH_TOOL([PKG_CONFIG], [pkg-config]) fi if test -n "$PKG_CONFIG"; then _pkg_min_version=m4_default([$1], [0.9.0]) AC_MSG_CHECKING([pkg-config is at least version $_pkg_min_version]) if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then AC_MSG_RESULT([yes]) else AC_MSG_RESULT([no]) PKG_CONFIG="" fi fi[]dnl ])dnl PKG_PROG_PKG_CONFIG dnl PKG_CHECK_EXISTS(MODULES, [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND]) dnl ------------------------------------------------------------------- dnl Since: 0.18 dnl dnl Check to see whether a particular set of modules exists. Similar to dnl PKG_CHECK_MODULES(), but does not set variables or print errors. dnl dnl Please remember that m4 expands AC_REQUIRE([PKG_PROG_PKG_CONFIG]) dnl only at the first occurence in configure.ac, so if the first place dnl it's called might be skipped (such as if it is within an "if", you dnl have to call PKG_CHECK_EXISTS manually AC_DEFUN([PKG_CHECK_EXISTS], [AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl if test -n "$PKG_CONFIG" && \ AC_RUN_LOG([$PKG_CONFIG --exists --print-errors "$1"]); then m4_default([$2], [:]) m4_ifvaln([$3], [else $3])dnl fi]) dnl _PKG_CONFIG([VARIABLE], [COMMAND], [MODULES]) dnl --------------------------------------------- dnl Internal wrapper calling pkg-config via PKG_CONFIG and setting dnl pkg_failed based on the result. m4_define([_PKG_CONFIG], [if test -n "$$1"; then pkg_cv_[]$1="$$1" elif test -n "$PKG_CONFIG"; then PKG_CHECK_EXISTS([$3], [pkg_cv_[]$1=`$PKG_CONFIG --[]$2 "$3" 2>/dev/null` test "x$?" != "x0" && pkg_failed=yes ], [pkg_failed=yes]) else pkg_failed=untried fi[]dnl ])dnl _PKG_CONFIG dnl _PKG_SHORT_ERRORS_SUPPORTED dnl --------------------------- dnl Internal check to see if pkg-config supports short errors. AC_DEFUN([_PKG_SHORT_ERRORS_SUPPORTED], [AC_REQUIRE([PKG_PROG_PKG_CONFIG]) if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then _pkg_short_errors_supported=yes else _pkg_short_errors_supported=no fi[]dnl ])dnl _PKG_SHORT_ERRORS_SUPPORTED dnl PKG_CHECK_MODULES(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND], dnl [ACTION-IF-NOT-FOUND]) dnl -------------------------------------------------------------- dnl Since: 0.4.0 dnl dnl Note that if there is a possibility the first call to dnl PKG_CHECK_MODULES might not happen, you should be sure to include an dnl explicit call to PKG_PROG_PKG_CONFIG in your configure.ac AC_DEFUN([PKG_CHECK_MODULES], [AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl AC_ARG_VAR([$1][_CFLAGS], [C compiler flags for $1, overriding pkg-config])dnl AC_ARG_VAR([$1][_LIBS], [linker flags for $1, overriding pkg-config])dnl pkg_failed=no AC_MSG_CHECKING([for $1]) _PKG_CONFIG([$1][_CFLAGS], [cflags], [$2]) _PKG_CONFIG([$1][_LIBS], [libs], [$2]) m4_define([_PKG_TEXT], [Alternatively, you may set the environment variables $1[]_CFLAGS and $1[]_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details.]) if test $pkg_failed = yes; then AC_MSG_RESULT([no]) _PKG_SHORT_ERRORS_SUPPORTED if test $_pkg_short_errors_supported = yes; then $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "$2" 2>&1` else $1[]_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "$2" 2>&1` fi # Put the nasty error message in config.log where it belongs echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD m4_default([$4], [AC_MSG_ERROR( [Package requirements ($2) were not met: $$1_PKG_ERRORS Consider adjusting the PKG_CONFIG_PATH environment variable if you installed software in a non-standard prefix. _PKG_TEXT])[]dnl ]) elif test $pkg_failed = untried; then AC_MSG_RESULT([no]) m4_default([$4], [AC_MSG_FAILURE( [The pkg-config script could not be found or is too old. Make sure it is in your PATH or set the PKG_CONFIG environment variable to the full path to pkg-config. _PKG_TEXT To get pkg-config, see .])[]dnl ]) else $1[]_CFLAGS=$pkg_cv_[]$1[]_CFLAGS $1[]_LIBS=$pkg_cv_[]$1[]_LIBS AC_MSG_RESULT([yes]) $3 fi[]dnl ])dnl PKG_CHECK_MODULES dnl PKG_CHECK_MODULES_STATIC(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND], dnl [ACTION-IF-NOT-FOUND]) dnl --------------------------------------------------------------------- dnl Since: 0.29 dnl dnl Checks for existence of MODULES and gathers its build flags with dnl static libraries enabled. Sets VARIABLE-PREFIX_CFLAGS from --cflags dnl and VARIABLE-PREFIX_LIBS from --libs. dnl dnl Note that if there is a possibility the first call to dnl PKG_CHECK_MODULES_STATIC might not happen, you should be sure to dnl include an explicit call to PKG_PROG_PKG_CONFIG in your dnl configure.ac. AC_DEFUN([PKG_CHECK_MODULES_STATIC], [AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl _save_PKG_CONFIG=$PKG_CONFIG PKG_CONFIG="$PKG_CONFIG --static" PKG_CHECK_MODULES($@) PKG_CONFIG=$_save_PKG_CONFIG[]dnl ])dnl PKG_CHECK_MODULES_STATIC dnl PKG_INSTALLDIR([DIRECTORY]) dnl ------------------------- dnl Since: 0.27 dnl dnl Substitutes the variable pkgconfigdir as the location where a module dnl should install pkg-config .pc files. By default the directory is dnl $libdir/pkgconfig, but the default can be changed by passing dnl DIRECTORY. The user can override through the --with-pkgconfigdir dnl parameter. AC_DEFUN([PKG_INSTALLDIR], [m4_pushdef([pkg_default], [m4_default([$1], ['${libdir}/pkgconfig'])]) m4_pushdef([pkg_description], [pkg-config installation directory @<:@]pkg_default[@:>@]) AC_ARG_WITH([pkgconfigdir], [AS_HELP_STRING([--with-pkgconfigdir], pkg_description)],, [with_pkgconfigdir=]pkg_default) AC_SUBST([pkgconfigdir], [$with_pkgconfigdir]) m4_popdef([pkg_default]) m4_popdef([pkg_description]) ])dnl PKG_INSTALLDIR dnl PKG_NOARCH_INSTALLDIR([DIRECTORY]) dnl -------------------------------- dnl Since: 0.27 dnl dnl Substitutes the variable noarch_pkgconfigdir as the location where a dnl module should install arch-independent pkg-config .pc files. By dnl default the directory is $datadir/pkgconfig, but the default can be dnl changed by passing DIRECTORY. The user can override through the dnl --with-noarch-pkgconfigdir parameter. AC_DEFUN([PKG_NOARCH_INSTALLDIR], [m4_pushdef([pkg_default], [m4_default([$1], ['${datadir}/pkgconfig'])]) m4_pushdef([pkg_description], [pkg-config arch-independent installation directory @<:@]pkg_default[@:>@]) AC_ARG_WITH([noarch-pkgconfigdir], [AS_HELP_STRING([--with-noarch-pkgconfigdir], pkg_description)],, [with_noarch_pkgconfigdir=]pkg_default) AC_SUBST([noarch_pkgconfigdir], [$with_noarch_pkgconfigdir]) m4_popdef([pkg_default]) m4_popdef([pkg_description]) ])dnl PKG_NOARCH_INSTALLDIR dnl PKG_CHECK_VAR(VARIABLE, MODULE, CONFIG-VARIABLE, dnl [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND]) dnl ------------------------------------------- dnl Since: 0.28 dnl dnl Retrieves the value of the pkg-config variable for the given module. AC_DEFUN([PKG_CHECK_VAR], [AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl AC_ARG_VAR([$1], [value of $3 for $2, overriding pkg-config])dnl _PKG_CONFIG([$1], [variable="][$3]["], [$2]) AS_VAR_COPY([$1], [pkg_cv_][$1]) AS_VAR_IF([$1], [""], [$5], [$4])dnl ])dnl PKG_CHECK_VAR # Copyright (C) 2002-2017 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_AUTOMAKE_VERSION(VERSION) # ---------------------------- # Automake X.Y traces this macro to ensure aclocal.m4 has been # generated from the m4 files accompanying Automake X.Y. # (This private macro should not be called outside this file.) AC_DEFUN([AM_AUTOMAKE_VERSION], [am__api_version='1.15' dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to dnl require some minimum version. Point them to the right macro. m4_if([$1], [1.15.1], [], [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl ]) # _AM_AUTOCONF_VERSION(VERSION) # ----------------------------- # aclocal traces this macro to find the Autoconf version. # This is a private macro too. Using m4_define simplifies # the logic in aclocal, which can simply ignore this definition. m4_define([_AM_AUTOCONF_VERSION], []) # AM_SET_CURRENT_AUTOMAKE_VERSION # ------------------------------- # Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced. # This function is AC_REQUIREd by AM_INIT_AUTOMAKE. AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], [AM_AUTOMAKE_VERSION([1.15.1])dnl m4_ifndef([AC_AUTOCONF_VERSION], [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl _AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))]) # AM_AUX_DIR_EXPAND -*- Autoconf -*- # Copyright (C) 2001-2017 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets # $ac_aux_dir to '$srcdir/foo'. In other projects, it is set to # '$srcdir', '$srcdir/..', or '$srcdir/../..'. # # Of course, Automake must honor this variable whenever it calls a # tool from the auxiliary directory. The problem is that $srcdir (and # therefore $ac_aux_dir as well) can be either absolute or relative, # depending on how configure is run. This is pretty annoying, since # it makes $ac_aux_dir quite unusable in subdirectories: in the top # source directory, any form will work fine, but in subdirectories a # relative path needs to be adjusted first. # # $ac_aux_dir/missing # fails when called from a subdirectory if $ac_aux_dir is relative # $top_srcdir/$ac_aux_dir/missing # fails if $ac_aux_dir is absolute, # fails when called from a subdirectory in a VPATH build with # a relative $ac_aux_dir # # The reason of the latter failure is that $top_srcdir and $ac_aux_dir # are both prefixed by $srcdir. In an in-source build this is usually # harmless because $srcdir is '.', but things will broke when you # start a VPATH build or use an absolute $srcdir. # # So we could use something similar to $top_srcdir/$ac_aux_dir/missing, # iff we strip the leading $srcdir from $ac_aux_dir. That would be: # am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"` # and then we would define $MISSING as # MISSING="\${SHELL} $am_aux_dir/missing" # This will work as long as MISSING is not called from configure, because # unfortunately $(top_srcdir) has no meaning in configure. # However there are other variables, like CC, which are often used in # configure, and could therefore not use this "fixed" $ac_aux_dir. # # Another solution, used here, is to always expand $ac_aux_dir to an # absolute PATH. The drawback is that using absolute paths prevent a # configured tree to be moved without reconfiguration. AC_DEFUN([AM_AUX_DIR_EXPAND], [AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl # Expand $ac_aux_dir to an absolute path. am_aux_dir=`cd "$ac_aux_dir" && pwd` ]) # AM_CONDITIONAL -*- Autoconf -*- # Copyright (C) 1997-2017 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_CONDITIONAL(NAME, SHELL-CONDITION) # ------------------------------------- # Define a conditional. AC_DEFUN([AM_CONDITIONAL], [AC_PREREQ([2.52])dnl m4_if([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])], [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl AC_SUBST([$1_TRUE])dnl AC_SUBST([$1_FALSE])dnl _AM_SUBST_NOTMAKE([$1_TRUE])dnl _AM_SUBST_NOTMAKE([$1_FALSE])dnl m4_define([_AM_COND_VALUE_$1], [$2])dnl if $2; then $1_TRUE= $1_FALSE='#' else $1_TRUE='#' $1_FALSE= fi AC_CONFIG_COMMANDS_PRE( [if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then AC_MSG_ERROR([[conditional "$1" was never defined. Usually this means the macro was only invoked conditionally.]]) fi])]) # Copyright (C) 1999-2017 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # There are a few dirty hacks below to avoid letting 'AC_PROG_CC' be # written in clear, in which case automake, when reading aclocal.m4, # will think it sees a *use*, and therefore will trigger all it's # C support machinery. Also note that it means that autoscan, seeing # CC etc. in the Makefile, will ask for an AC_PROG_CC use... # _AM_DEPENDENCIES(NAME) # ---------------------- # See how the compiler implements dependency checking. # NAME is "CC", "CXX", "OBJC", "OBJCXX", "UPC", or "GJC". # We try a few techniques and use that to set a single cache variable. # # We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was # modified to invoke _AM_DEPENDENCIES(CC); we would have a circular # dependency, and given that the user is not expected to run this macro, # just rely on AC_PROG_CC. AC_DEFUN([_AM_DEPENDENCIES], [AC_REQUIRE([AM_SET_DEPDIR])dnl AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl AC_REQUIRE([AM_MAKE_INCLUDE])dnl AC_REQUIRE([AM_DEP_TRACK])dnl m4_if([$1], [CC], [depcc="$CC" am_compiler_list=], [$1], [CXX], [depcc="$CXX" am_compiler_list=], [$1], [OBJC], [depcc="$OBJC" am_compiler_list='gcc3 gcc'], [$1], [OBJCXX], [depcc="$OBJCXX" am_compiler_list='gcc3 gcc'], [$1], [UPC], [depcc="$UPC" am_compiler_list=], [$1], [GCJ], [depcc="$GCJ" am_compiler_list='gcc3 gcc'], [depcc="$$1" am_compiler_list=]) AC_CACHE_CHECK([dependency style of $depcc], [am_cv_$1_dependencies_compiler_type], [if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up # making a dummy file named 'D' -- because '-MD' means "put the output # in D". rm -rf conftest.dir mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're # using a relative directory. cp "$am_depcomp" conftest.dir cd conftest.dir # We will build objects and dependencies in a subdirectory because # it helps to detect inapplicable dependency modes. For instance # both Tru64's cc and ICC support -MD to output dependencies as a # side effect of compilation, but ICC will put the dependencies in # the current directory while Tru64 will put them in the object # directory. mkdir sub am_cv_$1_dependencies_compiler_type=none if test "$am_compiler_list" = ""; then am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp` fi am__universal=false m4_case([$1], [CC], [case " $depcc " in #( *\ -arch\ *\ -arch\ *) am__universal=true ;; esac], [CXX], [case " $depcc " in #( *\ -arch\ *\ -arch\ *) am__universal=true ;; esac]) for depmode in $am_compiler_list; do # Setup a source with many dependencies, because some compilers # like to wrap large dependency lists on column 80 (with \), and # we should not choose a depcomp mode which is confused by this. # # We need to recreate these files for each test, as the compiler may # overwrite some of them when testing with obscure command lines. # This happens at least with the AIX C compiler. : > sub/conftest.c for i in 1 2 3 4 5 6; do echo '#include "conftst'$i'.h"' >> sub/conftest.c # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with # Solaris 10 /bin/sh. echo '/* dummy */' > sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf # We check with '-c' and '-o' for the sake of the "dashmstdout" # mode. It turns out that the SunPro C++ compiler does not properly # handle '-M -o', and we need to detect this. Also, some Intel # versions had trouble with output in subdirs. am__obj=sub/conftest.${OBJEXT-o} am__minus_obj="-o $am__obj" case $depmode in gcc) # This depmode causes a compiler race in universal mode. test "$am__universal" = false || continue ;; nosideeffect) # After this tag, mechanisms are not by side-effect, so they'll # only be used when explicitly requested. if test "x$enable_dependency_tracking" = xyes; then continue else break fi ;; msvc7 | msvc7msys | msvisualcpp | msvcmsys) # This compiler won't grok '-c -o', but also, the minuso test has # not run yet. These depmodes are late enough in the game, and # so weak that their functioning should not be impacted. am__obj=conftest.${OBJEXT-o} am__minus_obj= ;; none) break ;; esac if depmode=$depmode \ source=sub/conftest.c object=$am__obj \ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ >/dev/null 2>conftest.err && grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && grep $am__obj sub/conftest.Po > /dev/null 2>&1 && ${MAKE-make} -s -f confmf > /dev/null 2>&1; then # icc doesn't choke on unknown options, it will just issue warnings # or remarks (even with -Werror). So we grep stderr for any message # that says an option was ignored or not supported. # When given -MP, icc 7.0 and 7.1 complain thusly: # icc: Command line warning: ignoring option '-M'; no argument required # The diagnosis changed in icc 8.0: # icc: Command line remark: option '-MP' not supported if (grep 'ignoring option' conftest.err || grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else am_cv_$1_dependencies_compiler_type=$depmode break fi fi done cd .. rm -rf conftest.dir else am_cv_$1_dependencies_compiler_type=none fi ]) AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type]) AM_CONDITIONAL([am__fastdep$1], [ test "x$enable_dependency_tracking" != xno \ && test "$am_cv_$1_dependencies_compiler_type" = gcc3]) ]) # AM_SET_DEPDIR # ------------- # Choose a directory name for dependency files. # This macro is AC_REQUIREd in _AM_DEPENDENCIES. AC_DEFUN([AM_SET_DEPDIR], [AC_REQUIRE([AM_SET_LEADING_DOT])dnl AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl ]) # AM_DEP_TRACK # ------------ AC_DEFUN([AM_DEP_TRACK], [AC_ARG_ENABLE([dependency-tracking], [dnl AS_HELP_STRING( [--enable-dependency-tracking], [do not reject slow dependency extractors]) AS_HELP_STRING( [--disable-dependency-tracking], [speeds up one-time build])]) if test "x$enable_dependency_tracking" != xno; then am_depcomp="$ac_aux_dir/depcomp" AMDEPBACKSLASH='\' am__nodep='_no' fi AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno]) AC_SUBST([AMDEPBACKSLASH])dnl _AM_SUBST_NOTMAKE([AMDEPBACKSLASH])dnl AC_SUBST([am__nodep])dnl _AM_SUBST_NOTMAKE([am__nodep])dnl ]) # Generate code to set up dependency tracking. -*- Autoconf -*- # Copyright (C) 1999-2017 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # _AM_OUTPUT_DEPENDENCY_COMMANDS # ------------------------------ AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS], [{ # Older Autoconf quotes --file arguments for eval, but not when files # are listed without --file. Let's play safe and only enable the eval # if we detect the quoting. case $CONFIG_FILES in *\'*) eval set x "$CONFIG_FILES" ;; *) set x $CONFIG_FILES ;; esac shift for mf do # Strip MF so we end up with the name of the file. mf=`echo "$mf" | sed -e 's/:.*$//'` # Check whether this is an Automake generated Makefile or not. # We used to match only the files named 'Makefile.in', but # some people rename them; so instead we look at the file content. # Grep'ing the first line is not enough: some people post-process # each Makefile.in and add a new line on top of each file to say so. # Grep'ing the whole file is not good either: AIX grep has a line # limit of 2048, but all sed's we know have understand at least 4000. if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then dirpart=`AS_DIRNAME("$mf")` else continue fi # Extract the definition of DEPDIR, am__include, and am__quote # from the Makefile without running 'make'. DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` test -z "$DEPDIR" && continue am__include=`sed -n 's/^am__include = //p' < "$mf"` test -z "$am__include" && continue am__quote=`sed -n 's/^am__quote = //p' < "$mf"` # Find all dependency output files, they are included files with # $(DEPDIR) in their names. We invoke sed twice because it is the # simplest approach to changing $(DEPDIR) to its actual value in the # expansion. for file in `sed -n " s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g'`; do # Make sure the directory exists. test -f "$dirpart/$file" && continue fdir=`AS_DIRNAME(["$file"])` AS_MKDIR_P([$dirpart/$fdir]) # echo "creating $dirpart/$file" echo '# dummy' > "$dirpart/$file" done done } ])# _AM_OUTPUT_DEPENDENCY_COMMANDS # AM_OUTPUT_DEPENDENCY_COMMANDS # ----------------------------- # This macro should only be invoked once -- use via AC_REQUIRE. # # This code is only required when automatic dependency tracking # is enabled. FIXME. This creates each '.P' file that we will # need in order to bootstrap the dependency handling code. AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS], [AC_CONFIG_COMMANDS([depfiles], [test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS], [AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"]) ]) # Do all the work for Automake. -*- Autoconf -*- # Copyright (C) 1996-2017 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This macro actually does too much. Some checks are only needed if # your package does certain things. But this isn't really a big deal. dnl Redefine AC_PROG_CC to automatically invoke _AM_PROG_CC_C_O. m4_define([AC_PROG_CC], m4_defn([AC_PROG_CC]) [_AM_PROG_CC_C_O ]) # AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE]) # AM_INIT_AUTOMAKE([OPTIONS]) # ----------------------------------------------- # The call with PACKAGE and VERSION arguments is the old style # call (pre autoconf-2.50), which is being phased out. PACKAGE # and VERSION should now be passed to AC_INIT and removed from # the call to AM_INIT_AUTOMAKE. # We support both call styles for the transition. After # the next Automake release, Autoconf can make the AC_INIT # arguments mandatory, and then we can depend on a new Autoconf # release and drop the old call support. AC_DEFUN([AM_INIT_AUTOMAKE], [AC_PREREQ([2.65])dnl dnl Autoconf wants to disallow AM_ names. We explicitly allow dnl the ones we care about. m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl AC_REQUIRE([AC_PROG_INSTALL])dnl if test "`cd $srcdir && pwd`" != "`pwd`"; then # Use -I$(srcdir) only when $(srcdir) != ., so that make's output # is not polluted with repeated "-I." AC_SUBST([am__isrc], [' -I$(srcdir)'])_AM_SUBST_NOTMAKE([am__isrc])dnl # test to see if srcdir already configured if test -f $srcdir/config.status; then AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) fi fi # test whether we have cygpath if test -z "$CYGPATH_W"; then if (cygpath --version) >/dev/null 2>/dev/null; then CYGPATH_W='cygpath -w' else CYGPATH_W=echo fi fi AC_SUBST([CYGPATH_W]) # Define the identity of the package. dnl Distinguish between old-style and new-style calls. m4_ifval([$2], [AC_DIAGNOSE([obsolete], [$0: two- and three-arguments forms are deprecated.]) m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl AC_SUBST([PACKAGE], [$1])dnl AC_SUBST([VERSION], [$2])], [_AM_SET_OPTIONS([$1])dnl dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT. m4_if( m4_ifdef([AC_PACKAGE_NAME], [ok]):m4_ifdef([AC_PACKAGE_VERSION], [ok]), [ok:ok],, [m4_fatal([AC_INIT should be called with package and version arguments])])dnl AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl _AM_IF_OPTION([no-define],, [AC_DEFINE_UNQUOTED([PACKAGE], ["$PACKAGE"], [Name of package]) AC_DEFINE_UNQUOTED([VERSION], ["$VERSION"], [Version number of package])])dnl # Some tools Automake needs. AC_REQUIRE([AM_SANITY_CHECK])dnl AC_REQUIRE([AC_ARG_PROGRAM])dnl AM_MISSING_PROG([ACLOCAL], [aclocal-${am__api_version}]) AM_MISSING_PROG([AUTOCONF], [autoconf]) AM_MISSING_PROG([AUTOMAKE], [automake-${am__api_version}]) AM_MISSING_PROG([AUTOHEADER], [autoheader]) AM_MISSING_PROG([MAKEINFO], [makeinfo]) AC_REQUIRE([AM_PROG_INSTALL_SH])dnl AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl AC_REQUIRE([AC_PROG_MKDIR_P])dnl # For better backward compatibility. To be removed once Automake 1.9.x # dies out for good. For more background, see: # # AC_SUBST([mkdir_p], ['$(MKDIR_P)']) # We need awk for the "check" target (and possibly the TAP driver). The # system "awk" is bad on some platforms. AC_REQUIRE([AC_PROG_AWK])dnl AC_REQUIRE([AC_PROG_MAKE_SET])dnl AC_REQUIRE([AM_SET_LEADING_DOT])dnl _AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])], [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])], [_AM_PROG_TAR([v7])])]) _AM_IF_OPTION([no-dependencies],, [AC_PROVIDE_IFELSE([AC_PROG_CC], [_AM_DEPENDENCIES([CC])], [m4_define([AC_PROG_CC], m4_defn([AC_PROG_CC])[_AM_DEPENDENCIES([CC])])])dnl AC_PROVIDE_IFELSE([AC_PROG_CXX], [_AM_DEPENDENCIES([CXX])], [m4_define([AC_PROG_CXX], m4_defn([AC_PROG_CXX])[_AM_DEPENDENCIES([CXX])])])dnl AC_PROVIDE_IFELSE([AC_PROG_OBJC], [_AM_DEPENDENCIES([OBJC])], [m4_define([AC_PROG_OBJC], m4_defn([AC_PROG_OBJC])[_AM_DEPENDENCIES([OBJC])])])dnl AC_PROVIDE_IFELSE([AC_PROG_OBJCXX], [_AM_DEPENDENCIES([OBJCXX])], [m4_define([AC_PROG_OBJCXX], m4_defn([AC_PROG_OBJCXX])[_AM_DEPENDENCIES([OBJCXX])])])dnl ]) AC_REQUIRE([AM_SILENT_RULES])dnl dnl The testsuite driver may need to know about EXEEXT, so add the dnl 'am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen. This dnl macro is hooked onto _AC_COMPILER_EXEEXT early, see below. AC_CONFIG_COMMANDS_PRE(dnl [m4_provide_if([_AM_COMPILER_EXEEXT], [AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl # POSIX will say in a future version that running "rm -f" with no argument # is OK; and we want to be able to make that assumption in our Makefile # recipes. So use an aggressive probe to check that the usage we want is # actually supported "in the wild" to an acceptable degree. # See automake bug#10828. # To make any issue more visible, cause the running configure to be aborted # by default if the 'rm' program in use doesn't match our expectations; the # user can still override this though. if rm -f && rm -fr && rm -rf; then : OK; else cat >&2 <<'END' Oops! Your 'rm' program seems unable to run without file operands specified on the command line, even when the '-f' option is present. This is contrary to the behaviour of most rm programs out there, and not conforming with the upcoming POSIX standard: Please tell bug-automake@gnu.org about your system, including the value of your $PATH and any error possibly output before this message. This can help us improve future automake versions. END if test x"$ACCEPT_INFERIOR_RM_PROGRAM" = x"yes"; then echo 'Configuration will proceed anyway, since you have set the' >&2 echo 'ACCEPT_INFERIOR_RM_PROGRAM variable to "yes"' >&2 echo >&2 else cat >&2 <<'END' Aborting the configuration process, to ensure you take notice of the issue. You can download and install GNU coreutils to get an 'rm' implementation that behaves properly: . If you want to complete the configuration process using your problematic 'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM to "yes", and re-run configure. END AC_MSG_ERROR([Your 'rm' program is bad, sorry.]) fi fi dnl The trailing newline in this macro's definition is deliberate, for dnl backward compatibility and to allow trailing 'dnl'-style comments dnl after the AM_INIT_AUTOMAKE invocation. See automake bug#16841. ]) dnl Hook into '_AC_COMPILER_EXEEXT' early to learn its expansion. Do not dnl add the conditional right here, as _AC_COMPILER_EXEEXT may be further dnl mangled by Autoconf and run in a shell conditional statement. m4_define([_AC_COMPILER_EXEEXT], m4_defn([_AC_COMPILER_EXEEXT])[m4_provide([_AM_COMPILER_EXEEXT])]) # When config.status generates a header, we must update the stamp-h file. # This file resides in the same directory as the config header # that is generated. The stamp files are numbered to have different names. # Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the # loop where config.status creates the headers, so we can generate # our stamp files there. AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK], [# Compute $1's index in $config_headers. _am_arg=$1 _am_stamp_count=1 for _am_header in $config_headers :; do case $_am_header in $_am_arg | $_am_arg:* ) break ;; * ) _am_stamp_count=`expr $_am_stamp_count + 1` ;; esac done echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count]) # Copyright (C) 2001-2017 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_PROG_INSTALL_SH # ------------------ # Define $install_sh. AC_DEFUN([AM_PROG_INSTALL_SH], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl if test x"${install_sh+set}" != xset; then case $am_aux_dir in *\ * | *\ *) install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; *) install_sh="\${SHELL} $am_aux_dir/install-sh" esac fi AC_SUBST([install_sh])]) # Copyright (C) 2003-2017 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # Check whether the underlying file-system supports filenames # with a leading dot. For instance MS-DOS doesn't. AC_DEFUN([AM_SET_LEADING_DOT], [rm -rf .tst 2>/dev/null mkdir .tst 2>/dev/null if test -d .tst; then am__leading_dot=. else am__leading_dot=_ fi rmdir .tst 2>/dev/null AC_SUBST([am__leading_dot])]) # Check to see how 'make' treats includes. -*- Autoconf -*- # Copyright (C) 2001-2017 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_MAKE_INCLUDE() # ----------------- # Check to see how make treats includes. AC_DEFUN([AM_MAKE_INCLUDE], [am_make=${MAKE-make} cat > confinc << 'END' am__doit: @echo this is the am__doit target .PHONY: am__doit END # If we don't find an include directive, just comment out the code. AC_MSG_CHECKING([for style of include used by $am_make]) am__include="#" am__quote= _am_result=none # First try GNU make style include. echo "include confinc" > confmf # Ignore all kinds of additional output from 'make'. case `$am_make -s -f confmf 2> /dev/null` in #( *the\ am__doit\ target*) am__include=include am__quote= _am_result=GNU ;; esac # Now try BSD make style include. if test "$am__include" = "#"; then echo '.include "confinc"' > confmf case `$am_make -s -f confmf 2> /dev/null` in #( *the\ am__doit\ target*) am__include=.include am__quote="\"" _am_result=BSD ;; esac fi AC_SUBST([am__include]) AC_SUBST([am__quote]) AC_MSG_RESULT([$_am_result]) rm -f confinc confmf ]) # Fake the existence of programs that GNU maintainers use. -*- Autoconf -*- # Copyright (C) 1997-2017 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_MISSING_PROG(NAME, PROGRAM) # ------------------------------ AC_DEFUN([AM_MISSING_PROG], [AC_REQUIRE([AM_MISSING_HAS_RUN]) $1=${$1-"${am_missing_run}$2"} AC_SUBST($1)]) # AM_MISSING_HAS_RUN # ------------------ # Define MISSING if not defined so far and test if it is modern enough. # If it is, set am_missing_run to use it, otherwise, to nothing. AC_DEFUN([AM_MISSING_HAS_RUN], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl AC_REQUIRE_AUX_FILE([missing])dnl if test x"${MISSING+set}" != xset; then case $am_aux_dir in *\ * | *\ *) MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;; *) MISSING="\${SHELL} $am_aux_dir/missing" ;; esac fi # Use eval to expand $SHELL if eval "$MISSING --is-lightweight"; then am_missing_run="$MISSING " else am_missing_run= AC_MSG_WARN(['missing' script is too old or missing]) fi ]) # -*- Autoconf -*- # Obsolete and "removed" macros, that must however still report explicit # error messages when used, to smooth transition. # # Copyright (C) 1996-2017 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. AC_DEFUN([AM_CONFIG_HEADER], [AC_DIAGNOSE([obsolete], ['$0': this macro is obsolete. You should use the 'AC][_CONFIG_HEADERS' macro instead.])dnl AC_CONFIG_HEADERS($@)]) AC_DEFUN([AM_PROG_CC_STDC], [AC_PROG_CC am_cv_prog_cc_stdc=$ac_cv_prog_cc_stdc AC_DIAGNOSE([obsolete], ['$0': this macro is obsolete. You should simply use the 'AC][_PROG_CC' macro instead. Also, your code should no longer depend upon 'am_cv_prog_cc_stdc', but upon 'ac_cv_prog_cc_stdc'.])]) AC_DEFUN([AM_C_PROTOTYPES], [AC_FATAL([automatic de-ANSI-fication support has been removed])]) AU_DEFUN([fp_C_PROTOTYPES], [AM_C_PROTOTYPES]) # Helper functions for option handling. -*- Autoconf -*- # Copyright (C) 2001-2017 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # _AM_MANGLE_OPTION(NAME) # ----------------------- AC_DEFUN([_AM_MANGLE_OPTION], [[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])]) # _AM_SET_OPTION(NAME) # -------------------- # Set option NAME. Presently that only means defining a flag for this option. AC_DEFUN([_AM_SET_OPTION], [m4_define(_AM_MANGLE_OPTION([$1]), [1])]) # _AM_SET_OPTIONS(OPTIONS) # ------------------------ # OPTIONS is a space-separated list of Automake options. AC_DEFUN([_AM_SET_OPTIONS], [m4_foreach_w([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])]) # _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET]) # ------------------------------------------- # Execute IF-SET if OPTION is set, IF-NOT-SET otherwise. AC_DEFUN([_AM_IF_OPTION], [m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])]) # Copyright (C) 1999-2017 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # _AM_PROG_CC_C_O # --------------- # Like AC_PROG_CC_C_O, but changed for automake. We rewrite AC_PROG_CC # to automatically call this. AC_DEFUN([_AM_PROG_CC_C_O], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl AC_REQUIRE_AUX_FILE([compile])dnl AC_LANG_PUSH([C])dnl AC_CACHE_CHECK( [whether $CC understands -c and -o together], [am_cv_prog_cc_c_o], [AC_LANG_CONFTEST([AC_LANG_PROGRAM([])]) # Make sure it works both with $CC and with simple cc. # Following AC_PROG_CC_C_O, we do the test twice because some # compilers refuse to overwrite an existing .o file with -o, # though they will create one. am_cv_prog_cc_c_o=yes for am_i in 1 2; do if AM_RUN_LOG([$CC -c conftest.$ac_ext -o conftest2.$ac_objext]) \ && test -f conftest2.$ac_objext; then : OK else am_cv_prog_cc_c_o=no break fi done rm -f core conftest* unset am_i]) if test "$am_cv_prog_cc_c_o" != yes; then # Losing compiler, so override with the script. # FIXME: It is wrong to rewrite CC. # But if we don't then we get into trouble of one sort or another. # A longer-term fix would be to have automake use am__CC in this case, # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)" CC="$am_aux_dir/compile $CC" fi AC_LANG_POP([C])]) # For backward compatibility. AC_DEFUN_ONCE([AM_PROG_CC_C_O], [AC_REQUIRE([AC_PROG_CC])]) # Copyright (C) 1999-2017 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_PATH_PYTHON([MINIMUM-VERSION], [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND]) # --------------------------------------------------------------------------- # Adds support for distributing Python modules and packages. To # install modules, copy them to $(pythondir), using the python_PYTHON # automake variable. To install a package with the same name as the # automake package, install to $(pkgpythondir), or use the # pkgpython_PYTHON automake variable. # # The variables $(pyexecdir) and $(pkgpyexecdir) are provided as # locations to install python extension modules (shared libraries). # Another macro is required to find the appropriate flags to compile # extension modules. # # If your package is configured with a different prefix to python, # users will have to add the install directory to the PYTHONPATH # environment variable, or create a .pth file (see the python # documentation for details). # # If the MINIMUM-VERSION argument is passed, AM_PATH_PYTHON will # cause an error if the version of python installed on the system # doesn't meet the requirement. MINIMUM-VERSION should consist of # numbers and dots only. AC_DEFUN([AM_PATH_PYTHON], [ dnl Find a Python interpreter. Python versions prior to 2.0 are not dnl supported. (2.0 was released on October 16, 2000). dnl FIXME: Remove the need to hard-code Python versions here. m4_define_default([_AM_PYTHON_INTERPRETER_LIST], [python python2 python3 python3.8 python3.7 python3.6 python3.5 python3.4 python3.3 python3.2 python3.1 python3.0 python2.7 dnl python2.6 python2.5 python2.4 python2.3 python2.2 python2.1 python2.0]) AC_ARG_VAR([PYTHON], [the Python interpreter]) m4_if([$1],[],[ dnl No version check is needed. # Find any Python interpreter. if test -z "$PYTHON"; then AC_PATH_PROGS([PYTHON], _AM_PYTHON_INTERPRETER_LIST, :) fi am_display_PYTHON=python ], [ dnl A version check is needed. if test -n "$PYTHON"; then # If the user set $PYTHON, use it and don't search something else. AC_MSG_CHECKING([whether $PYTHON version is >= $1]) AM_PYTHON_CHECK_VERSION([$PYTHON], [$1], [AC_MSG_RESULT([yes])], [AC_MSG_RESULT([no]) AC_MSG_ERROR([Python interpreter is too old])]) am_display_PYTHON=$PYTHON else # Otherwise, try each interpreter until we find one that satisfies # VERSION. AC_CACHE_CHECK([for a Python interpreter with version >= $1], [am_cv_pathless_PYTHON],[ for am_cv_pathless_PYTHON in _AM_PYTHON_INTERPRETER_LIST none; do test "$am_cv_pathless_PYTHON" = none && break AM_PYTHON_CHECK_VERSION([$am_cv_pathless_PYTHON], [$1], [break]) done]) # Set $PYTHON to the absolute path of $am_cv_pathless_PYTHON. if test "$am_cv_pathless_PYTHON" = none; then PYTHON=: else AC_PATH_PROG([PYTHON], [$am_cv_pathless_PYTHON]) fi am_display_PYTHON=$am_cv_pathless_PYTHON fi ]) if test "$PYTHON" = :; then dnl Run any user-specified action, or abort. m4_default([$3], [AC_MSG_ERROR([no suitable Python interpreter found])]) else dnl Query Python for its version number. Getting [:3] seems to be dnl the best way to do this; it's what "site.py" does in the standard dnl library. AC_CACHE_CHECK([for $am_display_PYTHON version], [am_cv_python_version], [am_cv_python_version=`$PYTHON -c "import sys; sys.stdout.write(sys.version[[:3]])"`]) AC_SUBST([PYTHON_VERSION], [$am_cv_python_version]) dnl Use the values of $prefix and $exec_prefix for the corresponding dnl values of PYTHON_PREFIX and PYTHON_EXEC_PREFIX. These are made dnl distinct variables so they can be overridden if need be. However, dnl general consensus is that you shouldn't need this ability. AC_SUBST([PYTHON_PREFIX], ['${prefix}']) AC_SUBST([PYTHON_EXEC_PREFIX], ['${exec_prefix}']) dnl At times (like when building shared libraries) you may want dnl to know which OS platform Python thinks this is. AC_CACHE_CHECK([for $am_display_PYTHON platform], [am_cv_python_platform], [am_cv_python_platform=`$PYTHON -c "import sys; sys.stdout.write(sys.platform)"`]) AC_SUBST([PYTHON_PLATFORM], [$am_cv_python_platform]) # Just factor out some code duplication. am_python_setup_sysconfig="\ import sys # Prefer sysconfig over distutils.sysconfig, for better compatibility # with python 3.x. See automake bug#10227. try: import sysconfig except ImportError: can_use_sysconfig = 0 else: can_use_sysconfig = 1 # Can't use sysconfig in CPython 2.7, since it's broken in virtualenvs: # try: from platform import python_implementation if python_implementation() == 'CPython' and sys.version[[:3]] == '2.7': can_use_sysconfig = 0 except ImportError: pass" dnl Set up 4 directories: dnl pythondir -- where to install python scripts. This is the dnl site-packages directory, not the python standard library dnl directory like in previous automake betas. This behavior dnl is more consistent with lispdir.m4 for example. dnl Query distutils for this directory. AC_CACHE_CHECK([for $am_display_PYTHON script directory], [am_cv_python_pythondir], [if test "x$prefix" = xNONE then am_py_prefix=$ac_default_prefix else am_py_prefix=$prefix fi am_cv_python_pythondir=`$PYTHON -c " $am_python_setup_sysconfig if can_use_sysconfig: sitedir = sysconfig.get_path('purelib', vars={'base':'$am_py_prefix'}) else: from distutils import sysconfig sitedir = sysconfig.get_python_lib(0, 0, prefix='$am_py_prefix') sys.stdout.write(sitedir)"` case $am_cv_python_pythondir in $am_py_prefix*) am__strip_prefix=`echo "$am_py_prefix" | sed 's|.|.|g'` am_cv_python_pythondir=`echo "$am_cv_python_pythondir" | sed "s,^$am__strip_prefix,$PYTHON_PREFIX,"` ;; *) case $am_py_prefix in /usr|/System*) ;; *) am_cv_python_pythondir=$PYTHON_PREFIX/lib/python$PYTHON_VERSION/site-packages ;; esac ;; esac ]) AC_SUBST([pythondir], [$am_cv_python_pythondir]) dnl pkgpythondir -- $PACKAGE directory under pythondir. Was dnl PYTHON_SITE_PACKAGE in previous betas, but this naming is dnl more consistent with the rest of automake. AC_SUBST([pkgpythondir], [\${pythondir}/$PACKAGE]) dnl pyexecdir -- directory for installing python extension modules dnl (shared libraries) dnl Query distutils for this directory. AC_CACHE_CHECK([for $am_display_PYTHON extension module directory], [am_cv_python_pyexecdir], [if test "x$exec_prefix" = xNONE then am_py_exec_prefix=$am_py_prefix else am_py_exec_prefix=$exec_prefix fi am_cv_python_pyexecdir=`$PYTHON -c " $am_python_setup_sysconfig if can_use_sysconfig: sitedir = sysconfig.get_path('platlib', vars={'platbase':'$am_py_prefix'}) else: from distutils import sysconfig sitedir = sysconfig.get_python_lib(1, 0, prefix='$am_py_prefix') sys.stdout.write(sitedir)"` case $am_cv_python_pyexecdir in $am_py_exec_prefix*) am__strip_prefix=`echo "$am_py_exec_prefix" | sed 's|.|.|g'` am_cv_python_pyexecdir=`echo "$am_cv_python_pyexecdir" | sed "s,^$am__strip_prefix,$PYTHON_EXEC_PREFIX,"` ;; *) case $am_py_exec_prefix in /usr|/System*) ;; *) am_cv_python_pyexecdir=$PYTHON_EXEC_PREFIX/lib/python$PYTHON_VERSION/site-packages ;; esac ;; esac ]) AC_SUBST([pyexecdir], [$am_cv_python_pyexecdir]) dnl pkgpyexecdir -- $(pyexecdir)/$(PACKAGE) AC_SUBST([pkgpyexecdir], [\${pyexecdir}/$PACKAGE]) dnl Run any user-specified action. $2 fi ]) # AM_PYTHON_CHECK_VERSION(PROG, VERSION, [ACTION-IF-TRUE], [ACTION-IF-FALSE]) # --------------------------------------------------------------------------- # Run ACTION-IF-TRUE if the Python interpreter PROG has version >= VERSION. # Run ACTION-IF-FALSE otherwise. # This test uses sys.hexversion instead of the string equivalent (first # word of sys.version), in order to cope with versions such as 2.2c1. # This supports Python 2.0 or higher. (2.0 was released on October 16, 2000). AC_DEFUN([AM_PYTHON_CHECK_VERSION], [prog="import sys # split strings by '.' and convert to numeric. Append some zeros # because we need at least 4 digits for the hex conversion. # map returns an iterator in Python 3.0 and a list in 2.x minver = list(map(int, '$2'.split('.'))) + [[0, 0, 0]] minverhex = 0 # xrange is not present in Python 3.0 and range returns an iterator for i in list(range(0, 4)): minverhex = (minverhex << 8) + minver[[i]] sys.exit(sys.hexversion < minverhex)" AS_IF([AM_RUN_LOG([$1 -c "$prog"])], [$3], [$4])]) # Copyright (C) 2001-2017 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_RUN_LOG(COMMAND) # ------------------- # Run COMMAND, save the exit status in ac_status, and log it. # (This has been adapted from Autoconf's _AC_RUN_LOG macro.) AC_DEFUN([AM_RUN_LOG], [{ echo "$as_me:$LINENO: $1" >&AS_MESSAGE_LOG_FD ($1) >&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD (exit $ac_status); }]) # Check to make sure that the build environment is sane. -*- Autoconf -*- # Copyright (C) 1996-2017 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_SANITY_CHECK # --------------- AC_DEFUN([AM_SANITY_CHECK], [AC_MSG_CHECKING([whether build environment is sane]) # Reject unsafe characters in $srcdir or the absolute working directory # name. Accept space and tab only in the latter. am_lf=' ' case `pwd` in *[[\\\"\#\$\&\'\`$am_lf]]*) AC_MSG_ERROR([unsafe absolute working directory name]);; esac case $srcdir in *[[\\\"\#\$\&\'\`$am_lf\ \ ]]*) AC_MSG_ERROR([unsafe srcdir value: '$srcdir']);; esac # Do 'set' in a subshell so we don't clobber the current shell's # arguments. Must try -L first in case configure is actually a # symlink; some systems play weird games with the mod time of symlinks # (eg FreeBSD returns the mod time of the symlink's containing # directory). if ( am_has_slept=no for am_try in 1 2; do echo "timestamp, slept: $am_has_slept" > conftest.file set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` if test "$[*]" = "X"; then # -L didn't work. set X `ls -t "$srcdir/configure" conftest.file` fi if test "$[*]" != "X $srcdir/configure conftest.file" \ && test "$[*]" != "X conftest.file $srcdir/configure"; then # If neither matched, then we have a broken ls. This can happen # if, for instance, CONFIG_SHELL is bash and it inherits a # broken ls alias from the environment. This has actually # happened. Such a system could not be considered "sane". AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken alias in your environment]) fi if test "$[2]" = conftest.file || test $am_try -eq 2; then break fi # Just in case. sleep 1 am_has_slept=yes done test "$[2]" = conftest.file ) then # Ok. : else AC_MSG_ERROR([newly created file is older than distributed files! Check your system clock]) fi AC_MSG_RESULT([yes]) # If we didn't sleep, we still need to ensure time stamps of config.status and # generated files are strictly newer. am_sleep_pid= if grep 'slept: no' conftest.file >/dev/null 2>&1; then ( sleep 1 ) & am_sleep_pid=$! fi AC_CONFIG_COMMANDS_PRE( [AC_MSG_CHECKING([that generated files are newer than configure]) if test -n "$am_sleep_pid"; then # Hide warnings about reused PIDs. wait $am_sleep_pid 2>/dev/null fi AC_MSG_RESULT([done])]) rm -f conftest.file ]) # Copyright (C) 2009-2017 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_SILENT_RULES([DEFAULT]) # -------------------------- # Enable less verbose build rules; with the default set to DEFAULT # ("yes" being less verbose, "no" or empty being verbose). AC_DEFUN([AM_SILENT_RULES], [AC_ARG_ENABLE([silent-rules], [dnl AS_HELP_STRING( [--enable-silent-rules], [less verbose build output (undo: "make V=1")]) AS_HELP_STRING( [--disable-silent-rules], [verbose build output (undo: "make V=0")])dnl ]) case $enable_silent_rules in @%:@ ((( yes) AM_DEFAULT_VERBOSITY=0;; no) AM_DEFAULT_VERBOSITY=1;; *) AM_DEFAULT_VERBOSITY=m4_if([$1], [yes], [0], [1]);; esac dnl dnl A few 'make' implementations (e.g., NonStop OS and NextStep) dnl do not support nested variable expansions. dnl See automake bug#9928 and bug#10237. am_make=${MAKE-make} AC_CACHE_CHECK([whether $am_make supports nested variables], [am_cv_make_support_nested_variables], [if AS_ECHO([['TRUE=$(BAR$(V)) BAR0=false BAR1=true V=1 am__doit: @$(TRUE) .PHONY: am__doit']]) | $am_make -f - >/dev/null 2>&1; then am_cv_make_support_nested_variables=yes else am_cv_make_support_nested_variables=no fi]) if test $am_cv_make_support_nested_variables = yes; then dnl Using '$V' instead of '$(V)' breaks IRIX make. AM_V='$(V)' AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)' else AM_V=$AM_DEFAULT_VERBOSITY AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY fi AC_SUBST([AM_V])dnl AM_SUBST_NOTMAKE([AM_V])dnl AC_SUBST([AM_DEFAULT_V])dnl AM_SUBST_NOTMAKE([AM_DEFAULT_V])dnl AC_SUBST([AM_DEFAULT_VERBOSITY])dnl AM_BACKSLASH='\' AC_SUBST([AM_BACKSLASH])dnl _AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl ]) # Copyright (C) 2001-2017 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_PROG_INSTALL_STRIP # --------------------- # One issue with vendor 'install' (even GNU) is that you can't # specify the program used to strip binaries. This is especially # annoying in cross-compiling environments, where the build's strip # is unlikely to handle the host's binaries. # Fortunately install-sh will honor a STRIPPROG variable, so we # always use install-sh in "make install-strip", and initialize # STRIPPROG with the value of the STRIP variable (set by the user). AC_DEFUN([AM_PROG_INSTALL_STRIP], [AC_REQUIRE([AM_PROG_INSTALL_SH])dnl # Installed binaries are usually stripped using 'strip' when the user # run "make install-strip". However 'strip' might not be the right # tool to use in cross-compilation environments, therefore Automake # will honor the 'STRIP' environment variable to overrule this program. dnl Don't test for $cross_compiling = yes, because it might be 'maybe'. if test "$cross_compiling" != no; then AC_CHECK_TOOL([STRIP], [strip], :) fi INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" AC_SUBST([INSTALL_STRIP_PROGRAM])]) # Copyright (C) 2006-2017 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # _AM_SUBST_NOTMAKE(VARIABLE) # --------------------------- # Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in. # This macro is traced by Automake. AC_DEFUN([_AM_SUBST_NOTMAKE]) # AM_SUBST_NOTMAKE(VARIABLE) # -------------------------- # Public sister of _AM_SUBST_NOTMAKE. AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)]) # Check how to create a tarball. -*- Autoconf -*- # Copyright (C) 2004-2017 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # _AM_PROG_TAR(FORMAT) # -------------------- # Check how to create a tarball in format FORMAT. # FORMAT should be one of 'v7', 'ustar', or 'pax'. # # Substitute a variable $(am__tar) that is a command # writing to stdout a FORMAT-tarball containing the directory # $tardir. # tardir=directory && $(am__tar) > result.tar # # Substitute a variable $(am__untar) that extract such # a tarball read from stdin. # $(am__untar) < result.tar # AC_DEFUN([_AM_PROG_TAR], [# Always define AMTAR for backward compatibility. Yes, it's still used # in the wild :-( We should find a proper way to deprecate it ... AC_SUBST([AMTAR], ['$${TAR-tar}']) # We'll loop over all known methods to create a tar archive until one works. _am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none' m4_if([$1], [v7], [am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'], [m4_case([$1], [ustar], [# The POSIX 1988 'ustar' format is defined with fixed-size fields. # There is notably a 21 bits limit for the UID and the GID. In fact, # the 'pax' utility can hang on bigger UID/GID (see automake bug#8343 # and bug#13588). am_max_uid=2097151 # 2^21 - 1 am_max_gid=$am_max_uid # The $UID and $GID variables are not portable, so we need to resort # to the POSIX-mandated id(1) utility. Errors in the 'id' calls # below are definitely unexpected, so allow the users to see them # (that is, avoid stderr redirection). am_uid=`id -u || echo unknown` am_gid=`id -g || echo unknown` AC_MSG_CHECKING([whether UID '$am_uid' is supported by ustar format]) if test $am_uid -le $am_max_uid; then AC_MSG_RESULT([yes]) else AC_MSG_RESULT([no]) _am_tools=none fi AC_MSG_CHECKING([whether GID '$am_gid' is supported by ustar format]) if test $am_gid -le $am_max_gid; then AC_MSG_RESULT([yes]) else AC_MSG_RESULT([no]) _am_tools=none fi], [pax], [], [m4_fatal([Unknown tar format])]) AC_MSG_CHECKING([how to create a $1 tar archive]) # Go ahead even if we have the value already cached. We do so because we # need to set the values for the 'am__tar' and 'am__untar' variables. _am_tools=${am_cv_prog_tar_$1-$_am_tools} for _am_tool in $_am_tools; do case $_am_tool in gnutar) for _am_tar in tar gnutar gtar; do AM_RUN_LOG([$_am_tar --version]) && break done am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"' am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"' am__untar="$_am_tar -xf -" ;; plaintar) # Must skip GNU tar: if it does not support --format= it doesn't create # ustar tarball either. (tar --version) >/dev/null 2>&1 && continue am__tar='tar chf - "$$tardir"' am__tar_='tar chf - "$tardir"' am__untar='tar xf -' ;; pax) am__tar='pax -L -x $1 -w "$$tardir"' am__tar_='pax -L -x $1 -w "$tardir"' am__untar='pax -r' ;; cpio) am__tar='find "$$tardir" -print | cpio -o -H $1 -L' am__tar_='find "$tardir" -print | cpio -o -H $1 -L' am__untar='cpio -i -H $1 -d' ;; none) am__tar=false am__tar_=false am__untar=false ;; esac # If the value was cached, stop now. We just wanted to have am__tar # and am__untar set. test -n "${am_cv_prog_tar_$1}" && break # tar/untar a dummy directory, and stop if the command works. rm -rf conftest.dir mkdir conftest.dir echo GrepMe > conftest.dir/file AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar]) rm -rf conftest.dir if test -s conftest.tar; then AM_RUN_LOG([$am__untar /dev/null 2>&1 && break fi done rm -rf conftest.dir AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool]) AC_MSG_RESULT([$am_cv_prog_tar_$1])]) AC_SUBST([am__tar]) AC_SUBST([am__untar]) ]) # _AM_PROG_TAR ario-1.6/Makefile.am0000644000175000017500000000025413226723442011275 00000000000000AUTOMAKE_OPTIONS = foreign 1.6 if ENABLE_PYTHON SUBDIRS = bindings else SUBDIRS = endif SUBDIRS += data\ plugins\ po\ src ario-1.6/config.h.in0000644000175000017500000000573013226745610011271 00000000000000/* config.h.in. Generated from configure.ac by autoheader. */ /* Add runtime debugging information (slower) */ #undef DEBUG /* Add support of avahi */ #undef ENABLE_AVAHI /* Use libmpdclient2 */ #undef ENABLE_LIBMPDCLIENT2 /* Use MPD idle mode (reduces CPU and network usage but still experimental) */ #undef ENABLE_MPDIDLE /* always defined to indicate that i18n is enabled */ #undef ENABLE_NLS /* Enable python plugins support */ #undef ENABLE_PYTHON /* Add support of search view */ #undef ENABLE_SEARCH /* Add support of playlists */ #undef ENABLE_STOREDPLAYLISTS /* Add support of taglib */ #undef ENABLE_TAGLIB /* Add support of XMMS2 (VERY EXPERIMENTAL) */ #undef ENABLE_XMMS2 /* Gettext package */ #undef GETTEXT_PACKAGE /* Define to 1 if you have the `bind_textdomain_codeset' function. */ #undef HAVE_BIND_TEXTDOMAIN_CODESET /* Define to 1 if you have the Mac OS X function CFLocaleCopyCurrent in the CoreFoundation framework. */ #undef HAVE_CFLOCALECOPYCURRENT /* Define to 1 if you have the Mac OS X function CFPreferencesCopyAppValue in the CoreFoundation framework. */ #undef HAVE_CFPREFERENCESCOPYAPPVALUE /* Define to 1 if you have the `dcgettext' function. */ #undef HAVE_DCGETTEXT /* Define to 1 if you have the header file. */ #undef HAVE_DLFCN_H /* Define if the GNU gettext() function is already present or preinstalled. */ #undef HAVE_GETTEXT /* Define to 1 if you have the header file. */ #undef HAVE_INTTYPES_H /* Define if your file defines LC_MESSAGES. */ #undef HAVE_LC_MESSAGES /* Define to 1 if you have the header file. */ #undef HAVE_LOCALE_H /* Define to 1 if you have the header file. */ #undef HAVE_MEMORY_H /* Define to 1 if you have the header file. */ #undef HAVE_STDINT_H /* Define to 1 if you have the header file. */ #undef HAVE_STDLIB_H /* Define to 1 if you have the header file. */ #undef HAVE_STRINGS_H /* Define to 1 if you have the header file. */ #undef HAVE_STRING_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_STAT_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_TYPES_H /* Define to 1 if you have the header file. */ #undef HAVE_UNISTD_H /* Define to the sub-directory where libtool stores uninstalled libraries. */ #undef LT_OBJDIR /* Name of package */ #undef PACKAGE /* Define to the address where bug reports for this package should be sent. */ #undef PACKAGE_BUGREPORT /* Define to the full name of this package. */ #undef PACKAGE_NAME /* Define to the full name and version of this package. */ #undef PACKAGE_STRING /* Define to the one symbol short name of this package. */ #undef PACKAGE_TARNAME /* Define to the home page for this package. */ #undef PACKAGE_URL /* Define to the version of this package. */ #undef PACKAGE_VERSION /* Define to 1 if you have the ANSI C header files. */ #undef STDC_HEADERS /* Version number of package */ #undef VERSION ario-1.6/README0000644000175000017500000000000013226723436010111 00000000000000ario-1.6/src/0000755000175000017500000000000013226745613010113 500000000000000ario-1.6/src/plugins/0000755000175000017500000000000013226745613011574 500000000000000ario-1.6/src/plugins/ario-python-plugin.h0000644000175000017500000000257113226723432015432 00000000000000/* * heavily based on code from Gedit * * Copyright (C) 2005 Raphael Slinckx * Copyright (C) 2008 Marc Pavot * * 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 St, Fifth Floor, * Boston, MA 02110-1301 USA. */ #ifndef ARIO_PYTHON_OBJECT_H #define ARIO_PYTHON_OBJECT_H #include #include #include "ario-plugin.h" G_BEGIN_DECLS typedef struct _ArioPythonObject ArioPythonObject; typedef struct _ArioPythonObjectClass ArioPythonObjectClass; struct _ArioPythonObject { ArioPlugin parent_slot; PyObject *instance; }; struct _ArioPythonObjectClass { ArioPluginClass parent_slot; PyObject *type; }; GType ario_python_object_get_type (GTypeModule *module, PyObject *type); G_END_DECLS #endif ario-1.6/src/plugins/ario-plugin-info-priv.h0000644000175000017500000000421213226723433016015 00000000000000/* * heavily based on code from Gedit * * Copyright (C) 2002-2005 - Paolo Maggi * Copyright (C) 2008 Marc Pavot * * 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 St, Fifth Floor, * Boston, MA 02110-1301 USA. */ #ifndef __ARIO_PLUGIN_INFO_PRIV_H__ #define __ARIO_PLUGIN_INFO_PRIV_H__ #include "plugins/ario-plugin-info.h" #include "plugins/ario-plugin.h" typedef enum { ARIO_PLUGIN_LOADER_C, ARIO_PLUGIN_LOADER_PY, } ArioPluginLoader; struct _ArioPluginInfo { gint refcount; gchar *file; gchar *module_name; ArioPluginLoader loader; GTypeModule *module; gchar **dependencies; gchar *name; gchar *desc; gchar *icon_name; gchar **authors; gchar *copyright; gchar *website; ArioPlugin *plugin; gboolean active; /* A plugin is unavailable if it is not possible to activate it due to an error loading the plugin module (e.g. for Python plugins when the interpreter has not been correctly initializated) */ gboolean available; }; ArioPluginInfo* _ario_plugin_info_new (const gchar *file); void _ario_plugin_info_ref (ArioPluginInfo *info); void _ario_plugin_info_unref (ArioPluginInfo *info); #endif /* __ARIO_PLUGIN_INFO_PRIV_H__ */ ario-1.6/src/plugins/ario-plugin-manager.h0000644000175000017500000000450113226723431015515 00000000000000/* * heavily based on code from Gedit * * Copyright (C) 2002-2005 - Paolo Maggi * Copyright (C) 2008 Marc Pavot * * 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 St, Fifth Floor, * Boston, MA 02110-1301 USA. */ #ifndef __ARIO_PLUGIN_MANAGER_H__ #define __ARIO_PLUGIN_MANAGER_H__ #include G_BEGIN_DECLS /* * Type checking and casting macros */ #define ARIO_TYPE_PLUGIN_MANAGER (ario_plugin_manager_get_type()) #define ARIO_PLUGIN_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), ARIO_TYPE_PLUGIN_MANAGER, ArioPluginManager)) #define ARIO_PLUGIN_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), ARIO_TYPE_PLUGIN_MANAGER, ArioPluginManagerClass)) #define ARIO_IS_PLUGIN_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), ARIO_TYPE_PLUGIN_MANAGER)) #define ARIO_IS_PLUGIN_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), ARIO_TYPE_PLUGIN_MANAGER)) #define ARIO_PLUGIN_MANAGER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), ARIO_TYPE_PLUGIN_MANAGER, ArioPluginManagerClass)) /* Private structure type */ typedef struct _ArioPluginManagerPrivate ArioPluginManagerPrivate; /* * Main object structure */ typedef struct _ArioPluginManager ArioPluginManager; struct _ArioPluginManager { GtkBox box; /*< private > */ ArioPluginManagerPrivate *priv; }; /* * Class definition */ typedef struct _ArioPluginManagerClass ArioPluginManagerClass; struct _ArioPluginManagerClass { GtkBoxClass parent_class; }; /* * Public methods */ GType ario_plugin_manager_get_type (void) G_GNUC_CONST; GtkWidget* ario_plugin_manager_new (void); G_END_DECLS #endif /* __ARIO_PLUGIN_MANAGER_H__ */ ario-1.6/src/plugins/ario-plugin.h0000644000175000017500000001647313226723431014120 00000000000000/* * heavily based on code from Gedit * * Copyright (C) 2002-2005 - Paolo Maggi * Copyright (C) 2008 Marc Pavot * * 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 St, Fifth Floor, * Boston, MA 02110-1301 USA. */ #ifndef __ARIO_PLUGIN_H__ #define __ARIO_PLUGIN_H__ #include #include #include #include G_BEGIN_DECLS /* * Type checking and casting macros */ #define ARIO_TYPE_PLUGIN (ario_plugin_get_type()) #define ARIO_PLUGIN(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), ARIO_TYPE_PLUGIN, ArioPlugin)) #define ARIO_PLUGIN_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), ARIO_TYPE_PLUGIN, ArioPluginClass)) #define ARIO_IS_PLUGIN(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), ARIO_TYPE_PLUGIN)) #define ARIO_IS_PLUGIN_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), ARIO_TYPE_PLUGIN)) #define ARIO_PLUGIN_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), ARIO_TYPE_PLUGIN, ArioPluginClass)) /* * Main object structure */ typedef struct _ArioPlugin ArioPlugin; struct _ArioPlugin { GObject parent; }; /* * Class definition */ typedef struct _ArioPluginClass ArioPluginClass; struct _ArioPluginClass { GObjectClass parent_class; /* Virtual public methods */ void (*activate) (ArioPlugin *plugin, ArioShell *shell); void (*deactivate) (ArioPlugin *plugin, ArioShell *shell); GtkWidget *(*create_configure_dialog) (ArioPlugin *plugin); /* Plugins should not override this, it's handled automatically by the ArioPluginClass */ gboolean (*is_configurable) (ArioPlugin *plugin); /* Padding for future expansion */ void (*_ario_reserved1) (void); void (*_ario_reserved2) (void); void (*_ario_reserved3) (void); }; /* * Public methods */ GType ario_plugin_get_type (void) G_GNUC_CONST; void ario_plugin_activate (ArioPlugin *plugin, ArioShell *shell); void ario_plugin_deactivate (ArioPlugin *plugin, ArioShell *shell); gboolean ario_plugin_is_configurable (ArioPlugin *plugin); GtkWidget* ario_plugin_create_configure_dialog (ArioPlugin *plugin); GSList * ario_plugin_get_plugin_paths (void); GSList * ario_plugin_get_plugin_data_paths (void); char * ario_plugin_find_file (const char *file); /* * Utility macro used to register plugins * * use: ARIO_PLUGIN_REGISTER_TYPE_WITH_CODE(PluginName, plugin_name, CODE) */ #define ARIO_PLUGIN_REGISTER_TYPE_WITH_CODE(PluginName, plugin_name, CODE) \ \ static GType plugin_name##_type = 0; \ \ GType \ plugin_name##_get_type (void) \ { \ return plugin_name##_type; \ } \ \ static void plugin_name##_init (PluginName *self); \ static void plugin_name##_class_init (PluginName##Class *klass); \ static gpointer plugin_name##_parent_class = NULL; \ static void plugin_name##_class_intern_init (gpointer klass) \ { \ plugin_name##_parent_class = g_type_class_peek_parent (klass); \ plugin_name##_class_init ((PluginName##Class *) klass); \ } \ \ G_MODULE_EXPORT GType \ register_ario_plugin (GTypeModule *module) \ { \ static const GTypeInfo our_info = \ { \ sizeof (PluginName##Class), \ NULL, /* base_init */ \ NULL, /* base_finalize */ \ (GClassInitFunc) plugin_name##_class_intern_init, \ NULL, \ NULL, /* class_data */ \ sizeof (PluginName), \ 0, /* n_preallocs */ \ (GInstanceInitFunc) plugin_name##_init, \ NULL \ }; \ \ ARIO_LOG_DBG ("Registering " #PluginName); \ \ /* Initialise the i18n stuff */ \ bindtextdomain (GETTEXT_PACKAGE, LOCALE_DIR); \ bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8"); \ \ plugin_name##_type = g_type_module_register_type (module, \ ARIO_TYPE_PLUGIN, \ #PluginName, \ &our_info, \ 0); \ \ CODE \ \ return plugin_name##_type; \ } /* * Utility macro used to register plugins * * use: ARIO_PLUGIN_REGISTER_TYPE(PluginName, plugin_name) */ #define ARIO_PLUGIN_REGISTER_TYPE(PluginName, plugin_name) \ ARIO_PLUGIN_REGISTER_TYPE_WITH_CODE(PluginName, plugin_name, ;) G_END_DECLS #endif /* __ARIO_PLUGIN_H__ */ ario-1.6/src/plugins/ario-plugins-engine.h0000644000175000017500000000323413226723431015535 00000000000000/* * heavily based on code from Gedit * * Copyright (C) 2002-2005 - Paolo Maggi * Copyright (C) 2008 Marc Pavot * * 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 St, Fifth Floor, * Boston, MA 02110-1301 USA. */ #ifndef __ARIO_PLUGINS_ENGINE_H__ #define __ARIO_PLUGINS_ENGINE_H__ #include #include "shell/ario-shell.h" #include "plugins/ario-plugin-info.h" #include "plugins/ario-plugin.h" void ario_plugins_engine_init (ArioShell *shell); void ario_plugins_engine_shutdown (void); const GList *ario_plugins_engine_get_plugin_list (void); gboolean ario_plugins_engine_activate_plugin (ArioPluginInfo *info); gboolean ario_plugins_engine_deactivate_plugin (ArioPluginInfo *info); void ario_plugins_engine_configure_plugin (ArioPluginInfo *info, GtkWindow *parent); #endif /* __ARIO_PLUGINS_ENGINE_H__ */ ario-1.6/src/plugins/ario-plugin-info.h0000644000175000017500000000370113226723432015040 00000000000000/* * heavily based on code from Gedit * * Copyright (C) 2002-2005 - Paolo Maggi * Copyright (C) 2008 Marc Pavot * * 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 St, Fifth Floor, * Boston, MA 02110-1301 USA. */ #ifndef __ARIO_PLUGIN_INFO_H__ #define __ARIO_PLUGIN_INFO_H__ #include G_BEGIN_DECLS #define ARIO_TYPE_PLUGIN_INFO (ario_plugin_info_get_type ()) #define ARIO_PLUGIN_INFO(obj) ((ArioPluginInfo *) (obj)) typedef struct _ArioPluginInfo ArioPluginInfo; GType ario_plugin_info_get_type (void) G_GNUC_CONST; gboolean ario_plugin_info_is_active (ArioPluginInfo *info); gboolean ario_plugin_info_is_available (ArioPluginInfo *info); gboolean ario_plugin_info_is_configurable (ArioPluginInfo *info); const gchar* ario_plugin_info_get_name (ArioPluginInfo *info); const gchar* ario_plugin_info_get_description (ArioPluginInfo *info); const gchar* ario_plugin_info_get_icon_name (ArioPluginInfo *info); const gchar** ario_plugin_info_get_authors (ArioPluginInfo *info); const gchar* ario_plugin_info_get_website (ArioPluginInfo *info); const gchar* ario_plugin_info_get_copyright (ArioPluginInfo *info); G_END_DECLS #endif /* __ARIO_PLUGIN_INFO_H__ */ ario-1.6/src/plugins/ario-module.c0000644000175000017500000001041213226723433014067 00000000000000/* * heavily based on code from Gedit * * Copyright (C) 2002-2005 - Paolo Maggi * Copyright (C) 2008 Marc Pavot * * 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 St, Fifth Floor, * Boston, MA 02110-1301 USA. */ #include "plugins/ario-module.h" #include "config.h" #include "ario-debug.h" #include typedef struct _ArioModuleClass ArioModuleClass; struct _ArioModuleClass { GTypeModuleClass parent_class; }; struct _ArioModule { GTypeModule parent_instance; GModule *library; gchar *path; GType type; }; typedef GType (*ArioModuleRegisterFunc) (GTypeModule *); G_DEFINE_TYPE (ArioModule, ario_module, G_TYPE_TYPE_MODULE) static gboolean ario_module_load (GTypeModule *gmodule) { ArioModule *module = ARIO_MODULE (gmodule); ArioModuleRegisterFunc register_func; ARIO_LOG_DBG ("Loading %s", module->path); module->library = g_module_open (module->path, 0); if (module->library == NULL) { g_warning ("%s", g_module_error()); return FALSE; } /* extract symbols from the lib */ if (!g_module_symbol (module->library, "register_ario_plugin", (void *) ®ister_func)) { g_warning ("%s", g_module_error()); g_module_close (module->library); return FALSE; } /* symbol can still be NULL even though g_module_symbol * returned TRUE */ if (register_func == NULL) { g_warning ("Symbol 'register_ario_plugin' should not be NULL"); g_module_close (module->library); return FALSE; } module->type = register_func (gmodule); if (module->type == 0) { g_warning ("Invalid ario plugin contained by module %s", module->path); return FALSE; } return TRUE; } static void ario_module_unload (GTypeModule *gmodule) { ArioModule *module = ARIO_MODULE (gmodule); ARIO_LOG_DBG ("Unloading %s", module->path); g_module_close (module->library); module->library = NULL; module->type = 0; } const gchar * ario_module_get_path (ArioModule *module) { g_return_val_if_fail (ARIO_IS_MODULE (module), NULL); return module->path; } GObject * ario_module_new_object (ArioModule *module) { ARIO_LOG_DBG ("Creating object of type %s", g_type_name (module->type)); if (module->type == 0) { return NULL; } return g_object_new (module->type, NULL); } static void ario_module_init (ArioModule *module) { ARIO_LOG_DBG ("ArioModule %p initialising", module); } static void ario_module_finalize (GObject *object) { ArioModule *module = ARIO_MODULE (object); ARIO_LOG_DBG ("ArioModule %p finalising", module); g_free (module->path); G_OBJECT_CLASS (ario_module_parent_class)->finalize (object); } static void ario_module_class_init (ArioModuleClass *class) { GObjectClass *object_class = G_OBJECT_CLASS (class); GTypeModuleClass *module_class = G_TYPE_MODULE_CLASS (class); object_class->finalize = ario_module_finalize; module_class->load = ario_module_load; module_class->unload = ario_module_unload; } ArioModule * ario_module_new (const gchar *path) { ArioModule *result; if (path == NULL || path[0] == '\0') { return NULL; } result = g_object_new (ARIO_TYPE_MODULE, NULL); g_type_module_set_name (G_TYPE_MODULE (result), path); result->path = g_strdup (path); return result; } ario-1.6/src/plugins/ario-plugins-engine.c0000644000175000017500000003667513226723431015547 00000000000000/* * heavily based on code from Gedit * * Copyright (C) 2002-2005 - Paolo Maggi * Copyright (C) 2008 Marc Pavot * * 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 St, Fifth Floor, * Boston, MA 02110-1301 USA. */ #include "plugins/ario-plugins-engine.h" #ifdef HAVE_CONFIG_H #include #endif #include #include #include "plugins/ario-plugin-info-priv.h" #include "plugins/ario-plugin.h" #include "ario-debug.h" #include "ario-util.h" #include "preferences/ario-preferences.h" #include "lib/ario-conf.h" #include "ario-module.h" #ifdef ENABLE_PYTHON #include "ario-python-module.h" #endif #define PLUGIN_EXT ".ario-plugin" static void ario_plugins_engine_active_plugins_changed (void); static void ario_plugins_engine_activate_plugin_real (ArioPluginInfo* info); static void ario_plugins_engine_deactivate_plugin_real (ArioPluginInfo* info); static gint compare_plugin_info (ArioPluginInfo *info1, ArioPluginInfo *info2) { return strcmp (info1->module_name, info2->module_name); } static GList *plugin_list; static ArioShell *static_shell; static void ario_plugins_engine_load_dir (const gchar *dir, GSList *active_plugins) { GError *error = NULL; GDir *d; const gchar *dirent; g_return_if_fail (dir != NULL); ARIO_LOG_DBG ("DIR: %s", dir); d = g_dir_open (dir, 0, &error); if (!d) { g_warning ("%s", error->message); g_error_free (error); return; } while ((dirent = g_dir_read_name (d))) { if (g_str_has_suffix (dirent, PLUGIN_EXT)) { gchar *plugin_file; ArioPluginInfo *info; plugin_file = g_build_filename (dir, dirent, NULL); info = _ario_plugin_info_new (plugin_file); g_free (plugin_file); if (info == NULL) continue; // Do not activate deprecated plugins if (!strcmp(info->module_name, "wikipedia") || !strcmp(info->module_name, "audioscrobbler") || !strcmp(info->module_name, "libnotify") || !strcmp(info->module_name, "liblibnotify")) continue; /* If a plugin with this name has already been loaded * drop this one (user plugins override system plugins) */ if (g_list_find_custom (plugin_list, info, (GCompareFunc)compare_plugin_info) != NULL) { g_warning ("Two or more plugins named '%s'. " "Only the first will be considered.\n", info->module_name); _ario_plugin_info_unref (info); continue; } /* Actually, the plugin will be activated when reactivate_all * will be called for the first time. */ info->active = g_slist_find_custom (active_plugins, info->module_name, (GCompareFunc)strcmp) != NULL; plugin_list = g_list_prepend (plugin_list, info); ARIO_LOG_DBG ("Plugin %s loaded", info->name); } } g_dir_close (d); } static void ario_plugins_engine_load_all (void) { GSList *active_plugins; GSList *paths; GSList *l; active_plugins = ario_conf_get_string_slist (PREF_PLUGINS_LIST, PREF_PLUGINS_LIST_DEFAULT); paths = ario_plugin_get_plugin_paths (); for (l = paths; l != NULL; l = l->next) { if (ario_file_test (l->data, G_FILE_TEST_IS_DIR)) ario_plugins_engine_load_dir (l->data, active_plugins); } g_slist_foreach (paths, (GFunc) g_free, NULL); g_slist_free (paths); g_slist_foreach (active_plugins, (GFunc) g_free, NULL); g_slist_free (active_plugins); } static void ario_plugins_engine_load_icons_dir (const gchar *dir) { GError *error = NULL; GDir *d; const gchar *dirent; g_return_if_fail (dir != NULL); ARIO_LOG_DBG ("ICONS DIR: %s", dir); d = g_dir_open (dir, 0, &error); if (!d) { g_warning ("%s", error->message); g_error_free (error); return; } while ((dirent = g_dir_read_name (d))) { if (g_str_has_suffix (dirent, "png") || g_str_has_suffix (dirent, "jpg")) { GtkIconTheme *icon_theme; icon_theme = gtk_icon_theme_get_default (); gtk_icon_theme_append_search_path (icon_theme, dir); } } g_dir_close (d); } static void ario_plugins_engine_load_icons_all (void) { GSList *paths; GSList *l; gchar *tmp; paths = ario_plugin_get_plugin_data_paths (); for (l = paths; l != NULL; l = l->next) { tmp = g_build_filename (l->data, "icons", NULL); if (ario_file_test (tmp, G_FILE_TEST_IS_DIR)) ario_plugins_engine_load_icons_dir (tmp); g_free (tmp); } g_slist_foreach (paths, (GFunc) g_free, NULL); g_slist_free (paths); } static gboolean load_plugin_module (ArioPluginInfo *info) { gchar *path; gchar *dirname; g_return_val_if_fail (info != NULL, FALSE); g_return_val_if_fail (info->file != NULL, FALSE); g_return_val_if_fail (info->module_name != NULL, FALSE); g_return_val_if_fail (info->plugin == NULL, FALSE); g_return_val_if_fail (info->available, FALSE); switch (info->loader) { case ARIO_PLUGIN_LOADER_C: dirname = g_path_get_dirname (info->file); g_return_val_if_fail (dirname != NULL, FALSE); path = g_module_build_path (dirname, info->module_name); g_free (dirname); g_return_val_if_fail (path != NULL, FALSE); info->module = G_TYPE_MODULE (ario_module_new (path)); g_free (path); break; #ifdef ENABLE_PYTHON case ARIO_PLUGIN_LOADER_PY: { gchar *dir; if (!ario_python_init ()) { /* Mark plugin as unavailable and fails */ info->available = FALSE; g_warning ("Cannot load Python plugin '%s' since ario " "was not able to initialize the Python interpreter.", info->name); return FALSE; } dir = g_path_get_dirname (info->file); g_return_val_if_fail ((info->module_name != NULL) && (info->module_name[0] != '\0'), FALSE); info->module = G_TYPE_MODULE (ario_python_module_new (dir, info->module_name)); g_free (dir); break; } #endif default: g_return_val_if_reached (FALSE); } if (!g_type_module_use (info->module)) { switch (info->loader) { case ARIO_PLUGIN_LOADER_C: g_warning ("Cannot load plugin '%s' since file '%s' cannot be read.", info->name, ario_module_get_path (ARIO_MODULE (info->module))); break; case ARIO_PLUGIN_LOADER_PY: g_warning ("Cannot load Python plugin '%s' since file '%s' cannot be read.", info->name, info->module_name); break; default: g_return_val_if_reached (FALSE); } g_object_unref (G_OBJECT (info->module)); info->module = NULL; /* Mark plugin as unavailable and fails */ info->available = FALSE; return FALSE; } switch (info->loader) { case ARIO_PLUGIN_LOADER_C: info->plugin = ARIO_PLUGIN (ario_module_new_object (ARIO_MODULE (info->module))); break; #ifdef ENABLE_PYTHON case ARIO_PLUGIN_LOADER_PY: info->plugin = ARIO_PLUGIN (ario_python_module_new_object (ARIO_PYTHON_MODULE (info->module))); break; #endif default: g_return_val_if_reached (FALSE); } g_type_module_unuse (info->module); ARIO_LOG_DBG ("End"); return TRUE; } static void reactivate_all (void) { GList *pl; for (pl = plugin_list; pl; pl = pl->next) { gboolean res = TRUE; ArioPluginInfo *info = (ArioPluginInfo*)pl->data; /* If plugin is not available, don't try to activate/load it */ if (info->available && info->active) { if (info->plugin == NULL) res = load_plugin_module (info); if (res) ario_plugin_activate (info->plugin, static_shell); } } ARIO_LOG_DBG ("End"); } void ario_plugins_engine_init (ArioShell *shell) { static_shell = shell; ario_plugins_engine_load_all (); ario_plugins_engine_load_icons_all (); reactivate_all (); } void ario_plugins_engine_shutdown (void) { #ifdef ENABLE_PYTHON /* Note: that this may cause finalization of objects (typically * the ArioShell) by running the garbage collector. Since some * of the plugin may have installed callbacks upon object * finalization (typically they need to free the WindowData) * it must run before we get rid of the plugins. */ ario_python_garbage_collect (); ario_python_shutdown (); #endif g_list_foreach (plugin_list, (GFunc) _ario_plugin_info_unref, NULL); g_list_free (plugin_list); } const GList * ario_plugins_engine_get_plugin_list (void) { return plugin_list; } static void save_active_plugin_list (void) { GSList *active_plugins = NULL; GList *l; for (l = plugin_list; l != NULL; l = l->next) { const ArioPluginInfo *info = (const ArioPluginInfo *) l->data; if (info->active) { active_plugins = g_slist_prepend (active_plugins, info->module_name); } } ario_conf_set_string_slist (PREF_PLUGINS_LIST, active_plugins); g_slist_free (active_plugins); ario_plugins_engine_active_plugins_changed (); } static void ario_plugins_engine_activate_plugin_real (ArioPluginInfo *info) { gboolean res = TRUE; if (info->active || !info->available) return; if (info->plugin == NULL) res = load_plugin_module (info); if (res) { ario_plugin_activate (info->plugin, static_shell); info->active = TRUE; } else { g_warning ("Error activating plugin '%s'", info->name); } } gboolean ario_plugins_engine_activate_plugin (ArioPluginInfo *info) { g_return_val_if_fail (info != NULL, FALSE); if (!info->available) return FALSE; if (info->active) return TRUE; ario_plugins_engine_activate_plugin_real (info); if (info->active) save_active_plugin_list (); return info->active; } static void ario_plugins_engine_deactivate_plugin_real (ArioPluginInfo *info) { if (!info->active || !info->available) return; ario_plugin_deactivate (info->plugin, static_shell); info->active = FALSE; } gboolean ario_plugins_engine_deactivate_plugin (ArioPluginInfo *info) { g_return_val_if_fail (info != NULL, FALSE); if (!info->active || !info->available) return TRUE; ario_plugins_engine_deactivate_plugin_real (info); if (!info->active) save_active_plugin_list (); return !info->active; } void ario_plugins_engine_configure_plugin (ArioPluginInfo *info, GtkWindow *parent) { GtkWidget *conf_dlg; GtkWindowGroup *wg; g_return_if_fail (info != NULL); conf_dlg = ario_plugin_create_configure_dialog (info->plugin); g_return_if_fail (conf_dlg != NULL); gtk_window_set_transient_for (GTK_WINDOW (conf_dlg), parent); wg = gtk_window_get_group (parent); if (wg == NULL) { wg = gtk_window_group_new (); gtk_window_group_add_window (wg, parent); } gtk_window_group_add_window (wg, GTK_WINDOW (conf_dlg)); gtk_window_set_modal (GTK_WINDOW (conf_dlg), TRUE); gtk_widget_show (conf_dlg); } static void ario_plugins_engine_active_plugins_changed (void) { GList *pl; gboolean to_activate; GSList *active_plugins; active_plugins = ario_conf_get_string_slist (PREF_PLUGINS_LIST, PREF_PLUGINS_LIST_DEFAULT); for (pl = plugin_list; pl; pl = pl->next) { ArioPluginInfo *info = (ArioPluginInfo*)pl->data; if (!info->available) continue; to_activate = (g_slist_find_custom (active_plugins, info->module_name, (GCompareFunc)strcmp) != NULL); if (!info->active && to_activate) ario_plugins_engine_activate_plugin_real (info); else if (info->active && !to_activate) ario_plugins_engine_deactivate_plugin_real (info); } g_slist_foreach (active_plugins, (GFunc) g_free, NULL); g_slist_free (active_plugins); } ario-1.6/src/plugins/ario-python-plugin.c0000644000175000017500000002036013226723433015422 00000000000000/* * heavily based on code from Gedit * * Copyright (C) 2005 Raphael Slinckx * Copyright (C) 2008 Marc Pavot * * 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 St, Fifth Floor, * Boston, MA 02110-1301 USA. */ #include "ario-python-plugin.h" #include #include "ario-plugin.h" #include "ario-debug.h" #include #include static GObjectClass *parent_class; static PyObject * call_python_method (ArioPythonObject *object, ArioShell *shell, gchar *method) { PyObject *py_ret = NULL; g_return_val_if_fail (PyObject_HasAttrString (object->instance, method), NULL); if (shell == NULL) { py_ret = PyObject_CallMethod (object->instance, method, NULL); } else { py_ret = PyObject_CallMethod (object->instance, method, "(N)", pygobject_new (G_OBJECT (shell))); } if (!py_ret) PyErr_Print (); return py_ret; } static gboolean check_py_object_is_gtk_widget (PyObject *py_obj) { static PyTypeObject *_PyGtkWidget_Type = NULL; if (_PyGtkWidget_Type == NULL) { PyObject *module; if ((module = PyImport_ImportModule ("gtk"))) { PyObject *moddict = PyModule_GetDict (module); _PyGtkWidget_Type = (PyTypeObject *) PyDict_GetItemString (moddict, "Widget"); } if (_PyGtkWidget_Type == NULL) { PyErr_SetString(PyExc_TypeError, "could not find Python gtk widget type"); PyErr_Print(); return FALSE; } } return PyObject_TypeCheck (py_obj, _PyGtkWidget_Type) ? TRUE : FALSE; } static void impl_deactivate (ArioPlugin *plugin, ArioShell *shell) { PyGILState_STATE state = pyg_gil_state_ensure (); ArioPythonObject *object = (ArioPythonObject *)plugin; if (PyObject_HasAttrString (object->instance, "deactivate")) { PyObject *py_ret = call_python_method (object, shell, "deactivate"); if (py_ret) { Py_XDECREF (py_ret); } } else ARIO_PLUGIN_CLASS (parent_class)->deactivate (plugin, shell); pyg_gil_state_release (state); } static void impl_activate (ArioPlugin *plugin, ArioShell *shell) { PyGILState_STATE state = pyg_gil_state_ensure (); ArioPythonObject *object = (ArioPythonObject *)plugin; if (PyObject_HasAttrString (object->instance, "activate")) { PyObject *py_ret = call_python_method (object, shell, "activate"); if (py_ret) { Py_XDECREF (py_ret); } } else ARIO_PLUGIN_CLASS (parent_class)->activate (plugin, shell); pyg_gil_state_release (state); } static GtkWidget * impl_create_configure_dialog (ArioPlugin *plugin) { PyGILState_STATE state = pyg_gil_state_ensure (); ArioPythonObject *object = (ArioPythonObject *)plugin; GtkWidget *ret = NULL; if (PyObject_HasAttrString (object->instance, "create_configure_dialog")) { PyObject *py_ret = call_python_method (object, NULL, "create_configure_dialog"); if (py_ret) { if (check_py_object_is_gtk_widget (py_ret)) { ret = GTK_WIDGET (pygobject_get (py_ret)); g_object_ref (ret); } else { PyErr_SetString(PyExc_TypeError, "return value for create_configure_dialog is not a GtkWidget"); PyErr_Print(); } Py_DECREF (py_ret); } } else ret = ARIO_PLUGIN_CLASS (parent_class)->create_configure_dialog (plugin); pyg_gil_state_release (state); return ret; } static gboolean impl_is_configurable (ArioPlugin *plugin) { PyGILState_STATE state = pyg_gil_state_ensure (); ArioPythonObject *object = (ArioPythonObject *) plugin; PyObject *dict = object->instance->ob_type->tp_dict; gboolean result; if (dict == NULL) result = FALSE; else if (!PyDict_Check(dict)) result = FALSE; else result = PyDict_GetItemString(dict, "create_configure_dialog") != NULL; pyg_gil_state_release (state); return result; } static void ario_python_object_init (ArioPythonObject *object) { ArioPythonObjectClass *class; ARIO_LOG_DBG ("Creating Python plugin instance"); class = (ArioPythonObjectClass*) (((GTypeInstance*) object)->g_class); object->instance = PyObject_CallObject (class->type, NULL); if (object->instance == NULL) PyErr_Print(); } static void ario_python_object_finalize (GObject *object) { ARIO_LOG_DBG ("Finalizing Python plugin instance"); Py_DECREF (((ArioPythonObject *) object)->instance); G_OBJECT_CLASS (parent_class)->finalize (object); } static void ario_python_object_class_init (ArioPythonObjectClass *klass, gpointer class_data) { ArioPluginClass *plugin_class = ARIO_PLUGIN_CLASS (klass); parent_class = g_type_class_peek_parent (klass); klass->type = (PyObject*) class_data; G_OBJECT_CLASS (klass)->finalize = ario_python_object_finalize; plugin_class->activate = impl_activate; plugin_class->deactivate = impl_deactivate; plugin_class->create_configure_dialog = impl_create_configure_dialog; plugin_class->is_configurable = impl_is_configurable; } GType ario_python_object_get_type (GTypeModule *module, PyObject *type) { GType gtype; gchar *type_name; GTypeInfo info = { sizeof (ArioPythonObjectClass), NULL, /* base_init */ NULL, /* base_finalize */ (GClassInitFunc) ario_python_object_class_init, NULL, /* class_finalize */ type, /* class_data */ sizeof (ArioPythonObject), 0, /* n_preallocs */ (GInstanceInitFunc) ario_python_object_init, NULL }; Py_INCREF (type); type_name = g_strdup_printf ("%s+ArioPythonPlugin", PyString_AsString (PyObject_GetAttrString (type, "__name__"))); ARIO_LOG_DBG ("Registering Python plugin instance: %s", type_name); gtype = g_type_module_register_type (module, ARIO_TYPE_PLUGIN, type_name, &info, 0); g_free (type_name); return gtype; } ario-1.6/src/plugins/ario-plugin-manager.c0000644000175000017500000005130313226723433015514 00000000000000/* * heavily based on code from Gedit * * Copyright (C) 2002-2005 - Paolo Maggi * Copyright (C) 2008 Marc Pavot * * 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 St, Fifth Floor, * Boston, MA 02110-1301 USA. */ #include "plugins/ario-plugin-manager.h" #ifdef HAVE_CONFIG_H #include #endif #include #include #include "ario-util.h" #include "plugins/ario-plugins-engine.h" #include "plugins/ario-plugin.h" #include "ario-debug.h" enum { ACTIVE_COLUMN, AVAILABLE_COLUMN, INFO_COLUMN, N_COLUMNS }; #define PLUGIN_MANAGER_NAME_TITLE _("Plugin") #define PLUGIN_MANAGER_ACTIVE_TITLE _("Enabled") struct _ArioPluginManagerPrivate { GtkWidget* tree; GtkWidget* about_button; GtkWidget* configure_button; GtkWidget* about; }; static ArioPluginInfo *plugin_manager_get_selected_plugin (ArioPluginManager *pm); static void plugin_manager_toggle_active (ArioPluginManager *pm, GtkTreeIter *iter, GtkTreeModel *model); static void ario_plugin_manager_finalize (GObject *object); #define ARIO_PLUGIN_MANAGER_GET_PRIVATE(object)(G_TYPE_INSTANCE_GET_PRIVATE ((object), ARIO_TYPE_PLUGIN_MANAGER, ArioPluginManagerPrivate)) G_DEFINE_TYPE (ArioPluginManager, ario_plugin_manager, GTK_TYPE_BOX) static void ario_plugin_manager_class_init (ArioPluginManagerClass *klass) { GObjectClass *object_class = G_OBJECT_CLASS (klass); object_class->finalize = ario_plugin_manager_finalize; g_type_class_add_private (object_class, sizeof (ArioPluginManagerPrivate)); } static void about_button_cb (GtkWidget* button, ArioPluginManager* pm) { ArioPluginInfo *info; GdkPixbuf *pb = NULL; info = plugin_manager_get_selected_plugin (pm); g_return_if_fail (info != NULL); /* if there is another about dialog already open destroy it */ if (pm->priv->about) gtk_widget_destroy (pm->priv->about); pm->priv->about = g_object_new (GTK_TYPE_ABOUT_DIALOG, "program-name", ario_plugin_info_get_name (info), "copyright", ario_plugin_info_get_copyright (info), "authors", ario_plugin_info_get_authors (info), "comments", ario_plugin_info_get_description (info), "website", ario_plugin_info_get_website (info), "logo", pb, NULL); pb = gtk_icon_theme_load_icon (gtk_icon_theme_get_default (), ario_plugin_info_get_icon_name (info), -1, 0, NULL); if (pb) { gtk_about_dialog_set_logo (GTK_ABOUT_DIALOG (pm->priv->about), pb); g_object_unref (pb); } gtk_window_set_destroy_with_parent (GTK_WINDOW (pm->priv->about), TRUE); g_signal_connect (pm->priv->about, "response", G_CALLBACK (gtk_widget_destroy), NULL); g_signal_connect (pm->priv->about, "destroy", G_CALLBACK (gtk_widget_destroyed), &pm->priv->about); gtk_window_set_transient_for (GTK_WINDOW (pm->priv->about), GTK_WINDOW (gtk_widget_get_toplevel (GTK_WIDGET(pm)))); gtk_widget_show (pm->priv->about); } static void configure_button_cb (GtkWidget* button, ArioPluginManager* pm) { ArioPluginInfo *info; GtkWindow *toplevel; info = plugin_manager_get_selected_plugin (pm); g_return_if_fail (info != NULL); ARIO_LOG_DBG ("Configuring: %s\n", ario_plugin_info_get_name (info)); toplevel = GTK_WINDOW (gtk_widget_get_toplevel (GTK_WIDGET(pm))); ario_plugins_engine_configure_plugin (info, toplevel); ARIO_LOG_DBG ("Done"); } static void plugin_manager_view_info_cell_cb (GtkTreeViewColumn *tree_column, GtkCellRenderer *cell, GtkTreeModel *tree_model, GtkTreeIter *iter, gpointer data) { ArioPluginInfo *info; gchar *text; g_return_if_fail (tree_model != NULL); g_return_if_fail (tree_column != NULL); gtk_tree_model_get (tree_model, iter, INFO_COLUMN, &info, -1); if (info == NULL) return; text = g_markup_printf_escaped ("%s\n%s", ario_plugin_info_get_name (info), ario_plugin_info_get_description (info)); g_object_set (G_OBJECT (cell), "markup", text, "sensitive", ario_plugin_info_is_available (info), NULL); g_free (text); } static void plugin_manager_view_icon_cell_cb (GtkTreeViewColumn *tree_column, GtkCellRenderer *cell, GtkTreeModel *tree_model, GtkTreeIter *iter, gpointer data) { ArioPluginInfo *info; g_return_if_fail (tree_model != NULL); g_return_if_fail (tree_column != NULL); gtk_tree_model_get (tree_model, iter, INFO_COLUMN, &info, -1); if (info == NULL) return; g_object_set (G_OBJECT (cell), "icon-name", ario_plugin_info_get_icon_name (info), "sensitive", ario_plugin_info_is_available (info), NULL); } static void active_toggled_cb (GtkCellRendererToggle *cell, gchar *path_str, ArioPluginManager *pm) { GtkTreeIter iter; GtkTreePath *path; GtkTreeModel *model; path = gtk_tree_path_new_from_string (path_str); model = gtk_tree_view_get_model (GTK_TREE_VIEW (pm->priv->tree)); g_return_if_fail (model != NULL); if (gtk_tree_model_get_iter (model, &iter, path)) plugin_manager_toggle_active (pm, &iter, model); gtk_tree_path_free (path); } static void cursor_changed_cb (GtkTreeView *view, gpointer data) { ArioPluginManager *pm = data; ArioPluginInfo *info; info = plugin_manager_get_selected_plugin (pm); gtk_widget_set_sensitive (GTK_WIDGET (pm->priv->about_button), info != NULL); gtk_widget_set_sensitive (GTK_WIDGET (pm->priv->configure_button), (info != NULL) && ario_plugin_info_is_configurable (info)); } static void row_activated_cb (GtkTreeView *tree_view, GtkTreePath *path, GtkTreeViewColumn *column, gpointer data) { ArioPluginManager *pm = data; GtkTreeIter iter; GtkTreeModel *model; model = gtk_tree_view_get_model (GTK_TREE_VIEW (pm->priv->tree)); g_return_if_fail (model != NULL); g_return_if_fail (gtk_tree_model_get_iter (model, &iter, path)); plugin_manager_toggle_active (pm, &iter, model); } static void plugin_manager_populate_lists (ArioPluginManager *pm) { const GList *plugins; GtkListStore *model; GtkTreeIter iter; plugins = ario_plugins_engine_get_plugin_list (); model = GTK_LIST_STORE (gtk_tree_view_get_model (GTK_TREE_VIEW (pm->priv->tree))); while (plugins) { ArioPluginInfo *info; info = (ArioPluginInfo *)plugins->data; gtk_list_store_append (model, &iter); gtk_list_store_set (model, &iter, ACTIVE_COLUMN, ario_plugin_info_is_active (info), AVAILABLE_COLUMN, ario_plugin_info_is_available (info), INFO_COLUMN, info, -1); plugins = plugins->next; } if (gtk_tree_model_get_iter_first (GTK_TREE_MODEL (model), &iter)) { GtkTreeSelection *selection; ArioPluginInfo* info; selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (pm->priv->tree)); g_return_if_fail (selection != NULL); gtk_tree_selection_select_iter (selection, &iter); gtk_tree_model_get (GTK_TREE_MODEL (model), &iter, INFO_COLUMN, &info, -1); gtk_widget_set_sensitive (GTK_WIDGET (pm->priv->configure_button), ario_plugin_info_is_configurable (info)); } } static gboolean plugin_manager_set_active (ArioPluginManager *pm, GtkTreeIter *iter, GtkTreeModel *model, gboolean active) { ArioPluginInfo *info; gboolean res = TRUE; gtk_tree_model_get (model, iter, INFO_COLUMN, &info, -1); g_return_val_if_fail (info != NULL, FALSE); if (active) { /* activate the plugin */ if (!ario_plugins_engine_activate_plugin (info)) { ARIO_LOG_DBG ("Could not activate %s.\n", ario_plugin_info_get_name (info)); res = FALSE; } } else { /* deactivate the plugin */ if (!ario_plugins_engine_deactivate_plugin (info)) { ARIO_LOG_DBG ("Could not deactivate %s.\n", ario_plugin_info_get_name (info)); res = FALSE; } } gtk_list_store_set (GTK_LIST_STORE (model), iter, ACTIVE_COLUMN, ario_plugin_info_is_active (info), -1); /* cause the configure button sensitivity to be updated */ cursor_changed_cb (GTK_TREE_VIEW (pm->priv->tree), pm); return res; } static void plugin_manager_toggle_active (ArioPluginManager *pm, GtkTreeIter *iter, GtkTreeModel *model) { gboolean active; gtk_tree_model_get (model, iter, ACTIVE_COLUMN, &active, -1); active ^= 1; plugin_manager_set_active (pm, iter, model, active); } static ArioPluginInfo * plugin_manager_get_selected_plugin (ArioPluginManager *pm) { ArioPluginInfo *info = NULL; GtkTreeModel *model; GtkTreeIter iter; GtkTreeSelection *selection; model = gtk_tree_view_get_model (GTK_TREE_VIEW (pm->priv->tree)); g_return_val_if_fail (model != NULL, NULL); selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (pm->priv->tree)); g_return_val_if_fail (selection != NULL, NULL); if (gtk_tree_selection_get_selected (selection, NULL, &iter)) { gtk_tree_model_get (model, &iter, INFO_COLUMN, &info, -1); } return info; } /* Callback used as the interactive search comparison function */ static gboolean name_search_cb (GtkTreeModel *model, gint column, const gchar *key, GtkTreeIter *iter, gpointer data) { ArioPluginInfo *info; gchar *normalized_string; gchar *normalized_key; gchar *case_normalized_string; gchar *case_normalized_key; gint key_len; gboolean retval; gtk_tree_model_get (model, iter, INFO_COLUMN, &info, -1); if (!info) return FALSE; normalized_string = g_utf8_normalize (ario_plugin_info_get_name (info), -1, G_NORMALIZE_ALL); normalized_key = g_utf8_normalize (key, -1, G_NORMALIZE_ALL); case_normalized_string = g_utf8_casefold (normalized_string, -1); case_normalized_key = g_utf8_casefold (normalized_key, -1); key_len = strlen (case_normalized_key); /* Oddly enough, this callback must return whether to stop the search * because we found a match, not whether we actually matched. */ retval = (strncmp (case_normalized_key, case_normalized_string, key_len) != 0); g_free (normalized_key); g_free (normalized_string); g_free (case_normalized_key); g_free (case_normalized_string); return retval; } static gint model_name_sort_func (GtkTreeModel *model, GtkTreeIter *iter1, GtkTreeIter *iter2, gpointer user_data) { ArioPluginInfo *info1, *info2; gtk_tree_model_get (model, iter1, INFO_COLUMN, &info1, -1); gtk_tree_model_get (model, iter2, INFO_COLUMN, &info2, -1); return g_utf8_collate (ario_plugin_info_get_name (info1), ario_plugin_info_get_name (info2)); } static void plugin_manager_construct_tree (ArioPluginManager *pm) { GtkTreeViewColumn *column; GtkCellRenderer *cell; GtkListStore *model; model = gtk_list_store_new (N_COLUMNS, G_TYPE_BOOLEAN, G_TYPE_BOOLEAN, ARIO_TYPE_PLUGIN_INFO); gtk_tree_view_set_model (GTK_TREE_VIEW (pm->priv->tree), GTK_TREE_MODEL (model)); g_object_unref (model); gtk_tree_view_set_headers_visible (GTK_TREE_VIEW (pm->priv->tree), FALSE); /* first column */ cell = gtk_cell_renderer_toggle_new (); g_object_set (cell, "xpad", 6, NULL); g_signal_connect (cell, "toggled", G_CALLBACK (active_toggled_cb), pm); column = gtk_tree_view_column_new_with_attributes (PLUGIN_MANAGER_ACTIVE_TITLE, cell, "active", ACTIVE_COLUMN, "activatable", AVAILABLE_COLUMN, "sensitive", AVAILABLE_COLUMN, NULL); gtk_tree_view_append_column (GTK_TREE_VIEW (pm->priv->tree), column); /* second column */ column = gtk_tree_view_column_new (); gtk_tree_view_column_set_title (column, PLUGIN_MANAGER_NAME_TITLE); gtk_tree_view_column_set_resizable (column, TRUE); cell = gtk_cell_renderer_pixbuf_new (); gtk_tree_view_column_pack_start (column, cell, FALSE); g_object_set (cell, "stock-size", GTK_ICON_SIZE_SMALL_TOOLBAR, NULL); gtk_tree_view_column_set_cell_data_func (column, cell, plugin_manager_view_icon_cell_cb, pm, NULL); cell = gtk_cell_renderer_text_new (); gtk_tree_view_column_pack_start (column, cell, TRUE); g_object_set (cell, "ellipsize", PANGO_ELLIPSIZE_END, NULL); gtk_tree_view_column_set_cell_data_func (column, cell, plugin_manager_view_info_cell_cb, pm, NULL); gtk_tree_view_column_set_spacing (column, 6); gtk_tree_view_append_column (GTK_TREE_VIEW (pm->priv->tree), column); /* Sort on the plugin names */ gtk_tree_sortable_set_default_sort_func (GTK_TREE_SORTABLE (model), model_name_sort_func, NULL, NULL); gtk_tree_sortable_set_sort_column_id (GTK_TREE_SORTABLE (model), GTK_TREE_SORTABLE_DEFAULT_SORT_COLUMN_ID, GTK_SORT_ASCENDING); /* Enable search for our non-string column */ gtk_tree_view_set_search_column (GTK_TREE_VIEW (pm->priv->tree), INFO_COLUMN); gtk_tree_view_set_search_equal_func (GTK_TREE_VIEW (pm->priv->tree), name_search_cb, NULL, NULL); g_signal_connect (pm->priv->tree, "cursor_changed", G_CALLBACK (cursor_changed_cb), pm); g_signal_connect (pm->priv->tree, "row_activated", G_CALLBACK (row_activated_cb), pm); gtk_widget_show (pm->priv->tree); } static void ario_plugin_manager_init (ArioPluginManager *pm) { GtkWidget *label; GtkWidget *viewport; GtkWidget *hbuttonbox; gchar *markup; pm->priv = ARIO_PLUGIN_MANAGER_GET_PRIVATE (pm); gtk_orientable_set_orientation (GTK_ORIENTABLE (pm), GTK_ORIENTATION_VERTICAL); gtk_box_set_spacing (GTK_BOX (pm), 6); label = gtk_label_new (NULL); markup = g_markup_printf_escaped ("%s", _("Active plugins")); gtk_label_set_markup (GTK_LABEL (label), markup); g_free (markup); gtk_label_set_justify (GTK_LABEL (label), GTK_JUSTIFY_LEFT); gtk_box_pack_start (GTK_BOX (pm), label, FALSE, TRUE, 0); viewport = gtk_scrolled_window_new (NULL, NULL); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (viewport), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (viewport), GTK_SHADOW_IN); pm->priv->tree = gtk_tree_view_new (); gtk_container_add (GTK_CONTAINER (viewport), pm->priv->tree); gtk_box_pack_start (GTK_BOX (pm), viewport, TRUE, TRUE, 0); hbuttonbox = gtk_button_box_new (GTK_ORIENTATION_HORIZONTAL); gtk_box_pack_start (GTK_BOX (pm), hbuttonbox, FALSE, FALSE, 0); gtk_button_box_set_layout (GTK_BUTTON_BOX (hbuttonbox), GTK_BUTTONBOX_END); gtk_box_set_spacing (GTK_BOX (hbuttonbox), 8); pm->priv->about_button = gtk_button_new_with_label (_("About")); gtk_container_add (GTK_CONTAINER (hbuttonbox), pm->priv->about_button); pm->priv->configure_button = gtk_button_new_with_label (_("Preferences")); gtk_container_add (GTK_CONTAINER (hbuttonbox), pm->priv->configure_button); /* setup a window of a sane size. */ gtk_widget_set_size_request (GTK_WIDGET (viewport), 270, 300); g_signal_connect (pm->priv->about_button, "clicked", G_CALLBACK (about_button_cb), pm); g_signal_connect (pm->priv->configure_button, "clicked", G_CALLBACK (configure_button_cb), pm); plugin_manager_construct_tree (pm); if (ario_plugins_engine_get_plugin_list () != NULL) { plugin_manager_populate_lists (pm); } else { gtk_widget_set_sensitive (pm->priv->about_button, FALSE); gtk_widget_set_sensitive (pm->priv->configure_button, FALSE); } } static void ario_plugin_manager_finalize (GObject *object) { G_OBJECT_CLASS (ario_plugin_manager_parent_class)->finalize (object); } GtkWidget * ario_plugin_manager_new (void) { return g_object_new (ARIO_TYPE_PLUGIN_MANAGER,0); } ario-1.6/src/plugins/ario-python-module.h0000644000175000017500000000504113226723431015413 00000000000000/* * heavily based on code from Gedit * * Copyright (C) 2005 Raphael Slinckx * Copyright (C) 2008 Marc Pavot * * 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 St, Fifth Floor, * Boston, MA 02110-1301 USA. */ #ifndef ARIO_PYTHON_MODULE_H #define ARIO_PYTHON_MODULE_H #include #include G_BEGIN_DECLS #define ARIO_TYPE_PYTHON_MODULE (ario_python_module_get_type ()) #define ARIO_PYTHON_MODULE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), ARIO_TYPE_PYTHON_MODULE, ArioPythonModule)) #define ARIO_PYTHON_MODULE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), ARIO_TYPE_PYTHON_MODULE, ArioPythonModuleClass)) #define ARIO_IS_PYTHON_MODULE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), ARIO_TYPE_PYTHON_MODULE)) #define ARIO_IS_PYTHON_MODULE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((obj), ARIO_TYPE_PYTHON_MODULE)) #define ARIO_PYTHON_MODULE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), ARIO_TYPE_PYTHON_MODULE, ArioPythonModuleClass)) typedef struct _ArioPythonModule ArioPythonModule; typedef struct _ArioPythonModuleClass ArioPythonModuleClass; typedef struct _ArioPythonModulePrivate ArioPythonModulePrivate; struct _ArioPythonModuleClass { GTypeModuleClass parent_class; }; struct _ArioPythonModule { GTypeModule parent_instance; }; GType ario_python_module_get_type (void); ArioPythonModule *ario_python_module_new (const gchar* path, const gchar *module); GObject *ario_python_module_new_object (ArioPythonModule *module); /* --- Python utils --- */ /* Must be called before loading python modules */ gboolean ario_python_init (void); void ario_python_shutdown (void); void ario_python_garbage_collect (void); G_END_DECLS #endif ario-1.6/src/plugins/ario-plugin-info.c0000644000175000017500000002501513226723432015035 00000000000000/* * heavily based on code from Gedit * * Copyright (C) 2002-2005 - Paolo Maggi * Copyright (C) 2008 Marc Pavot * * 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 St, Fifth Floor, * Boston, MA 02110-1301 USA. */ #include "plugins/ario-plugin-info.h" #ifdef HAVE_CONFIG_H #include #endif #include #include #include #include "plugins/ario-plugin-info-priv.h" #include "ario-debug.h" #include "ario-util.h" #include "plugins/ario-plugin.h" void _ario_plugin_info_ref (ArioPluginInfo *info) { g_atomic_int_inc (&info->refcount); } static ArioPluginInfo * ario_plugin_info_copy (ArioPluginInfo *info) { _ario_plugin_info_ref (info); return info; } void _ario_plugin_info_unref (ArioPluginInfo *info) { if (!g_atomic_int_dec_and_test (&info->refcount)) return; if (info->plugin != NULL) { ARIO_LOG_DBG ("Unref plugin %s", info->name); g_object_unref (info->plugin); /* info->module must not be unref since it is not possible to finalize * a type module */ } g_free (info->file); g_free (info->module_name); g_strfreev (info->dependencies); g_free (info->name); g_free (info->desc); g_free (info->icon_name); g_free (info->website); g_free (info->copyright); g_strfreev (info->authors); g_free (info); } /** * ario_plugin_info_get_type: * * Retrieves the #GType object which is associated with the #ArioPluginInfo * class. * * Return value: the GType associated with #ArioPluginInfo. **/ GType ario_plugin_info_get_type (void) { static GType the_type = 0; if (G_UNLIKELY (!the_type)) the_type = g_boxed_type_register_static ( "ArioPluginInfo", (GBoxedCopyFunc) ario_plugin_info_copy, (GBoxedFreeFunc) _ario_plugin_info_unref); return the_type; } /** * ario_plugin_info_new: * @filename: the filename where to read the plugin information * * Creates a new #ArioPluginInfo from a file on the disk. * * Return value: a newly created #ArioPluginInfo. */ ArioPluginInfo * _ario_plugin_info_new (const gchar *file) { ArioPluginInfo *info; GKeyFile *plugin_file = NULL; gchar *str; gchar *locale = NULL; #ifdef WIN32 gchar *tmp; tmp = g_win32_getlocale (); locale = g_ascii_strdown (tmp, -1); g_free (tmp); #endif g_return_val_if_fail (file != NULL, NULL); ARIO_LOG_DBG ("Loading plugin: %s", file); info = g_new0 (ArioPluginInfo, 1); info->refcount = 1; info->file = g_strdup (file); plugin_file = g_key_file_new (); if (!g_key_file_load_from_file (plugin_file, file, G_KEY_FILE_NONE, NULL)) { g_warning ("Bad plugin file: %s", file); goto error; } if (!g_key_file_has_key (plugin_file, "Ario Plugin", "IAge", NULL)) { ARIO_LOG_DBG ("IAge key does not exist in file: %s", file); goto error; } /* Check IAge=1 */ if (g_key_file_get_integer (plugin_file, "Ario Plugin", "IAge", NULL) != 1) { ARIO_LOG_DBG ("Wrong IAge in file: %s", file); goto error; } /* Get module name */ str = g_key_file_get_string (plugin_file, "Ario Plugin", "Module", NULL); if ((str != NULL) && (*str != '\0')) { info->module_name = str; } else { g_warning ("Could not find 'Module' in %s", file); goto error; } /* Get the dependency list */ info->dependencies = g_key_file_get_string_list (plugin_file, "Ario Plugin", "Depends", NULL, NULL); if (info->dependencies == NULL) { ARIO_LOG_DBG ("Could not find 'Depends' in %s", file); info->dependencies = g_new0 (gchar *, 1); } /* Get the loader for this plugin */ str = g_key_file_get_string (plugin_file, "Ario Plugin", "Loader", NULL); if (str && strcmp(str, "python") == 0) { info->loader = ARIO_PLUGIN_LOADER_PY; #ifndef ENABLE_PYTHON g_warning ("Cannot load Python plugin '%s' since ario was not " "compiled with Python support.", file); goto error; #endif } else { info->loader = ARIO_PLUGIN_LOADER_C; } g_free (str); /* Get Name */ str = g_key_file_get_locale_string (plugin_file, "Ario Plugin", "Name", locale, NULL); if (str) { info->name = str; } else { g_warning ("Could not find 'Name' in %s", file); goto error; } /* Get Description */ str = g_key_file_get_locale_string (plugin_file, "Ario Plugin", "Description", locale, NULL); if (str) { info->desc = str; } else { ARIO_LOG_DBG ("Could not find 'Description' in %s", file); } /* Get Icon */ str = g_key_file_get_locale_string (plugin_file, "Ario Plugin", "Icon", NULL, NULL); if (str) { info->icon_name = str; } else { ARIO_LOG_DBG ("Could not find 'Icon' in %s, using 'ario-plugin'", file); } /* Get Authors */ info->authors = g_key_file_get_string_list (plugin_file, "Ario Plugin", "Authors", NULL, NULL); if (info->authors == NULL) ARIO_LOG_DBG ("Could not find 'Authors' in %s", file); /* Get Copyright */ str = g_key_file_get_string (plugin_file, "Ario Plugin", "Copyright", NULL); if (str) { info->copyright = str; } else { ARIO_LOG_DBG ("Could not find 'Copyright' in %s", file); } /* Get Website */ str = g_key_file_get_string (plugin_file, "Ario Plugin", "Website", NULL); if (str) { info->website = str; } else { ARIO_LOG_DBG ("Could not find 'Website' in %s", file); } g_key_file_free (plugin_file); /* If we know nothing about the availability of the plugin, set it as available */ info->available = TRUE; #ifdef WIN32 g_free (locale); #endif return info; error: g_free (info->file); g_free (info->module_name); g_free (info->name); g_free (info); g_key_file_free (plugin_file); #ifdef WIN32 g_free (locale); #endif return NULL; } gboolean ario_plugin_info_is_active (ArioPluginInfo *info) { g_return_val_if_fail (info != NULL, FALSE); return info->available && info->active; } gboolean ario_plugin_info_is_available (ArioPluginInfo *info) { g_return_val_if_fail (info != NULL, FALSE); return info->available != FALSE; } gboolean ario_plugin_info_is_configurable (ArioPluginInfo *info) { ARIO_LOG_DBG ("Is '%s' configurable?", info->name); g_return_val_if_fail (info != NULL, FALSE); if (info->plugin == NULL || !info->active || !info->available) return FALSE; return ario_plugin_is_configurable (info->plugin); } const gchar * ario_plugin_info_get_name (ArioPluginInfo *info) { g_return_val_if_fail (info != NULL, NULL); return info->name; } const gchar * ario_plugin_info_get_description (ArioPluginInfo *info) { g_return_val_if_fail (info != NULL, NULL); return info->desc; } const gchar * ario_plugin_info_get_icon_name (ArioPluginInfo *info) { g_return_val_if_fail (info != NULL, NULL); /* use the ario icon as a default if the plugin does not have its own */ if (info->icon_name) { return info->icon_name; } else { return "ario"; } } const gchar ** ario_plugin_info_get_authors (ArioPluginInfo *info) { g_return_val_if_fail (info != NULL, (const gchar **)NULL); return (const gchar **) info->authors; } const gchar * ario_plugin_info_get_website (ArioPluginInfo *info) { g_return_val_if_fail (info != NULL, NULL); return info->website; } const gchar * ario_plugin_info_get_copyright (ArioPluginInfo *info) { g_return_val_if_fail (info != NULL, NULL); return info->copyright; } ario-1.6/src/plugins/ario-plugin.c0000644000175000017500000001032713226723432014104 00000000000000/* * heavily based on code from Gedit * * Copyright (C) 2002-2005 - Paolo Maggi * Copyright (C) 2008 Marc Pavot * * 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 St, Fifth Floor, * Boston, MA 02110-1301 USA. */ #include "plugins/ario-plugin.h" #ifdef HAVE_CONFIG_H #include #endif #include "ario-util.h" G_DEFINE_TYPE (ArioPlugin, ario_plugin, G_TYPE_OBJECT) static void dummy (ArioPlugin *plugin, ArioShell *shell) { /* Empty */ } static GtkWidget * create_configure_dialog (ArioPlugin *plugin) { return NULL; } static gboolean is_configurable (ArioPlugin *plugin) { return (ARIO_PLUGIN_GET_CLASS (plugin)->create_configure_dialog != create_configure_dialog); } static void ario_plugin_class_init (ArioPluginClass *klass) { klass->activate = dummy; klass->deactivate = dummy; klass->create_configure_dialog = create_configure_dialog; klass->is_configurable = is_configurable; } static void ario_plugin_init (ArioPlugin *plugin) { /* Empty */ } void ario_plugin_activate (ArioPlugin *plugin, ArioShell *shell) { g_return_if_fail (ARIO_IS_PLUGIN (plugin)); g_return_if_fail (IS_ARIO_SHELL (shell)); ARIO_PLUGIN_GET_CLASS (plugin)->activate (plugin, shell); } void ario_plugin_deactivate (ArioPlugin *plugin, ArioShell *shell) { g_return_if_fail (ARIO_IS_PLUGIN (plugin)); g_return_if_fail (IS_ARIO_SHELL (shell)); ARIO_PLUGIN_GET_CLASS (plugin)->deactivate (plugin, shell); } gboolean ario_plugin_is_configurable (ArioPlugin *plugin) { g_return_val_if_fail (ARIO_IS_PLUGIN (plugin), FALSE); return ARIO_PLUGIN_GET_CLASS (plugin)->is_configurable (plugin); } GtkWidget * ario_plugin_create_configure_dialog (ArioPlugin *plugin) { g_return_val_if_fail (ARIO_IS_PLUGIN (plugin), NULL); return ARIO_PLUGIN_GET_CLASS (plugin)->create_configure_dialog (plugin); } GSList * ario_plugin_get_plugin_paths (void) { GSList *paths = NULL; char *path; path = g_build_filename (ario_util_config_dir (), "plugins", NULL); paths = g_slist_append (paths, path); path = g_strdup (ARIO_PLUGIN_DIR); paths = g_slist_append (paths, path); return paths; } GSList * ario_plugin_get_plugin_data_paths (void) { GSList *paths = NULL; char *path; path = g_build_filename (ario_util_config_dir (), "plugins", NULL); paths = g_slist_append (paths, path); path = g_strdup (ARIO_PLUGIN_DATA_DIR); paths = g_slist_append (paths, path); return paths; } char * ario_plugin_find_file (const char *file) { GSList *paths; GSList *l; char *ret = NULL; paths = ario_plugin_get_plugin_data_paths (); for (l = paths; l != NULL; l = l->next) { if (ret == NULL) { char *tmp; tmp = g_build_filename (l->data, file, NULL); if (ario_file_test (tmp, G_FILE_TEST_EXISTS)) { ret = tmp; break; } g_free (tmp); } } g_slist_foreach (paths, (GFunc) g_free, NULL); g_slist_free (paths); /* global data files */ if (ret == NULL) { ARIO_LOG_ERROR ("File not found '%s'", file); return NULL; } ARIO_LOG_DBG ("found '%s' when searching for file '%s'", ret, file); return ret; } ario-1.6/src/plugins/ario-python-module.c0000644000175000017500000003661313226723432015420 00000000000000/* * heavily based on code from Gedit * * Copyright (C) 2005 Raphael Slinckx * Copyright (C) 2008 Marc Pavot * * 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 St, Fifth Floor, * Boston, MA 02110-1301 USA. */ #include "ario-python-module.h" #include #include #include #include #include #include "ario-python-plugin.h" #include "ario-debug.h" #if PY_VERSION_HEX < 0x02050000 typedef int Py_ssize_t; #define PY_SSIZE_T_MAX INT_MAX #define PY_SSIZE_T_MIN INT_MIN #endif #define ARIO_PYTHON_MODULE_GET_PRIVATE(object) (G_TYPE_INSTANCE_GET_PRIVATE ((object), \ ARIO_TYPE_PYTHON_MODULE, \ ArioPythonModulePrivate)) struct _ArioPythonModulePrivate { gchar *module; gchar *path; GType type; }; enum { PROP_0, PROP_PATH, PROP_MODULE }; /* Exported by pyario module */ void pyario_register_classes (PyObject *d); void pyario_add_constants (PyObject *module, const gchar *strip_prefix); extern PyMethodDef pyario_functions[]; /* We retreive this to check for correct class hierarchy */ static PyTypeObject *PyArioPlugin_Type; G_DEFINE_TYPE (ArioPythonModule, ario_python_module, G_TYPE_TYPE_MODULE) static gboolean ario_python_module_load (GTypeModule *gmodule) { ArioPythonModulePrivate *priv = ARIO_PYTHON_MODULE_GET_PRIVATE (gmodule); PyObject *main_module, *main_locals, *locals, *key, *value; PyObject *module, *fromlist; Py_ssize_t pos = 0; g_return_val_if_fail (Py_IsInitialized (), FALSE); main_module = PyImport_AddModule ("__main__"); if (main_module == NULL) { g_warning ("Could not get __main__."); return FALSE; } /* If we have a special path, we register it */ if (priv->path != NULL) { PyObject *sys_path = PySys_GetObject ("path"); PyObject *path = PyString_FromString (priv->path); if (PySequence_Contains(sys_path, path) == 0) PyList_Insert (sys_path, 0, path); Py_DECREF(path); } main_locals = PyModule_GetDict (main_module); /* we need a fromlist to be able to import modules with a '.' in the name. */ fromlist = PyTuple_New(0); module = PyImport_ImportModuleEx (priv->module, main_locals, main_locals, fromlist); Py_DECREF(fromlist); if (!module) { PyErr_Print (); return FALSE; } locals = PyModule_GetDict (module); while (PyDict_Next (locals, &pos, &key, &value)) { if (!PyType_Check(value)) continue; if (PyObject_IsSubclass (value, (PyObject*) PyArioPlugin_Type)) { priv->type = ario_python_object_get_type (gmodule, value); return TRUE; } } return FALSE; } static void ario_python_module_unload (GTypeModule *module) { ArioPythonModulePrivate *priv = ARIO_PYTHON_MODULE_GET_PRIVATE (module); ARIO_LOG_DBG ("Unloading Python module"); priv->type = 0; } GObject * ario_python_module_new_object (ArioPythonModule *module) { ArioPythonModulePrivate *priv = ARIO_PYTHON_MODULE_GET_PRIVATE (module); ARIO_LOG_DBG ("Creating object of type %s", g_type_name (priv->type)); if (priv->type == 0) return NULL; return g_object_new (priv->type, NULL); } static void ario_python_module_init (ArioPythonModule *module) { ARIO_LOG_DBG ("Init of Python module"); } static void ario_python_module_finalize (GObject *object) { ArioPythonModulePrivate *priv = ARIO_PYTHON_MODULE_GET_PRIVATE (object); ARIO_LOG_DBG ("Finalizing Python module %s", g_type_name (priv->type)); g_free (priv->module); g_free (priv->path); G_OBJECT_CLASS (ario_python_module_parent_class)->finalize (object); } static void ario_python_module_get_property (GObject *object, guint prop_id, GValue *value, GParamSpec *pspec) { /* no readable properties */ g_return_if_reached (); } static void ario_python_module_set_property (GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec) { ArioPythonModule *mod = ARIO_PYTHON_MODULE (object); switch (prop_id) { case PROP_MODULE: ARIO_PYTHON_MODULE_GET_PRIVATE (mod)->module = g_value_dup_string (value); break; case PROP_PATH: ARIO_PYTHON_MODULE_GET_PRIVATE (mod)->path = g_value_dup_string (value); break; default: g_return_if_reached (); } } static void ario_python_module_class_init (ArioPythonModuleClass *class) { GObjectClass *object_class = G_OBJECT_CLASS (class); GTypeModuleClass *module_class = G_TYPE_MODULE_CLASS (class); object_class->finalize = ario_python_module_finalize; object_class->get_property = ario_python_module_get_property; object_class->set_property = ario_python_module_set_property; g_object_class_install_property (object_class, PROP_MODULE, g_param_spec_string ("module", "Module Name", "The Python module to load for this plugin", NULL, G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS)); g_object_class_install_property (object_class, PROP_PATH, g_param_spec_string ("path", "Path", "The Python path to use when loading this module", NULL, G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS)); g_type_class_add_private (object_class, sizeof (ArioPythonModulePrivate)); module_class->load = ario_python_module_load; module_class->unload = ario_python_module_unload; } ArioPythonModule * ario_python_module_new (const gchar *path, const gchar *module) { ArioPythonModule *result; if (module == NULL || module[0] == '\0') return NULL; result = g_object_new (ARIO_TYPE_PYTHON_MODULE, "module", module, "path", path, NULL); g_type_module_set_name (G_TYPE_MODULE (result), module); return result; } /* --- these are not module methods, they are here out of convenience --- */ static gint idle_garbage_collect_id = 0; /* C equivalent of * import pygtk * pygtk.require ("2.0") */ static gboolean check_pygtk2 (void) { PyObject *pygtk, *mdict, *require; /* pygtk.require("2.0") */ pygtk = PyImport_ImportModule ("pygtk"); if (pygtk == NULL) { g_warning ("Error initializing Python interpreter: could not import pygtk."); return FALSE; } mdict = PyModule_GetDict (pygtk); require = PyDict_GetItemString (mdict, "require"); PyObject_CallObject (require, Py_BuildValue ("(S)", PyString_FromString ("2.0"))); if (PyErr_Occurred()) { g_warning ("Error initializing Python interpreter: pygtk 2 is required."); return FALSE; } return TRUE; } /* Note: the following two functions are needed because * init_pyobject and init_pygtk which are *macros* which in case * case of error set the PyErr and then make the calling * function return behind our back. * It's up to the caller to check the result with PyErr_Occurred() */ static void ario_init_pygobject (void) { init_pygobject_check (2, 11, 5); /* FIXME: get from config */ } static void ario_init_pygtk (void) { PyObject *gtk, *mdict, *version, *required_version; init_pygtk (); /* there isn't init_pygtk_check(), do the version * check ourselves */ gtk = PyImport_ImportModule("gtk"); mdict = PyModule_GetDict(gtk); version = PyDict_GetItemString (mdict, "pygtk_version"); if (!version) { PyErr_SetString (PyExc_ImportError, "PyGObject version too old"); return; } required_version = Py_BuildValue ("(iii)", 2, 4, 0); /* FIXME */ if (PyObject_Compare (version, required_version) == -1) { PyErr_SetString (PyExc_ImportError, "PyGObject version too old"); Py_DECREF (required_version); return; } Py_DECREF (required_version); } gboolean ario_python_init (void) { PyObject *mdict, *tuple; PyObject *ario; PyObject *gettext, *install, *gettext_args; struct sigaction old_sigint; gint res; char *argv[] = { "ario", NULL }; static gboolean init_failed = FALSE; if (init_failed) { /* We already failed to initialized Python, don't need to * retry again */ return FALSE; } if (Py_IsInitialized ()) { /* Python has already been successfully initialized */ return TRUE; } /* We are trying to initialize Python for the first time, set init_failed to FALSE only if the entire initialization process ends with success */ init_failed = TRUE; /* Hack to make python not overwrite SIGINT: this is needed to avoid * the crash reported on bug #326191 */ /* CHECK: can't we use Py_InitializeEx instead of Py_Initialize in order to avoid to manage signal handlers ? - Paolo (Dec. 31, 2006) */ /* Save old handler */ res = sigaction (SIGINT, NULL, &old_sigint); if (res != 0) { g_warning ("Error initializing Python interpreter: cannot get " "handler to SIGINT signal (%s)", strerror (errno)); return FALSE; } /* Python initialization */ Py_Initialize (); /* Restore old handler */ res = sigaction (SIGINT, &old_sigint, NULL); if (res != 0) { g_warning ("Error initializing Python interpreter: cannot restore " "handler to SIGINT signal (%s).", strerror (errno)); goto python_init_error; } PySys_SetArgv (1, argv); if (!check_pygtk2 ()) { /* Warning message already printed in check_pygtk2 */ goto python_init_error; } /* import gobject */ ario_init_pygobject (); if (PyErr_Occurred ()) { g_warning ("Error initializing Python interpreter: could not import pygobject."); goto python_init_error; } /* import gtk */ ario_init_pygtk (); if (PyErr_Occurred ()) { g_warning ("Error initializing Python interpreter: could not import pygtk."); goto python_init_error; } /* import ario */ ario = Py_InitModule ("ario", pyario_functions); mdict = PyModule_GetDict (ario); pyario_register_classes (mdict); pyario_add_constants (ario, "ARIO_"); /* ario version */ tuple = Py_BuildValue("(i)", PACKAGE_VERSION); PyDict_SetItemString(mdict, "version", tuple); Py_DECREF(tuple); /* Retrieve the Python type for ario.Plugin */ PyArioPlugin_Type = (PyTypeObject *) PyDict_GetItemString (mdict, "Plugin"); if (PyArioPlugin_Type == NULL) { g_warning ("Error initializing Python interpreter: could not get Plugin item."); PyErr_Print (); goto python_init_error; } /* i18n support */ gettext = PyImport_ImportModule ("gettext"); if (gettext == NULL) { g_warning ("Error initializing Python interpreter: could not import gettext."); goto python_init_error; } mdict = PyModule_GetDict (gettext); install = PyDict_GetItemString (mdict, "install"); gettext_args = Py_BuildValue ("ss", GETTEXT_PACKAGE, LOCALE_DIR); PyObject_CallObject (install, gettext_args); Py_DECREF (gettext_args); /* Python has been successfully initialized */ init_failed = FALSE; return TRUE; python_init_error: g_warning ("Please check the installation of all the Python related packages required " "by ario and try again."); PyErr_Clear (); ario_python_shutdown (); return FALSE; } void ario_python_shutdown (void) { if (Py_IsInitialized ()) { if (idle_garbage_collect_id != 0) { g_source_remove (idle_garbage_collect_id); idle_garbage_collect_id = 0; } while (PyGC_Collect ()) ; Py_Finalize (); } } static gboolean run_gc (gpointer data) { while (PyGC_Collect ()) ; idle_garbage_collect_id = 0; return FALSE; } void ario_python_garbage_collect (void) { if (Py_IsInitialized()) { /* * We both run the GC right now and we schedule * a further collection in the main loop. */ while (PyGC_Collect ()) ; if (idle_garbage_collect_id == 0) idle_garbage_collect_id = g_idle_add (run_gc, NULL); } } ario-1.6/src/plugins/ario-module.h0000644000175000017500000000357113226723432014103 00000000000000/* * heavily based on code from Gedit * * Copyright (C) 2002-2005 - Paolo Maggi * Copyright (C) 2008 Marc Pavot * * 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 St, Fifth Floor, * Boston, MA 02110-1301 USA. */ #ifndef ARIO_MODULE_H #define ARIO_MODULE_H #include G_BEGIN_DECLS #define ARIO_TYPE_MODULE (ario_module_get_type ()) #define ARIO_MODULE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), ARIO_TYPE_MODULE, ArioModule)) #define ARIO_MODULE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), ARIO_TYPE_MODULE, ArioModuleClass)) #define ARIO_IS_MODULE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), ARIO_TYPE_MODULE)) #define ARIO_IS_MODULE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((obj), ARIO_TYPE_MODULE)) #define ARIO_MODULE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), ARIO_TYPE_MODULE, ArioModuleClass)) typedef struct _ArioModule ArioModule; GType ario_module_get_type (void) G_GNUC_CONST; ArioModule* ario_module_new (const gchar *path); const gchar* ario_module_get_path (ArioModule *module); GObject* ario_module_new_object (ArioModule *module); G_END_DECLS #endif ario-1.6/src/ario-profiles.h0000644000175000017500000000363413226723433012761 00000000000000/* * Copyright (C) 2007 Marc Pavot * * 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, 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * */ #ifndef __ARIO_PROFILES_H #define __ARIO_PROFILES_H #include #include "servers/ario-server.h" G_BEGIN_DECLS /* This file provides various functions that can be used get, modify and * save the list of available profiles. * ArioProfile struct represents a profile with all the information needed * to connect to a server. */ typedef struct { gchar *name; gchar *host; int port; int timeout; gchar *password; gchar *musicdir; gboolean local; gboolean current; ArioServerType type; } ArioProfile; GSList* ario_profiles_get (void); void ario_profiles_save (GSList* profiles); void ario_profiles_free (ArioProfile* profile); ArioProfile* ario_profiles_get_current (GSList* profiles); void ario_profiles_set_current (GSList* profiles, ArioProfile* profile); void ario_profiles_set_current_by_name (const gchar * profile); G_END_DECLS #endif /* __ARIO_PROFILES_H */ ario-1.6/src/widgets/0000755000175000017500000000000013226745613011561 500000000000000ario-1.6/src/widgets/ario-volume.c0000644000175000017500000001040413226723432014076 00000000000000/* * Copyright (C) 2009 Marc Pavot * * 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, 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * */ #include "widgets/ario-volume.h" #include #include #include #include "ario-debug.h" #include "servers/ario-server.h" static void ario_volume_value_changed_cb (GtkScaleButton *button, gdouble value, ArioVolume *volume); static void ario_volume_changed_cb (ArioServer *server, int vol, ArioVolume *volume); #define ARIO_VOLUME_MAX 100 struct ArioVolumePrivate { GtkWidget *volume_button; gboolean loading; }; #define ARIO_VOLUME_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_ARIO_VOLUME, ArioVolumePrivate)) G_DEFINE_TYPE (ArioVolume, ario_volume, GTK_TYPE_EVENT_BOX) static void ario_volume_class_init (ArioVolumeClass *klass) { ARIO_LOG_FUNCTION_START; g_type_class_add_private (klass, sizeof (ArioVolumePrivate)); } static void ario_volume_init (ArioVolume *volume) { ARIO_LOG_FUNCTION_START; GtkAdjustment *adj; volume->priv = ARIO_VOLUME_GET_PRIVATE (volume); /* Volume button */ volume->priv->volume_button = gtk_volume_button_new (); adj = gtk_scale_button_get_adjustment (GTK_SCALE_BUTTON (volume->priv->volume_button)); /* Connect signal for user action */ g_signal_connect (volume->priv->volume_button, "value-changed", (GCallback) ario_volume_value_changed_cb, volume); /* Add volume button in widget */ gtk_container_add (GTK_CONTAINER (volume), volume->priv->volume_button); gtk_widget_show_all (GTK_WIDGET (volume)); /* Set adjustments values */ volume->priv->loading = TRUE; gtk_adjustment_set_value (adj, 50); g_object_set (adj, "lower", (gdouble) 0.0, "upper", (gdouble) ARIO_VOLUME_MAX, "step-increment", (gdouble) ARIO_VOLUME_MAX/20, "page-increment", (gdouble) ARIO_VOLUME_MAX/10, "page-size", (gdouble) 0.0, NULL); volume->priv->loading = FALSE; } static void ario_volume_changed_cb (ArioServer *server, int vol, ArioVolume *volume) { ARIO_LOG_FUNCTION_START; if (vol == -1) return; /* Update volume button with server value */ volume->priv->loading = TRUE; gtk_scale_button_set_value (GTK_SCALE_BUTTON (volume->priv->volume_button), (gdouble) vol); volume->priv->loading = FALSE; } ArioVolume * ario_volume_new (void) { ARIO_LOG_FUNCTION_START; ArioVolume *volume; volume = ARIO_VOLUME (g_object_new (TYPE_ARIO_VOLUME, NULL)); g_return_val_if_fail (volume->priv != NULL, NULL); /* Connect signal for changes on server */ g_signal_connect_object (ario_server_get_instance (), "volume_changed", G_CALLBACK (ario_volume_changed_cb), volume, 0); return volume; } static void ario_volume_value_changed_cb (GtkScaleButton *button, gdouble value, ArioVolume *volume) { ARIO_LOG_FUNCTION_START; /* Change value on server */ if (!volume->priv->loading) ario_server_set_current_volume ((gint) value); } ario-1.6/src/widgets/ario-dnd-tree.c0000644000175000017500000002347613226723434014310 00000000000000/* * Copyright (C) 2005 Marc Pavot * * 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, 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * */ #include "widgets/ario-dnd-tree.h" #include #include #include #include "ario-util.h" #include "ario-debug.h" #define DRAG_THRESHOLD 1 static gboolean ario_dnd_tree_button_press_cb (GtkWidget *widget, GdkEventButton *event, ArioDndTree *dnd_tree); static gboolean ario_dnd_tree_button_release_cb (GtkWidget *widget, GdkEventButton *event, ArioDndTree *dnd_tree); static gboolean ario_dnd_tree_motion_notify (GtkWidget *widget, GdkEventMotion *event, ArioDndTree *dnd_tree); enum { POPUP, ACTIVATE, LAST_SIGNAL }; static guint ario_dnd_tree_signals[LAST_SIGNAL] = { 0 }; struct ArioDndTreePrivate { gboolean dragging; gboolean pressed; gint drag_start_x; gint drag_start_y; gboolean browse_mode; }; #define ARIO_DND_TREE_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_ARIO_DND_TREE, ArioDndTreePrivate)) G_DEFINE_TYPE (ArioDndTree, ario_dnd_tree, GTK_TYPE_TREE_VIEW) static void ario_dnd_tree_class_init (ArioDndTreeClass *klass) { ARIO_LOG_FUNCTION_START; GObjectClass *object_class = G_OBJECT_CLASS (klass); /* Signals */ ario_dnd_tree_signals[POPUP] = g_signal_new ("popup", G_OBJECT_CLASS_TYPE (object_class), G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (ArioDndTreeClass, popup), NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0); ario_dnd_tree_signals[ACTIVATE] = g_signal_new ("activate", G_OBJECT_CLASS_TYPE (object_class), G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (ArioDndTreeClass, activate), NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0); /* Private attributes */ g_type_class_add_private (klass, sizeof (ArioDndTreePrivate)); } static void ario_dnd_tree_init (ArioDndTree *dnd_tree) { ARIO_LOG_FUNCTION_START; dnd_tree->priv = ARIO_DND_TREE_GET_PRIVATE (dnd_tree); } GtkWidget * ario_dnd_tree_new (const GtkTargetEntry* targets, const gint n_targets, const gboolean browse_mode) { ARIO_LOG_FUNCTION_START; ArioDndTree *dnd_tree; dnd_tree = g_object_new (TYPE_ARIO_DND_TREE, NULL); g_return_val_if_fail (dnd_tree->priv, NULL); /* Set the treeview as drag and drop source */ gtk_drag_source_set (GTK_WIDGET (dnd_tree), GDK_BUTTON1_MASK, targets, n_targets, GDK_ACTION_MOVE | GDK_ACTION_COPY); dnd_tree->priv->browse_mode = browse_mode; /* Signals for drag & drop */ g_signal_connect (dnd_tree, "button_press_event", G_CALLBACK (ario_dnd_tree_button_press_cb), dnd_tree); g_signal_connect (dnd_tree, "button_release_event", G_CALLBACK (ario_dnd_tree_button_release_cb), dnd_tree); g_signal_connect (dnd_tree, "motion_notify_event", G_CALLBACK (ario_dnd_tree_motion_notify), dnd_tree); return GTK_WIDGET (dnd_tree); } static gboolean ario_dnd_tree_button_press_cb (GtkWidget *widget, GdkEventButton *event, ArioDndTree *dnd_tree) { ARIO_LOG_FUNCTION_START; GdkModifierType mods; GtkTreePath *path; int x, y, bx, by; gboolean selected; /* Grab focus if needed */ if (!gtk_widget_is_focus (widget)) gtk_widget_grab_focus (widget); /* Already in drag & drop we do nothing */ if (dnd_tree->priv->dragging) return FALSE; if (event->state & GDK_CONTROL_MASK || event->state & GDK_SHIFT_MASK) return FALSE; /* First button pressed */ if (event->button == 1) { /* Get real coordinates */ gdk_window_get_device_position (gtk_widget_get_window (widget), event->device, &x, &y, &mods); gtk_tree_view_convert_widget_to_bin_window_coords (GTK_TREE_VIEW (widget), x, y, &bx, &by); if (dnd_tree->priv->browse_mode) return FALSE; if (bx >= 0 && by >= 0) { /* Double click: we emit the activate signal */ if (event->type == GDK_2BUTTON_PRESS) { g_signal_emit (G_OBJECT (dnd_tree), ario_dnd_tree_signals[ACTIVATE], 0); return FALSE; } dnd_tree->priv->drag_start_x = x; dnd_tree->priv->drag_start_y = y; dnd_tree->priv->pressed = TRUE; gtk_tree_view_get_path_at_pos (GTK_TREE_VIEW (widget), event->x, event->y, &path, NULL, NULL, NULL); if (path) { selected = gtk_tree_selection_path_is_selected (gtk_tree_view_get_selection (GTK_TREE_VIEW (widget)), path); gtk_tree_path_free (path); return selected; } return TRUE; } else { return FALSE; } return TRUE; } /* Third button pressed */ if (event->button == 3) { gtk_tree_view_get_path_at_pos (GTK_TREE_VIEW (widget), event->x, event->y, &path, NULL, NULL, NULL); if (path) { /* Select the clicked row */ GtkTreeSelection *selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (widget)); if (!gtk_tree_selection_path_is_selected (selection, path)) { gtk_tree_selection_unselect_all (selection); gtk_tree_selection_select_path (selection, path); } gtk_tree_path_free (path); } /* Emit the popup signal */ g_signal_emit (G_OBJECT (dnd_tree), ario_dnd_tree_signals[POPUP], 0); return TRUE; } return FALSE; } static gboolean ario_dnd_tree_button_release_cb (GtkWidget *widget, GdkEventButton *event, ArioDndTree *dnd_tree) { ARIO_LOG_FUNCTION_START; if (!dnd_tree->priv->dragging && !(event->state & GDK_CONTROL_MASK) && !(event->state & GDK_SHIFT_MASK)) { /* Get real coordinates */ int bx, by; gtk_tree_view_convert_widget_to_bin_window_coords (GTK_TREE_VIEW (widget), event->x, event->y, &bx, &by); if (bx >= 0 && by >= 0) { /* Select the clicked row */ GtkTreePath *path; gtk_tree_view_get_path_at_pos (GTK_TREE_VIEW (widget), event->x, event->y, &path, NULL, NULL, NULL); if (path) { GtkTreeSelection *selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (widget)); gtk_tree_selection_unselect_all (selection); gtk_tree_selection_select_path (selection, path); gtk_tree_path_free (path); } } } dnd_tree->priv->dragging = FALSE; dnd_tree->priv->pressed = FALSE; return FALSE; } static gboolean ario_dnd_tree_motion_notify (GtkWidget *widget, GdkEventMotion *event, ArioDndTree *dnd_tree) { // desactivated to make the logs more readable // ARIO_LOG_FUNCTION_START; GdkModifierType mods; int x, y; int dx, dy; if ((dnd_tree->priv->dragging) || !(dnd_tree->priv->pressed)) return FALSE; gdk_window_get_device_position (gtk_widget_get_window (widget), event->device, &x, &y, &mods); dx = x - dnd_tree->priv->drag_start_x; dy = y - dnd_tree->priv->drag_start_y; /* Activate drag & drop if button pressed and mouse moved */ if ((ario_util_abs (dx) > DRAG_THRESHOLD) || (ario_util_abs (dy) > DRAG_THRESHOLD)) dnd_tree->priv->dragging = TRUE; return FALSE; } ario-1.6/src/widgets/ario-header.h0000644000175000017500000000431013226723432014023 00000000000000/* * Copyright (C) 2005 Marc Pavot * * 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, 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * */ #ifndef __ARIO_HEADER_H #define __ARIO_HEADER_H #include G_BEGIN_DECLS #define TYPE_ARIO_HEADER (ario_header_get_type ()) #define ARIO_HEADER(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), TYPE_ARIO_HEADER, ArioHeader)) #define ARIO_HEADER_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), TYPE_ARIO_HEADER, ArioHeaderClass)) #define IS_ARIO_HEADER(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), TYPE_ARIO_HEADER)) #define IS_ARIO_HEADER_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), TYPE_ARIO_HEADER)) #define ARIO_HEADER_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), TYPE_ARIO_HEADER, ArioHeaderClass)) typedef struct ArioHeaderPrivate ArioHeaderPrivate; /* * ArioHeader is the widget displayed on the top of Ario window * containing music control buttons, cover art, elapsed time, * current song info, etc... */ typedef struct { GtkBox parent; ArioHeaderPrivate *priv; } ArioHeader; typedef struct { GtkBoxClass parent; } ArioHeaderClass; GType ario_header_get_type (void) G_GNUC_CONST; GtkWidget * ario_header_new (void); void ario_header_do_next (ArioHeader *header); void ario_header_do_previous (ArioHeader *header); void ario_header_playpause (ArioHeader *header); void ario_header_stop (ArioHeader *header); G_END_DECLS #endif /* __ARIO_HEADER_H */ ario-1.6/src/widgets/ario-lyrics-editor.c0000644000175000017500000003550113226723434015367 00000000000000/* * Copyright (C) 2005 Marc Pavot * * 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, 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * */ #include "widgets/ario-lyrics-editor.h" #include #include #include #include #include #include #include "ario-debug.h" #include "ario-util.h" #include "shell/ario-shell-lyricsselect.h" #include "lyrics/ario-lyrics.h" #include "lyrics/ario-lyrics-manager.h" static void ario_lyrics_editor_finalize (GObject *object); static void ario_lyrics_editor_save_cb (GtkButton *button, ArioLyricsEditor *lyrics_editor); static void ario_lyrics_editor_search_cb (GtkButton *button, ArioLyricsEditor *lyrics_editor); static void ario_lyrics_editor_free_data (ArioLyricsEditorData *data); static void ario_lyrics_editor_get_lyrics_thread (ArioLyricsEditor *lyrics_editor); static void ario_lyrics_editor_textbuffer_changed_cb (GtkTextBuffer *textbuffer, ArioLyricsEditor *lyrics_editor); struct ArioLyricsEditorPrivate { GtkTextBuffer *textbuffer; GtkWidget *textview; GtkWidget *save_button; GtkWidget *search_button; GThread *thread; GAsyncQueue *queue; ArioLyricsEditorData *data; }; #define ARIO_LYRICS_EDITOR_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_ARIO_LYRICS_EDITOR, ArioLyricsEditorPrivate)) G_DEFINE_TYPE (ArioLyricsEditor, ario_lyrics_editor, GTK_TYPE_BOX) static void ario_lyrics_editor_class_init (ArioLyricsEditorClass *klass) { ARIO_LOG_FUNCTION_START; GObjectClass *object_class = G_OBJECT_CLASS (klass); /* Virtual methods */ object_class->finalize = ario_lyrics_editor_finalize; /* Private attributes */ g_type_class_add_private (klass, sizeof (ArioLyricsEditorPrivate)); } static void ario_lyrics_editor_init (ArioLyricsEditor *lyrics_editor) { ARIO_LOG_FUNCTION_START; lyrics_editor->priv = ARIO_LYRICS_EDITOR_GET_PRIVATE (lyrics_editor); } GtkWidget * ario_lyrics_editor_new (void) { ARIO_LOG_FUNCTION_START; ArioLyricsEditor *lyrics_editor; GtkWidget *scrolledwindow; GtkWidget *separator; GtkWidget *hbox; lyrics_editor = g_object_new (TYPE_ARIO_LYRICS_EDITOR, NULL); g_return_val_if_fail (lyrics_editor->priv != NULL, NULL); gtk_orientable_set_orientation (GTK_ORIENTABLE (lyrics_editor), GTK_ORIENTATION_VERTICAL); gtk_box_set_spacing (GTK_BOX (lyrics_editor), 5); /* Create button hbox */ hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 5); /* Create separator */ separator = gtk_separator_new (GTK_ORIENTATION_HORIZONTAL); /* Create buttons */ lyrics_editor->priv->save_button = gtk_button_new_from_icon_name ("document-save", GTK_ICON_SIZE_BUTTON); lyrics_editor->priv->search_button = gtk_button_new_from_icon_name ("edit-find", GTK_ICON_SIZE_BUTTON); /* Create scrolled window */ scrolledwindow = gtk_scrolled_window_new (NULL, NULL); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolledwindow), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (scrolledwindow), GTK_SHADOW_IN); /* Create text view */ lyrics_editor->priv->textview = gtk_text_view_new (); lyrics_editor->priv->textbuffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (lyrics_editor->priv->textview)); gtk_container_add (GTK_CONTAINER (scrolledwindow), lyrics_editor->priv->textview); /* Add buttons to hbox */ gtk_box_pack_end (GTK_BOX (hbox), lyrics_editor->priv->save_button, FALSE, FALSE, 0); gtk_box_pack_end (GTK_BOX (hbox), lyrics_editor->priv->search_button, FALSE, FALSE, 0); /* Add widgets to ArioLyricsEditor */ gtk_box_pack_start (GTK_BOX (lyrics_editor), scrolledwindow, TRUE, TRUE, 0); gtk_box_pack_start (GTK_BOX (lyrics_editor), separator, FALSE, FALSE, 0); gtk_box_pack_start (GTK_BOX (lyrics_editor), hbox, FALSE, FALSE, 0); /* Connect signals */ g_signal_connect (lyrics_editor->priv->textbuffer, "changed", G_CALLBACK (ario_lyrics_editor_textbuffer_changed_cb), lyrics_editor); g_signal_connect (lyrics_editor->priv->save_button, "clicked", G_CALLBACK (ario_lyrics_editor_save_cb), lyrics_editor); g_signal_connect (lyrics_editor->priv->search_button, "clicked", G_CALLBACK (ario_lyrics_editor_search_cb), lyrics_editor); g_object_ref (lyrics_editor->priv->textbuffer); g_object_ref (lyrics_editor->priv->textview); /* Create asynchronous queue for lyrics loads */ lyrics_editor->priv->queue = g_async_queue_new (); /* Thread for lyrics download */ lyrics_editor->priv->thread = g_thread_new ("lyricsdl", (GThreadFunc) ario_lyrics_editor_get_lyrics_thread, lyrics_editor); return GTK_WIDGET (lyrics_editor); } static void ario_lyrics_editor_finalize (GObject *object) { ARIO_LOG_FUNCTION_START; ArioLyricsEditor *lyrics_editor; ArioLyricsEditorData *data; g_return_if_fail (object != NULL); g_return_if_fail (IS_ARIO_LYRICS_EDITOR (object)); lyrics_editor = ARIO_LYRICS_EDITOR (object); g_return_if_fail (lyrics_editor->priv != NULL); /* Delete all data in queue */ while ((data = (ArioLyricsEditorData *) g_async_queue_try_pop (lyrics_editor->priv->queue))) { ario_lyrics_editor_free_data (data); } /* Add a special ArioLyricsEditorData to finalize the lyrics download thread */ data = (ArioLyricsEditorData *) g_malloc0 (sizeof (ArioLyricsEditorData)); data->finalize = TRUE; g_async_queue_push (lyrics_editor->priv->queue, data); g_thread_join (lyrics_editor->priv->thread); g_async_queue_unref (lyrics_editor->priv->queue); g_object_unref (lyrics_editor->priv->textview); g_object_unref (lyrics_editor->priv->textbuffer); if (lyrics_editor->priv->data) { ario_lyrics_editor_free_data (lyrics_editor->priv->data); lyrics_editor->priv->data = NULL; } G_OBJECT_CLASS (ario_lyrics_editor_parent_class)->finalize (object); } static void ario_lyrics_editor_save_cb (GtkButton *button, ArioLyricsEditor *lyrics_editor) { ARIO_LOG_FUNCTION_START; GtkTextIter start; GtkTextIter end; gchar *lyrics; if (!lyrics_editor->priv->data) return; /* Get lyrics from text view */ gtk_text_buffer_get_bounds (lyrics_editor->priv->textbuffer, &start, &end); lyrics = gtk_text_buffer_get_text (lyrics_editor->priv->textbuffer, &start, &end, TRUE); /* Save lyrics */ ario_lyrics_save_lyrics (lyrics_editor->priv->data->artist, lyrics_editor->priv->data->title, lyrics); /* Set save button insensitive */ gtk_widget_set_sensitive (lyrics_editor->priv->save_button, FALSE); } static void ario_lyrics_editor_search_cb (GtkButton *button, ArioLyricsEditor *lyrics_editor) { ARIO_LOG_FUNCTION_START; GtkWidget *lyricsselect; ArioLyricsCandidate *candidate; ArioLyricsEditorData *data; char *artist; char *title; if (!lyrics_editor->priv->data) return; artist = lyrics_editor->priv->data->artist; title = lyrics_editor->priv->data->title; /* Launch lyrics selection dialog */ lyricsselect = ario_shell_lyricsselect_new (artist, title); if (gtk_dialog_run (GTK_DIALOG (lyricsselect)) == GTK_RESPONSE_OK) { candidate = ario_shell_lyricsselect_get_lyrics_candidate (ARIO_SHELL_LYRICSSELECT (lyricsselect)); if (candidate) { /* Push lyrics candidate to queue */ data = (ArioLyricsEditorData *) g_malloc0 (sizeof (ArioLyricsEditorData)); data->artist = g_strdup (artist); data->title = g_strdup (title); data->candidate = candidate; g_async_queue_push (lyrics_editor->priv->queue, data); } } gtk_widget_destroy (lyricsselect); } static void ario_lyrics_editor_free_data (ArioLyricsEditorData *data) { ARIO_LOG_FUNCTION_START; if (data) { g_free (data->artist); g_free (data->title); ario_lyrics_candidate_free (data->candidate); g_free (data); } } typedef struct { ArioLyricsEditor *lyrics_editor; gchar *text; } ArioLyricsEditorTextData; static gboolean ario_lyrics_editor_set_text (ArioLyricsEditorTextData * text_data) { gtk_text_buffer_set_text (text_data->lyrics_editor->priv->textbuffer, text_data->text, -1); g_free (text_data->text); g_free (text_data); return FALSE; } static void ario_lyrics_editor_get_lyrics_thread (ArioLyricsEditor *lyrics_editor) { ARIO_LOG_FUNCTION_START; ArioLyricsEditorData *data; ArioLyrics *lyrics; g_async_queue_ref (lyrics_editor->priv->queue); /* Main loop of lyrics download thread */ while (TRUE) { /* Wait for data in the queue */ data = (ArioLyricsEditorData *) g_async_queue_pop (lyrics_editor->priv->queue); if (data->finalize) { /* Last element in queue. Exit from main loop */ ario_lyrics_editor_free_data (data); break; } gtk_widget_set_sensitive (lyrics_editor->priv->save_button, FALSE); /* Block signal to modify the text view */ g_signal_handlers_block_by_func (G_OBJECT (lyrics_editor->priv->textbuffer), G_CALLBACK (ario_lyrics_editor_textbuffer_changed_cb), lyrics_editor); /* Set temporary text for lyrics download */ ArioLyricsEditorTextData * text_data = (ArioLyricsEditorTextData *) g_malloc0 (sizeof (ArioLyricsEditorTextData)); text_data->lyrics_editor = lyrics_editor; text_data->text = g_strdup(_("Downloading lyrics...")); g_idle_add ((GSourceFunc) ario_lyrics_editor_set_text, text_data); if (data->candidate) { /* We already know which lyrics to use */ lyrics = ario_lyrics_provider_get_lyrics_from_candidate (data->candidate->lyrics_provider, data->candidate); } else { /* We need to download the lyrics using the lyrics manager */ lyrics = ario_lyrics_manager_get_lyrics (ario_lyrics_manager_get_instance (), data->artist, data->title, NULL); } if (lyrics && lyrics->lyrics && strlen (lyrics->lyrics)) { /* Lyrics found */ ArioLyricsEditorTextData * text_data2 = (ArioLyricsEditorTextData *) g_malloc0 (sizeof (ArioLyricsEditorTextData)); text_data2->lyrics_editor = lyrics_editor; text_data2->text = lyrics->lyrics; lyrics->lyrics = NULL; g_idle_add ((GSourceFunc) ario_lyrics_editor_set_text, text_data2); } else { /* Lyrics not found */ ArioLyricsEditorTextData * text_data2 = (ArioLyricsEditorTextData *) g_malloc0 (sizeof (ArioLyricsEditorTextData)); text_data2->lyrics_editor = lyrics_editor; text_data2->text = g_strdup(_("Lyrics not found")); g_idle_add ((GSourceFunc) ario_lyrics_editor_set_text, text_data2); } ario_lyrics_free (lyrics); ario_lyrics_editor_free_data (lyrics_editor->priv->data); /* Set lyrics as current data */ lyrics_editor->priv->data = data; /* Unblock signal of text view modification */ g_signal_handlers_unblock_by_func (G_OBJECT (lyrics_editor->priv->textbuffer), G_CALLBACK (ario_lyrics_editor_textbuffer_changed_cb), lyrics_editor); } g_async_queue_unref (lyrics_editor->priv->queue); } void ario_lyrics_editor_push (ArioLyricsEditor *lyrics_editor, ArioLyricsEditorData *data) { ARIO_LOG_FUNCTION_START; g_async_queue_push (lyrics_editor->priv->queue, data); } static void ario_lyrics_editor_textbuffer_changed_cb (GtkTextBuffer *textbuffer, ArioLyricsEditor *lyrics_editor) { ARIO_LOG_FUNCTION_START; /* Set save button sensitive */ gtk_widget_set_sensitive (lyrics_editor->priv->save_button, TRUE); } ario-1.6/src/widgets/ario-status-bar.c0000644000175000017500000000757213226723432014670 00000000000000/* * Copyright (C) 2005 Marc Pavot * * 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, 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * */ #include "widgets/ario-status-bar.h" #include #include "servers/ario-server.h" #include "ario-util.h" #include "ario-debug.h" static void ario_status_bar_playlist_changed_cb (ArioServer *server, ArioStatusBar *status_bar); struct ArioStatusBarPrivate { guint playlist_context_id; }; #define ARIO_STATUS_BAR_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_ARIO_STATUS_BAR, ArioStatusBarPrivate)) G_DEFINE_TYPE (ArioStatusBar, ario_status_bar, GTK_TYPE_STATUSBAR) static void ario_status_bar_class_init (ArioStatusBarClass *klass) { ARIO_LOG_FUNCTION_START; /* Private attributes */ g_type_class_add_private (klass, sizeof (ArioStatusBarPrivate)); } static void ario_status_bar_init (ArioStatusBar *status_bar) { ARIO_LOG_FUNCTION_START; status_bar->priv = ARIO_STATUS_BAR_GET_PRIVATE (status_bar); status_bar->priv->playlist_context_id = gtk_statusbar_get_context_id (GTK_STATUSBAR (status_bar), "PlaylistMsg"); } GtkWidget * ario_status_bar_new (void) { ARIO_LOG_FUNCTION_START; ArioStatusBar *status_bar; ArioServer *server = ario_server_get_instance (); status_bar = g_object_new (TYPE_ARIO_STATUS_BAR, NULL); g_return_val_if_fail (status_bar->priv != NULL, NULL); /* Connect signals for synchronisation with music server */ g_signal_connect_object (server, "playlist_changed", G_CALLBACK (ario_status_bar_playlist_changed_cb), status_bar, 0); g_signal_connect_object (server, "updatingdb_changed", G_CALLBACK (ario_status_bar_playlist_changed_cb), status_bar, 0); return GTK_WIDGET (status_bar); } static void ario_status_bar_playlist_changed_cb (ArioServer *server, ArioStatusBar *status_bar) { ARIO_LOG_FUNCTION_START; gchar *msg, *tmp; gchar *formated_total_time; int playlist_length; int playlist_total_time; /* Get number of items in playlist */ playlist_length = ario_server_get_current_playlist_length (); /* Get formated playlist total time */ playlist_total_time = ario_server_get_current_playlist_total_time (); formated_total_time = ario_util_format_total_time (playlist_total_time); /* Format status bar message */ msg = g_strdup_printf ("%d %s - %s", playlist_length, _("Songs"), formated_total_time); g_free (formated_total_time); if (ario_server_get_updating ()) { tmp = g_strdup_printf ("%s - %s", msg, _("Updating...")); g_free (msg); msg = tmp; } /* Change status bar message */ gtk_statusbar_pop (GTK_STATUSBAR(status_bar), status_bar->priv->playlist_context_id); gtk_statusbar_push (GTK_STATUSBAR (status_bar), status_bar->priv->playlist_context_id, msg); g_free (msg); } ario-1.6/src/widgets/ario-firstlaunch.c0000644000175000017500000001530713226723432015120 00000000000000/* * Copyright (C) 2007 Marc Pavot * * 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, 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * */ #include "widgets/ario-firstlaunch.h" #include #include #include #include #include #include "lib/gtk-builder-helpers.h" #include "lib/ario-conf.h" #include "preferences/ario-preferences.h" #include "ario-profiles.h" #include "widgets/ario-connection-widget.h" #include "ario-debug.h" struct ArioFirstlaunchPrivate { GtkApplication * app; GtkWidget *final_label; }; #define ARIO_FIRSTLAUNCH_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_ARIO_FIRSTLAUNCH, ArioFirstlaunchPrivate)) G_DEFINE_TYPE (ArioFirstlaunch, ario_firstlaunch, GTK_TYPE_ASSISTANT) static void ario_firstlaunch_class_init (ArioFirstlaunchClass *klass) { ARIO_LOG_FUNCTION_START; /* Private attributes */ g_type_class_add_private (klass, sizeof (ArioFirstlaunchPrivate)); } static void ario_firstlaunch_cancel_cb (GtkWidget *widget, ArioFirstlaunch *firstlaunch) { ARIO_LOG_FUNCTION_START; /* Exit Ario if user click on cancel */ g_application_quit (G_APPLICATION (firstlaunch->priv->app)); } static void ario_firstlaunch_apply_cb (GtkWidget *widget, ArioFirstlaunch *firstlaunch) { ARIO_LOG_FUNCTION_START; /* Remember that first launch assistant has already been launched */ ario_conf_set_boolean (PREF_FIRST_TIME, TRUE); gtk_widget_destroy (GTK_WIDGET (firstlaunch)); } static void ario_firstlaunch_page_prepare_cb (GtkAssistant *assistant, GtkWidget *page, ArioFirstlaunch *firstlaunch) { ARIO_LOG_FUNCTION_START; gchar *text; ArioProfile *profile; /* Create final page with current profile information */ profile = ario_profiles_get_current (ario_profiles_get ()); text = g_strdup_printf ("%s \n\n%s %s\n%s %d", _("The following configuration will be used:"), _("Host :"), profile->host, _("Port :"), profile->port); gtk_label_set_markup (GTK_LABEL (firstlaunch->priv->final_label), text); g_free (text); } static void ario_firstlaunch_init (ArioFirstlaunch *firstlaunch) { ARIO_LOG_FUNCTION_START; GtkWidget *label, *vbox, *connection_vbox; GtkBuilder *builder; firstlaunch->priv = ARIO_FIRSTLAUNCH_GET_PRIVATE (firstlaunch); /* Page 1 - Presentation of first launch assistant */ vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 12); gtk_container_set_border_width (GTK_CONTAINER (vbox), 12); label = gtk_label_new (_("It is the first time you launch Ario.\nThis assistant will help you to configure it.")); gtk_label_set_line_wrap (GTK_LABEL (label), TRUE); gtk_box_pack_start (GTK_BOX (vbox), label, FALSE, FALSE, 0); gtk_assistant_append_page (GTK_ASSISTANT (firstlaunch), vbox); gtk_assistant_set_page_title (GTK_ASSISTANT (firstlaunch), vbox, _("Welcome to Ario")); gtk_assistant_set_page_type (GTK_ASSISTANT (firstlaunch), vbox, GTK_ASSISTANT_PAGE_INTRO); gtk_assistant_set_page_complete (GTK_ASSISTANT (firstlaunch), vbox, TRUE); /* Page 2 - Connection configuration */ builder = gtk_builder_helpers_new (UI_PATH "connection-assistant.ui", firstlaunch); vbox = GTK_WIDGET (gtk_builder_get_object (builder, "vbox")); connection_vbox = GTK_WIDGET (gtk_builder_get_object (builder, "connection_vbox")); gtk_box_pack_start (GTK_BOX (connection_vbox), ario_connection_widget_new (), TRUE, TRUE, 0); gtk_assistant_append_page (GTK_ASSISTANT (firstlaunch), vbox); g_object_unref (builder); gtk_assistant_set_page_title (GTK_ASSISTANT (firstlaunch), vbox, _("Configuration")); gtk_assistant_set_page_type (GTK_ASSISTANT (firstlaunch), vbox, GTK_ASSISTANT_PAGE_CONTENT); gtk_assistant_set_page_complete (GTK_ASSISTANT (firstlaunch), vbox, TRUE); /* Page 3 - Confirmation */ firstlaunch->priv->final_label = gtk_label_new (NULL); gtk_label_set_line_wrap (GTK_LABEL (firstlaunch->priv->final_label), TRUE); vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 12); gtk_container_set_border_width (GTK_CONTAINER (vbox), 12); gtk_box_pack_start (GTK_BOX (vbox), firstlaunch->priv->final_label, FALSE, FALSE, 0); gtk_assistant_append_page (GTK_ASSISTANT (firstlaunch), vbox); gtk_assistant_set_page_title (GTK_ASSISTANT (firstlaunch), vbox, _("Confirmation")); gtk_assistant_set_page_type (GTK_ASSISTANT (firstlaunch), vbox, GTK_ASSISTANT_PAGE_CONFIRM); gtk_assistant_set_page_complete (GTK_ASSISTANT (firstlaunch), vbox, TRUE); /* Connect signals for actions on assistant */ g_signal_connect (firstlaunch, "cancel", G_CALLBACK (ario_firstlaunch_cancel_cb), firstlaunch); g_signal_connect (firstlaunch, "close", G_CALLBACK (ario_firstlaunch_apply_cb), firstlaunch); /* Window properties */ gtk_window_set_position (GTK_WINDOW (firstlaunch), GTK_WIN_POS_CENTER); gtk_window_set_default_size (GTK_WINDOW (firstlaunch), 400, 450); g_signal_connect (firstlaunch, "prepare", G_CALLBACK (ario_firstlaunch_page_prepare_cb), firstlaunch); } ArioFirstlaunch * ario_firstlaunch_new (GtkApplication * app) { ARIO_LOG_FUNCTION_START; ArioFirstlaunch *firstlaunch; firstlaunch = g_object_new (TYPE_ARIO_FIRSTLAUNCH, NULL); firstlaunch->priv->app = app; return firstlaunch; } ario-1.6/src/widgets/ario-header.c0000644000175000017500000010664113226723432014030 00000000000000/* * Copyright (C) 2005 Marc Pavot * * 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, 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * */ #include "widgets/ario-header.h" #include #include #include #include #include "ario-util.h" #include "ario-debug.h" #include "covers/ario-cover.h" #include "covers/ario-cover-handler.h" #include "covers/ario-cover-handler.h" #include "shell/ario-shell-coverselect.h" #include "widgets/ario-volume.h" static GObject* ario_header_constructor (GType type, guint n_construct_properties, GObjectConstructParam *construct_properties); static gboolean ario_header_image_press_cb (GtkWidget *widget, GdkEventButton *event, ArioHeader *header); static gboolean ario_header_slider_press_cb (GtkWidget *widget, GdkEventButton *event, ArioHeader *header); static gboolean ario_header_slider_release_cb (GtkWidget *widget, GdkEventButton *event, ArioHeader *header); static void ario_header_slider_value_changed_cb (GtkWidget *widget, ArioHeader *header); static void ario_header_song_changed_cb (ArioServer *server, ArioHeader *header); static void ario_header_album_changed_cb (ArioServer *server, ArioHeader *header); static void ario_header_state_changed_cb (ArioServer *server, ArioHeader *header); static void ario_header_cover_changed_cb (ArioCoverHandler *cover_handler, ArioHeader *header); static void ario_header_elapsed_changed_cb (ArioServer *server, int elapsed, ArioHeader *header); static void ario_header_consume_changed_cb (ArioServer *server, ArioHeader *header); static void ario_header_random_changed_cb (ArioServer *server, ArioHeader *header); static void ario_header_repeat_changed_cb (ArioServer *server, ArioHeader *header); static void ario_header_do_consume (ArioHeader *header); static void ario_header_do_random (ArioHeader *header); static void ario_header_do_repeat (ArioHeader *header); #define SONG_MARKUP(xSONG) g_markup_printf_escaped ("%s", xSONG); #define FROM_MARKUP(xALBUM, xARTIST) g_markup_printf_escaped (_("from %s by %s"), xALBUM, xARTIST); struct ArioHeaderPrivate { GtkWidget *prev_button; GtkWidget *play_pause_button; GtkWidget *consume_button; GtkWidget *random_button; GtkWidget *repeat_button; GtkWidget *stop_button; GtkWidget *next_button; GtkWidget *play_image; GtkWidget *pause_image; GtkWidget *image; GtkWidget *song; GtkWidget *artist_album; GtkWidget *scale; GtkAdjustment *adjustment; GtkWidget *elapsed; GtkWidget *of; GtkWidget *total; GtkWidget *volume_button; gboolean slider_dragging; gint image_width; gint image_height; }; #define ARIO_HEADER_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_ARIO_HEADER, ArioHeaderPrivate)) G_DEFINE_TYPE (ArioHeader, ario_header, GTK_TYPE_BOX) static void ario_header_class_init (ArioHeaderClass *klass) { ARIO_LOG_FUNCTION_START; GObjectClass *object_class = G_OBJECT_CLASS (klass); /* Virtual methods */ object_class->constructor = ario_header_constructor; /* Private attributes */ g_type_class_add_private (klass, sizeof (ArioHeaderPrivate)); } static void ario_header_init (ArioHeader *header) { ARIO_LOG_FUNCTION_START; header->priv = ARIO_HEADER_GET_PRIVATE (header); } static void ario_header_drag_leave_cb (GtkWidget *widget, GdkDragContext *context, gint x, gint y, GtkSelectionData *data, guint info, guint time, ArioHeader *header) { ARIO_LOG_FUNCTION_START; gchar *url; gchar *contents; gsize length; if (info == 1) { /* Image dropped */ ARIO_LOG_INFO ("image DND : TODO\n"); } else if (info == 2) { const guchar *udata = gtk_selection_data_get_data (data); /* URL dropped */ url = g_strndup ((gchar *) udata + 7, gtk_selection_data_get_length (data) - 2 - 7); if (ario_util_uri_exists (url)) { /* Get file content and save it as the cover */ if (ario_file_get_contents (url, &contents, &length, NULL)) { ario_cover_save_cover (ario_server_get_current_artist (), ario_server_get_current_album (), contents, length, OVERWRITE_MODE_REPLACE); g_free (contents); ario_cover_handler_force_reload (); } } g_free (url); } /* finish the drag */ gtk_drag_finish (context, TRUE, FALSE, time); } static GObject * ario_header_constructor (GType type, guint n_construct_properties, GObjectConstructParam *construct_properties) { ARIO_LOG_FUNCTION_START; ArioHeader *header; ArioHeaderClass *klass; GObjectClass *parent_class; GtkWidget *cover_event_box; GtkTargetList *targets; GtkTargetEntry *target_entry; gint n_elem; GtkWidget *image, *hbox, *right_hbox, *vbox; GList *focus = NULL; klass = ARIO_HEADER_CLASS (g_type_class_peek (TYPE_ARIO_HEADER)); parent_class = G_OBJECT_CLASS (g_type_class_peek_parent (klass)); header = ARIO_HEADER (parent_class->constructor (type, n_construct_properties, construct_properties)); gtk_orientable_set_orientation (GTK_ORIENTABLE (header), GTK_ORIENTATION_HORIZONTAL); /* Construct previous button */ image = gtk_image_new_from_icon_name ("media-skip-backward", GTK_ICON_SIZE_LARGE_TOOLBAR); header->priv->prev_button = gtk_button_new (); gtk_container_add (GTK_CONTAINER (header->priv->prev_button), image); g_signal_connect_swapped (header->priv->prev_button, "clicked", G_CALLBACK (ario_header_do_previous), header); gtk_widget_set_tooltip_text (GTK_WIDGET (header->priv->prev_button), _("Play previous song")); /* Construct button images */ header->priv->play_image = gtk_image_new_from_icon_name ("media-playback-start", GTK_ICON_SIZE_LARGE_TOOLBAR); g_object_ref (header->priv->play_image); gtk_widget_show (header->priv->play_image); header->priv->pause_image = gtk_image_new_from_icon_name ("media-playback-pause", GTK_ICON_SIZE_LARGE_TOOLBAR); g_object_ref (header->priv->pause_image); gtk_widget_show (header->priv->pause_image); header->priv->play_pause_button = gtk_button_new (); gtk_container_add (GTK_CONTAINER (header->priv->play_pause_button), header->priv->pause_image); g_signal_connect_swapped (header->priv->play_pause_button, "clicked", G_CALLBACK (ario_header_playpause), header); gtk_widget_set_tooltip_text (GTK_WIDGET (header->priv->play_pause_button), _("Play/Pause the music")); /* Construct stop button */ image = gtk_image_new_from_icon_name ("media-playback-stop", GTK_ICON_SIZE_LARGE_TOOLBAR); header->priv->stop_button = gtk_button_new (); gtk_container_add (GTK_CONTAINER (header->priv->stop_button), image); g_signal_connect_swapped (header->priv->stop_button, "clicked", G_CALLBACK (ario_header_stop), header); gtk_widget_set_tooltip_text (GTK_WIDGET (header->priv->stop_button), _("Stop the music")); /* Construct next button */ image = gtk_image_new_from_icon_name ("media-skip-forward", GTK_ICON_SIZE_LARGE_TOOLBAR); header->priv->next_button = gtk_button_new (); gtk_container_add (GTK_CONTAINER (header->priv->next_button), image); g_signal_connect_swapped (header->priv->next_button, "clicked", G_CALLBACK (ario_header_do_next), header); gtk_widget_set_tooltip_text (GTK_WIDGET (header->priv->next_button), _("Play next song")); /* Construct cover display */ cover_event_box = gtk_event_box_new (); header->priv->image = gtk_image_new (); gtk_icon_size_lookup (GTK_ICON_SIZE_LARGE_TOOLBAR, &header->priv->image_width, &header->priv->image_height); header->priv->image_width += 18; header->priv->image_height += 18; gtk_container_add (GTK_CONTAINER (cover_event_box), header->priv->image); g_signal_connect (cover_event_box, "button_press_event", G_CALLBACK (ario_header_image_press_cb), header); targets = gtk_target_list_new (NULL, 0); gtk_target_list_add_image_targets (targets, 1, TRUE); gtk_target_list_add_uri_targets (targets, 2); target_entry = gtk_target_table_new_from_list (targets, &n_elem); gtk_target_list_unref (targets); gtk_drag_dest_set (cover_event_box, GTK_DEST_DEFAULT_MOTION | GTK_DEST_DEFAULT_HIGHLIGHT | GTK_DEST_DEFAULT_DROP, target_entry, n_elem, GDK_ACTION_COPY); gtk_target_table_free (target_entry, n_elem); g_signal_connect (cover_event_box, "drag_data_received", G_CALLBACK (ario_header_drag_leave_cb), header); g_signal_connect_object (ario_cover_handler_get_instance (), "cover_changed", G_CALLBACK (ario_header_cover_changed_cb), header, 0); /* Construct Song/Artist/Album display */ header->priv->song = gtk_label_new (""); gtk_label_set_ellipsize (GTK_LABEL (header->priv->song), PANGO_ELLIPSIZE_END); gtk_label_set_use_markup (GTK_LABEL (header->priv->song), TRUE); header->priv->artist_album = gtk_label_new (""); gtk_label_set_ellipsize (GTK_LABEL (header->priv->artist_album), PANGO_ELLIPSIZE_END); /* Construct time slider */ header->priv->adjustment = GTK_ADJUSTMENT (gtk_adjustment_new (0.0, 0.0, 10.0, 1.0, 10.0, 0.0)); header->priv->scale = gtk_scale_new (GTK_ORIENTATION_HORIZONTAL, header->priv->adjustment); g_signal_connect (header->priv->scale, "button_press_event", G_CALLBACK (ario_header_slider_press_cb), header); g_signal_connect (header->priv->scale, "button_release_event", G_CALLBACK (ario_header_slider_release_cb), header); g_signal_connect (header->priv->scale, "value-changed", G_CALLBACK (ario_header_slider_value_changed_cb), header); gtk_scale_set_draw_value (GTK_SCALE (header->priv->scale), FALSE); gtk_widget_set_size_request (header->priv->scale, 150, -1); header->priv->elapsed = gtk_label_new ("0:00"); /* Translators - This " of " is used to count the elapsed time of a song like in "00:59 of 03:24" */ header->priv->of = gtk_label_new (_(" of ")); header->priv->total = gtk_label_new ("0:00"); /* Construct consume button */ image = gtk_image_new_from_icon_name ("consume", GTK_ICON_SIZE_LARGE_TOOLBAR); header->priv->consume_button = gtk_toggle_button_new (); gtk_container_add (GTK_CONTAINER (header->priv->consume_button), image); g_signal_connect_swapped (header->priv->consume_button, "clicked", G_CALLBACK (ario_header_do_consume), header); gtk_widget_set_tooltip_text (GTK_WIDGET (header->priv->consume_button), _("Toggle 'consume' (remove played song from playlist) on/off")); /* Construct random button */ image = gtk_image_new_from_icon_name ("shuffle", GTK_ICON_SIZE_LARGE_TOOLBAR); header->priv->random_button = gtk_toggle_button_new (); gtk_container_add (GTK_CONTAINER (header->priv->random_button), image); g_signal_connect_swapped (header->priv->random_button, "clicked", G_CALLBACK (ario_header_do_random), header); gtk_widget_set_tooltip_text (GTK_WIDGET (header->priv->random_button), _("Toggle random on/off")); /* Construct repeat button */ image = gtk_image_new_from_icon_name ("repeat", GTK_ICON_SIZE_LARGE_TOOLBAR); header->priv->repeat_button = gtk_toggle_button_new (); gtk_container_add (GTK_CONTAINER (header->priv->repeat_button), image); g_signal_connect_swapped (header->priv->repeat_button, "clicked", G_CALLBACK (ario_header_do_repeat), header); gtk_widget_set_tooltip_text (GTK_WIDGET (header->priv->repeat_button), _("Toggle repeat on/off")); /* Construct volume button */ header->priv->volume_button = GTK_WIDGET (ario_volume_new ()); gtk_widget_set_tooltip_text (header->priv->volume_button, _("Change the music volume")); /* Add everything in header Hbox */ gtk_box_set_spacing (GTK_BOX (header), 12); /* Add command Buttons */ hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 5); gtk_container_set_border_width (GTK_CONTAINER (hbox), 5); gtk_box_pack_start (GTK_BOX (hbox), header->priv->prev_button, FALSE, TRUE, 0); gtk_box_pack_start (GTK_BOX (hbox), header->priv->play_pause_button, FALSE, TRUE, 0); gtk_box_pack_start (GTK_BOX (hbox), header->priv->stop_button, FALSE, TRUE, 0); gtk_box_pack_start (GTK_BOX (hbox), header->priv->next_button, FALSE, TRUE, 0); gtk_box_pack_start (GTK_BOX (header), hbox, FALSE, TRUE, 0); /* Add cover */ gtk_box_pack_start (GTK_BOX (header), cover_event_box, FALSE, TRUE, 0); /* Add song labels */ vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); gtk_box_pack_start (GTK_BOX (vbox), header->priv->song, TRUE, TRUE, 0); gtk_box_pack_start (GTK_BOX (vbox), header->priv->artist_album, TRUE, TRUE, 0); gtk_box_pack_start (GTK_BOX (header), vbox, TRUE, TRUE, 0); /* Add time slider */ vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); right_hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 5); gtk_box_pack_start (GTK_BOX (hbox), header->priv->elapsed, FALSE, TRUE, 0); gtk_box_pack_start (GTK_BOX (hbox), header->priv->of, FALSE, TRUE, 0); gtk_box_pack_start (GTK_BOX (hbox), header->priv->total, FALSE, TRUE, 0); gtk_box_pack_start (GTK_BOX (vbox), header->priv->scale, FALSE, TRUE, 0); gtk_box_pack_start (GTK_BOX (vbox), hbox, FALSE, TRUE, 0); gtk_box_pack_start (GTK_BOX (right_hbox), vbox, FALSE, TRUE, 0); /* Add consume/random/repeat buttons */ gtk_box_pack_start (GTK_BOX (right_hbox), header->priv->consume_button, FALSE, TRUE, 0); gtk_box_pack_start (GTK_BOX (right_hbox), header->priv->random_button, FALSE, TRUE, 0); gtk_box_pack_start (GTK_BOX (right_hbox), header->priv->repeat_button, FALSE, TRUE, 0); /* Add volume button */ gtk_box_pack_start (GTK_BOX (right_hbox), header->priv->volume_button, FALSE, TRUE, 5); gtk_box_pack_end (GTK_BOX (header), right_hbox, FALSE, TRUE, 0); /* Set focus chain */ focus = g_list_append (focus, header->priv->scale); gtk_container_set_focus_chain (GTK_CONTAINER (header), focus); return G_OBJECT (header); } GtkWidget * ario_header_new (void) { ARIO_LOG_FUNCTION_START; ArioHeader *header; ArioServer *server = ario_server_get_instance (); header = ARIO_HEADER (g_object_new (TYPE_ARIO_HEADER, NULL)); g_return_val_if_fail (header->priv != NULL, NULL); /* Signals to synchronize the header with server */ g_signal_connect_object (server, "song_changed", G_CALLBACK (ario_header_song_changed_cb), header, 0); g_signal_connect_object (server, "album_changed", G_CALLBACK (ario_header_album_changed_cb), header, 0); g_signal_connect_object (server, "state_changed", G_CALLBACK (ario_header_state_changed_cb), header, 0); g_signal_connect_object (server, "elapsed_changed", G_CALLBACK (ario_header_elapsed_changed_cb), header, 0); g_signal_connect_object (server, "consume_changed", G_CALLBACK (ario_header_consume_changed_cb), header, 0); g_signal_connect_object (server, "random_changed", G_CALLBACK (ario_header_random_changed_cb), header, 0); g_signal_connect_object (server, "repeat_changed", G_CALLBACK (ario_header_repeat_changed_cb), header, 0); return GTK_WIDGET (header); } static void ario_header_change_total_time (ArioHeader *header) { ARIO_LOG_FUNCTION_START; char *tmp; int total_time; /* Get total song time from server */ if (!ario_server_is_connected ()) { total_time = 0; } else { switch (ario_server_get_current_state ()) { case ARIO_STATE_PLAY: case ARIO_STATE_PAUSE: total_time = ario_server_get_current_total_time (); break; case ARIO_STATE_UNKNOWN: case ARIO_STATE_STOP: default: total_time = 0; break; } } /* Change label value with total time */ if (total_time > 0) { tmp = ario_util_format_time (total_time); gtk_label_set_text (GTK_LABEL (header->priv->total), tmp); g_free (tmp); gtk_widget_show (header->priv->total); gtk_widget_show (header->priv->of); } else { gtk_widget_hide (header->priv->total); gtk_widget_hide (header->priv->of); } /* Change slider higher value */ gtk_adjustment_set_upper (header->priv->adjustment, total_time); } static void ario_header_change_song_label (ArioHeader *header) { ARIO_LOG_FUNCTION_START; char *title; char *tmp; switch (ario_server_get_current_state ()) { case ARIO_STATE_PLAY: case ARIO_STATE_PAUSE: /* Set the label with formated title from server */ title = ario_util_format_title (ario_server_get_current_song ()); tmp = SONG_MARKUP (title); gtk_label_set_markup (GTK_LABEL (header->priv->song), tmp); g_free (tmp); break; case ARIO_STATE_UNKNOWN: case ARIO_STATE_STOP: default: /* Set default label value */ gtk_label_set_label (GTK_LABEL (header->priv->song), ""); break; } } static void ario_header_change_artist_album_label (ArioHeader *header) { ARIO_LOG_FUNCTION_START; char *artist; char *album; char *tmp; switch (ario_server_get_current_state ()) { case ARIO_STATE_PLAY: case ARIO_STATE_PAUSE: /* Set label value with server values */ artist = ario_server_get_current_artist (); album = ario_server_get_current_album (); if (!album) album = ARIO_SERVER_UNKNOWN; if (!artist) artist = ARIO_SERVER_UNKNOWN; tmp = FROM_MARKUP (album, artist); gtk_label_set_markup (GTK_LABEL (header->priv->artist_album), tmp); g_free (tmp); break; case ARIO_STATE_UNKNOWN: case ARIO_STATE_STOP: default: /* Set default label value */ gtk_label_set_label (GTK_LABEL (header->priv->artist_album), ""); break; } } static void ario_header_change_cover (ArioHeader *header) { ARIO_LOG_FUNCTION_START; GdkPixbuf *cover; GdkPixbuf *small_cover = NULL; switch (ario_server_get_current_state ()) { case ARIO_STATE_PLAY: case ARIO_STATE_PAUSE: /* Get cover from cover handler and display it */ cover = ario_cover_handler_get_cover (); if (cover) { small_cover = gdk_pixbuf_scale_simple (cover, header->priv->image_width, header->priv->image_height, GDK_INTERP_BILINEAR); } gtk_image_set_from_pixbuf (GTK_IMAGE (header->priv->image), small_cover); if (small_cover) g_object_unref (small_cover); break; case ARIO_STATE_UNKNOWN: case ARIO_STATE_STOP: default: /* Set default cover (empty) */ gtk_image_set_from_pixbuf (GTK_IMAGE (header->priv->image), NULL); break; } } static void ario_header_song_changed_cb (ArioServer *server, ArioHeader *header) { ARIO_LOG_FUNCTION_START; /* Synchronize song label */ ario_header_change_song_label (header); /* Synchronize total time label */ ario_header_change_total_time (header); } static void ario_header_album_changed_cb (ArioServer *server, ArioHeader *header) { ARIO_LOG_FUNCTION_START; /* Synchronize Artist-Album label */ ario_header_change_artist_album_label (header); } static void ario_header_cover_changed_cb (ArioCoverHandler *cover_handler, ArioHeader *header) { ARIO_LOG_FUNCTION_START; /* Synchronize cover art */ ario_header_change_cover (header); } static void ario_header_state_changed_cb (ArioServer *server, ArioHeader *header) { ARIO_LOG_FUNCTION_START; /* Synchronize song label */ ario_header_change_song_label (header); /* Synchronize Artist-Album label */ ario_header_change_artist_album_label (header); /* Synchronize total time label */ ario_header_change_total_time (header); /* Remove icon from play/pause button */ gtk_container_remove (GTK_CONTAINER (header->priv->play_pause_button), gtk_bin_get_child (GTK_BIN (header->priv->play_pause_button))); /* Set the appropriate icon in play/pause button */ if (ario_server_is_paused ()) gtk_container_add (GTK_CONTAINER (header->priv->play_pause_button), header->priv->play_image); else gtk_container_add (GTK_CONTAINER (header->priv->play_pause_button), header->priv->pause_image); if (!ario_server_is_connected ()) { /* Set button insensitive if Ario is not connected to a server */ gtk_widget_set_sensitive (header->priv->prev_button, FALSE); gtk_widget_set_sensitive (header->priv->play_pause_button, FALSE); gtk_widget_set_sensitive (header->priv->consume_button, FALSE); gtk_widget_set_sensitive (header->priv->random_button, FALSE); gtk_widget_set_sensitive (header->priv->repeat_button, FALSE); gtk_widget_set_sensitive (header->priv->stop_button, FALSE); gtk_widget_set_sensitive (header->priv->next_button, FALSE); gtk_widget_set_sensitive (header->priv->scale, FALSE); gtk_widget_set_sensitive (header->priv->volume_button, FALSE); } else { /* Set button sensitive if Ario is connected to a server */ gtk_widget_set_sensitive (header->priv->prev_button, TRUE); gtk_widget_set_sensitive (header->priv->play_pause_button, TRUE); gtk_widget_set_sensitive (header->priv->consume_button, TRUE); gtk_widget_set_sensitive (header->priv->random_button, TRUE); gtk_widget_set_sensitive (header->priv->repeat_button, TRUE); gtk_widget_set_sensitive (header->priv->stop_button, TRUE); gtk_widget_set_sensitive (header->priv->next_button, TRUE); gtk_widget_set_sensitive (header->priv->scale, TRUE); gtk_widget_set_sensitive (header->priv->volume_button, TRUE); } } static void ario_header_elapsed_changed_cb (ArioServer *server, int elapsed, ArioHeader *header) { ARIO_LOG_FUNCTION_START; gchar time[ARIO_MAX_TIME_SIZE]; if (header->priv->slider_dragging) return; /* Update elapsed time label */ ario_util_format_time_buf (elapsed, time, ARIO_MAX_TIME_SIZE); gtk_label_set_text (GTK_LABEL (header->priv->elapsed), time); /* Update slider value */ gtk_adjustment_set_value (header->priv->adjustment, (gdouble) elapsed); } static void ario_header_consume_changed_cb (ArioServer *server, ArioHeader *header) { ARIO_LOG_FUNCTION_START; gboolean consume; /* Get consume state on server */ consume = ario_server_get_current_consume (); /* Block consume button signal */ g_signal_handlers_block_by_func (G_OBJECT (header->priv->consume_button), G_CALLBACK (ario_header_do_consume), header); /* Change button state depending on consume value */ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (header->priv->consume_button), consume); /* Unblock consume button signal */ g_signal_handlers_unblock_by_func (G_OBJECT (header->priv->consume_button), G_CALLBACK (ario_header_do_consume), header); } static void ario_header_random_changed_cb (ArioServer *server, ArioHeader *header) { ARIO_LOG_FUNCTION_START; gboolean random; /* Get random state on server */ random = ario_server_get_current_random (); /* Block random button signal */ g_signal_handlers_block_by_func (G_OBJECT (header->priv->random_button), G_CALLBACK (ario_header_do_random), header); /* Change button state depending on random value */ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (header->priv->random_button), random); /* Unblock random button signal */ g_signal_handlers_unblock_by_func (G_OBJECT (header->priv->random_button), G_CALLBACK (ario_header_do_random), header); } static void ario_header_repeat_changed_cb (ArioServer *server, ArioHeader *header) { ARIO_LOG_FUNCTION_START; gboolean repeat; /* Get repeat state on server */ repeat = ario_server_get_current_repeat (); /* Block repeat button signal */ g_signal_handlers_block_by_func (G_OBJECT (header->priv->repeat_button), G_CALLBACK (ario_header_do_repeat), header); /* Change button state depending on repeat value */ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (header->priv->repeat_button), repeat); /* Unblock repeat button signal */ g_signal_handlers_unblock_by_func (G_OBJECT (header->priv->repeat_button), G_CALLBACK (ario_header_do_repeat), header); } static gboolean ario_header_image_press_cb (GtkWidget *widget, GdkEventButton *event, ArioHeader *header) { GtkWidget *coverselect; ArioServerAlbum server_album; /* Double click on cover art launches the cover selection dialog */ if (event->button == 1 && event->type == GDK_2BUTTON_PRESS) { server_album.artist = ario_server_get_current_artist (); server_album.album = ario_server_get_current_album (); server_album.path = g_path_get_dirname ((ario_server_get_current_song ())->file); if (!server_album.album) server_album.album = ARIO_SERVER_UNKNOWN; if (!server_album.artist) server_album.artist = ARIO_SERVER_UNKNOWN; coverselect = ario_shell_coverselect_new (&server_album); gtk_dialog_run (GTK_DIALOG (coverselect)); gtk_widget_destroy (coverselect); g_free (server_album.path); } return FALSE; } static gboolean ario_header_slider_press_cb (GtkWidget *widget, GdkEventButton *event, ArioHeader *header) { ARIO_LOG_FUNCTION_START; header->priv->slider_dragging = TRUE; return FALSE; } static gboolean ario_header_slider_release_cb (GtkWidget *widget, GdkEventButton *event, ArioHeader *header) { ARIO_LOG_FUNCTION_START; gdouble scale; header->priv->slider_dragging = FALSE; /* Change elapsed time on server */ scale = gtk_range_get_value (GTK_RANGE (header->priv->scale)); ario_server_set_current_elapsed ((int) scale); return FALSE; } static void ario_header_slider_value_changed_cb (GtkWidget *widget, ArioHeader *header) { ARIO_LOG_FUNCTION_START; gchar time[ARIO_MAX_TIME_SIZE]; int elapsed; gdouble scale; if (header->priv->slider_dragging) { /* If user is dragging the slider, we update displayed value */ scale = gtk_range_get_value (GTK_RANGE (header->priv->scale)); elapsed = (int) scale; ario_util_format_time_buf (elapsed, time, ARIO_MAX_TIME_SIZE); gtk_label_set_text (GTK_LABEL (header->priv->elapsed), time); } } void ario_header_do_next (ArioHeader *header) { ARIO_LOG_FUNCTION_START; g_return_if_fail (IS_ARIO_HEADER (header)); /* Change to next song */ ario_server_do_next (); } void ario_header_do_previous (ArioHeader *header) { ARIO_LOG_FUNCTION_START; g_return_if_fail (IS_ARIO_HEADER (header)); /* Change to previous song */ ario_server_do_prev (); } void ario_header_playpause (ArioHeader *header) { ARIO_LOG_FUNCTION_START; g_return_if_fail (IS_ARIO_HEADER (header)); /* Play/pause on server */ if (ario_server_is_paused ()) ario_server_do_play (); else ario_server_do_pause (); } void ario_header_stop (ArioHeader *header) { ARIO_LOG_FUNCTION_START; g_return_if_fail (IS_ARIO_HEADER (header)); /* Stop music */ ario_server_do_stop (); } static void ario_header_do_consume (ArioHeader *header) { ARIO_LOG_FUNCTION_START; g_return_if_fail (IS_ARIO_HEADER (header)); /* Change consume on server */ ario_server_set_current_consume (!ario_server_get_current_consume ()); } static void ario_header_do_random (ArioHeader *header) { ARIO_LOG_FUNCTION_START; g_return_if_fail (IS_ARIO_HEADER (header)); /* Change random on server */ ario_server_set_current_random (!ario_server_get_current_random ()); } static void ario_header_do_repeat (ArioHeader *header) { ARIO_LOG_FUNCTION_START; g_return_if_fail (IS_ARIO_HEADER (header)); /* Change repeat on server */ ario_server_set_current_repeat (!ario_server_get_current_repeat ()); } ario-1.6/src/widgets/ario-status-bar.h0000644000175000017500000000366413226723432014673 00000000000000/* * Copyright (C) 2005 Marc Pavot * * * 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, 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * */ #include #ifndef __ARIO_STATUS_BAR_H #define __ARIO_STATUS_BAR_H G_BEGIN_DECLS #define TYPE_ARIO_STATUS_BAR (ario_status_bar_get_type ()) #define ARIO_STATUS_BAR(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), TYPE_ARIO_STATUS_BAR, ArioStatusBar)) #define ARIO_STATUS_BAR_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), TYPE_ARIO_STATUS_BAR, ArioStatusBarClass)) #define IS_ARIO_STATUS_BAR(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), TYPE_ARIO_STATUS_BAR)) #define IS_ARIO_STATUS_BAR_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), TYPE_ARIO_STATUS_BAR)) #define ARIO_STATUS_BAR_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), TYPE_ARIO_STATUS_BAR, ArioStatusBarClass)) typedef struct ArioStatusBarPrivate ArioStatusBarPrivate; /** * ArioStatusBar is a GtkStatusbar that display information * about music server state */ typedef struct { GtkStatusbar parent; ArioStatusBarPrivate *priv; } ArioStatusBar; typedef struct { GtkStatusbarClass parent_class; } ArioStatusBarClass; GType ario_status_bar_get_type (void) G_GNUC_CONST; GtkWidget * ario_status_bar_new (void); G_END_DECLS #endif /* __ARIO_STATUS_BAR_H */ ario-1.6/src/widgets/ario-playlist.h0000644000175000017500000000411613226723432014440 00000000000000/* * Copyright (C) 2005 Marc Pavot * * 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, 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * */ #ifndef __ARIO_PLAYLIST_H #define __ARIO_PLAYLIST_H #include #include "sources/ario-source.h" G_BEGIN_DECLS #define TYPE_ARIO_PLAYLIST (ario_playlist_get_type ()) #define ARIO_PLAYLIST(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), TYPE_ARIO_PLAYLIST, ArioPlaylist)) #define ARIO_PLAYLIST_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), TYPE_ARIO_PLAYLIST, ArioPlaylistClass)) #define IS_ARIO_PLAYLIST(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), TYPE_ARIO_PLAYLIST)) #define IS_ARIO_PLAYLIST_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), TYPE_ARIO_PLAYLIST)) #define ARIO_PLAYLIST_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), TYPE_ARIO_PLAYLIST, ArioPlaylistClass)) typedef struct ArioPlaylistPrivate ArioPlaylistPrivate; /* * ArioPlaylist represents the current playlist of music server * and allows users to modify the playlist content, change the * current song,... */ typedef struct { ArioSource parent; ArioPlaylistPrivate *priv; } ArioPlaylist; typedef struct { ArioSourceClass parent; } ArioPlaylistClass; GType ario_playlist_get_type (void) G_GNUC_CONST; GtkWidget * ario_playlist_new (void); void ario_playlist_shutdown (void); gint ario_playlist_get_total_time (void); G_END_DECLS #endif /* __ARIO_PLAYLIST_H */ ario-1.6/src/widgets/ario-songlist.c0000644000175000017500000003522613226723432014442 00000000000000/* * Copyright (C) 2005 Marc Pavot * * 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, 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * */ #include "widgets/ario-songlist.h" #include #include #include #include #include "ario-util.h" #include "ario-debug.h" #include "preferences/ario-preferences.h" #include "lib/ario-conf.h" #include "shell/ario-shell-songinfos.h" #include "widgets/ario-dnd-tree.h" #include "widgets/ario-playlist.h" static void ario_songlist_finalize (GObject *object); static void ario_songlist_add_in_playlist (ArioSonglist *songlist, PlaylistAction action); static void ario_songlist_popup_menu_cb (ArioDndTree* tree, ArioSonglist *songlist); static void ario_songlist_activate_cb (ArioDndTree* tree, ArioSonglist *songlist); static void ario_songlist_songlists_selection_drag_foreach (GtkTreeModel *model, GtkTreePath *path, GtkTreeIter *iter, gpointer userdata); static void ario_songlist_drag_data_get_cb (GtkWidget * widget, GdkDragContext * context, GtkSelectionData * selection_data, guint info, guint time, gpointer data); struct ArioSonglistPrivate { GtkTreeView* tree; GtkListStore *model; GtkTreeSelection *selection; GtkWidget *popup; }; /* Properties */ enum { PROP_0, }; /* Drag and drop targets */ static const GtkTargetEntry songs_targets [] = { { "text/songs-list", 0, 0 }, }; #define ARIO_SONGLIST_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_ARIO_SONGLIST, ArioSonglistPrivate)) G_DEFINE_TYPE (ArioSonglist, ario_songlist, GTK_TYPE_SCROLLED_WINDOW) static void ario_songlist_class_init (ArioSonglistClass *klass) { ARIO_LOG_FUNCTION_START; GObjectClass *object_class = G_OBJECT_CLASS (klass); /* Virtual Methods */ object_class->finalize = ario_songlist_finalize; /* Private attributes */ g_type_class_add_private (klass, sizeof (ArioSonglistPrivate)); } static void ario_songlist_init (ArioSonglist *songlist) { ARIO_LOG_FUNCTION_START; songlist->priv = ARIO_SONGLIST_GET_PRIVATE (songlist); } static void ario_songlist_finalize (GObject *object) { ARIO_LOG_FUNCTION_START; ArioSonglist *songlist; g_return_if_fail (object != NULL); g_return_if_fail (IS_ARIO_SONGLIST (object)); songlist = ARIO_SONGLIST (object); g_return_if_fail (songlist->priv != NULL); G_OBJECT_CLASS (ario_songlist_parent_class)->finalize (object); } GtkWidget * ario_songlist_new (const gchar *menu_file, const gchar *popup, gboolean is_sortable) { ARIO_LOG_FUNCTION_START; ArioSonglist *songlist; GtkTreeViewColumn *column; GtkCellRenderer *renderer; GtkBuilder *builder; GMenuModel *menu; songlist = g_object_new (TYPE_ARIO_SONGLIST, NULL); g_return_val_if_fail (songlist->priv != NULL, NULL); /* Scrolled window properties */ gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (songlist), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (songlist), GTK_SHADOW_IN); /* Create treeview */ songlist->priv->tree = GTK_TREE_VIEW (ario_dnd_tree_new (songs_targets, G_N_ELEMENTS (songs_targets), FALSE)); /* Titles column */ renderer = gtk_cell_renderer_text_new (); column = gtk_tree_view_column_new_with_attributes (_("Title"), renderer, "text", SONGS_TITLE_COLUMN, NULL); gtk_tree_view_column_set_sizing (column,GTK_TREE_VIEW_COLUMN_FIXED); gtk_tree_view_column_set_fixed_width (column, 200); gtk_tree_view_column_set_resizable (column, TRUE); if (is_sortable) { gtk_tree_view_column_set_sort_indicator (column, TRUE); gtk_tree_view_column_set_sort_column_id (column, SONGS_TITLE_COLUMN); } gtk_tree_view_append_column (songlist->priv->tree, column); /* Artists column */ renderer = gtk_cell_renderer_text_new (); column = gtk_tree_view_column_new_with_attributes (_("Artist"), renderer, "text", SONGS_ARTIST_COLUMN, NULL); gtk_tree_view_column_set_sizing (column,GTK_TREE_VIEW_COLUMN_FIXED); gtk_tree_view_column_set_fixed_width (column, 200); gtk_tree_view_column_set_resizable (column, TRUE); if (is_sortable) { gtk_tree_view_column_set_sort_indicator (column, TRUE); gtk_tree_view_column_set_sort_column_id (column, SONGS_ARTIST_COLUMN); } gtk_tree_view_append_column (songlist->priv->tree, column); /* Albums column */ renderer = gtk_cell_renderer_text_new (); column = gtk_tree_view_column_new_with_attributes (_("Album"), renderer, "text", SONGS_ALBUM_COLUMN, NULL); gtk_tree_view_column_set_sizing (column,GTK_TREE_VIEW_COLUMN_FIXED); gtk_tree_view_column_set_fixed_width (column, 200); gtk_tree_view_column_set_resizable (column, TRUE); if (is_sortable) { gtk_tree_view_column_set_sort_indicator (column, TRUE); gtk_tree_view_column_set_sort_column_id (column, SONGS_ALBUM_COLUMN); } gtk_tree_view_append_column (songlist->priv->tree, column); /* Create model */ songlist->priv->model = gtk_list_store_new (SONGS_N_COLUMN, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING); gtk_tree_view_set_model (songlist->priv->tree, GTK_TREE_MODEL (songlist->priv->model)); /* Get selection */ songlist->priv->selection = gtk_tree_view_get_selection (songlist->priv->tree); gtk_tree_selection_set_mode (songlist->priv->selection, GTK_SELECTION_MULTIPLE); /* Connect a few signals for interaction with tree view */ g_signal_connect (songlist->priv->tree, "drag_data_get", G_CALLBACK (ario_songlist_drag_data_get_cb), songlist); g_signal_connect (GTK_TREE_VIEW (songlist->priv->tree), "popup", G_CALLBACK (ario_songlist_popup_menu_cb), songlist); g_signal_connect (GTK_TREE_VIEW (songlist->priv->tree), "activate", G_CALLBACK (ario_songlist_activate_cb), songlist); builder = gtk_builder_new_from_file (menu_file); menu = G_MENU_MODEL (gtk_builder_get_object (builder, popup)); songlist->priv->popup = gtk_menu_new_from_model (menu); gtk_menu_attach_to_widget (GTK_MENU (songlist->priv->popup), GTK_WIDGET (songlist), NULL); g_object_unref (builder); gtk_container_add (GTK_CONTAINER (songlist), GTK_WIDGET (songlist->priv->tree)); return GTK_WIDGET (songlist); } static void songlists_foreach (GtkTreeModel *model, GtkTreePath *path, GtkTreeIter *iter, gpointer userdata) { ARIO_LOG_FUNCTION_START; GSList **songlists = (GSList **) userdata; gchar *val = NULL; /* Append filename to the list */ gtk_tree_model_get (model, iter, SONGS_FILENAME_COLUMN, &val, -1); *songlists = g_slist_append (*songlists, val); } static void ario_songlist_add_in_playlist (ArioSonglist *songlist, PlaylistAction action) { ARIO_LOG_FUNCTION_START; GSList *songlists = NULL; /* List of selected songs */ gtk_tree_selection_selected_foreach (songlist->priv->selection, songlists_foreach, &songlists); /* Append songs to playlist */ ario_server_playlist_append_songs (songlists, action); g_slist_foreach (songlists, (GFunc) g_free, NULL); g_slist_free (songlists); } void ario_songlist_cmd_add_songlists (GSimpleAction *action, GVariant *parameter, gpointer data) { ARIO_LOG_FUNCTION_START; ArioSonglist *songlist = ARIO_SONGLIST (data); /* Add songs to playlist */ ario_songlist_add_in_playlist (songlist, PLAYLIST_ADD); } void ario_songlist_cmd_add_play_songlists (GSimpleAction *action, GVariant *parameter, gpointer data) { ARIO_LOG_FUNCTION_START; ArioSonglist *songlist = ARIO_SONGLIST (data); /* Add songs to playlist and play */ ario_songlist_add_in_playlist (songlist, PLAYLIST_ADD_PLAY); } void ario_songlist_cmd_clear_add_play_songlists (GSimpleAction *action, GVariant *parameter, gpointer data) { ARIO_LOG_FUNCTION_START; ArioSonglist *songlist = ARIO_SONGLIST (data); /* Clear playlist, add songs and play */ ario_songlist_add_in_playlist (songlist, PLAYLIST_REPLACE); } void ario_songlist_cmd_songs_properties (GSimpleAction *action, GVariant *parameter, gpointer data) { ARIO_LOG_FUNCTION_START; GSList *paths = NULL; GtkWidget *songinfos; ArioSonglist *songlist = ARIO_SONGLIST (data); /* Get list of selected songs */ gtk_tree_selection_selected_foreach (songlist->priv->selection, songlists_foreach, &paths); if (paths) { /* Launch songinfos dialog for selected songs */ songinfos = ario_shell_songinfos_new (paths); if (songinfos) gtk_widget_show_all (songinfos); g_slist_foreach (paths, (GFunc) g_free, NULL); g_slist_free (paths); } } static void ario_songlist_popup_menu_cb (ArioDndTree* tree, ArioSonglist *songlist) { ARIO_LOG_FUNCTION_START; /* Show popup */ if (gtk_tree_selection_count_selected_rows (songlist->priv->selection) > 0) { gtk_menu_popup_at_pointer (GTK_MENU (songlist->priv->popup), NULL); } } static void ario_songlist_activate_cb (ArioDndTree* tree, ArioSonglist *songlist) { ARIO_LOG_FUNCTION_START; /* Add selected songs to playlist */ ario_songlist_add_in_playlist (songlist, ario_conf_get_integer (PREF_DOUBLECLICK_BEHAVIOR, PREF_DOUBLECLICK_BEHAVIOR_DEFAULT)); } static void ario_songlist_songlists_selection_drag_foreach (GtkTreeModel *model, GtkTreePath *path, GtkTreeIter *iter, gpointer userdata) { ARIO_LOG_FUNCTION_START; GString *songlists = (GString *) userdata; gchar* val = NULL; g_return_if_fail (songlists != NULL); /* Append filename to dnd string */ gtk_tree_model_get (model, iter, SONGS_FILENAME_COLUMN, &val, -1); g_string_append (songlists, val); g_string_append (songlists, "\n"); g_free (val); } static void ario_songlist_drag_data_get_cb (GtkWidget * widget, GdkDragContext * context, GtkSelectionData * selection_data, guint info, guint time, gpointer data) { ARIO_LOG_FUNCTION_START; ArioSonglist *songlist; GString* songlists = NULL; songlist = ARIO_SONGLIST (data); g_return_if_fail (IS_ARIO_SONGLIST (songlist)); g_return_if_fail (widget != NULL); g_return_if_fail (selection_data != NULL); /* Get dnd string with all selected songs */ songlists = g_string_new(""); gtk_tree_selection_selected_foreach (songlist->priv->selection, ario_songlist_songlists_selection_drag_foreach, songlists); /* Set drag data */ gtk_selection_data_set (selection_data, gtk_selection_data_get_target (selection_data), 8, (const guchar *) songlists->str, strlen (songlists->str) * sizeof(guchar)); g_string_free (songlists, TRUE); } GtkListStore * ario_songlist_get_liststore (ArioSonglist *songlist) { ARIO_LOG_FUNCTION_START; return songlist->priv->model; } GtkTreeSelection * ario_songlist_get_selection (ArioSonglist *songlist) { ARIO_LOG_FUNCTION_START; return songlist->priv->selection; } ario-1.6/src/widgets/ario-connection-widget.h0000644000175000017500000000450113226723432016215 00000000000000/* * Copyright (C) 2005 Marc Pavot * * 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, 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * */ #ifndef __ARIO_CONNECTION_WIDGET_H #define __ARIO_CONNECTION_WIDGET_H #include #define ARIO_DEFAULT_TIMEOUT 5000 G_BEGIN_DECLS #define TYPE_ARIO_CONNECTION_WIDGET (ario_connection_widget_get_type ()) #define ARIO_CONNECTION_WIDGET(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), TYPE_ARIO_CONNECTION_WIDGET, ArioConnectionWidget)) #define ARIO_CONNECTION_WIDGET_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), TYPE_ARIO_CONNECTION_WIDGET, ArioConnectionWidgetClass)) #define IS_ARIO_CONNECTION_WIDGET(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), TYPE_ARIO_CONNECTION_WIDGET)) #define IS_ARIO_CONNECTION_WIDGET_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), TYPE_ARIO_CONNECTION_WIDGET)) #define ARIO_CONNECTION_WIDGET_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), TYPE_ARIO_CONNECTION_WIDGET, ArioConnectionWidgetClass)) typedef struct ArioConnectionWidgetPrivate ArioConnectionWidgetPrivate; /** * ArioConnectionWidget is used to configure a conneciton. * It presents the different profiles and can be used to configure * them manually or using avahi autodetection */ typedef struct { GtkBox parent; ArioConnectionWidgetPrivate *priv; } ArioConnectionWidget; typedef struct { GtkBoxClass parent_class; /* Signals */ void (*profile_changed) (ArioConnectionWidget *connection_widget); } ArioConnectionWidgetClass; GType ario_connection_widget_get_type (void) G_GNUC_CONST; GtkWidget * ario_connection_widget_new (void); G_END_DECLS #endif /* __ARIO_CONNECTION_WIDGET_H */ ario-1.6/src/widgets/ario-connection-widget.c0000644000175000017500000010240113226723432016206 00000000000000/* * Copyright (C) 2005 Marc Pavot * * 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, 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * */ #include "widgets/ario-connection-widget.h" #include #include #include #include #include #include #ifdef ENABLE_AVAHI #include "ario-avahi.h" #endif #include "ario-debug.h" #include "ario-profiles.h" #include "ario-util.h" #include "lib/gtk-builder-helpers.h" #include "servers/ario-server.h" static void ario_connection_widget_finalize (GObject *object); G_MODULE_EXPORT void ario_connection_widget_name_changed_cb (GtkWidget *widget, ArioConnectionWidget *connection_widget); G_MODULE_EXPORT void ario_connection_widget_host_changed_cb (GtkWidget *widget, ArioConnectionWidget *connection_widget); G_MODULE_EXPORT void ario_connection_widget_port_changed_cb (GtkWidget *widget, ArioConnectionWidget *connection_widget); G_MODULE_EXPORT void ario_connection_widget_timeout_changed_cb (GtkWidget *widget, ArioConnectionWidget *connection_widget); G_MODULE_EXPORT void ario_connection_widget_type_changed_cb (GtkToggleAction *toggleaction, ArioConnectionWidget *connection_widget); G_MODULE_EXPORT void ario_connection_widget_password_changed_cb (GtkWidget *widget, ArioConnectionWidget *connection_widget); G_MODULE_EXPORT void ario_connection_widget_local_changed_cb (GtkWidget *widget, ArioConnectionWidget *connection_widget); G_MODULE_EXPORT void ario_connection_widget_musicdir_changed_cb (GtkWidget *widget, ArioConnectionWidget *connection_widget); G_MODULE_EXPORT void ario_connection_widget_autodetect_cb (GtkWidget *widget, ArioConnectionWidget *connection_widget); G_MODULE_EXPORT void ario_connection_widget_open_cb (GtkWidget *widget, ArioConnectionWidget *connection_widget); G_MODULE_EXPORT void ario_connection_widget_new_profile_cb (GtkWidget *widget, ArioConnectionWidget *connection_widget); G_MODULE_EXPORT void ario_connection_widget_delete_profile_cb (GtkWidget *widget, ArioConnectionWidget *connection_widget); enum { PROFILE_CHANGED, LAST_SIGNAL }; static guint ario_connection_widget_signals[LAST_SIGNAL] = { 0 }; struct ArioConnectionWidgetPrivate { GtkListStore *profile_model; GtkTreeSelection *profile_selection; GSList *profiles; ArioProfile *current_profile; GtkWidget *name_entry; GtkWidget *host_entry; GtkWidget *port_spinbutton; GtkWidget *timeout_spinbutton; GtkWidget *password_entry; GtkWidget *local_checkbutton; GtkWidget *musicdir_entry; GtkWidget *musicdir_hbox; GtkWidget *musicdir_label; GtkWidget *autodetect_button; GtkWidget *mpd_radiobutton; GtkWidget *xmms_radiobutton; GtkListStore *autodetect_model; GtkTreeSelection *autodetect_selection; }; enum { NAME_COLUMN, HOST_COLUMN, PORT_COLUMN, N_COLUMN }; #define ARIO_CONNECTION_WIDGET_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_ARIO_CONNECTION_WIDGET, ArioConnectionWidgetPrivate)) G_DEFINE_TYPE (ArioConnectionWidget, ario_connection_widget, GTK_TYPE_BOX) static void ario_connection_widget_class_init (ArioConnectionWidgetClass *klass) { ARIO_LOG_FUNCTION_START; GObjectClass *object_class = G_OBJECT_CLASS (klass); /* Signals */ ario_connection_widget_signals[PROFILE_CHANGED] = g_signal_new ("profile_changed", G_OBJECT_CLASS_TYPE (object_class), G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (ArioConnectionWidgetClass, profile_changed), NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0); /* Virtual methods */ object_class->finalize = ario_connection_widget_finalize; /* Private attributes */ g_type_class_add_private (klass, sizeof (ArioConnectionWidgetPrivate)); } static void ario_connection_widget_init (ArioConnectionWidget *connection_widget) { ARIO_LOG_FUNCTION_START; connection_widget->priv = ARIO_CONNECTION_WIDGET_GET_PRIVATE (connection_widget); connection_widget->priv->current_profile = NULL; } /* Return TRUE if the profile has changed */ static gboolean ario_connection_widget_profile_selection_update (ArioConnectionWidget *connection_widget, gboolean force_update) { ARIO_LOG_FUNCTION_START; ArioProfile *profile = NULL; GList *paths; gint *indices; GtkTreeModel *model = GTK_TREE_MODEL (connection_widget->priv->profile_model); GSList *tmp = connection_widget->priv->profiles; int i; /* Get selected row */ paths = gtk_tree_selection_get_selected_rows (connection_widget->priv->profile_selection, &model); if (!paths) return FALSE; /* Get the profile corresponding to selected row */ indices = gtk_tree_path_get_indices ((GtkTreePath *) paths->data); for (i = 0; i < indices[0] && tmp; ++i) { tmp = g_slist_next (tmp); } g_list_foreach (paths, (GFunc) gtk_tree_path_free, NULL); g_list_free (paths); if (!tmp) return FALSE; profile = (ArioProfile *) tmp->data; if (!force_update && connection_widget->priv->current_profile == profile) return FALSE; /* Change the current profile to the selected one */ connection_widget->priv->current_profile = profile; ario_profiles_set_current (connection_widget->priv->profiles, profile); /* Block a few signals */ g_signal_handlers_block_by_func (G_OBJECT (connection_widget->priv->name_entry), G_CALLBACK (ario_connection_widget_name_changed_cb), connection_widget); g_signal_handlers_block_by_func (G_OBJECT (connection_widget->priv->host_entry), G_CALLBACK (ario_connection_widget_host_changed_cb), connection_widget); g_signal_handlers_block_by_func (G_OBJECT (connection_widget->priv->port_spinbutton), G_CALLBACK (ario_connection_widget_port_changed_cb), connection_widget); g_signal_handlers_block_by_func (G_OBJECT (connection_widget->priv->timeout_spinbutton), G_CALLBACK (ario_connection_widget_timeout_changed_cb), connection_widget); g_signal_handlers_block_by_func (G_OBJECT (connection_widget->priv->mpd_radiobutton), G_CALLBACK (ario_connection_widget_type_changed_cb), connection_widget); g_signal_handlers_block_by_func (G_OBJECT (connection_widget->priv->password_entry), G_CALLBACK (ario_connection_widget_password_changed_cb), connection_widget); g_signal_handlers_block_by_func (G_OBJECT (connection_widget->priv->musicdir_entry), G_CALLBACK (ario_connection_widget_musicdir_changed_cb), connection_widget); g_signal_handlers_block_by_func (G_OBJECT (connection_widget->priv->local_checkbutton), G_CALLBACK (ario_connection_widget_local_changed_cb), connection_widget); /* Change the different widgets with values of the profile */ gtk_entry_set_text (GTK_ENTRY (connection_widget->priv->name_entry), profile->name); gtk_entry_set_text (GTK_ENTRY (connection_widget->priv->host_entry), profile->host); gtk_spin_button_set_value (GTK_SPIN_BUTTON (connection_widget->priv->port_spinbutton), (gdouble) profile->port); gtk_spin_button_set_value (GTK_SPIN_BUTTON (connection_widget->priv->timeout_spinbutton), (gdouble) profile->timeout / 1000.0); if (profile->type == ArioServerXmms) gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (connection_widget->priv->xmms_radiobutton), TRUE); else gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (connection_widget->priv->mpd_radiobutton), TRUE); gtk_entry_set_text (GTK_ENTRY (connection_widget->priv->password_entry), profile->password ? profile->password : ""); gtk_entry_set_text (GTK_ENTRY (connection_widget->priv->musicdir_entry), profile->musicdir ? profile->musicdir : ""); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (connection_widget->priv->local_checkbutton), profile->local); if (profile->local) { gtk_widget_show (connection_widget->priv->musicdir_hbox); gtk_widget_show (connection_widget->priv->musicdir_label); } else { gtk_widget_hide (connection_widget->priv->musicdir_hbox); gtk_widget_hide (connection_widget->priv->musicdir_label); } /* Unblock signals */ g_signal_handlers_unblock_by_func (G_OBJECT (connection_widget->priv->name_entry), G_CALLBACK (ario_connection_widget_name_changed_cb), connection_widget); g_signal_handlers_unblock_by_func (G_OBJECT (connection_widget->priv->host_entry), G_CALLBACK (ario_connection_widget_host_changed_cb), connection_widget); g_signal_handlers_unblock_by_func (G_OBJECT (connection_widget->priv->port_spinbutton), G_CALLBACK (ario_connection_widget_port_changed_cb), connection_widget); g_signal_handlers_unblock_by_func (G_OBJECT (connection_widget->priv->timeout_spinbutton), G_CALLBACK (ario_connection_widget_timeout_changed_cb), connection_widget); g_signal_handlers_unblock_by_func (G_OBJECT (connection_widget->priv->mpd_radiobutton), G_CALLBACK (ario_connection_widget_type_changed_cb), connection_widget); g_signal_handlers_unblock_by_func (G_OBJECT (connection_widget->priv->password_entry), G_CALLBACK (ario_connection_widget_password_changed_cb), connection_widget); g_signal_handlers_unblock_by_func (G_OBJECT (connection_widget->priv->musicdir_entry), G_CALLBACK (ario_connection_widget_musicdir_changed_cb), connection_widget); g_signal_handlers_unblock_by_func (G_OBJECT (connection_widget->priv->local_checkbutton), G_CALLBACK (ario_connection_widget_local_changed_cb), connection_widget); return TRUE; } static void ario_connection_widget_profile_selection_changed_cb (GtkTreeSelection * selection, ArioConnectionWidget *connection_widget) { ARIO_LOG_FUNCTION_START; if (ario_connection_widget_profile_selection_update (connection_widget, FALSE)) { /* Emit a signal when profile has changed */ g_signal_emit (G_OBJECT (connection_widget), ario_connection_widget_signals[PROFILE_CHANGED], 0); } } static void ario_connection_widget_profile_update_profiles (ArioConnectionWidget *connection_widget) { ARIO_LOG_FUNCTION_START; GSList *tmp; GtkTreeIter iter; ArioProfile *profile; GtkTreeModel *model = GTK_TREE_MODEL (connection_widget->priv->profile_model); /* Block profile changement signal */ g_signal_handlers_block_by_func (G_OBJECT (connection_widget->priv->profile_selection), G_CALLBACK (ario_connection_widget_profile_selection_changed_cb), connection_widget); /* Clear the list of profiles */ gtk_list_store_clear (connection_widget->priv->profile_model); /* Append the new profiles to the list */ for (tmp = connection_widget->priv->profiles; tmp; tmp = g_slist_next (tmp)) { profile = (ArioProfile *) tmp->data; gtk_list_store_append (connection_widget->priv->profile_model, &iter); gtk_list_store_set (connection_widget->priv->profile_model, &iter, 0, profile->name, -1); } /* Select current profile */ gtk_tree_model_get_iter_first (model, &iter); for (tmp = connection_widget->priv->profiles; tmp; tmp = g_slist_next (tmp)) { profile = (ArioProfile *) tmp->data; if (profile->current) { gtk_tree_selection_select_iter (connection_widget->priv->profile_selection, &iter); break; } gtk_tree_model_iter_next (model, &iter); } /* Unblock profile changement signal */ g_signal_handlers_unblock_by_func (G_OBJECT (connection_widget->priv->profile_selection), G_CALLBACK (ario_connection_widget_profile_selection_changed_cb), connection_widget); } GtkWidget * ario_connection_widget_new (void) { ARIO_LOG_FUNCTION_START; GtkBuilder *builder; ArioConnectionWidget *connection_widget; GtkWidget *profile_treeview; connection_widget = g_object_new (TYPE_ARIO_CONNECTION_WIDGET, NULL); g_return_val_if_fail (connection_widget->priv != NULL, NULL); gtk_orientable_set_orientation (GTK_ORIENTABLE (connection_widget), GTK_ORIENTATION_VERTICAL); /* Create UI using GtkBuilder */ builder = gtk_builder_helpers_new (UI_PATH "connection-widget.ui", connection_widget); /* Get pointers to the different widgets */ profile_treeview = GTK_WIDGET (gtk_builder_get_object (builder, "profile_treeview")); connection_widget->priv->name_entry = GTK_WIDGET (gtk_builder_get_object (builder, "name_entry")); connection_widget->priv->host_entry = GTK_WIDGET (gtk_builder_get_object (builder, "host_entry")); connection_widget->priv->port_spinbutton = GTK_WIDGET (gtk_builder_get_object (builder, "port_spinbutton")); connection_widget->priv->timeout_spinbutton = GTK_WIDGET (gtk_builder_get_object (builder, "timeout_spinbutton")); connection_widget->priv->password_entry = GTK_WIDGET (gtk_builder_get_object (builder, "password_entry")); connection_widget->priv->local_checkbutton = GTK_WIDGET (gtk_builder_get_object (builder, "local_checkbutton")); connection_widget->priv->musicdir_entry = GTK_WIDGET (gtk_builder_get_object (builder, "musicdir_entry")); connection_widget->priv->musicdir_hbox = GTK_WIDGET (gtk_builder_get_object (builder, "musicdir_hbox")); connection_widget->priv->musicdir_label = GTK_WIDGET (gtk_builder_get_object (builder, "musicdir_label")); connection_widget->priv->autodetect_button = GTK_WIDGET (gtk_builder_get_object (builder, "autodetect_button")); connection_widget->priv->mpd_radiobutton = GTK_WIDGET (gtk_builder_get_object (builder, "mpd_radiobutton")); connection_widget->priv->xmms_radiobutton = GTK_WIDGET (gtk_builder_get_object (builder, "xmms_radiobutton")); connection_widget->priv->profile_model = GTK_LIST_STORE (gtk_builder_get_object (builder, "profile_model")); /* Show all widgets except musicdir_box (shown only if Ario is on same computer as * music server */ gtk_widget_show_all (connection_widget->priv->musicdir_hbox); gtk_widget_hide (connection_widget->priv->musicdir_hbox); gtk_widget_set_no_show_all (connection_widget->priv->musicdir_hbox, TRUE); /* Get the model selection */ connection_widget->priv->profile_selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (profile_treeview)); gtk_tree_selection_set_mode (connection_widget->priv->profile_selection, GTK_SELECTION_BROWSE); /* Get the list of profiles */ connection_widget->priv->profiles = ario_profiles_get (); /* Update the list with profiles */ ario_connection_widget_profile_update_profiles (connection_widget); #ifndef ENABLE_AVAHI gtk_widget_hide (connection_widget->priv->autodetect_button); #endif /* Enable the servertype widgets only if XMMS2 support is activated */ #ifndef ENABLE_XMMS2 gtk_widget_set_sensitive (GTK_WIDGET (gtk_builder_get_object (builder, "servertype_hbox")), FALSE); #endif /* Connect signal for profile change */ g_signal_connect (connection_widget->priv->profile_selection, "changed", G_CALLBACK (ario_connection_widget_profile_selection_changed_cb), connection_widget); ario_connection_widget_profile_selection_update (connection_widget, FALSE); /* Add widgets to ConnectionWidgets */ gtk_box_pack_start (GTK_BOX (connection_widget), GTK_WIDGET (gtk_builder_get_object (builder, "hbox")), TRUE, TRUE, 0); g_object_unref (builder); return GTK_WIDGET (connection_widget); } static void ario_connection_widget_finalize (GObject *object) { ARIO_LOG_FUNCTION_START; ArioConnectionWidget *connection_widget; g_return_if_fail (object != NULL); g_return_if_fail (IS_ARIO_CONNECTION_WIDGET (object)); connection_widget = ARIO_CONNECTION_WIDGET (object); g_return_if_fail (connection_widget->priv != NULL); /* Save profiles to disk */ ario_profiles_save (connection_widget->priv->profiles); G_OBJECT_CLASS (ario_connection_widget_parent_class)->finalize (object); } void ario_connection_widget_name_changed_cb (GtkWidget *widget, ArioConnectionWidget *connection_widget) { ARIO_LOG_FUNCTION_START; /* Modify current profile */ g_free (connection_widget->priv->current_profile->name); connection_widget->priv->current_profile->name = g_strdup (gtk_entry_get_text (GTK_ENTRY (connection_widget->priv->name_entry))); /* Change profile name in the list */ ario_connection_widget_profile_update_profiles (connection_widget); } void ario_connection_widget_host_changed_cb (GtkWidget *widget, ArioConnectionWidget *connection_widget) { ARIO_LOG_FUNCTION_START; /* Modify current profile */ g_free (connection_widget->priv->current_profile->host); connection_widget->priv->current_profile->host = g_strdup (gtk_entry_get_text (GTK_ENTRY (connection_widget->priv->host_entry))); } void ario_connection_widget_port_changed_cb (GtkWidget *widget, ArioConnectionWidget *connection_widget) { ARIO_LOG_FUNCTION_START; /* Modify current profile */ gdouble port = gtk_spin_button_get_value (GTK_SPIN_BUTTON (connection_widget->priv->port_spinbutton)); connection_widget->priv->current_profile->port = (int) port; } void ario_connection_widget_timeout_changed_cb (GtkWidget *widget, ArioConnectionWidget *connection_widget) { ARIO_LOG_FUNCTION_START; /* Modify current profile */ gdouble timeout = gtk_spin_button_get_value (GTK_SPIN_BUTTON (connection_widget->priv->timeout_spinbutton)) * 1000.0; connection_widget->priv->current_profile->timeout = (int) timeout; } void ario_connection_widget_type_changed_cb (GtkToggleAction *toggleaction, ArioConnectionWidget *connection_widget) { ARIO_LOG_FUNCTION_START; ArioServerType type; /* Modify current profile */ type = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (connection_widget->priv->xmms_radiobutton)) ? ArioServerXmms : ArioServerMpd; connection_widget->priv->current_profile->type = type; } void ario_connection_widget_password_changed_cb (GtkWidget *widget, ArioConnectionWidget *connection_widget) { ARIO_LOG_FUNCTION_START; const gchar *password; /* Modify current profile */ password = gtk_entry_get_text (GTK_ENTRY (connection_widget->priv->password_entry)); g_free (connection_widget->priv->current_profile->password); if (password && strcmp(password, "")) { connection_widget->priv->current_profile->password = g_strdup (password); } else { connection_widget->priv->current_profile->password = NULL; } } void ario_connection_widget_musicdir_changed_cb (GtkWidget *widget, ArioConnectionWidget *connection_widget) { ARIO_LOG_FUNCTION_START; const gchar *musicdir; /* Modify current profile */ musicdir = gtk_entry_get_text (GTK_ENTRY (connection_widget->priv->musicdir_entry)); g_free (connection_widget->priv->current_profile->musicdir); if (musicdir && strcmp(musicdir, "")) { connection_widget->priv->current_profile->musicdir = g_strdup (musicdir); } else { connection_widget->priv->current_profile->musicdir = NULL; } } void ario_connection_widget_local_changed_cb (GtkWidget *widget, ArioConnectionWidget *connection_widget) { ARIO_LOG_FUNCTION_START; gboolean local; /* Modify current profile */ local = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (connection_widget->priv->local_checkbutton)); connection_widget->priv->current_profile->local = local; if (local) { gtk_widget_show (connection_widget->priv->musicdir_hbox); gtk_widget_show (connection_widget->priv->musicdir_label); } else { gtk_widget_hide (connection_widget->priv->musicdir_hbox); gtk_widget_hide (connection_widget->priv->musicdir_label); } } #ifdef ENABLE_AVAHI /* Method called when list of hosts detected by avahi has changed */ static void ario_connection_widget_autohosts_changed_cb (ArioAvahi *avahi, ArioConnectionWidget *connection_widget) { ARIO_LOG_FUNCTION_START; GtkTreeIter iter; GSList *hosts; char tmp[INTLEN]; /* Clear the hosts lists */ gtk_list_store_clear (connection_widget->priv->autodetect_model); /* Append all found hosts to the list */ for (hosts = ario_avahi_get_hosts (avahi); hosts; hosts = g_slist_next (hosts)) { ArioHost *host = hosts->data; gtk_list_store_append (connection_widget->priv->autodetect_model, &iter); g_snprintf (tmp, INTLEN, "%d", host->port); gtk_list_store_set (connection_widget->priv->autodetect_model, &iter, NAME_COLUMN, host->name, HOST_COLUMN, host->host, PORT_COLUMN, tmp, -1); } /* Select first host */ if (gtk_tree_model_get_iter_first (GTK_TREE_MODEL (connection_widget->priv->autodetect_model), &iter)) gtk_tree_selection_select_iter (connection_widget->priv->autodetect_selection, &iter); } #endif void ario_connection_widget_autodetect_cb (GtkWidget *widget, ArioConnectionWidget *connection_widget) { ARIO_LOG_FUNCTION_START; #ifdef ENABLE_AVAHI GtkBuilder *builder; ArioAvahi *avahi; GtkWidget *dialog, *error_dialog; GtkWidget *treeview; GtkTreeModel *treemodel; GtkTreeIter iter; gchar *tmp; gchar *host; int port; gint retval; /* Create UI using GtkBuilder */ builder = gtk_builder_helpers_new (UI_PATH "connection-autodetect.ui", NULL); /* Get pointers to the different widgets */ dialog = GTK_WIDGET (gtk_builder_get_object (builder, "dialog")); treeview = GTK_WIDGET (gtk_builder_get_object (builder, "treeview")); connection_widget->priv->autodetect_model = GTK_LIST_STORE (gtk_builder_get_object (builder, "autodetect_model")); g_object_unref (builder); /* Create avahi proxy */ avahi = ario_avahi_new (); /* Get selection */ connection_widget->priv->autodetect_selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (treeview)); gtk_tree_selection_set_mode (connection_widget->priv->autodetect_selection, GTK_SELECTION_BROWSE); /* Connect signal called when avahi detects new hosts */ g_signal_connect (avahi, "hosts_changed", G_CALLBACK (ario_connection_widget_autohosts_changed_cb), connection_widget); /* Run dialog */ gtk_widget_show_all (dialog); retval = gtk_dialog_run (GTK_DIALOG(dialog)); /* Stop here if pressed button is not OK */ if (retval != 1) { gtk_widget_destroy (dialog); g_object_unref (avahi); return; } treemodel = GTK_TREE_MODEL (connection_widget->priv->autodetect_model); if (gtk_tree_selection_get_selected (connection_widget->priv->autodetect_selection, &treemodel, &iter)) { /* Get infos about selected host */ gtk_tree_model_get (treemodel, &iter, HOST_COLUMN, &host, PORT_COLUMN, &tmp, -1); port = atoi (tmp); g_free (tmp); /* Update current profile with avahi info */ g_free (connection_widget->priv->current_profile->host); connection_widget->priv->current_profile->host = g_strdup (host); g_free (host); connection_widget->priv->current_profile->port = port; connection_widget->priv->current_profile->timeout = ARIO_DEFAULT_TIMEOUT; g_free (connection_widget->priv->current_profile->password); connection_widget->priv->current_profile->password = NULL; g_free (connection_widget->priv->current_profile->musicdir); connection_widget->priv->current_profile->musicdir = NULL; ario_connection_widget_profile_selection_update (connection_widget, TRUE); } else { /* No server selected */ error_dialog = gtk_message_dialog_new(NULL, GTK_DIALOG_MODAL, GTK_MESSAGE_ERROR, GTK_BUTTONS_OK, _("You must select a server.")); gtk_dialog_run(GTK_DIALOG(error_dialog)); gtk_widget_destroy(error_dialog); } g_object_unref (avahi); gtk_widget_destroy (dialog); #endif } void ario_connection_widget_open_cb (GtkWidget *widget, ArioConnectionWidget *connection_widget) { ARIO_LOG_FUNCTION_START; GtkWidget *dialog; /* Create a dialog to choose the music directory */ dialog = gtk_file_chooser_dialog_new (NULL, NULL, GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER, _("_Cancel"), GTK_RESPONSE_CANCEL, _("_Open"), GTK_RESPONSE_ACCEPT, NULL); if (gtk_dialog_run (GTK_DIALOG (dialog)) == GTK_RESPONSE_ACCEPT) { char *filename; filename = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (dialog)); if (filename) { /* Set the text in the entry with choosen path */ gtk_entry_set_text (GTK_ENTRY (connection_widget->priv->musicdir_entry), filename); g_free (filename); } } gtk_widget_destroy (dialog); } void ario_connection_widget_new_profile_cb (GtkWidget *widget, ArioConnectionWidget *connection_widget) { ARIO_LOG_FUNCTION_START; ArioProfile *profile; ArioProfile *tmp_profile; GSList *tmp; /* Create a new profile with default values */ profile = (ArioProfile *) g_malloc0 (sizeof (ArioProfile)); profile->name = g_strdup (_("New Profile")); profile->host = g_strdup ("localhost"); profile->port = 6600; profile->timeout = ARIO_DEFAULT_TIMEOUT; profile->type = ArioServerMpd; /* Remove 'current' flag from all profiles */ for (tmp = connection_widget->priv->profiles; tmp; tmp = g_slist_next (tmp)) { tmp_profile = (ArioProfile *) tmp->data; tmp_profile->current = FALSE; } /* Append new profile to the list */ connection_widget->priv->profiles = g_slist_append (connection_widget->priv->profiles, profile); /* Set the new profile as current */ profile->current = TRUE; ario_connection_widget_profile_update_profiles (connection_widget); ario_connection_widget_profile_selection_update (connection_widget, FALSE); /* Notify that current profile has changed */ g_signal_emit (G_OBJECT (connection_widget), ario_connection_widget_signals[PROFILE_CHANGED], 0); } void ario_connection_widget_delete_profile_cb (GtkWidget *widget, ArioConnectionWidget *connection_widget) { ARIO_LOG_FUNCTION_START; ArioProfile *first_profile; /* We need to keep at least one profile */ if (g_slist_length (connection_widget->priv->profiles) < 2) return; if (connection_widget->priv->current_profile) { /* Remove the profile from the list */ connection_widget->priv->profiles = g_slist_remove (connection_widget->priv->profiles, connection_widget->priv->current_profile); /* Delete the profile */ ario_profiles_free (connection_widget->priv->current_profile); /* Set the first profile as the current one */ if (connection_widget->priv->profiles) { first_profile = (ArioProfile *) connection_widget->priv->profiles->data; first_profile->current = TRUE; } ario_connection_widget_profile_update_profiles (connection_widget); ario_connection_widget_profile_selection_update (connection_widget, FALSE); /* Notify that current profile has changed */ g_signal_emit (G_OBJECT (connection_widget), ario_connection_widget_signals[PROFILE_CHANGED], 0); } } ario-1.6/src/widgets/ario-firstlaunch.h0000644000175000017500000000410313226723432015115 00000000000000/* * Copyright (C) 2007 Marc Pavot * * 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, 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * */ #ifndef __ARIO_FIRSTLAUNCH_H #define __ARIO_FIRSTLAUNCH_H #include G_BEGIN_DECLS #define TYPE_ARIO_FIRSTLAUNCH (ario_firstlaunch_get_type ()) #define ARIO_FIRSTLAUNCH(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), TYPE_ARIO_FIRSTLAUNCH, ArioFirstlaunch)) #define ARIO_FIRSTLAUNCH_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), TYPE_ARIO_FIRSTLAUNCH, ArioFirstlaunchClass)) #define IS_ARIO_FIRSTLAUNCH(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), TYPE_ARIO_FIRSTLAUNCH)) #define IS_ARIO_FIRSTLAUNCH_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), TYPE_ARIO_FIRSTLAUNCH)) #define ARIO_FIRSTLAUNCH_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), TYPE_ARIO_FIRSTLAUNCH, ArioFirstlaunchClass)) typedef struct ArioFirstlaunchPrivate ArioFirstlaunchPrivate; /* * First launch assistant is used when a user launches Ario for the * first time. This assistant is used to configure a few mandatory * options like the creation of a profile */ typedef struct { GtkAssistant parent; ArioFirstlaunchPrivate *priv; } ArioFirstlaunch; typedef struct { GtkAssistantClass parent_class; } ArioFirstlaunchClass; GType ario_firstlaunch_get_type (void) G_GNUC_CONST; ArioFirstlaunch * ario_firstlaunch_new (GtkApplication *app); G_END_DECLS #endif /* __ARIO_FIRSTLAUNCH_H */ ario-1.6/src/widgets/ario-volume.h0000644000175000017500000000334513226723434014113 00000000000000/* * Copyright (C) 2009 Marc Pavot * * 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, 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * */ #ifndef __ARIO_VOLUME_H #define __ARIO_VOLUME_H #include G_BEGIN_DECLS #define TYPE_ARIO_VOLUME (ario_volume_get_type ()) #define ARIO_VOLUME(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), TYPE_ARIO_VOLUME, ArioVolume)) #define ARIO_VOLUME_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), TYPE_ARIO_VOLUME, ArioVolumeClass)) #define IS_ARIO_VOLUME(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), TYPE_ARIO_VOLUME)) #define IS_ARIO_VOLUME_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), TYPE_ARIO_VOLUME)) #define ARIO_VOLUME_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), TYPE_ARIO_VOLUME, ArioVolumeClass)) typedef struct ArioVolumePrivate ArioVolumePrivate; typedef struct { GtkEventBox parent; ArioVolumePrivate *priv; } ArioVolume; typedef struct { GtkEventBoxClass parent; } ArioVolumeClass; GType ario_volume_get_type (void) G_GNUC_CONST; ArioVolume * ario_volume_new (void); G_END_DECLS #endif /* __ARIO_VOLUME_H */ ario-1.6/src/widgets/ario-songlist.h0000644000175000017500000000700413226723432014440 00000000000000/* * Copyright (C) 2005 Marc Pavot * * 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, 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * */ #ifndef __ARIO_SONGLIST_H #define __ARIO_SONGLIST_H #include #include G_BEGIN_DECLS #define TYPE_ARIO_SONGLIST (ario_songlist_get_type ()) #define ARIO_SONGLIST(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), TYPE_ARIO_SONGLIST, ArioSonglist)) #define ARIO_SONGLIST_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), TYPE_ARIO_SONGLIST, ArioSonglistClass)) #define IS_ARIO_SONGLIST(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), TYPE_ARIO_SONGLIST)) #define IS_ARIO_SONGLIST_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), TYPE_ARIO_SONGLIST)) #define ARIO_SONGLIST_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), TYPE_ARIO_SONGLIST, ArioSonglistClass)) typedef struct ArioSonglistPrivate ArioSonglistPrivate; /** * ArioSonglist widget can be used to display a list of songs * with drag and drop features, interactions with main Ario * playlist... */ typedef struct { GtkScrolledWindow parent; ArioSonglistPrivate *priv; } ArioSonglist; typedef struct { GtkScrolledWindowClass parent; } ArioSonglistClass; enum { SONGS_TITLE_COLUMN, SONGS_ARTIST_COLUMN, SONGS_ALBUM_COLUMN, SONGS_FILENAME_COLUMN, SONGS_N_COLUMN }; GType ario_songlist_get_type (void) G_GNUC_CONST; GtkWidget* ario_songlist_new (const gchar *menu_file, const gchar *popup, gboolean is_sortable); GtkListStore* ario_songlist_get_liststore (ArioSonglist *songlist); GtkTreeSelection* ario_songlist_get_selection (ArioSonglist *songlist); void ario_songlist_cmd_add_songlists (GSimpleAction *action, GVariant *parameter, gpointer data); void ario_songlist_cmd_add_play_songlists (GSimpleAction *action, GVariant *parameter, gpointer data); void ario_songlist_cmd_songs_properties (GSimpleAction *action, GVariant *parameter, gpointer data); void ario_songlist_cmd_clear_add_play_songlists (GSimpleAction *action, GVariant *parameter, gpointer data); G_END_DECLS #endif /* __ARIO_SONGLIST_H */ ario-1.6/src/widgets/ario-dnd-tree.h0000644000175000017500000000426213226723432014303 00000000000000/* * Copyright (C) 2005 Marc Pavot * * 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, 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * */ #ifndef __ARIO_DND_TREE_H #define __ARIO_DND_TREE_H #include #include G_BEGIN_DECLS #define TYPE_ARIO_DND_TREE (ario_dnd_tree_get_type ()) #define ARIO_DND_TREE(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), TYPE_ARIO_DND_TREE, ArioDndTree)) #define ARIO_DND_TREE_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), TYPE_ARIO_DND_TREE, ArioDndTreeClass)) #define IS_ARIO_DND_TREE(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), TYPE_ARIO_DND_TREE)) #define IS_ARIO_DND_TREE_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), TYPE_ARIO_DND_TREE)) #define ARIO_DND_TREE_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), TYPE_ARIO_DND_TREE, ArioDndTreeClass)) typedef struct ArioDndTreePrivate ArioDndTreePrivate; /* * ArioDndTree is a GtkTreeView with enhanced drag and drop * features. */ typedef struct { GtkTreeView parent; ArioDndTreePrivate *priv; } ArioDndTree; typedef struct { GtkTreeViewClass parent; /* Signals */ void (*popup) (ArioDndTree *tree); void (*activate) (ArioDndTree *tree); } ArioDndTreeClass; GType ario_dnd_tree_get_type (void) G_GNUC_CONST; GtkWidget* ario_dnd_tree_new (const GtkTargetEntry* targets, const gint n_targets, const gboolean browse_mode); G_END_DECLS #endif /* __ARIO_DND_TREE_H */ ario-1.6/src/widgets/ario-lyrics-editor.h0000644000175000017500000000462213226723432015372 00000000000000/* * Copyright (C) 2005 Marc Pavot * * 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, 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * */ #include #include "lyrics/ario-lyrics-provider.h" #ifndef __ARIO_LYRICS_EDITOR_H #define __ARIO_LYRICS_EDITOR_H G_BEGIN_DECLS #define TYPE_ARIO_LYRICS_EDITOR (ario_lyrics_editor_get_type ()) #define ARIO_LYRICS_EDITOR(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), TYPE_ARIO_LYRICS_EDITOR, ArioLyricsEditor)) #define ARIO_LYRICS_EDITOR_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), TYPE_ARIO_LYRICS_EDITOR, ArioLyricsEditorClass)) #define IS_ARIO_LYRICS_EDITOR(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), TYPE_ARIO_LYRICS_EDITOR)) #define IS_ARIO_LYRICS_EDITOR_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), TYPE_ARIO_LYRICS_EDITOR)) #define ARIO_LYRICS_EDITOR_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), TYPE_ARIO_LYRICS_EDITOR, ArioLyricsEditorClass)) typedef struct ArioLyricsEditorPrivate ArioLyricsEditorPrivate; /* * ArioLyricsEditor can be used to display the lyrics of a song, * to edit them and to download new lyrics */ typedef struct { GtkBox parent; ArioLyricsEditorPrivate *priv; } ArioLyricsEditor; typedef struct { GtkBoxClass parent_class; } ArioLyricsEditorClass; typedef struct ArioLyricsEditorData { gchar *artist; gchar *title; ArioLyricsCandidate *candidate; gboolean finalize; } ArioLyricsEditorData; GType ario_lyrics_editor_get_type (void) G_GNUC_CONST; GtkWidget * ario_lyrics_editor_new (void); void ario_lyrics_editor_push (ArioLyricsEditor *lyrics_editor, ArioLyricsEditorData *data); G_END_DECLS #endif /* __ARIO_LYRICS_EDITOR_H */ ario-1.6/src/widgets/ario-playlist.c0000644000175000017500000020761113226723434014442 00000000000000/* * Copyright (C) 2005 Marc Pavot * * 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, 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * */ #include "widgets/ario-playlist.h" #include #include #include #include #include #include #include "ario-util.h" #include "ario-debug.h" #include "lib/ario-conf.h" #include "preferences/ario-preferences.h" #include "servers/ario-server.h" #include "shell/ario-shell-songinfos.h" #include "sources/ario-source-manager.h" #include "widgets/ario-dnd-tree.h" typedef struct ArioPlaylistColumn ArioPlaylistColumn; static void ario_playlist_finalize (GObject *object); static void ario_playlist_changed_cb (ArioServer *server, ArioPlaylist *playlist); static void ario_playlist_connectivity_changed_cb (ArioServer *server, ArioPlaylist *playlist); static void ario_playlist_song_changed_cb (ArioServer *server, ArioPlaylist *playlist); static void ario_playlist_state_changed_cb (ArioServer *server, ArioPlaylist *playlist); static void ario_playlist_sort_changed_cb (GtkTreeSortable *treesortable, ArioPlaylist *playlist); static void ario_playlist_rows_reordered_cb (GtkTreeModel *tree_model, GtkTreePath *path, GtkTreeIter *iter, gpointer arg3, ArioPlaylist *playlist); static void ario_playlist_drag_leave_cb (GtkWidget *widget, GdkDragContext *context, gint x, gint y, GtkSelectionData *data, guint info, guint time, gpointer user_data); static void ario_playlist_drag_data_get_cb (GtkWidget * widget, GdkDragContext * context, GtkSelectionData * selection_data, guint info, guint time, gpointer data); static gboolean ario_playlist_drag_drop_cb (GtkWidget * widget, gint x, gint y, guint time, ArioPlaylist *playlist); static void ario_playlist_cmd_clear (GSimpleAction *action, GVariant *parameter, gpointer data); static void ario_playlist_cmd_shuffle (GSimpleAction *action, GVariant *parameter, gpointer data); static void ario_playlist_cmd_remove (GSimpleAction *action, GVariant *parameter, gpointer data); static void ario_playlist_cmd_crop (GSimpleAction *action, GVariant *parameter, gpointer data); static void ario_playlist_search (ArioPlaylist *playlist, const char* text); static void ario_playlist_cmd_search (GSimpleAction *action, GVariant *parameter, gpointer data); static void ario_playlist_cmd_songs_properties (GSimpleAction *action, GVariant *parameter, gpointer data); static void ario_playlist_cmd_goto_playing_song (GSimpleAction *action, GVariant *parameter, gpointer data); static void ario_playlist_cmd_save (GSimpleAction *action, GVariant *parameter, gpointer data); static gboolean ario_playlist_view_key_press_cb (GtkWidget *widget, GdkEventKey *event, ArioPlaylist *playlist); static void ario_playlist_activate_selected (); static void ario_playlist_column_visible_changed_cb (guint notification_id, ArioPlaylistColumn *ario_column); static void ario_playlist_popup_menu_cb (ArioDndTree* tree, ArioPlaylist *playlist); static void ario_playlist_activate_cb (ArioDndTree* tree, ArioPlaylist *playlist); static ArioPlaylist *instance = NULL; struct ArioPlaylistPrivate { GtkWidget *tree; GtkListStore *model; GtkTreeSelection *selection; GtkTreeModelFilter *filter; GtkWidget *search_hbox; GtkWidget *search_entry; gboolean in_search; const gchar *search_text; gulong dnd_handler; gint64 playlist_id; int playlist_length; gint pos; GdkPixbuf *play_pixbuf; GtkWidget *menu; }; static const GActionEntry widget_actions[] = { { "playlist-clear", ario_playlist_cmd_clear}, { "playlist-shuffle", ario_playlist_cmd_shuffle}, { "playlist-crop", ario_playlist_cmd_crop}, { "playlist-search", ario_playlist_cmd_search}, { "playlist-remove", ario_playlist_cmd_remove}, { "playlist-save", ario_playlist_cmd_save}, { "playlist-goto", ario_playlist_cmd_goto_playing_song}, { "playlist-properties", ario_playlist_cmd_songs_properties}, }; /* Object properties */ enum { PROP_0, }; /* Treeview columns */ enum { PIXBUF_COLUMN, TRACK_COLUMN, TITLE_COLUMN, ARTIST_COLUMN, ALBUM_COLUMN, DURATION_COLUMN, FILE_COLUMN, GENRE_COLUMN, DATE_COLUMN, DISC_COLUMN, ID_COLUMN, TIME_COLUMN, N_COLUMN }; /* * ArioPlaylistColumn is used to initialise a column in the * playlist treeview and defines various column properties */ struct ArioPlaylistColumn { /* Column number */ const int columnnb; /* Identification of column size preference in Ario * configuration system */ const gchar *pref_size; /* Default size if it is not set in preferences */ const int default_size; /* Identification of column order preference in Ario * configuration system */ const gchar *pref_order; /* Default order if it is not set in preferences */ const int default_order; /* Identification of column visibility preference in Ario * configuration system */ const gchar *pref_is_visible; /* Default visibility if it is not set in preferences */ const gboolean default_is_visible; /* Whether the column is a pixbuf column or a text column */ const gboolean is_pixbuf; /* Whether the column is resizable or not */ const gboolean is_resizable; /* Whether the column is sortable or not */ const gboolean is_sortable; /* Pointer to the column once it is initialized */ GtkTreeViewColumn *column; }; /* Definition of all columns with the preperties */ static ArioPlaylistColumn all_columns [] = { { PIXBUF_COLUMN, NULL, 20, PREF_PIXBUF_COLUMN_ORDER, PREF_PIXBUF_COLUMN_ORDER_DEFAULT, NULL, TRUE, TRUE, FALSE, FALSE, NULL }, { TRACK_COLUMN, PREF_TRACK_COLUMN_SIZE, PREF_TRACK_COLUMN_SIZE_DEFAULT, PREF_TRACK_COLUMN_ORDER, PREF_TRACK_COLUMN_ORDER_DEFAULT, PREF_TRACK_COLUMN_VISIBLE, PREF_TRACK_COLUMN_VISIBLE_DEFAULT, FALSE, TRUE, TRUE, NULL }, { TITLE_COLUMN, PREF_TITLE_COLUMN_SIZE, PREF_TITLE_COLUMN_SIZE_DEFAULT, PREF_TITLE_COLUMN_ORDER, PREF_TITLE_COLUMN_ORDER_DEFAULT, PREF_TITLE_COLUMN_VISIBLE, PREF_TITLE_COLUMN_VISIBLE_DEFAULT, FALSE, TRUE, TRUE, NULL }, { ARTIST_COLUMN, PREF_ARTIST_COLUMN_SIZE, PREF_ARTIST_COLUMN_SIZE_DEFAULT, PREF_ARTIST_COLUMN_ORDER, PREF_ARTIST_COLUMN_ORDER_DEFAULT, PREF_ARTIST_COLUMN_VISIBLE, PREF_ARTIST_COLUMN_VISIBLE_DEFAULT, FALSE, TRUE, TRUE, NULL }, { ALBUM_COLUMN, PREF_ALBUM_COLUMN_SIZE, PREF_ALBUM_COLUMN_SIZE_DEFAULT, PREF_ALBUM_COLUMN_ORDER, PREF_ALBUM_COLUMN_ORDER_DEFAULT, PREF_ALBUM_COLUMN_VISIBLE, PREF_ALBUM_COLUMN_VISIBLE_DEFAULT, FALSE, TRUE, TRUE, NULL }, { DURATION_COLUMN, PREF_DURATION_COLUMN_SIZE, PREF_DURATION_COLUMN_SIZE_DEFAULT, PREF_DURATION_COLUMN_ORDER, PREF_DURATION_COLUMN_ORDER_DEFAULT, PREF_DURATION_COLUMN_VISIBLE, PREF_DURATION_COLUMN_VISIBLE_DEFAULT, FALSE, TRUE, TRUE, NULL }, { FILE_COLUMN, PREF_FILE_COLUMN_SIZE, PREF_FILE_COLUMN_SIZE_DEFAULT, PREF_FILE_COLUMN_ORDER, PREF_FILE_COLUMN_ORDER_DEFAULT, PREF_FILE_COLUMN_VISIBLE, PREF_FILE_COLUMN_VISIBLE_DEFAULT, FALSE, TRUE, TRUE, NULL }, { GENRE_COLUMN, PREF_GENRE_COLUMN_SIZE, PREF_GENRE_COLUMN_SIZE_DEFAULT, PREF_GENRE_COLUMN_ORDER, PREF_GENRE_COLUMN_ORDER_DEFAULT, PREF_GENRE_COLUMN_VISIBLE, PREF_GENRE_COLUMN_VISIBLE_DEFAULT, FALSE, TRUE, TRUE, NULL }, { DATE_COLUMN, PREF_DATE_COLUMN_SIZE, PREF_DATE_COLUMN_SIZE_DEFAULT, PREF_DATE_COLUMN_ORDER, PREF_DATE_COLUMN_ORDER_DEFAULT, PREF_DATE_COLUMN_VISIBLE, PREF_DATE_COLUMN_VISIBLE_DEFAULT, FALSE, TRUE, TRUE, NULL }, { DISC_COLUMN, PREF_DISC_COLUMN_SIZE, PREF_DISC_COLUMN_SIZE_DEFAULT, PREF_DISC_COLUMN_ORDER, PREF_DISC_COLUMN_ORDER_DEFAULT, PREF_DISC_COLUMN_VISIBLE, PREF_DISC_COLUMN_VISIBLE_DEFAULT, FALSE, TRUE, TRUE, NULL }, { -1, NULL, 0, NULL, 0, NULL, FALSE, FALSE, FALSE, FALSE, NULL }, { -1, NULL, 0, NULL, 0, NULL, FALSE, FALSE, FALSE, FALSE, NULL }, { -1, NULL, 0, NULL, 0, NULL, FALSE, FALSE, FALSE, FALSE, NULL } }; /* Targets for drag & drop from other widgets */ static const GtkTargetEntry targets [] = { { "text/internal-list", 0, 10}, { "text/songs-list", 0, 20 }, { "text/radios-list", 0, 30 }, { "text/directory", 0, 40 }, { "text/criterias-list", 0, 50 }, }; /* Targets for internal drag & drop */ static const GtkTargetEntry internal_targets [] = { { "text/internal-list", 0, 10 }, }; #define ARIO_PLAYLIST_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_ARIO_PLAYLIST, ArioPlaylistPrivate)) G_DEFINE_TYPE (ArioPlaylist, ario_playlist, ARIO_TYPE_SOURCE) static gchar * ario_playlist_get_id (ArioSource *source) { return "playlist"; } static gchar * ario_playlist_get_name (ArioSource *source) { return _("Playlist"); } static gchar * ario_playlist_get_icon (ArioSource *source) { return ""; } static void ario_playlist_class_init (ArioPlaylistClass *klass) { ARIO_LOG_FUNCTION_START; GObjectClass *object_class = G_OBJECT_CLASS (klass); ArioSourceClass *source_class = ARIO_SOURCE_CLASS (klass); /* Virtual methods */ object_class->finalize = ario_playlist_finalize; /* Virtual ArioSource methods */ source_class->get_id = ario_playlist_get_id; source_class->get_name = ario_playlist_get_name; source_class->get_icon = ario_playlist_get_icon; /* Private attributes */ g_type_class_add_private (klass, sizeof (ArioPlaylistPrivate)); } static void ario_playlist_append_column (ArioPlaylistColumn *ario_column, const gchar *column_name) { ARIO_LOG_FUNCTION_START; GtkTreeViewColumn *column; GtkCellRenderer *renderer; /* Create the appropriate renderer */ if (ario_column->is_pixbuf) { renderer = gtk_cell_renderer_pixbuf_new (); column = gtk_tree_view_column_new_with_attributes (column_name, renderer, "pixbuf", ario_column->columnnb, NULL); } else { renderer = gtk_cell_renderer_text_new (); column = gtk_tree_view_column_new_with_attributes (column_name, renderer, "text", ario_column->columnnb, NULL); } /* Set column size */ gtk_tree_view_column_set_resizable (column, ario_column->is_resizable); gtk_tree_view_column_set_sizing (column, GTK_TREE_VIEW_COLUMN_FIXED); if (ario_column->pref_size) gtk_tree_view_column_set_fixed_width (column, ario_conf_get_integer (ario_column->pref_size, ario_column->default_size)); else gtk_tree_view_column_set_fixed_width (column, ario_column->default_size); /* Set column sortation */ if (ario_column->is_sortable) { gtk_tree_view_column_set_sort_indicator (column, TRUE); gtk_tree_view_column_set_sort_column_id (column, ario_column->columnnb); } /* All columns are reorderable */ gtk_tree_view_column_set_reorderable (column, TRUE); /* Column visibility */ if (ario_column->pref_is_visible) gtk_tree_view_column_set_visible (column, ario_conf_get_integer (ario_column->pref_is_visible, ario_column->default_is_visible)); else gtk_tree_view_column_set_visible (column, ario_column->default_is_visible); /* Add column to the treeview */ gtk_tree_view_append_column (GTK_TREE_VIEW (instance->priv->tree), column); ario_column->column = column; /* Notification if user changes column visibility in preferences */ if (ario_column->pref_is_visible) ario_conf_notification_add (ario_column->pref_is_visible, (ArioNotifyFunc) ario_playlist_column_visible_changed_cb, ario_column); } static void ario_playlist_reorder_columns (void) { ARIO_LOG_FUNCTION_START; GtkTreeViewColumn *orders[N_COLUMN] = {NULL}; GtkTreeViewColumn *current, *prev = NULL; int i, order; /* Get an ordered list of column in orders[] thanks to the preferences */ for (i = 0; all_columns[i].columnnb != -1; ++i) { order = ario_conf_get_integer (all_columns[i].pref_order, all_columns[i].default_order); if (order < N_COLUMN) orders[order] = all_columns[i].column; } /* Move columns in the order computed in orders[] */ for (i = 0; i < N_COLUMN; ++i) { current = orders[i]; if (current) gtk_tree_view_move_column_after (GTK_TREE_VIEW (instance->priv->tree), current, prev); prev = current; } /* Resize the last visible column */ for (i = N_COLUMN - 1; i >= 0; --i) { if (!orders[i]) continue; if (gtk_tree_view_column_get_visible (orders[i])) { gtk_tree_view_column_set_fixed_width (orders[i], ario_util_min (gtk_tree_view_column_get_fixed_width (orders[i]), 50)); break; } } } static gint ario_playlist_no_sort (G_GNUC_UNUSED GtkTreeModel *model, G_GNUC_UNUSED GtkTreeIter *a, G_GNUC_UNUSED GtkTreeIter *b, G_GNUC_UNUSED gpointer user_data) { /* Default sort always return 0 */ return 0; } static gboolean ario_playlist_filter_func (GtkTreeModel *model, GtkTreeIter *iter, ArioPlaylist *playlist) { ARIO_LOG_FUNCTION_START; gchar *title, *artist, *album, *genre; gboolean visible = TRUE, filter; int i; gchar **cmp_str; /* There is no filter if the search box is empty */ if (!playlist->priv->search_text || *playlist->priv->search_text == '\0') return TRUE; /* Split on spaces to have multiple filters */ cmp_str = g_strsplit (playlist->priv->search_text, " ", -1); if (!cmp_str) return TRUE; /* Get data needed to filter */ gtk_tree_model_get (model, iter, TITLE_COLUMN, &title, ARTIST_COLUMN, &artist, ALBUM_COLUMN, &album, GENRE_COLUMN, &genre, -1); /* Loop on every filter */ for (i = 0; cmp_str[i] && visible; ++i) { if (g_utf8_collate (cmp_str[i], "")) { /* By default the row doesn't match the filter */ filter = FALSE; /* The row match the filter if one of the visible column contains * the filter */ if (title && ario_conf_get_boolean (PREF_TITLE_COLUMN_VISIBLE, PREF_TITLE_COLUMN_VISIBLE_DEFAULT) && ario_util_stristr (title, cmp_str[i])) { filter = TRUE; } else if (artist && ario_conf_get_boolean (PREF_ARTIST_COLUMN_VISIBLE, PREF_ARTIST_COLUMN_VISIBLE_DEFAULT) && ario_util_stristr (artist, cmp_str[i])) { filter = TRUE; } else if (album && ario_conf_get_boolean (PREF_ALBUM_COLUMN_VISIBLE, PREF_ALBUM_COLUMN_VISIBLE_DEFAULT) && ario_util_stristr (album, cmp_str[i])) { filter = TRUE; } else if (genre && ario_conf_get_boolean (PREF_GENRE_COLUMN_VISIBLE, PREF_GENRE_COLUMN_VISIBLE_DEFAULT) && ario_util_stristr (genre, cmp_str[i])) { filter = TRUE; } /* The row must match all the filters to be shown */ visible &= filter; } } g_strfreev (cmp_str); g_free (title); g_free (artist); g_free (album); g_free (genre); return visible; } static void ario_playlist_search_close (GtkButton *button, ArioPlaylist *playlist) { ARIO_LOG_FUNCTION_START; /* Hide the search box */ gtk_entry_set_text (GTK_ENTRY (playlist->priv->search_entry), ""); gtk_widget_hide (playlist->priv->search_hbox); gtk_tree_view_set_model (GTK_TREE_VIEW (playlist->priv->tree), GTK_TREE_MODEL (playlist->priv->model)); gtk_tree_view_set_headers_clickable (GTK_TREE_VIEW (playlist->priv->tree), TRUE); playlist->priv->in_search = FALSE; /* Stop handling drag & drop differently */ if (playlist->priv->dnd_handler) { g_signal_handler_disconnect (playlist->priv->tree, playlist->priv->dnd_handler); playlist->priv->dnd_handler = 0; } } static void ario_playlist_search_entry_changed (GtkEntry *entry, ArioPlaylist *playlist) { ARIO_LOG_FUNCTION_START; const gchar *cmp = gtk_entry_get_text (GTK_ENTRY (playlist->priv->search_entry)); playlist->priv->search_text = cmp; if (!cmp || *cmp == '\0') { /* Close search window if text box is empty */ ario_playlist_search_close (NULL, playlist); gtk_widget_grab_focus (playlist->priv->tree); } else { /* Refilter all rows if filter has changed */ gtk_tree_model_filter_refilter (playlist->priv->filter); } } static gboolean ario_playlist_search_entry_key_press_cb (GtkWidget *widget, GdkEventKey *event, ArioPlaylist *playlist) { ARIO_LOG_FUNCTION_START; /* Escape key closes the search box */ if (event->keyval == GDK_KEY_Escape) { ario_playlist_search_close (NULL, playlist); return TRUE; } return FALSE; } static void ario_playlist_init (ArioPlaylist *playlist) { ARIO_LOG_FUNCTION_START; int i; const gchar *column_names [] = { " ", _("Track"), _("Title"), _("Artist"), _("Album"), _("Duration"), _("File"), _("Genre"), _("Date"), _("Disc") }; GtkWidget *image, *close_button, *vbox; GtkScrolledWindow *scrolled_window; GtkBuilder *builder; GMenuModel *menu; /* Attributes initialization */ instance = playlist; playlist->priv = ARIO_PLAYLIST_GET_PRIVATE (playlist); playlist->priv->playlist_id = -1; playlist->priv->pos = -1; playlist->priv->playlist_length = 0; playlist->priv->play_pixbuf = gdk_pixbuf_new_from_file (PIXMAP_PATH "play.png", NULL); /* Create main vbox */ vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); /* Create scrolled window */ scrolled_window = GTK_SCROLLED_WINDOW (gtk_scrolled_window_new (NULL, NULL)); gtk_scrolled_window_set_policy (scrolled_window, GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); gtk_scrolled_window_set_shadow_type (scrolled_window, GTK_SHADOW_IN); /* Create the drag & drop tree */ playlist->priv->tree = ario_dnd_tree_new (internal_targets, G_N_ELEMENTS (internal_targets), FALSE); gtk_tree_view_set_fixed_height_mode (GTK_TREE_VIEW (playlist->priv->tree), TRUE); /* Append all columns to treeview */ for (i = 0; all_columns[i].columnnb != -1; ++i) ario_playlist_append_column (&all_columns[i], column_names[i]); /* Reorder columns */ ario_playlist_reorder_columns (); /* Create tree model */ playlist->priv->model = gtk_list_store_new (N_COLUMN, GDK_TYPE_PIXBUF, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_INT, G_TYPE_INT); /* Create the filter used when the search box is activated */ playlist->priv->filter = GTK_TREE_MODEL_FILTER (gtk_tree_model_filter_new (GTK_TREE_MODEL (playlist->priv->model), NULL)); gtk_tree_model_filter_set_visible_func (playlist->priv->filter, (GtkTreeModelFilterVisibleFunc) ario_playlist_filter_func, playlist, NULL); /* Set various treeview properties */ gtk_tree_view_set_model (GTK_TREE_VIEW (playlist->priv->tree), GTK_TREE_MODEL (playlist->priv->model)); gtk_tree_sortable_set_default_sort_func (GTK_TREE_SORTABLE (playlist->priv->model), ario_playlist_no_sort, NULL, NULL); gtk_tree_view_set_enable_search (GTK_TREE_VIEW (playlist->priv->tree), FALSE); playlist->priv->selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (playlist->priv->tree)); gtk_tree_selection_set_mode (playlist->priv->selection, GTK_SELECTION_MULTIPLE); /* Connect signal to detect clicks on columns header for reordering */ g_signal_connect (playlist->priv->model, "sort-column-changed", G_CALLBACK (ario_playlist_sort_changed_cb), playlist); /* Set playlist as drag & drop destination */ gtk_tree_view_enable_model_drag_dest (GTK_TREE_VIEW (playlist->priv->tree), targets, G_N_ELEMENTS (targets), GDK_ACTION_MOVE | GDK_ACTION_COPY); /* Add the tree in the scrolled window */ gtk_container_add (GTK_CONTAINER (scrolled_window), playlist->priv->tree); /* Create menu */ builder = gtk_builder_new_from_file (UI_PATH "ario-playlist-menu.ui"); menu = G_MENU_MODEL (gtk_builder_get_object (builder, "menu")); playlist->priv->menu = gtk_menu_new_from_model (menu); gtk_menu_attach_to_widget (GTK_MENU (playlist->priv->menu), GTK_WIDGET (playlist), NULL); /* Connect various signals of the tree */ g_signal_connect (playlist->priv->tree, "key_press_event", G_CALLBACK (ario_playlist_view_key_press_cb), playlist); g_signal_connect (playlist->priv->tree, "drag_data_received", G_CALLBACK (ario_playlist_drag_leave_cb), playlist); g_signal_connect (playlist->priv->tree, "drag_data_get", G_CALLBACK (ario_playlist_drag_data_get_cb), playlist); g_signal_connect (playlist->priv->tree, "popup", G_CALLBACK (ario_playlist_popup_menu_cb), playlist); g_signal_connect (playlist->priv->tree, "activate", G_CALLBACK (ario_playlist_activate_cb), playlist); /* Creation of search box */ playlist->priv->search_hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 6); image = gtk_image_new_from_icon_name ("window-close", GTK_ICON_SIZE_MENU); close_button = gtk_button_new (); gtk_button_set_relief (GTK_BUTTON (close_button), GTK_RELIEF_NONE); gtk_container_add (GTK_CONTAINER (close_button), image); g_signal_connect (close_button, "clicked", G_CALLBACK (ario_playlist_search_close), playlist); gtk_box_pack_start (GTK_BOX (playlist->priv->search_hbox), close_button, FALSE, FALSE, 0); gtk_box_pack_start (GTK_BOX (playlist->priv->search_hbox), gtk_label_new (_("Filter:")), FALSE, FALSE, 0); playlist->priv->search_entry = gtk_entry_new (); gtk_box_pack_start (GTK_BOX (playlist->priv->search_hbox), playlist->priv->search_entry, FALSE, FALSE, 0); g_signal_connect (playlist->priv->search_entry, "changed", G_CALLBACK (ario_playlist_search_entry_changed), playlist); g_signal_connect (playlist->priv->search_entry, "key_press_event", G_CALLBACK (ario_playlist_search_entry_key_press_cb), playlist); gtk_widget_show_all (playlist->priv->search_hbox); gtk_widget_set_no_show_all (playlist->priv->search_hbox, TRUE); gtk_widget_hide (playlist->priv->search_hbox); /* Add scrolled window to playlist */ gtk_box_pack_start (GTK_BOX (vbox), GTK_WIDGET (scrolled_window), TRUE, TRUE, 0); /* Add search box to playlist */ gtk_box_pack_start (GTK_BOX (vbox), playlist->priv->search_hbox, FALSE, FALSE, 0); gtk_box_pack_start (GTK_BOX (playlist), vbox, TRUE, TRUE, 0); } void ario_playlist_shutdown (void) { ARIO_LOG_FUNCTION_START; int width; int orders[N_COLUMN]; GtkTreeViewColumn *column; int i, j = 1; GList *columns, *tmp; /* Get ordered list of columns in orders[] */ columns = gtk_tree_view_get_columns (GTK_TREE_VIEW (instance->priv->tree)); for (tmp = columns; tmp; tmp = g_list_next (tmp)) { column = tmp->data; for (i = 0; i < N_COLUMN; ++i) { if (all_columns[i].column == column) orders[i] = j; } ++j; } g_list_free (columns); /* Save preferences */ for (i = 0; all_columns[i].columnnb != -1; ++i) { /* Save column size */ width = gtk_tree_view_column_get_width (all_columns[i].column); if (width > 10 && all_columns[i].pref_size) ario_conf_set_integer (all_columns[i].pref_size, width); /* Save column order */ ario_conf_set_integer (all_columns[i].pref_order, orders[all_columns[i].columnnb]); } } static void ario_playlist_finalize (GObject *object) { ARIO_LOG_FUNCTION_START; ArioPlaylist *playlist; g_return_if_fail (object != NULL); g_return_if_fail (IS_ARIO_PLAYLIST (object)); playlist = ARIO_PLAYLIST (object); g_return_if_fail (playlist->priv != NULL); g_object_unref (playlist->priv->play_pixbuf); G_OBJECT_CLASS (ario_playlist_parent_class)->finalize (object); } /** * This method removes the 'playing' pixbuf from the previous played * song and adds it to the new song */ static void ario_playlist_sync_song (void) { ARIO_LOG_FUNCTION_START; int state = ario_server_get_current_state (); ArioServerSong *song = ario_server_get_current_song (); GtkTreePath *path; GtkTreeIter iter; /* If we are still playing and the song has not changed we don't do anything */ if (song && instance->priv->pos == song->pos && (state == ARIO_STATE_PLAY || state == ARIO_STATE_PAUSE)) return; /* If there is no song playing and it was already the case before, we don't * do anything */ if ((instance->priv->pos == -1 && (!song || state == ARIO_STATE_UNKNOWN || state == ARIO_STATE_STOP))) return; /* Remove the 'playing' icon from previous song */ if (instance->priv->pos >= 0) { path = gtk_tree_path_new_from_indices (instance->priv->pos, -1); if (gtk_tree_model_get_iter (GTK_TREE_MODEL (instance->priv->model), &iter, path)) { gtk_list_store_set (instance->priv->model, &iter, PIXBUF_COLUMN, NULL, -1); instance->priv->pos = -1; } gtk_tree_path_free (path); } /* Add 'playing' icon to new song */ if (song && state != ARIO_STATE_UNKNOWN && state != ARIO_STATE_STOP) { path = gtk_tree_path_new_from_indices (song->pos, -1); if (gtk_tree_model_get_iter (GTK_TREE_MODEL (instance->priv->model), &iter, path)) { gtk_list_store_set (instance->priv->model, &iter, PIXBUF_COLUMN, instance->priv->play_pixbuf, -1); instance->priv->pos = song->pos; } gtk_tree_path_free (path); } } static void ario_playlist_changed_cb (ArioServer *server, ArioPlaylist *playlist) { ARIO_LOG_FUNCTION_START; gint old_length; GtkTreeIter iter; gchar track[ARIO_MAX_TRACK_SIZE]; gchar time[ARIO_MAX_TIME_SIZE]; gchar *title; GSList *songs, *tmp; ArioServerSong *song; gboolean need_set; GtkTreePath *path; /* Clear the playlist if ario is not connected to the server */ if (!ario_server_is_connected ()) { playlist->priv->playlist_length = 0; playlist->priv->playlist_id = -1; gtk_list_store_clear (playlist->priv->model); return; } /* Get changes on server */ songs = ario_server_get_playlist_changes (playlist->priv->playlist_id); playlist->priv->playlist_id = ario_server_get_current_playlist_id (); old_length = playlist->priv->playlist_length; /* For each change in playlist */ for (tmp = songs; tmp; tmp = g_slist_next (tmp)) { song = tmp->data; need_set = FALSE; /* Decide whether to update or to add */ if (song->pos < old_length) { /* Update */ path = gtk_tree_path_new_from_indices (song->pos, -1); if (gtk_tree_model_get_iter (GTK_TREE_MODEL (playlist->priv->model), &iter, path)) { need_set = TRUE; } gtk_tree_path_free (path); } else { /* Add */ gtk_list_store_append (playlist->priv->model, &iter); need_set = TRUE; } if (need_set) { /* Set appropriate data in playlist row */ ario_util_format_time_buf (song->time, time, ARIO_MAX_TIME_SIZE); ario_util_format_track_buf (song->track, track, ARIO_MAX_TRACK_SIZE); title = ario_util_format_title (song); gtk_list_store_set (playlist->priv->model, &iter, TRACK_COLUMN, track, TITLE_COLUMN, title, ARTIST_COLUMN, song->artist, ALBUM_COLUMN, song->album ? song->album : ARIO_SERVER_UNKNOWN, DURATION_COLUMN, time, FILE_COLUMN, song->file, GENRE_COLUMN, song->genre, DATE_COLUMN, song->date, ID_COLUMN, song->id, TIME_COLUMN, song->time, DISC_COLUMN, song->disc, -1); } } g_slist_foreach (songs, (GFunc) ario_server_free_song, NULL); g_slist_free (songs); playlist->priv->playlist_length = ario_server_get_current_playlist_length (); /* Remove rows at the end of playlist if playlist size has decreased */ if (playlist->priv->playlist_length < old_length) { path = gtk_tree_path_new_from_indices (playlist->priv->playlist_length, -1); if (gtk_tree_model_get_iter (GTK_TREE_MODEL (playlist->priv->model), &iter, path)) { while (gtk_list_store_remove (playlist->priv->model, &iter)) { } } gtk_tree_path_free (path); } /* Synchronize 'playing' pixbuf in playlist */ ario_playlist_sync_song (); } static void ario_playlist_connectivity_changed_cb (ArioServer *server, ArioPlaylist *playlist) { ARIO_LOG_FUNCTION_START; if (!ario_server_is_connected ()) ario_playlist_changed_cb (server, playlist); } static void ario_playlist_song_changed_cb (ArioServer *server, ArioPlaylist *playlist) { ARIO_LOG_FUNCTION_START; ario_playlist_sync_song (); /* Autoscroll in playlist on song chang if option is activated */ if (ario_conf_get_boolean (PREF_PLAYLIST_AUTOSCROLL, PREF_PLAYLIST_AUTOSCROLL_DEFAULT)) ario_playlist_cmd_goto_playing_song (NULL, NULL, playlist); } static void ario_playlist_state_changed_cb (ArioServer *server, ArioPlaylist *playlist) { ARIO_LOG_FUNCTION_START; static gboolean first_run = TRUE; /* Synchronise song information */ ario_playlist_sync_song (); /* Set focus to playlist at first start */ if (first_run && ario_server_is_connected()) { gtk_widget_grab_focus (playlist->priv->tree); first_run = FALSE; } } static void ario_playlist_sort_changed_cb (GtkTreeSortable *treesortable, ArioPlaylist *playlist) { ARIO_LOG_FUNCTION_START; g_signal_connect (playlist->priv->model, "rows-reordered", G_CALLBACK (ario_playlist_rows_reordered_cb), playlist); } static gboolean ario_playlist_rows_reordered_foreach (GtkTreeModel *model, GtkTreePath *p, GtkTreeIter *iter, GSList **ids) { gint *id; id = g_malloc (sizeof (gint)); gtk_tree_model_get (model, iter, ID_COLUMN, id, -1); *ids = g_slist_append (*ids, id); return FALSE; } static void ario_playlist_rows_reordered_cb (GtkTreeModel *tree_model, GtkTreePath *path, GtkTreeIter *iter, gpointer arg3, ArioPlaylist *playlist) { ARIO_LOG_FUNCTION_START; GSList *tmp, *ids = NULL; int i = 0; g_signal_handlers_disconnect_by_func (G_OBJECT (playlist->priv->model), G_CALLBACK (ario_playlist_rows_reordered_cb), playlist); /* Get the list of songs ids in the playlist */ gtk_tree_model_foreach (GTK_TREE_MODEL (playlist->priv->model), (GtkTreeModelForeachFunc) ario_playlist_rows_reordered_foreach, &ids); /* Move songs on server according to the order in the playlist */ for (tmp = ids; tmp; tmp = g_slist_next (tmp)) { ario_server_queue_moveid (*((gint *)tmp->data), i); ++i; } /* Force a full synchronization of playlist in next update */ playlist->priv->playlist_id = -1; /* Commit songs moves */ ario_server_queue_commit (); g_slist_foreach (ids, (GFunc) g_free, NULL); g_slist_free (ids); g_signal_handlers_block_by_func (playlist->priv->model, G_CALLBACK (ario_playlist_sort_changed_cb), playlist); gtk_tree_sortable_set_sort_column_id (GTK_TREE_SORTABLE (playlist->priv->model), GTK_TREE_SORTABLE_DEFAULT_SORT_COLUMN_ID, GTK_SORT_ASCENDING); g_signal_handlers_unblock_by_func (playlist->priv->model, G_CALLBACK (ario_playlist_sort_changed_cb), playlist); } GtkWidget * ario_playlist_new (void) { ARIO_LOG_FUNCTION_START; ArioServer *server = ario_server_get_instance (); g_return_val_if_fail (instance == NULL, NULL); instance = g_object_new (TYPE_ARIO_PLAYLIST, NULL); g_return_val_if_fail (instance->priv != NULL, NULL); /* Connect signals to remain synchronized with music server */ g_signal_connect_object (server, "playlist_changed", G_CALLBACK (ario_playlist_changed_cb), instance, 0); g_signal_connect_object (server, "song_changed", G_CALLBACK (ario_playlist_song_changed_cb), instance, 0); g_signal_connect_object (server, "state_changed", G_CALLBACK (ario_playlist_state_changed_cb), instance, 0); g_signal_connect_object (server, "connectivity_changed", G_CALLBACK (ario_playlist_connectivity_changed_cb), instance, 0); /* Add contextual menu actions */ g_action_map_add_action_entries (G_ACTION_MAP (g_application_get_default ()), widget_actions, G_N_ELEMENTS (widget_actions), instance); return GTK_WIDGET (instance); } static int ario_playlist_get_indice (GtkTreePath *path) { ARIO_LOG_FUNCTION_START; GtkTreePath *parent_path = NULL; int *indices = NULL; int indice = -1; /* Get indice from a path depending on if search is activated or not */ if (instance->priv->in_search) { parent_path = gtk_tree_model_filter_convert_path_to_child_path (GTK_TREE_MODEL_FILTER (instance->priv->filter), path); if (parent_path) indices = gtk_tree_path_get_indices (parent_path); } else { indices = gtk_tree_path_get_indices (path); } if (indices) indice = indices[0]; if (parent_path) gtk_tree_path_free (parent_path); return indice; } static void ario_playlist_activate_selected (void) { ARIO_LOG_FUNCTION_START; GList *paths; GtkTreePath *path = NULL; GtkTreeModel *model = GTK_TREE_MODEL (instance->priv->model); /* Start playing a song when a row is activated */ paths = gtk_tree_selection_get_selected_rows (instance->priv->selection, &model); if (paths) path = paths->data; if (path) ario_server_do_play_pos (ario_playlist_get_indice (path)); g_list_foreach (paths, (GFunc) gtk_tree_path_free, NULL); g_list_free (paths); } static void ario_playlist_move_rows (const int x, const int y) { ARIO_LOG_FUNCTION_START; GtkTreePath *path = NULL; GtkTreeViewDropPosition drop_pos; gint pos; gint *indice; GList *list; int offset = 0; GtkTreePath *path_to_select; GtkTreeModel *model = GTK_TREE_MODEL (instance->priv->model); /* Get drop location */ gtk_tree_view_get_dest_row_at_pos (GTK_TREE_VIEW (instance->priv->tree), x, y, &path, &drop_pos); if (path == NULL) { pos = instance->priv->playlist_length; } else { indice = gtk_tree_path_get_indices (path); pos = indice[0]; /* Adjust position acording to drop after */ if ((drop_pos == GTK_TREE_VIEW_DROP_AFTER || drop_pos == GTK_TREE_VIEW_DROP_INTO_OR_AFTER) && pos < instance->priv->playlist_length) ++pos; gtk_tree_path_free (path); } /* Get all selected rows */ list = gtk_tree_selection_get_selected_rows (instance->priv->selection, &model); if (!list) return; /* Unselect all rows */ gtk_tree_selection_unselect_all (instance->priv->selection); /* For each selected row (starting from the end) */ for (list = g_list_last (list); list; list = g_list_previous (list)) { /* Get start pos */ indice = gtk_tree_path_get_indices ((GtkTreePath *) list->data); /* Compensate */ if (pos > indice[0]) --pos; /* Move the song */ ario_server_queue_move (indice[0] + offset, pos); /* Adjust offset to take the move into account */ if (pos < indice[0]) ++offset; path_to_select = gtk_tree_path_new_from_indices (pos, -1); gtk_tree_selection_select_path (instance->priv->selection, path_to_select); gtk_tree_path_free (path_to_select); } g_list_foreach (list, (GFunc) gtk_tree_path_free, NULL); g_list_free (list); /* Commit queue moves */ ario_server_queue_commit (); } static void ario_playlist_copy_rows (const int x, const int y) { ARIO_LOG_FUNCTION_START; GtkTreePath *path = NULL; GtkTreeViewDropPosition drop_pos; gint pos; gint *indice; GList *list; GSList *songs = NULL; GtkTreeModel *model = GTK_TREE_MODEL (instance->priv->model); GtkTreeIter iter; gchar *filename; /* Get drop location */ gtk_tree_view_get_dest_row_at_pos (GTK_TREE_VIEW (instance->priv->tree), x, y, &path, &drop_pos); if (path == NULL) { pos = instance->priv->playlist_length; } else { indice = gtk_tree_path_get_indices (path); pos = indice[0]; /* Adjust position acording to drop after */ if ((drop_pos == GTK_TREE_VIEW_DROP_AFTER || drop_pos == GTK_TREE_VIEW_DROP_INTO_OR_AFTER) && pos < instance->priv->playlist_length) ++pos; gtk_tree_path_free (path); } /* Get all selected rows */ list = gtk_tree_selection_get_selected_rows (instance->priv->selection, &model); /* Unselect all rows */ gtk_tree_selection_unselect_all (instance->priv->selection); /* For each selected row (starting from the end) */ for (; list; list = g_list_next (list)) { /* Get start pos */ gtk_tree_model_get_iter (model, &iter, (GtkTreePath *) list->data); gtk_tree_model_get (model, &iter, FILE_COLUMN, &filename, -1); songs = g_slist_append (songs, filename); } /* Insert songs in playlist */ ario_server_insert_at (songs, pos - 1); g_slist_foreach (songs, (GFunc) g_free, NULL); g_slist_free (songs); g_list_foreach (list, (GFunc) gtk_tree_path_free, NULL); g_list_free (list); } static gint ario_playlist_get_drop_position (const int x, const int y) { ARIO_LOG_FUNCTION_START; GtkTreeViewDropPosition pos; gint *indice; GtkTreePath *path = NULL; gint drop = 1; if (x < 0 || y < 0) return -1; /* Get drop location */ gtk_tree_view_get_dest_row_at_pos (GTK_TREE_VIEW (instance->priv->tree), x, y, &path, &pos); if (!path) return -1; /* Grab drop localtion */ indice = gtk_tree_path_get_indices (path); drop = indice[0]; /* Adjust position */ if ((pos == GTK_TREE_VIEW_DROP_BEFORE || pos == GTK_TREE_VIEW_DROP_INTO_OR_BEFORE) && drop > 0) --drop; gtk_tree_path_free (path); return drop; } static void ario_playlist_drop_songs (const int x, const int y, GtkSelectionData *data) { ARIO_LOG_FUNCTION_START; gchar **songs; GSList *filenames = NULL; int i; songs = g_strsplit ((const gchar *) gtk_selection_data_get_data (data), "\n", 0); /* Get a list of filenames */ for (i=0; songs[i]!=NULL && g_utf8_collate (songs[i], ""); ++i) filenames = g_slist_append (filenames, songs[i]); /* Add songs to the playlist */ ario_server_playlist_add_songs (filenames, ario_playlist_get_drop_position (x, y), PLAYLIST_ADD); g_strfreev (songs); g_slist_free (filenames); } static void ario_playlist_drop_dir (const int x, const int y, GtkSelectionData *data) { ARIO_LOG_FUNCTION_START; const gchar *dir = (const gchar *) gtk_selection_data_get_data (data); /* Add a whole directory to the playlist */ ario_server_playlist_add_dir (dir, ario_playlist_get_drop_position (x, y), PLAYLIST_ADD); } static void ario_playlist_drop_criterias (const int x, const int y, GtkSelectionData *data) { ARIO_LOG_FUNCTION_START; gchar **criterias_str; ArioServerCriteria *criteria; ArioServerAtomicCriteria *atomic_criteria; int i = 0, j; int nb; GSList *criterias = NULL; /* Get a list of criteria from drag data */ criterias_str = g_strsplit ((const gchar *) gtk_selection_data_get_data (data), "\n", 0); while (criterias_str[i] && *criterias_str[i] != '\0') { nb = atoi (criterias_str[i]); criteria = NULL; for (j=0; jtag = atoi (criterias_str[i+2*j+1]); atomic_criteria->value = g_strdup (criterias_str[i+2*j+2]); criteria = g_slist_append (criteria, atomic_criteria); } i += 2*nb + 1; criterias = g_slist_append (criterias, criteria); } g_strfreev (criterias_str); /* Add all songs matching the list of criteria to the playlist */ ario_server_playlist_add_criterias (criterias, ario_playlist_get_drop_position (x, y), PLAYLIST_ADD, -1); g_slist_foreach (criterias, (GFunc) ario_server_criteria_free, NULL); g_slist_free (criterias); } static void ario_playlist_drag_leave_cb (GtkWidget *widget, GdkDragContext *context, gint x, gint y, GtkSelectionData *data, guint info, guint time, gpointer user_data) { ARIO_LOG_FUNCTION_START; /* Call the appropriate functions depending on data type */ if (gtk_selection_data_get_data_type (data) == gdk_atom_intern ("text/internal-list", TRUE)) { #if GTK_CHECK_VERSION(2, 22, 0) if (gdk_drag_context_get_selected_action (context) & GDK_ACTION_COPY) #else if (context->action & GDK_ACTION_COPY) #endif ario_playlist_copy_rows (x, y); else ario_playlist_move_rows (x, y); } else if (gtk_selection_data_get_data_type (data) == gdk_atom_intern ("text/songs-list", TRUE)) { ario_playlist_drop_songs (x, y, data); } else if (gtk_selection_data_get_data_type (data) == gdk_atom_intern ("text/radios-list", TRUE)) { ario_playlist_drop_songs (x, y, data); } else if (gtk_selection_data_get_data_type (data) == gdk_atom_intern ("text/directory", TRUE)) { ario_playlist_drop_dir (x, y, data); } else if (gtk_selection_data_get_data_type (data) == gdk_atom_intern ("text/criterias-list", TRUE)) { ario_playlist_drop_criterias (x, y, data); } /* Finish the drag */ gtk_drag_finish (context, TRUE, FALSE, time); } static void ario_playlist_drag_data_get_cb (GtkWidget * widget, GdkDragContext * context, GtkSelectionData * selection_data, guint info, guint time, gpointer data) { ARIO_LOG_FUNCTION_START; g_return_if_fail (selection_data != NULL); gtk_selection_data_set (selection_data, gtk_selection_data_get_target (selection_data), 8, NULL, 0); } static gboolean ario_playlist_drag_drop_cb (GtkWidget * widget, gint x, gint y, guint time, ArioPlaylist *playlist) { ARIO_LOG_FUNCTION_START; /* Drag and drop is deactivated when search is activated */ if (instance->priv->in_search) g_signal_stop_emission_by_name (widget, "drag_drop"); return FALSE; } static void ario_playlist_popup_menu_cb (ArioDndTree* tree, ArioPlaylist *playlist) { ARIO_LOG_FUNCTION_START; /* Show popup menu */ gtk_menu_popup_at_pointer (GTK_MENU (playlist->priv->menu), NULL); } static void ario_playlist_activate_cb (ArioDndTree* tree, ArioPlaylist *playlist) { ARIO_LOG_FUNCTION_START; ario_playlist_activate_selected (); } static void ario_playlist_cmd_clear (GSimpleAction *action, GVariant *parameter, gpointer data) { ARIO_LOG_FUNCTION_START; /* Clear playlist */ ario_server_clear (); } static void ario_playlist_cmd_shuffle (GSimpleAction *action, GVariant *parameter, gpointer data) { ARIO_LOG_FUNCTION_START; /* Shuffle playlist */ ario_server_shuffle (); } static void ario_playlist_selection_remove_foreach (GtkTreeModel *model, GtkTreePath *path, GtkTreeIter *iter, guint *deleted) { ARIO_LOG_FUNCTION_START; gint indice = ario_playlist_get_indice (path); if (indice >= 0) { /* Remove song from playlist on server */ ario_server_queue_delete_pos (indice - *deleted); ++(*deleted); } } static void ario_playlist_remove (void) { ARIO_LOG_FUNCTION_START; guint deleted = 0; /* Delete every selected song */ gtk_tree_selection_selected_foreach (instance->priv->selection, (GtkTreeSelectionForeachFunc) ario_playlist_selection_remove_foreach, &deleted); /* Commit song deletions */ ario_server_queue_commit (); /* Unselect all rows */ gtk_tree_selection_unselect_all (instance->priv->selection); } static void ario_playlist_cmd_remove (GSimpleAction *action, GVariant *parameter, gpointer data) { ARIO_LOG_FUNCTION_START; ario_playlist_remove (); } typedef struct ArioPlaylistCropData { gint kept; gint deleted; } ArioPlaylistCropData; static void ario_playlist_selection_crop_foreach (GtkTreeModel *model, GtkTreePath *path, GtkTreeIter *iter, ArioPlaylistCropData *data) { ARIO_LOG_FUNCTION_START; gint indice = ario_playlist_get_indice (path); if (indice >= 0) { /* Remove all rows between the last kept row and the current row */ while (data->deleted + data->kept < indice) { ario_server_queue_delete_pos (data->kept); ++data->deleted; } /* Keep the current row */ ++data->kept; } } static void ario_playlist_cmd_crop (GSimpleAction *action, GVariant *parameter, gpointer data) { ARIO_LOG_FUNCTION_START; ArioPlaylistCropData crop_data; crop_data.kept = 0; crop_data.deleted = 0; /* Call ario_playlist_selection_crop_foreach, for each selected row */ gtk_tree_selection_selected_foreach (instance->priv->selection, (GtkTreeSelectionForeachFunc) ario_playlist_selection_crop_foreach, &crop_data); /* Delete all songs after the last selected one */ while (crop_data.deleted + crop_data.kept < instance->priv->playlist_length) { ario_server_queue_delete_pos (crop_data.kept); ++crop_data.deleted; } /* Commit song deletions */ ario_server_queue_commit (); /* Unselect all rows */ gtk_tree_selection_unselect_all (instance->priv->selection); } static void ario_playlist_search (ArioPlaylist *playlist, const char* text) { ARIO_LOG_FUNCTION_START; if (!playlist->priv->in_search) { /* Show search box */ gtk_widget_show (playlist->priv->search_hbox); gtk_widget_grab_focus (playlist->priv->search_entry); gtk_entry_set_text (GTK_ENTRY (playlist->priv->search_entry), text); gtk_editable_set_position (GTK_EDITABLE (playlist->priv->search_entry), -1); gtk_tree_view_set_model (GTK_TREE_VIEW (playlist->priv->tree), GTK_TREE_MODEL (playlist->priv->filter)); gtk_tree_view_set_headers_clickable (GTK_TREE_VIEW (playlist->priv->tree), FALSE); playlist->priv->in_search = TRUE; /* Handles drag & drop differently while filters are activated */ playlist->priv->dnd_handler = g_signal_connect (playlist->priv->tree, "drag_drop", G_CALLBACK (ario_playlist_drag_drop_cb), playlist); } } static void ario_playlist_cmd_search (GSimpleAction *action, GVariant *parameter, gpointer data) { ARIO_LOG_FUNCTION_START; ArioPlaylist *playlist = ARIO_PLAYLIST (data); ario_playlist_search (playlist, ""); gtk_tree_model_filter_refilter (playlist->priv->filter); } static void ario_playlist_selection_properties_foreach (GtkTreeModel *model, GtkTreePath *path, GtkTreeIter *iter, gpointer userdata) { ARIO_LOG_FUNCTION_START; GSList **paths = (GSList **) userdata; gchar *val = NULL; gtk_tree_model_get (model, iter, FILE_COLUMN, &val, -1); *paths = g_slist_append (*paths, val); } static void ario_playlist_cmd_songs_properties (GSimpleAction *action, GVariant *parameter, gpointer data) { ARIO_LOG_FUNCTION_START; ArioPlaylist *playlist = ARIO_PLAYLIST (data); GSList *paths = NULL; GtkWidget *songinfos; /* Get a list of selected song paths */ gtk_tree_selection_selected_foreach (playlist->priv->selection, ario_playlist_selection_properties_foreach, &paths); /* Show the songinfos dialog for all selected songs */ if (paths) { songinfos = ario_shell_songinfos_new (paths); if (songinfos) gtk_widget_show_all (songinfos); g_slist_foreach (paths, (GFunc) g_free, NULL); g_slist_free (paths); } } static gboolean ario_playlist_cmd_goto_playing_song_foreach (GtkTreeModel *model, GtkTreePath *path, GtkTreeIter *iter, ArioPlaylist *playlist) { int song_id; gtk_tree_model_get (model, iter, ID_COLUMN, &song_id, -1); /* The song is the currently playing song */ if (song_id == ario_server_get_current_song_id ()) { /* Scroll to current song */ gtk_tree_view_scroll_to_cell (GTK_TREE_VIEW (playlist->priv->tree), path, NULL, TRUE, 0.5, 0); /* Select current song */ gtk_tree_view_set_cursor (GTK_TREE_VIEW (playlist->priv->tree), path, NULL, FALSE); return TRUE; } return FALSE; } static void ario_playlist_cmd_goto_playing_song (GSimpleAction *action, GVariant *parameter, gpointer data) { ARIO_LOG_FUNCTION_START; ArioPlaylist *playlist = ARIO_PLAYLIST (data); /* Call ario_playlist_cmd_goto_playing_song_foreach for each song in playlist */ if (instance->priv->in_search) { gtk_tree_model_foreach (GTK_TREE_MODEL (playlist->priv->filter), (GtkTreeModelForeachFunc) ario_playlist_cmd_goto_playing_song_foreach, playlist); } else { gtk_tree_model_foreach (GTK_TREE_MODEL (playlist->priv->model), (GtkTreeModelForeachFunc) ario_playlist_cmd_goto_playing_song_foreach, playlist); } /* Also go to the playing song in the souces */ ario_source_manager_goto_playling_song (); } void ario_playlist_cmd_save (GSimpleAction *action, GVariant *parameter, gpointer data) { ARIO_LOG_FUNCTION_START; GtkWidget *dialog; GtkWidget *hbox; GtkWidget *label, *entry; gint retval = GTK_RESPONSE_CANCEL; gchar *name; /* Create the widgets */ dialog = gtk_dialog_new_with_buttons (_("Save playlist"), NULL, GTK_DIALOG_DESTROY_WITH_PARENT, _("_Cancel"), GTK_RESPONSE_CANCEL, _("_OK"), GTK_RESPONSE_OK, NULL); gtk_dialog_set_default_response (GTK_DIALOG (dialog), GTK_RESPONSE_OK); label = gtk_label_new (_("Playlist name :")); entry = gtk_entry_new (); hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 5); gtk_box_pack_start (GTK_BOX (hbox), label, TRUE, TRUE, 0); gtk_box_pack_start (GTK_BOX (hbox), entry, TRUE, TRUE, 0); gtk_container_set_border_width (GTK_CONTAINER (hbox), 10); gtk_box_set_spacing (GTK_BOX (hbox), 4); gtk_container_add (GTK_CONTAINER (gtk_dialog_get_content_area (GTK_DIALOG (dialog))), hbox); gtk_widget_show_all (dialog); /* Launch dialog */ retval = gtk_dialog_run (GTK_DIALOG(dialog)); if (retval != GTK_RESPONSE_OK) { gtk_widget_destroy (dialog); return; } /* Get playlist name */ name = g_strdup (gtk_entry_get_text (GTK_ENTRY (entry))); gtk_widget_destroy (dialog); /* Save playlist */ if (ario_server_save_playlist (name)) { /* Playlist exists: ask for a confirmation before replacement */ dialog = gtk_message_dialog_new (NULL, GTK_DIALOG_MODAL, GTK_MESSAGE_QUESTION, GTK_BUTTONS_YES_NO, _("Playlist already exists. Do you want to overwrite it?")); retval = gtk_dialog_run (GTK_DIALOG (dialog)); gtk_widget_destroy (dialog); if (retval == GTK_RESPONSE_YES) { ario_server_delete_playlist (name); ario_server_save_playlist (name); } } g_free (name); } static gboolean ario_playlist_view_key_press_cb (GtkWidget *widget, GdkEventKey *event, ArioPlaylist *playlist) { ARIO_LOG_FUNCTION_START; if (event->keyval == GDK_KEY_Delete) { /* Del key removes songs from playlist */ ario_playlist_remove (); } else if (event->keyval == GDK_KEY_Return) { /* Enter key activate a song */ ario_playlist_activate_selected (); return TRUE; } else if (event->string && event->length > 0 && event->keyval != GDK_KEY_Escape && !(event->state & GDK_CONTROL_MASK)) { /* Other keys start the search in playlist */ ario_playlist_search (playlist, event->string); } return FALSE; } static void ario_playlist_column_visible_changed_cb (guint notification_id, ArioPlaylistColumn *ario_column) { ARIO_LOG_FUNCTION_START; /* Called when user changes column visibility in preferences */ gtk_tree_view_column_set_visible (ario_column->column, ario_conf_get_integer (ario_column->pref_is_visible, ario_column->default_is_visible)); } static gboolean ario_playlist_get_total_time_foreach (GtkTreeModel *model, GtkTreePath *p, GtkTreeIter *iter, int *total_time) { gint time; gtk_tree_model_get (model, iter, TIME_COLUMN, &time, -1); *total_time += time; return FALSE; } gint ario_playlist_get_total_time (void) { ARIO_LOG_FUNCTION_START; int total_time = 0; /* Compute total time by adding all song times */ gtk_tree_model_foreach (GTK_TREE_MODEL (instance->priv->model), (GtkTreeModelForeachFunc) ario_playlist_get_total_time_foreach, &total_time); return total_time; } ario-1.6/src/lib/0000755000175000017500000000000013226745613010661 500000000000000ario-1.6/src/lib/libmpdclient.c0000644000175000017500000015642213226723433013421 00000000000000/* libmpdclient (c)2003-2006 by Warren Dukes (warren.dukes@gmail.com) This project's homepage is: http://www.musicpd.org Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: - Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. - Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. - Neither the name of the Music Player Daemon nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ #include "libmpdclient.h" #include #include #include #include #include #include #include #include #include #include #ifdef WIN32 # include # include #else # include # include # include # include #endif /* (bits+1)/3 (plus the sign character) */ #define INTLEN ((sizeof(int) * CHAR_BIT + 1) / 3 + 1) #define LONGLONGLEN ((sizeof(long long) * CHAR_BIT + 1) / 3 + 1) #define COMMAND_LIST 1 #define COMMAND_LIST_OK 2 #ifndef MPD_NO_GAI # ifdef AI_ADDRCONFIG # define MPD_HAVE_GAI # endif #endif #ifndef MSG_DONTWAIT # define MSG_DONTWAIT 0 #endif #ifdef WIN32 # define SELECT_ERRNO_IGNORE (errno == WSAEINTR || errno == WSAEINPROGRESS) # define SENDRECV_ERRNO_IGNORE SELECT_ERRNO_IGNORE #else # define SELECT_ERRNO_IGNORE (errno == EINTR) # define SENDRECV_ERRNO_IGNORE (errno == EINTR || errno == EAGAIN) # define winsock_dll_error(c) 0 # define closesocket(s) close(s) # define WSACleanup() do { /* nothing */ } while (0) #endif static const char *const idle_names[] = { "database", "stored_playlist", "playlist", "player", "mixer", "output", "options", NULL }; #ifdef WIN32 static int winsock_dll_error(mpd_Connection *connection) { WSADATA wsaData; if ((WSAStartup(MAKEWORD(2, 2), &wsaData)) != 0 || LOBYTE(wsaData.wVersion) != 2 || HIBYTE(wsaData.wVersion) != 2 ) { strcpy(connection->errorStr, "Could not find usable WinSock DLL."); connection->error = MPD_ERROR_1_SYSTEM; return 1; } return 0; } static int do_connect_fail(mpd_Connection *connection, const struct sockaddr *serv_addr, int addrlen) { int iMode = 1; /* 0 = blocking, else non-blocking */ if (connect(connection->sock, serv_addr, addrlen) == SOCKET_ERROR) return 1; ioctlsocket(connection->sock, FIONBIO, (u_long FAR*) &iMode); return 0; } #else /* !WIN32 (sane operating systems) */ static int do_connect_fail(mpd_Connection *connection, const struct sockaddr *serv_addr, int addrlen) { int flags; if (connect(connection->sock, serv_addr, addrlen) < 0) return 1; flags = fcntl(connection->sock, F_GETFL, 0); fcntl(connection->sock, F_SETFL, flags | O_NONBLOCK); return 0; } #endif /* !WIN32 */ #ifdef MPD_HAVE_GAI static int mpd_connect(mpd_Connection * connection, const char * host, int port, float timeout) { int error; char service[INTLEN+1]; struct addrinfo hints; struct addrinfo *res = NULL; struct addrinfo *addrinfo = NULL; /** * Setup hints */ hints.ai_flags = AI_ADDRCONFIG; hints.ai_family = AF_UNSPEC; hints.ai_socktype = SOCK_STREAM; hints.ai_protocol = IPPROTO_TCP; hints.ai_addrlen = 0; hints.ai_addr = NULL; hints.ai_canonname = NULL; hints.ai_next = NULL; snprintf(service, sizeof(service), "%i", port); error = getaddrinfo(host, service, &hints, &addrinfo); if (error) { snprintf(connection->errorStr, MPD_ERRORSTR_MAX_LENGTH, "host \"%s\" not found: %s", host, gai_strerror(error)); connection->error = MPD_ERROR_1_UNKHOST; return -1; } for (res = addrinfo; res; res = res->ai_next) { /* create socket */ if (connection->sock >= 0) closesocket(connection->sock); connection->sock = socket(res->ai_family, SOCK_STREAM, res->ai_protocol); if (connection->sock < 0) { snprintf(connection->errorStr, MPD_ERRORSTR_MAX_LENGTH, "problems creating socket: %s", strerror(errno)); connection->error = MPD_ERROR_1_SYSTEM; freeaddrinfo(addrinfo); return -1; } mpd_setConnectionTimeout(connection, timeout); /* connect stuff */ if (do_connect_fail(connection, res->ai_addr, res->ai_addrlen)) { /* try the next address */ closesocket(connection->sock); connection->sock = -1; continue; } break; } freeaddrinfo(addrinfo); if (connection->sock < 0) { snprintf(connection->errorStr, MPD_ERRORSTR_MAX_LENGTH, "problems connecting to \"%s\" on port %i: %s", host, port, strerror(errno)); connection->error = MPD_ERROR_1_CONNPORT; return -1; } return 0; } #else /* !MPD_HAVE_GAI */ static int mpd_connect(mpd_Connection * connection, const char * host, int port, float timeout) { struct hostent * he; struct sockaddr * dest; int destlen; struct sockaddr_in sin; if(!(he=gethostbyname(host))) { snprintf(connection->errorStr,MPD_ERRORSTR_MAX_LENGTH, "host \"%s\" not found",host); connection->error = MPD_ERROR_1_UNKHOST; return -1; } memset(&sin,0,sizeof(struct sockaddr_in)); /*dest.sin_family = he->h_addrtype;*/ sin.sin_family = AF_INET; sin.sin_port = htons(port); switch(he->h_addrtype) { case AF_INET: memcpy((char *)&sin.sin_addr.s_addr,(char *)he->h_addr, he->h_length); dest = (struct sockaddr *)&sin; destlen = sizeof(struct sockaddr_in); break; default: strcpy(connection->errorStr,"address type is not IPv4"); connection->error = MPD_ERROR_1_SYSTEM; return -1; break; } if (connection->sock >= 0) closesocket(connection->sock); if((connection->sock = socket(dest->sa_family,SOCK_STREAM,0))<0) { strcpy(connection->errorStr,"problems creating socket"); connection->error = MPD_ERROR_1_SYSTEM; return -1; } mpd_setConnectionTimeout(connection,timeout); /* connect stuff */ if (do_connect_fail(connection, dest, destlen)) { snprintf(connection->errorStr,MPD_ERRORSTR_MAX_LENGTH, "problems connecting to \"%s\" on port" " %i",host,port); connection->error = MPD_ERROR_1_CONNPORT; return -1; } return 0; } #endif /* !MPD_HAVE_GAI */ char * mpdTagItemKeys[MPD_TAG_NUM_OF_ITEM_TYPES] = { "Artist", "Album", "AlbumArtist", "Title", "Track", "Name", "Genre", "Date", "Composer", "Performer", "Comment", "Disc", "Filename", "Any" }; static char * mpd_sanitizeArg(const char * arg) { size_t i; char * ret; register const char *c; register char *rc; /* instead of counting in that loop above, just * use a bit more memory and half running time */ ret = malloc(strlen(arg) * 2 + 1); c = arg; rc = ret; for(i = strlen(arg)+1; i != 0; --i) { if(*c=='"' || *c=='\\') *rc++ = '\\'; *(rc++) = *(c++); } return ret; } static mpd_ReturnElement * mpd_newReturnElement(const char * name, const char * value) { mpd_ReturnElement * ret = malloc(sizeof(mpd_ReturnElement)); ret->name = strdup(name); ret->value = strdup(value); return ret; } static void mpd_freeReturnElement(mpd_ReturnElement * re) { free(re->name); free(re->value); free(re); } void mpd_setConnectionTimeout(mpd_Connection * connection, float timeout) { connection->timeout.tv_sec = (int)timeout; connection->timeout.tv_usec = (int)(timeout*1e6 - connection->timeout.tv_sec*1000000 + 0.5); } static int mpd_parseWelcome(mpd_Connection * connection, const char * host, int port, char * output) { char * tmp; char * test; int i; if(strncmp(output,MPD_WELCOME_MESSAGE,strlen(MPD_WELCOME_MESSAGE))) { snprintf(connection->errorStr,MPD_ERRORSTR_MAX_LENGTH, "mpd not running on port %i on host \"%s\"", port,host); connection->error = MPD_ERROR_1_NOTMPD; return 1; } tmp = &output[strlen(MPD_WELCOME_MESSAGE)]; for(i=0;i<3;i++) { if(tmp) connection->version[i] = strtol(tmp,&test,10); if (!tmp || (test[0] != '.' && test[0] != '\0')) { snprintf(connection->errorStr, MPD_ERRORSTR_MAX_LENGTH, "error parsing version number at " "\"%s\"", &output[strlen(MPD_WELCOME_MESSAGE)]); connection->error = MPD_ERROR_1_NOTMPD; return 1; } tmp = ++test; } return 0; } mpd_Connection * mpd_newConnection(const char * host, int port, float timeout) { int err; char * rt; char * output = NULL; mpd_Connection * connection = malloc(sizeof(mpd_Connection)); struct timeval tv; fd_set fds; strcpy(connection->buffer,""); connection->sock = -1; connection->buflen = 0; connection->bufstart = 0; strcpy(connection->errorStr,""); connection->error = 0; connection->doneProcessing = 0; connection->commandList = 0; connection->listOks = 0; connection->doneListOk = 0; connection->returnElement = NULL; connection->request = NULL; #ifdef MPD_GLIB connection->source_id = 0; #endif connection->idle = 0; connection->startIdle = NULL; connection->stopIdle = NULL; connection->notify_cb = NULL; if (winsock_dll_error(connection)) return connection; if (mpd_connect(connection, host, port, timeout) < 0) return connection; while(!(rt = strstr(connection->buffer,"\n"))) { tv.tv_sec = connection->timeout.tv_sec; tv.tv_usec = connection->timeout.tv_usec; FD_ZERO(&fds); FD_SET(connection->sock,&fds); if((err = select(connection->sock+1,&fds,NULL,NULL,&tv)) == 1) { int readed; readed = recv(connection->sock, &(connection->buffer[connection->buflen]), MPD_BUFFER_MAX_LENGTH-connection->buflen,0); if(readed<=0) { snprintf(connection->errorStr,MPD_ERRORSTR_MAX_LENGTH, "problems getting a response from" " \"%s\" on port %i : %s",host, port, strerror(errno)); connection->error = MPD_ERROR_1_NORESPONSE; return connection; } connection->buflen+=readed; connection->buffer[connection->buflen] = '\0'; } else if(err<0) { if (SELECT_ERRNO_IGNORE) continue; snprintf(connection->errorStr, MPD_ERRORSTR_MAX_LENGTH, "problems connecting to \"%s\" on port" " %i",host,port); connection->error = MPD_ERROR_1_CONNPORT; return connection; } else { snprintf(connection->errorStr,MPD_ERRORSTR_MAX_LENGTH, "timeout in attempting to get a response from" " \"%s\" on port %i",host,port); connection->error = MPD_ERROR_1_NORESPONSE; return connection; } } *rt = '\0'; output = strdup(connection->buffer); strcpy(connection->buffer,rt+1); connection->buflen = strlen(connection->buffer); if(mpd_parseWelcome(connection,host,port,output) == 0) connection->doneProcessing = 1; free(output); return connection; } void mpd_clearError(mpd_Connection * connection) { connection->error = 0; connection->errorStr[0] = '\0'; } void mpd_closeConnection(mpd_Connection * connection) { closesocket(connection->sock); if(connection->returnElement) free(connection->returnElement); if(connection->request) free(connection->request); free(connection); WSACleanup(); } static void mpd_executeCommand(mpd_Connection * connection, char * command) { int ret; struct timeval tv; fd_set fds; char * commandPtr = command; int commandLen = strlen(command); if (connection->idle) mpd_stopIdle(connection); if(!connection->doneProcessing && !connection->commandList) { strcpy(connection->errorStr,"not done processing current command"); connection->error = 1; return; } mpd_clearError(connection); FD_ZERO(&fds); FD_SET(connection->sock,&fds); tv.tv_sec = connection->timeout.tv_sec; tv.tv_usec = connection->timeout.tv_usec; while((ret = select(connection->sock+1,NULL,&fds,NULL,&tv)==1) || (ret==-1 && SELECT_ERRNO_IGNORE)) { ret = send(connection->sock,commandPtr,commandLen,MSG_DONTWAIT); if(ret<=0) { if (SENDRECV_ERRNO_IGNORE) continue; snprintf(connection->errorStr,MPD_ERRORSTR_MAX_LENGTH, "problems giving command \"%s\"",command); connection->error = MPD_ERROR_1_SENDING; return; } else { commandPtr+=ret; commandLen-=ret; } if(commandLen<=0) break; } if(commandLen>0) { perror(""); snprintf(connection->errorStr,MPD_ERRORSTR_MAX_LENGTH, "timeout sending command \"%s\"",command); connection->error = MPD_ERROR_1_TIMEOUT; return; } if(!connection->commandList) connection->doneProcessing = 0; else if(connection->commandList == COMMAND_LIST_OK) { connection->listOks++; } } static void mpd_getNextReturnElement(mpd_Connection * connection) { char * output = NULL; char * rt = NULL; char * name = NULL; char * value = NULL; fd_set fds; struct timeval tv; char * tok = NULL; int readed; char * bufferCheck = NULL; int err; int pos; if(connection->returnElement) mpd_freeReturnElement(connection->returnElement); connection->returnElement = NULL; if(connection->doneProcessing || (connection->listOks && connection->doneListOk)) { strcpy(connection->errorStr,"already done processing current command"); connection->error = 1; return; } bufferCheck = connection->buffer+connection->bufstart; while(connection->bufstart>=connection->buflen || !(rt = strchr(bufferCheck,'\n'))) { if(connection->buflen>=MPD_BUFFER_MAX_LENGTH) { memmove(connection->buffer, connection->buffer+ connection->bufstart, connection->buflen- connection->bufstart+1); connection->buflen-=connection->bufstart; connection->bufstart = 0; } if(connection->buflen>=MPD_BUFFER_MAX_LENGTH) { strcpy(connection->errorStr,"buffer overrun"); connection->error = MPD_ERROR_1_BUFFEROVERRUN; connection->doneProcessing = 1; connection->doneListOk = 0; return; } bufferCheck = connection->buffer+connection->buflen; tv.tv_sec = connection->timeout.tv_sec; tv.tv_usec = connection->timeout.tv_usec; FD_ZERO(&fds); FD_SET(connection->sock,&fds); if((err = select(connection->sock+1,&fds,NULL,NULL,&tv) == 1)) { readed = recv(connection->sock, connection->buffer+connection->buflen, MPD_BUFFER_MAX_LENGTH-connection->buflen, MSG_DONTWAIT); if(readed<0 && SENDRECV_ERRNO_IGNORE) { continue; } if(readed<=0) { strcpy(connection->errorStr,"connection" " closed"); connection->error = MPD_ERROR_1_CONNCLOSED; connection->doneProcessing = 1; connection->doneListOk = 0; return; } connection->buflen+=readed; connection->buffer[connection->buflen] = '\0'; } else if(err<0 && SELECT_ERRNO_IGNORE) continue; else { strcpy(connection->errorStr,"connection timeout"); connection->error = MPD_ERROR_1_TIMEOUT; connection->doneProcessing = 1; connection->doneListOk = 0; return; } } *rt = '\0'; output = connection->buffer+connection->bufstart; connection->bufstart = rt - connection->buffer + 1; if(strcmp(output,"OK")==0) { if(connection->listOks > 0) { strcpy(connection->errorStr, "expected more list_OK's"); connection->error = 1; } connection->listOks = 0; connection->doneProcessing = 1; connection->doneListOk = 0; return; } if(strcmp(output, "list_OK") == 0) { if(!connection->listOks) { strcpy(connection->errorStr, "got an unexpected list_OK"); connection->error = 1; } else { connection->doneListOk = 1; connection->listOks--; } return; } if(strncmp(output,"ACK",strlen("ACK"))==0) { char * test; char * needle; int val; strcpy(connection->errorStr, output); connection->error = MPD_ERROR_1_ACK; connection->errorCode = MPD_ACK_ERROR_UNK; connection->errorAt = MPD_ERROR_1_AT_UNK; connection->doneProcessing = 1; connection->doneListOk = 0; needle = strchr(output, '['); if(!needle) return; val = strtol(needle+1, &test, 10); if(*test != '@') return; connection->errorCode = val; val = strtol(test+1, &test, 10); if(*test != ']') return; connection->errorAt = val; return; } tok = strchr(output, ':'); if (!tok) return; pos = tok - output; value = ++tok; name = output; name[pos] = '\0'; if(value[0]==' ') { connection->returnElement = mpd_newReturnElement(name,&(value[1])); } else { snprintf(connection->errorStr,MPD_ERRORSTR_MAX_LENGTH, "error parsing: %s:%s",name,value); connection->error = 1; } } void mpd_finishCommand(mpd_Connection * connection) { while(!connection->doneProcessing) { if(connection->doneListOk) connection->doneListOk = 0; mpd_getNextReturnElement(connection); } } static void mpd_finishListOkCommand(mpd_Connection * connection) { while(!connection->doneProcessing && connection->listOks && !connection->doneListOk) { mpd_getNextReturnElement(connection); } } int mpd_nextListOkCommand(mpd_Connection * connection) { mpd_finishListOkCommand(connection); if(!connection->doneProcessing) connection->doneListOk = 0; if(connection->listOks == 0 || connection->doneProcessing) return -1; return 0; } void mpd_sendStatusCommand(mpd_Connection * connection) { mpd_executeCommand(connection,"status\n"); } mpd_Status * mpd_getStatus(mpd_Connection * connection) { mpd_Status * status; /*mpd_executeCommand(connection,"status\n"); if(connection->error) return NULL;*/ if(connection->doneProcessing || (connection->listOks && connection->doneListOk)) { return NULL; } if(!connection->returnElement) mpd_getNextReturnElement(connection); status = malloc(sizeof(mpd_Status)); status->volume = -1; status->repeat = 0; status->random = 0; status->consume = 0; status->playlist = -1; status->playlistLength = -1; status->state = -1; status->song = 0; status->songid = 0; status->elapsedTime = 0; status->totalTime = 0; status->bitRate = 0; status->sampleRate = 0; status->bits = 0; status->channels = 0; status->crossfade = -1; status->error = NULL; status->updatingDb = 0; if(connection->error) { free(status); return NULL; } while(connection->returnElement) { mpd_ReturnElement * re = connection->returnElement; if(strcmp(re->name,"volume")==0) { status->volume = atoi(re->value); } else if(strcmp(re->name,"repeat")==0) { status->repeat = atoi(re->value); } else if(strcmp(re->name,"random")==0) { status->random = atoi(re->value); } else if(strcmp(re->name,"consume")==0) { status->consume = atoi(re->value); } else if(strcmp(re->name,"playlist")==0) { status->playlist = strtol(re->value,NULL,10); } else if(strcmp(re->name,"playlistlength")==0) { status->playlistLength = atoi(re->value); } else if(strcmp(re->name,"bitrate")==0) { status->bitRate = atoi(re->value); } else if(strcmp(re->name,"state")==0) { if(strcmp(re->value,"play")==0) { status->state = MPD_STATUS_STATE_PLAY; } else if(strcmp(re->value,"stop")==0) { status->state = MPD_STATUS_STATE_STOP; } else if(strcmp(re->value,"pause")==0) { status->state = MPD_STATUS_STATE_PAUSE; } else { status->state = MPD_STATUS_STATE_UNKNOWN; } } else if(strcmp(re->name,"song")==0) { status->song = atoi(re->value); } else if(strcmp(re->name,"songid")==0) { status->songid = atoi(re->value); } else if(strcmp(re->name,"time")==0) { char * tok = strchr(re->value,':'); /* the second strchr below is a safety check */ if (tok && (strchr(tok,0) > (tok+1))) { /* atoi stops at the first non-[0-9] char: */ status->elapsedTime = atoi(re->value); status->totalTime = atoi(tok+1); } } else if(strcmp(re->name,"error")==0) { status->error = strdup(re->value); } else if(strcmp(re->name,"xfade")==0) { status->crossfade = atoi(re->value); } else if(strcmp(re->name,"updating_db")==0) { status->updatingDb = atoi(re->value); } else if(strcmp(re->name,"audio")==0) { char * tok = strchr(re->value,':'); if (tok && (strchr(tok,0) > (tok+1))) { status->sampleRate = atoi(re->value); status->bits = atoi(++tok); tok = strchr(tok,':'); if (tok && (strchr(tok,0) > (tok+1))) status->channels = atoi(tok+1); } } mpd_getNextReturnElement(connection); if(connection->error) { free(status); return NULL; } } if(connection->error) { free(status); return NULL; } else if(status->state<0) { strcpy(connection->errorStr,"state not found"); connection->error = 1; free(status); return NULL; } return status; } void mpd_freeStatus(mpd_Status * status) { if(status->error) free(status->error); free(status); } void mpd_sendStatsCommand(mpd_Connection * connection) { mpd_executeCommand(connection,"stats\n"); } mpd_Stats * mpd_getStats(mpd_Connection * connection) { mpd_Stats * stats; /*mpd_executeCommand(connection,"stats\n"); if(connection->error) return NULL;*/ if(connection->doneProcessing || (connection->listOks && connection->doneListOk)) { return NULL; } if(!connection->returnElement) mpd_getNextReturnElement(connection); stats = malloc(sizeof(mpd_Stats)); stats->numberOfArtists = 0; stats->numberOfAlbums = 0; stats->numberOfSongs = 0; stats->uptime = 0; stats->dbUpdateTime = 0; stats->playTime = 0; stats->dbPlayTime = 0; if(connection->error) { free(stats); return NULL; } while(connection->returnElement) { mpd_ReturnElement * re = connection->returnElement; if(strcmp(re->name,"artists")==0) { stats->numberOfArtists = atoi(re->value); } else if(strcmp(re->name,"albums")==0) { stats->numberOfAlbums = atoi(re->value); } else if(strcmp(re->name,"songs")==0) { stats->numberOfSongs = atoi(re->value); } else if(strcmp(re->name,"uptime")==0) { stats->uptime = strtol(re->value,NULL,10); } else if(strcmp(re->name,"db_update")==0) { stats->dbUpdateTime = strtol(re->value,NULL,10); } else if(strcmp(re->name,"playtime")==0) { stats->playTime = strtol(re->value,NULL,10); } else if(strcmp(re->name,"db_playtime")==0) { stats->dbPlayTime = strtol(re->value,NULL,10); } mpd_getNextReturnElement(connection); if(connection->error) { free(stats); return NULL; } } if(connection->error) { free(stats); return NULL; } return stats; } void mpd_freeStats(mpd_Stats * stats) { free(stats); } mpd_SearchStats * mpd_getSearchStats(mpd_Connection * connection) { mpd_SearchStats * stats; mpd_ReturnElement * re; if (connection->doneProcessing || (connection->listOks && connection->doneListOk)) { return NULL; } if (!connection->returnElement) mpd_getNextReturnElement(connection); if (connection->error) return NULL; stats = malloc(sizeof(mpd_SearchStats)); stats->numberOfSongs = 0; stats->playTime = 0; while (connection->returnElement) { re = connection->returnElement; if (strcmp(re->name, "songs") == 0) { stats->numberOfSongs = atoi(re->value); } else if (strcmp(re->name, "playtime") == 0) { stats->playTime = strtol(re->value, NULL, 10); } mpd_getNextReturnElement(connection); if (connection->error) { free(stats); return NULL; } } if (connection->error) { free(stats); return NULL; } return stats; } void mpd_freeSearchStats(mpd_SearchStats * stats) { free(stats); } static void mpd_initSong(mpd_Song * song) { song->file = NULL; song->artist = NULL; song->album = NULL; song->album_artist = NULL; song->track = NULL; song->title = NULL; song->name = NULL; song->date = NULL; /* added by Qball */ song->genre = NULL; song->composer = NULL; song->performer = NULL; song->disc = NULL; song->comment = NULL; song->time = MPD_SONG_NO_TIME; song->pos = MPD_SONG_NO_NUM; song->id = MPD_SONG_NO_ID; } static void mpd_finishSong(mpd_Song * song) { if(song->file) free(song->file); if(song->artist) free(song->artist); if(song->album) free(song->album); if(song->album_artist) free(song->album_artist); if(song->title) free(song->title); if(song->track) free(song->track); if(song->name) free(song->name); if(song->date) free(song->date); if(song->genre) free(song->genre); if(song->composer) free(song->composer); if(song->performer) free(song->performer); if(song->disc) free(song->disc); if(song->comment) free(song->comment); } mpd_Song * mpd_newSong(void) { mpd_Song * ret = malloc(sizeof(mpd_Song)); mpd_initSong(ret); return ret; } void mpd_freeSong(mpd_Song * song) { mpd_finishSong(song); free(song); } mpd_Song * mpd_songDup(mpd_Song * song) { mpd_Song * ret = mpd_newSong(); if(song->file) ret->file = strdup(song->file); if(song->artist) ret->artist = strdup(song->artist); if(song->album) ret->album = strdup(song->album); if(song->album_artist) ret->album_artist = strdup(song->album_artist); if(song->title) ret->title = strdup(song->title); if(song->track) ret->track = strdup(song->track); if(song->name) ret->name = strdup(song->name); if(song->date) ret->date = strdup(song->date); if(song->genre) ret->genre= strdup(song->genre); if(song->composer) ret->composer= strdup(song->composer); if(song->performer) ret->performer = strdup(song->performer); if(song->disc) ret->disc = strdup(song->disc); if(song->comment) ret->comment = strdup(song->comment); ret->time = song->time; ret->pos = song->pos; ret->id = song->id; return ret; } static void mpd_initDirectory(mpd_Directory * directory) { directory->path = NULL; } static void mpd_finishDirectory(mpd_Directory * directory) { if(directory->path) free(directory->path); } mpd_Directory * mpd_newDirectory(void) { mpd_Directory * directory = malloc(sizeof(mpd_Directory));; mpd_initDirectory(directory); return directory; } void mpd_freeDirectory(mpd_Directory * directory) { mpd_finishDirectory(directory); free(directory); } mpd_Directory * mpd_directoryDup(mpd_Directory * directory) { mpd_Directory * ret = mpd_newDirectory(); if(directory->path) ret->path = strdup(directory->path); return ret; } static void mpd_initPlaylistFile(mpd_PlaylistFile * playlist) { playlist->path = NULL; } static void mpd_finishPlaylistFile(mpd_PlaylistFile * playlist) { if(playlist->path) free(playlist->path); } mpd_PlaylistFile * mpd_newPlaylistFile(void) { mpd_PlaylistFile * playlist = malloc(sizeof(mpd_PlaylistFile)); mpd_initPlaylistFile(playlist); return playlist; } void mpd_freePlaylistFile(mpd_PlaylistFile * playlist) { mpd_finishPlaylistFile(playlist); free(playlist); } mpd_PlaylistFile * mpd_playlistFileDup(mpd_PlaylistFile * playlist) { mpd_PlaylistFile * ret = mpd_newPlaylistFile(); if(playlist->path) ret->path = strdup(playlist->path); return ret; } static void mpd_initInfoEntity(mpd_InfoEntity * entity) { entity->info.directory = NULL; } static void mpd_finishInfoEntity(mpd_InfoEntity * entity) { if(entity->info.directory) { if(entity->type == MPD_INFO_ENTITY_TYPE_DIRECTORY) { mpd_freeDirectory(entity->info.directory); } else if(entity->type == MPD_INFO_ENTITY_TYPE_SONG) { mpd_freeSong(entity->info.song); } else if(entity->type == MPD_INFO_ENTITY_TYPE_PLAYLISTFILE) { mpd_freePlaylistFile(entity->info.playlistFile); } } } mpd_InfoEntity * mpd_newInfoEntity(void) { mpd_InfoEntity * entity = malloc(sizeof(mpd_InfoEntity)); mpd_initInfoEntity(entity); return entity; } void mpd_freeInfoEntity(mpd_InfoEntity * entity) { mpd_finishInfoEntity(entity); free(entity); } static void mpd_sendInfoCommand(mpd_Connection * connection, char * command) { mpd_executeCommand(connection,command); } mpd_InfoEntity * mpd_getNextInfoEntity(mpd_Connection * connection) { mpd_InfoEntity * entity = NULL; if(connection->doneProcessing || (connection->listOks && connection->doneListOk)) { return NULL; } if(!connection->returnElement) mpd_getNextReturnElement(connection); if(connection->returnElement) { if(strcmp(connection->returnElement->name,"file")==0) { entity = mpd_newInfoEntity(); entity->type = MPD_INFO_ENTITY_TYPE_SONG; entity->info.song = mpd_newSong(); entity->info.song->file = strdup(connection->returnElement->value); } else if(strcmp(connection->returnElement->name, "directory")==0) { entity = mpd_newInfoEntity(); entity->type = MPD_INFO_ENTITY_TYPE_DIRECTORY; entity->info.directory = mpd_newDirectory(); entity->info.directory->path = strdup(connection->returnElement->value); } else if(strcmp(connection->returnElement->name,"playlist")==0) { entity = mpd_newInfoEntity(); entity->type = MPD_INFO_ENTITY_TYPE_PLAYLISTFILE; entity->info.playlistFile = mpd_newPlaylistFile(); entity->info.playlistFile->path = strdup(connection->returnElement->value); } else if(strcmp(connection->returnElement->name, "cpos") == 0){ entity = mpd_newInfoEntity(); entity->type = MPD_INFO_ENTITY_TYPE_SONG; entity->info.song = mpd_newSong(); entity->info.song->pos = atoi(connection->returnElement->value); } else { connection->error = 1; strcpy(connection->errorStr,"problem parsing song info"); return NULL; } } else return NULL; mpd_getNextReturnElement(connection); while(connection->returnElement) { mpd_ReturnElement * re = connection->returnElement; if(strcmp(re->name,"file")==0) return entity; else if(strcmp(re->name,"directory")==0) return entity; else if(strcmp(re->name,"playlist")==0) return entity; else if(strcmp(re->name,"cpos")==0) return entity; if(entity->type == MPD_INFO_ENTITY_TYPE_SONG && strlen(re->value)) { if(!entity->info.song->artist && strcmp(re->name,"Artist")==0) { entity->info.song->artist = strdup(re->value); } else if(!entity->info.song->album && strcmp(re->name,"Album")==0) { entity->info.song->album = strdup(re->value); } else if(!entity->info.song->album_artist && strcmp(re->name,"AlbumArtist")==0) { entity->info.song->album_artist = strdup(re->value); } else if(!entity->info.song->title && strcmp(re->name,"Title")==0) { entity->info.song->title = strdup(re->value); } else if(!entity->info.song->track && strcmp(re->name,"Track")==0) { entity->info.song->track = strdup(re->value); } else if(!entity->info.song->name && strcmp(re->name,"Name")==0) { entity->info.song->name = strdup(re->value); } else if(entity->info.song->time==MPD_SONG_NO_TIME && strcmp(re->name,"Time")==0) { entity->info.song->time = atoi(re->value); } else if(entity->info.song->pos==MPD_SONG_NO_NUM && strcmp(re->name,"Pos")==0) { entity->info.song->pos = atoi(re->value); } else if(entity->info.song->id==MPD_SONG_NO_ID && strcmp(re->name,"Id")==0) { entity->info.song->id = atoi(re->value); } else if(!entity->info.song->date && strcmp(re->name, "Date") == 0) { entity->info.song->date = strdup(re->value); } else if(!entity->info.song->genre && strcmp(re->name, "Genre") == 0) { entity->info.song->genre = strdup(re->value); } else if(!entity->info.song->composer && strcmp(re->name, "Composer") == 0) { entity->info.song->composer = strdup(re->value); } else if(!entity->info.song->performer && strcmp(re->name, "Performer") == 0) { entity->info.song->performer = strdup(re->value); } else if(!entity->info.song->disc && strcmp(re->name, "Disc") == 0) { entity->info.song->disc = strdup(re->value); } else if(!entity->info.song->comment && strcmp(re->name, "Comment") == 0) { entity->info.song->comment = strdup(re->value); } } else if(entity->type == MPD_INFO_ENTITY_TYPE_DIRECTORY) { } else if(entity->type == MPD_INFO_ENTITY_TYPE_PLAYLISTFILE) { } mpd_getNextReturnElement(connection); } return entity; } static char * mpd_getNextReturnElementNamed(mpd_Connection * connection, const char * name) { if(connection->doneProcessing || (connection->listOks && connection->doneListOk)) { return NULL; } mpd_getNextReturnElement(connection); while(connection->returnElement) { mpd_ReturnElement * re = connection->returnElement; if(strcmp(re->name,name)==0) return strdup(re->value); mpd_getNextReturnElement(connection); } return NULL; } char *mpd_getNextTag(mpd_Connection *connection, int type) { if (type < 0 || type >= MPD_TAG_NUM_OF_ITEM_TYPES || type == MPD_TAG_ITEM_ANY) return NULL; if (type == MPD_TAG_ITEM_FILENAME) return mpd_getNextReturnElementNamed(connection, "file"); return mpd_getNextReturnElementNamed(connection, mpdTagItemKeys[type]); } char * mpd_getNextArtist(mpd_Connection * connection) { return mpd_getNextReturnElementNamed(connection,"Artist"); } char * mpd_getNextAlbum(mpd_Connection * connection) { return mpd_getNextReturnElementNamed(connection,"Album"); } void mpd_sendPlaylistInfoCommand(mpd_Connection * connection, int songPos) { int len = strlen("playlistinfo")+2+INTLEN+3; char *string = malloc(len); snprintf(string, len, "playlistinfo \"%i\"\n", songPos); mpd_sendInfoCommand(connection,string); free(string); } void mpd_sendPlaylistIdCommand(mpd_Connection * connection, int id) { int len = strlen("playlistid")+2+INTLEN+3; char *string = malloc(len); snprintf(string, len, "playlistid \"%i\"\n", id); mpd_sendInfoCommand(connection, string); free(string); } void mpd_sendPlChangesCommand(mpd_Connection * connection, long long playlist) { int len = strlen("plchanges")+2+LONGLONGLEN+3; char *string = malloc(len); snprintf(string, len, "plchanges \"%lld\"\n", playlist); mpd_sendInfoCommand(connection,string); free(string); } void mpd_sendPlChangesPosIdCommand(mpd_Connection * connection, long long playlist) { int len = strlen("plchangesposid")+2+LONGLONGLEN+3; char *string = malloc(len); snprintf(string, len, "plchangesposid \"%lld\"\n", playlist); mpd_sendInfoCommand(connection,string); free(string); } void mpd_sendListallCommand(mpd_Connection * connection, const char * dir) { char * sDir = mpd_sanitizeArg(dir); int len = strlen("listall")+2+strlen(sDir)+3; char *string = malloc(len); snprintf(string, len, "listall \"%s\"\n", sDir); mpd_sendInfoCommand(connection,string); free(string); free(sDir); } void mpd_sendListallInfoCommand(mpd_Connection * connection, const char * dir) { char * sDir = mpd_sanitizeArg(dir); int len = strlen("listallinfo")+2+strlen(sDir)+3; char *string = malloc(len); snprintf(string, len, "listallinfo \"%s\"\n", sDir); mpd_sendInfoCommand(connection,string); free(string); free(sDir); } void mpd_sendLsInfoCommand(mpd_Connection * connection, const char * dir) { char * sDir = mpd_sanitizeArg(dir); int len = strlen("lsinfo")+2+strlen(sDir)+3; char *string = malloc(len); snprintf(string, len, "lsinfo \"%s\"\n", sDir); mpd_sendInfoCommand(connection,string); free(string); free(sDir); } void mpd_sendCurrentSongCommand(mpd_Connection * connection) { mpd_executeCommand(connection,"currentsong\n"); } void mpd_sendSearchCommand(mpd_Connection * connection, int table, const char * str) { mpd_startSearch(connection, 0); mpd_addConstraintSearch(connection, table, str); mpd_commitSearch(connection); } void mpd_sendFindCommand(mpd_Connection * connection, int table, const char * str) { mpd_startSearch(connection, 1); mpd_addConstraintSearch(connection, table, str); mpd_commitSearch(connection); } void mpd_sendListCommand(mpd_Connection * connection, int table, const char * arg1) { char st[10]; int len; char *string; if(table == MPD_TABLE_ARTIST) strcpy(st,"artist"); else if(table == MPD_TABLE_ALBUM) strcpy(st,"album"); else { connection->error = 1; strcpy(connection->errorStr,"unknown table for list"); return; } if(arg1) { char * sanitArg1 = mpd_sanitizeArg(arg1); len = strlen("list")+1+strlen(sanitArg1)+2+strlen(st)+3; string = malloc(len); snprintf(string, len, "list %s \"%s\"\n", st, sanitArg1); free(sanitArg1); } else { len = strlen("list")+1+strlen(st)+2; string = malloc(len); snprintf(string, len, "list %s\n", st); } mpd_sendInfoCommand(connection,string); free(string); } void mpd_sendAddCommand(mpd_Connection * connection, const char * file) { char * sFile = mpd_sanitizeArg(file); int len = strlen("add")+2+strlen(sFile)+3; char *string = malloc(len); snprintf(string, len, "add \"%s\"\n", sFile); mpd_executeCommand(connection,string); free(string); free(sFile); } int mpd_sendAddIdCommand(mpd_Connection *connection, const char *file) { int retval = -1; char *sFile = mpd_sanitizeArg(file); int len = strlen("addid")+2+strlen(sFile)+3; char *string = malloc(len); snprintf(string, len, "addid \"%s\"\n", sFile); mpd_sendInfoCommand(connection, string); free(string); free(sFile); string = mpd_getNextReturnElementNamed(connection, "Id"); if (string) { retval = atoi(string); free(string); } return retval; } void mpd_sendDeleteCommand(mpd_Connection * connection, int songPos) { int len = strlen("delete")+2+INTLEN+3; char *string = malloc(len); snprintf(string, len, "delete \"%i\"\n", songPos); mpd_sendInfoCommand(connection,string); free(string); } void mpd_sendDeleteIdCommand(mpd_Connection * connection, int id) { int len = strlen("deleteid")+2+INTLEN+3; char *string = malloc(len); snprintf(string, len, "deleteid \"%i\"\n", id); mpd_sendInfoCommand(connection,string); free(string); } void mpd_sendSaveCommand(mpd_Connection * connection, const char * name) { char * sName = mpd_sanitizeArg(name); int len = strlen("save")+2+strlen(sName)+3; char *string = malloc(len); snprintf(string, len, "save \"%s\"\n", sName); mpd_executeCommand(connection,string); free(string); free(sName); } void mpd_sendLoadCommand(mpd_Connection * connection, const char * name) { char * sName = mpd_sanitizeArg(name); int len = strlen("load")+2+strlen(sName)+3; char *string = malloc(len); snprintf(string, len, "load \"%s\"\n", sName); mpd_executeCommand(connection,string); free(string); free(sName); } void mpd_sendRmCommand(mpd_Connection * connection, const char * name) { char * sName = mpd_sanitizeArg(name); int len = strlen("rm")+2+strlen(sName)+3; char *string = malloc(len); snprintf(string, len, "rm \"%s\"\n", sName); mpd_executeCommand(connection,string); free(string); free(sName); } void mpd_sendRenameCommand(mpd_Connection *connection, const char *from, const char *to) { char *sFrom = mpd_sanitizeArg(from); char *sTo = mpd_sanitizeArg(to); int len = strlen("rename")+2+strlen(sFrom)+3+strlen(sTo)+3; char *string = malloc(len); snprintf(string, len, "rename \"%s\" \"%s\"\n", sFrom, sTo); mpd_executeCommand(connection, string); free(string); free(sFrom); free(sTo); } void mpd_sendShuffleCommand(mpd_Connection * connection) { mpd_executeCommand(connection,"shuffle\n"); } void mpd_sendClearCommand(mpd_Connection * connection) { mpd_executeCommand(connection,"clear\n"); } void mpd_sendPlayCommand(mpd_Connection * connection, int songPos) { int len = strlen("play")+2+INTLEN+3; char *string = malloc(len); snprintf(string, len, "play \"%i\"\n", songPos); mpd_sendInfoCommand(connection,string); free(string); } void mpd_sendPlayIdCommand(mpd_Connection * connection, int id) { int len = strlen("playid")+2+INTLEN+3; char *string = malloc(len); snprintf(string, len, "playid \"%i\"\n", id); mpd_sendInfoCommand(connection,string); free(string); } void mpd_sendStopCommand(mpd_Connection * connection) { mpd_executeCommand(connection,"stop\n"); } void mpd_sendPauseCommand(mpd_Connection * connection, int pauseMode) { int len = strlen("pause")+2+INTLEN+3; char *string = malloc(len); snprintf(string, len, "pause \"%i\"\n", pauseMode); mpd_executeCommand(connection,string); free(string); } void mpd_sendNextCommand(mpd_Connection * connection) { mpd_executeCommand(connection,"next\n"); } void mpd_sendMoveCommand(mpd_Connection * connection, int from, int to) { int len = strlen("move")+2+INTLEN+3+INTLEN+3; char *string = malloc(len); snprintf(string, len, "move \"%i\" \"%i\"\n", from, to); mpd_sendInfoCommand(connection,string); free(string); } void mpd_sendMoveIdCommand(mpd_Connection * connection, int id, int to) { int len = strlen("moveid")+2+INTLEN+3+INTLEN+3; char *string = malloc(len); snprintf(string, len, "moveid \"%i\" \"%i\"\n", id, to); mpd_sendInfoCommand(connection,string); free(string); } void mpd_sendSwapCommand(mpd_Connection * connection, int song1, int song2) { int len = strlen("swap")+2+INTLEN+3+INTLEN+3; char *string = malloc(len); snprintf(string, len, "swap \"%i\" \"%i\"\n", song1, song2); mpd_sendInfoCommand(connection,string); free(string); } void mpd_sendSwapIdCommand(mpd_Connection * connection, int id1, int id2) { int len = strlen("swapid")+2+INTLEN+3+INTLEN+3; char *string = malloc(len); snprintf(string, len, "swapid \"%i\" \"%i\"\n", id1, id2); mpd_sendInfoCommand(connection,string); free(string); } void mpd_sendSeekCommand(mpd_Connection * connection, int song, int time) { int len = strlen("seek")+2+INTLEN+3+INTLEN+3; char *string = malloc(len); snprintf(string, len, "seek \"%i\" \"%i\"\n", song, time); mpd_sendInfoCommand(connection,string); free(string); } void mpd_sendSeekIdCommand(mpd_Connection * connection, int id, int time) { int len = strlen("seekid")+2+INTLEN+3+INTLEN+3; char *string = malloc(len); snprintf(string, len, "seekid \"%i\" \"%i\"\n", id, time); mpd_sendInfoCommand(connection,string); free(string); } void mpd_sendUpdateCommand(mpd_Connection * connection, const char * path) { char * sPath = mpd_sanitizeArg(path); int len = strlen("update")+2+strlen(sPath)+3; char *string = malloc(len); snprintf(string, len, "update \"%s\"\n", sPath); mpd_sendInfoCommand(connection,string); free(string); free(sPath); } int mpd_getUpdateId(mpd_Connection * connection) { char * jobid; int ret = 0; jobid = mpd_getNextReturnElementNamed(connection,"updating_db"); if(jobid) { ret = atoi(jobid); free(jobid); } return ret; } void mpd_sendPrevCommand(mpd_Connection * connection) { mpd_executeCommand(connection,"previous\n"); } void mpd_sendRepeatCommand(mpd_Connection * connection, int repeatMode) { int len = strlen("repeat")+2+INTLEN+3; char *string = malloc(len); snprintf(string, len, "repeat \"%i\"\n", repeatMode); mpd_executeCommand(connection,string); free(string); } void mpd_sendRandomCommand(mpd_Connection * connection, int randomMode) { int len = strlen("random")+2+INTLEN+3; char *string = malloc(len); snprintf(string, len, "random \"%i\"\n", randomMode); mpd_executeCommand(connection,string); free(string); } void mpd_sendConsumeCommand(mpd_Connection * connection, int consumeMode) { int len = strlen("consume")+2+INTLEN+3; char *string = malloc(len); snprintf(string, len, "consume \"%i\"\n", consumeMode); mpd_executeCommand(connection,string); free(string); } void mpd_sendSetvolCommand(mpd_Connection * connection, int volumeChange) { int len = strlen("setvol")+2+INTLEN+3; char *string = malloc(len); snprintf(string, len, "setvol \"%i\"\n", volumeChange); mpd_executeCommand(connection,string); free(string); } void mpd_sendVolumeCommand(mpd_Connection * connection, int volumeChange) { int len = strlen("volume")+2+INTLEN+3; char *string = malloc(len); snprintf(string, len, "volume \"%i\"\n", volumeChange); mpd_executeCommand(connection,string); free(string); } void mpd_sendCrossfadeCommand(mpd_Connection * connection, int seconds) { int len = strlen("crossfade")+2+INTLEN+3; char *string = malloc(len); snprintf(string, len, "crossfade \"%i\"\n", seconds); mpd_executeCommand(connection,string); free(string); } void mpd_sendPasswordCommand(mpd_Connection * connection, const char * pass) { char * sPass = mpd_sanitizeArg(pass); int len = strlen("password")+2+strlen(sPass)+3; char *string = malloc(len); snprintf(string, len, "password \"%s\"\n", sPass); mpd_executeCommand(connection,string); free(string); free(sPass); } void mpd_sendCommandListBegin(mpd_Connection * connection) { if(connection->commandList) { strcpy(connection->errorStr,"already in command list mode"); connection->error = 1; return; } connection->commandList = COMMAND_LIST; mpd_executeCommand(connection,"command_list_begin\n"); } void mpd_sendCommandListOkBegin(mpd_Connection * connection) { if(connection->commandList) { strcpy(connection->errorStr,"already in command list mode"); connection->error = 1; return; } connection->commandList = COMMAND_LIST_OK; mpd_executeCommand(connection,"command_list_ok_begin\n"); connection->listOks = 0; } void mpd_sendCommandListEnd(mpd_Connection * connection) { if(!connection->commandList) { strcpy(connection->errorStr,"not in command list mode"); connection->error = 1; return; } connection->commandList = 0; mpd_executeCommand(connection,"command_list_end\n"); } void mpd_sendOutputsCommand(mpd_Connection * connection) { mpd_executeCommand(connection,"outputs\n"); } mpd_OutputEntity * mpd_getNextOutput(mpd_Connection * connection) { mpd_OutputEntity * output = NULL; if(connection->doneProcessing || (connection->listOks && connection->doneListOk)) { return NULL; } if(connection->error) return NULL; output = malloc(sizeof(mpd_OutputEntity)); output->id = -10; output->name = NULL; output->enabled = 0; if(!connection->returnElement) mpd_getNextReturnElement(connection); while(connection->returnElement) { mpd_ReturnElement * re = connection->returnElement; if(strcmp(re->name,"outputid")==0) { if(output!=NULL && output->id>=0) return output; output->id = atoi(re->value); } else if(strcmp(re->name,"outputname")==0) { output->name = strdup(re->value); } else if(strcmp(re->name,"outputenabled")==0) { output->enabled = atoi(re->value); } mpd_getNextReturnElement(connection); if(connection->error) { free(output); return NULL; } } return output; } void mpd_sendEnableOutputCommand(mpd_Connection * connection, int outputId) { int len = strlen("enableoutput")+2+INTLEN+3; char *string = malloc(len); snprintf(string, len, "enableoutput \"%i\"\n", outputId); mpd_executeCommand(connection,string); free(string); } void mpd_sendDisableOutputCommand(mpd_Connection * connection, int outputId) { int len = strlen("disableoutput")+2+INTLEN+3; char *string = malloc(len); snprintf(string, len, "disableoutput \"%i\"\n", outputId); mpd_executeCommand(connection,string); free(string); } void mpd_freeOutputElement(mpd_OutputEntity * output) { free(output->name); free(output); } /** * mpd_sendNotCommandsCommand * odd naming, but it gets the not allowed commands */ void mpd_sendNotCommandsCommand(mpd_Connection * connection) { mpd_executeCommand(connection, "notcommands\n"); } /** * mpd_sendCommandsCommand * odd naming, but it gets the allowed commands */ void mpd_sendCommandsCommand(mpd_Connection * connection) { mpd_executeCommand(connection, "commands\n"); } /** * Get the next returned command */ char * mpd_getNextCommand(mpd_Connection * connection) { return mpd_getNextReturnElementNamed(connection, "command"); } void mpd_sendUrlHandlersCommand(mpd_Connection * connection) { mpd_executeCommand(connection, "urlhandlers\n"); } char * mpd_getNextHandler(mpd_Connection * connection) { return mpd_getNextReturnElementNamed(connection, "handler"); } void mpd_sendTagTypesCommand(mpd_Connection * connection) { mpd_executeCommand(connection, "tagtypes\n"); } char * mpd_getNextTagType(mpd_Connection * connection) { return mpd_getNextReturnElementNamed(connection, "tagtype"); } void mpd_startSearch(mpd_Connection *connection, int exact) { if (connection->request) { strcpy(connection->errorStr, "search already in progress"); connection->error = 1; return; } if (exact) connection->request = strdup("find"); else connection->request = strdup("search"); } void mpd_startStatsSearch(mpd_Connection *connection) { if (connection->request) { strcpy(connection->errorStr, "search already in progress"); connection->error = 1; return; } connection->request = strdup("count"); } void mpd_startPlaylistSearch(mpd_Connection *connection, int exact) { if (connection->request) { strcpy(connection->errorStr, "search already in progress"); connection->error = 1; return; } if (exact) connection->request = strdup("playlistfind"); else connection->request = strdup("playlistsearch"); } void mpd_startFieldSearch(mpd_Connection *connection, int type) { char *strtype; int len; if (connection->request) { strcpy(connection->errorStr, "search already in progress"); connection->error = 1; return; } if (type < 0 || type >= MPD_TAG_NUM_OF_ITEM_TYPES) { strcpy(connection->errorStr, "invalid type specified"); connection->error = 1; return; } strtype = mpdTagItemKeys[type]; len = 5+strlen(strtype)+1; connection->request = malloc(len); snprintf(connection->request, len, "list %c%s", tolower(strtype[0]), strtype+1); } void mpd_addConstraintSearch(mpd_Connection *connection, int type, const char *name) { char *strtype; char *arg; int len; char *string; if (!connection->request) { strcpy(connection->errorStr, "no search in progress"); connection->error = 1; return; } if (type < 0 || type >= MPD_TAG_NUM_OF_ITEM_TYPES) { strcpy(connection->errorStr, "invalid type specified"); connection->error = 1; return; } if (name == NULL) { strcpy(connection->errorStr, "no name specified"); connection->error = 1; return; } string = strdup(connection->request); strtype = mpdTagItemKeys[type]; arg = mpd_sanitizeArg(name); len = strlen(string)+1+strlen(strtype)+2+strlen(arg)+2; connection->request = realloc(connection->request, len); snprintf(connection->request, len, "%s %c%s \"%s\"", string, tolower(strtype[0]), strtype+1, arg); free(string); free(arg); } void mpd_commitSearch(mpd_Connection *connection) { int len; if (!connection->request) { strcpy(connection->errorStr, "no search in progress"); connection->error = 1; return; } len = strlen(connection->request)+2; connection->request = realloc(connection->request, len); connection->request[len-2] = '\n'; connection->request[len-1] = '\0'; mpd_sendInfoCommand(connection, connection->request); free(connection->request); connection->request = NULL; } /** * @param connection a MpdConnection * @param path the path to the playlist. * * List the content, with full metadata, of a stored playlist. * */ void mpd_sendListPlaylistInfoCommand(mpd_Connection *connection, char *path) { char *arg = mpd_sanitizeArg(path); int len = strlen("listplaylistinfo")+2+strlen(arg)+3; char *query = malloc(len); snprintf(query, len, "listplaylistinfo \"%s\"\n", arg); mpd_sendInfoCommand(connection, query); free(arg); free(query); } /** * @param connection a MpdConnection * @param path the path to the playlist. * * List the content of a stored playlist. * */ void mpd_sendListPlaylistCommand(mpd_Connection *connection, char *path) { char *arg = mpd_sanitizeArg(path); int len = strlen("listplaylist")+2+strlen(arg)+3; char *query = malloc(len); snprintf(query, len, "listplaylist \"%s\"\n", arg); mpd_sendInfoCommand(connection, query); free(arg); free(query); } void mpd_sendPlaylistClearCommand(mpd_Connection *connection, char *path) { char *sPath = mpd_sanitizeArg(path); int len = strlen("playlistclear")+2+strlen(sPath)+3; char *string = malloc(len); snprintf(string, len, "playlistclear \"%s\"\n", sPath); mpd_executeCommand(connection, string); free(sPath); free(string); } void mpd_sendPlaylistAddCommand(mpd_Connection *connection, char *playlist, char *path) { char *sPlaylist = mpd_sanitizeArg(playlist); char *sPath = mpd_sanitizeArg(path); int len = strlen("playlistadd")+2+strlen(sPlaylist)+3+strlen(sPath)+3; char *string = malloc(len); snprintf(string, len, "playlistadd \"%s\" \"%s\"\n", sPlaylist, sPath); mpd_executeCommand(connection, string); free(sPlaylist); free(sPath); free(string); } void mpd_sendPlaylistMoveCommand(mpd_Connection *connection, char *playlist, int from, int to) { char *sPlaylist = mpd_sanitizeArg(playlist); int len = strlen("playlistmove")+ 2+strlen(sPlaylist)+3+INTLEN+3+INTLEN+3; char *string = malloc(len); snprintf(string, len, "playlistmove \"%s\" \"%i\" \"%i\"\n", sPlaylist, from, to); mpd_executeCommand(connection, string); free(sPlaylist); free(string); } void mpd_sendPlaylistDeleteCommand(mpd_Connection *connection, char *playlist, int pos) { char *sPlaylist = mpd_sanitizeArg(playlist); int len = strlen("playlistdelete")+2+strlen(sPlaylist)+3+INTLEN+3; char *string = malloc(len); snprintf(string, len, "playlistdelete \"%s\" \"%i\"\n", sPlaylist, pos); mpd_executeCommand(connection, string); free(sPlaylist); free(string); } static void mpd_readChanges(mpd_Connection *connection) { unsigned i; unsigned flags = 0; mpd_ReturnElement *re; if (!connection->returnElement) mpd_getNextReturnElement(connection); if (connection->error == MPD_ERROR_1_CONNCLOSED) { connection->notify_cb (connection, IDLE_DISCONNECT, connection->userdata); return; } while (connection->returnElement) { re = connection->returnElement; if (re->name &&!strncmp (re->name, "changed", strlen ("changed"))) { for (i = 0; idle_names[i]; ++i) { if (!strcmp (re->value, idle_names[i])) { flags |= (1 << i); } } } mpd_getNextReturnElement(connection); } /* Notifiy application */ if (connection->notify_cb && flags) connection->notify_cb (connection, flags, connection->userdata); } void mpd_startIdle(mpd_Connection *connection, mpd_NotificationCb notify_cb, void *userdata) { if (connection->idle) return; if (connection->startIdle) connection->startIdle(connection); mpd_executeCommand(connection, "idle\n"); connection->idle = 1; connection->notify_cb = notify_cb; connection->userdata = userdata; } void mpd_stopIdle(mpd_Connection *connection) { if (connection->stopIdle) connection->stopIdle(connection); connection->idle = 0; connection->notify_cb = NULL; connection->doneProcessing = 1; mpd_executeCommand(connection, "noidle\n"); connection->doneProcessing = 0; mpd_readChanges(connection); } #ifdef MPD_GLIB static gboolean mpd_glibReadCb (GIOChannel *iochan, GIOCondition cond, gpointer data) { mpd_Connection *connection = data; if (!connection->idle) { connection->source_id = 0; return FALSE; } if (cond & G_IO_IN) { connection->idle = 0; if (connection->source_id) { g_source_remove (connection->source_id); connection->source_id = 0; } mpd_readChanges(connection); } return TRUE; } static void mpd_glibStartIdle(mpd_Connection *connection) { static GIOChannel* iochan = NULL; if (!iochan) { #ifdef WIN32 iochan = g_io_channel_win32_new_socket (connection->sock); #else iochan = g_io_channel_unix_new (connection->sock); #endif } connection->source_id = g_io_add_watch (iochan, G_IO_IN | G_IO_ERR | G_IO_HUP, mpd_glibReadCb, connection); } static void mpd_glibStopIdle(mpd_Connection *connection) { if (connection->source_id) { g_source_remove (connection->source_id); connection->source_id = 0; } } void mpd_glibInit(mpd_Connection *connection) { connection->startIdle = mpd_glibStartIdle; connection->stopIdle = mpd_glibStopIdle; } #endif ario-1.6/src/lib/gtk-builder-helpers.h0000644000175000017500000000223713226723436014626 00000000000000/* * Copyright (C) 2009 Marc Pavot * * 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * */ #include #ifndef __GTK_BUILDER_HELPERS_H #define __GTK_BUILDER_HELPERS_H G_BEGIN_DECLS GtkBuilder *gtk_builder_helpers_new (const char *file, gpointer user_data); void gtk_builder_helpers_boldify_label (GtkBuilder *builder, const char *name); G_END_DECLS #endif /* __GTK_BUILDER_HELPERS_H */ ario-1.6/src/lib/gtk-builder-helpers.c0000644000175000017500000000365513226723433014623 00000000000000/* * Copyright (C) 2009 Marc Pavot * * 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * */ #include "gtk-builder-helpers.h" #include GtkBuilder * gtk_builder_helpers_new (const char *file, gpointer user_data) { GtkBuilder *builder; builder = gtk_builder_new (); gtk_builder_add_from_file (builder, file, NULL); gtk_builder_connect_signals (builder, user_data); return builder; } void gtk_builder_helpers_boldify_label (GtkBuilder *builder, const char *name) { GObject *object; static PangoAttrList *pattrlist = NULL; object = gtk_builder_get_object (builder, name); if (!object || !GTK_IS_LABEL (object)) { g_warning ("object '%s' not found", name); return; } if (pattrlist == NULL) { PangoAttribute *attr; pattrlist = pango_attr_list_new (); attr = pango_attr_weight_new (PANGO_WEIGHT_BOLD); attr->start_index = 0; attr->end_index = G_MAXINT; pango_attr_list_insert (pattrlist, attr); } gtk_label_set_attributes (GTK_LABEL (object), pattrlist); } ario-1.6/src/lib/ario-conf.h0000644000175000017500000000602113226723436012625 00000000000000/* * Copyright (C) 2008 Marc Pavot * * 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, 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * */ #ifndef ARIO_CONF_H #define ARIO_CONF_H #include typedef void (*ArioNotifyFunc) (guint notification_id, gpointer user_data); void ario_conf_set_boolean (const char *key, gboolean boolean_value); gboolean ario_conf_get_boolean (const char *key, const gboolean default_value); int ario_conf_get_integer (const char *key, const int default_value); void ario_conf_set_integer (const char *key, int int_value); gfloat ario_conf_get_float (const char *key, const gfloat default_value); void ario_conf_set_float (const char *key, gfloat float_value); const char * ario_conf_get_string (const char *key, const char *default_value); void ario_conf_set_string (const char *key, const char *string_value); GSList * ario_conf_get_string_slist (const char *key, const char *string_value); void ario_conf_set_string_slist (const char *key, const GSList *string_slist_value); void ario_conf_init (void); void ario_conf_shutdown (void); guint ario_conf_notification_add (const char *key, ArioNotifyFunc notification_callback, gpointer callback_data); void ario_conf_notification_remove (guint notification_id); #endif /* ARIO_CONF_H */ ario-1.6/src/lib/ario-conf.c0000644000175000017500000002434413226723433012625 00000000000000/* * Copyright (C) 2008 Marc Pavot * * 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, 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * */ #include "lib/ario-conf.h" #include #include #include #include #include "ario-debug.h" #include "ario-util.h" static GHashTable *hash; static gboolean modified = FALSE; static GSList *notifications; static guint notification_counter = 1; typedef struct { guint notification_id; char *key; ArioNotifyFunc notification_callback; gpointer callback_data; } ArioConfNotifyData; #define XML_ROOT_NAME (const unsigned char *)"ario-options" #define XML_VERSION (const unsigned char *)"1.0" static void ario_conf_free_notify_data (ArioConfNotifyData *data) { ARIO_LOG_FUNCTION_START; if (data) { g_free (data->key); g_free (data); } } static char * ario_conf_get (const char *key) { ARIO_LOG_FUNCTION_START; return g_hash_table_lookup (hash, key); } static void ario_conf_set (const char *key, char *value) { ARIO_LOG_FUNCTION_START; GSList *tmp; ArioConfNotifyData *data; if (!ario_util_strcmp (ario_conf_get (key), value)) { g_free (value); return; } g_hash_table_replace (hash, g_strdup (key), value); modified = TRUE; /* Notifications */ for (tmp = notifications; tmp; tmp = g_slist_next (tmp)) { data = tmp->data; if (!strcmp (data->key, key)) { data->notification_callback (data->notification_id, data->callback_data); } } } void ario_conf_set_boolean (const char *key, gboolean boolean_value) { ARIO_LOG_FUNCTION_START; if (boolean_value) ario_conf_set (key, g_strdup ("1")); else ario_conf_set (key, g_strdup ("0")); } gboolean ario_conf_get_boolean (const char *key, const gboolean default_value) { ARIO_LOG_FUNCTION_START; gchar *value = ario_conf_get (key); gboolean ret; if (!value) return default_value; ret = !strcmp (value, "1"); return ret; } void ario_conf_set_integer (const char *key, int int_value) { ARIO_LOG_FUNCTION_START; ario_conf_set (key, g_strdup_printf ("%d", int_value)); } int ario_conf_get_integer (const char *key, const int default_value) { ARIO_LOG_FUNCTION_START; gchar *value = ario_conf_get (key); int ret; if (!value) return default_value; ret = atoi (value); return ret; } void ario_conf_set_float (const char *key, gfloat float_value) { ARIO_LOG_FUNCTION_START; ario_conf_set (key, g_strdup_printf ("%f", float_value)); } gfloat ario_conf_get_float (const char *key, const gfloat default_value) { ARIO_LOG_FUNCTION_START; gchar *value = ario_conf_get (key); gfloat ret; if (!value) return default_value; ret = atof (value); return ret; } void ario_conf_set_string (const char *key, const char *string_value) { ARIO_LOG_FUNCTION_START; ario_conf_set (key, g_strdup (string_value)); } const char * ario_conf_get_string (const char *key, const char *default_value) { ARIO_LOG_FUNCTION_START; gchar *value = ario_conf_get (key); if (!value) return default_value; return value; } void ario_conf_set_string_slist (const char *key, const GSList *slist) { ARIO_LOG_FUNCTION_START; GString* value = NULL; const GSList *tmp; gboolean first = TRUE; value = g_string_new(""); for (tmp = slist; tmp; tmp = g_slist_next (tmp)) { if (!first) { g_string_append (value, ","); } g_string_append (value, tmp->data); first = FALSE; } ario_conf_set (key, value->str); g_string_free (value, FALSE); } GSList * ario_conf_get_string_slist (const char *key, const char *string_value) { ARIO_LOG_FUNCTION_START; const gchar *value = ario_conf_get (key); gchar **values; GSList *ret = NULL; int i; if (!value) value = string_value; if (!value) return NULL; values = g_strsplit ((const gchar *) value, ",", 0); for (i=0; values[i]!=NULL && g_utf8_collate (values[i], ""); ++i) ret = g_slist_append (ret, values[i]); g_free (values); return ret; } static gboolean ario_conf_save_foreach (gchar *key, gchar *value, xmlNodePtr root) { ARIO_LOG_FUNCTION_START; xmlNodePtr cur; /* We add a new "option" entry */ cur = xmlNewChild (root, NULL, (const xmlChar *) "option", NULL); xmlSetProp (cur, (const xmlChar *) "key", (const xmlChar *) key); xmlNodeAddContent (cur, (const xmlChar *) value); return FALSE; } static gint ario_conf_compare_keys (gconstpointer a, gconstpointer b) { const xmlChar * str1 = (const xmlChar *) a; const xmlChar * str2 = (const xmlChar *) b; return xmlStrcmp (str1, str2); } static void ario_conf_sorted_save_foreach (gchar *key, gchar *value, GTree *sorted_pairs) { g_tree_insert(sorted_pairs, key, value); } static gboolean ario_conf_save (G_GNUC_UNUSED gpointer data) { ARIO_LOG_FUNCTION_START; xmlNodePtr cur; xmlDocPtr doc; char *xml_filename; GTree *sorted_pairs; if (!modified) return TRUE; modified = FALSE; doc = xmlNewDoc (XML_VERSION); cur = xmlNewNode (NULL, (const xmlChar *) XML_ROOT_NAME); xmlDocSetRootElement (doc, cur); /* We sort the keys before saving to avoid changing the configuration file if only the order changes */ sorted_pairs = g_tree_new(ario_conf_compare_keys); g_hash_table_foreach (hash, (GHFunc) ario_conf_sorted_save_foreach, sorted_pairs); g_tree_foreach (sorted_pairs, (GTraverseFunc) ario_conf_save_foreach, cur); g_tree_destroy (sorted_pairs); xml_filename = g_build_filename (ario_util_config_dir (), "options.xml", NULL); /* We save the xml file */ xmlSaveFormatFile (xml_filename, doc, TRUE); g_free (xml_filename); xmlFreeDoc (doc); return TRUE; } void ario_conf_init (void) { ARIO_LOG_FUNCTION_START; xmlNodePtr cur; xmlDocPtr doc; xmlChar *xml_key; xmlChar *xml_value; char *xml_filename; xml_filename = g_build_filename (ario_util_config_dir (), "options.xml", NULL); /* This option is necessary to save a well formated xml file */ xmlKeepBlanksDefault (0); hash = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, g_free); if (ario_util_uri_exists (xml_filename)) { doc = xmlParseFile (xml_filename); g_free (xml_filename); cur = xmlDocGetRootElement(doc); if (cur == NULL) return; for (cur = cur->children; cur; cur = cur->next) { /* For each "option" entry */ if (!xmlStrcmp (cur->name, (const xmlChar *) "option")) { xml_key = xmlGetProp (cur, (const unsigned char *) "key"); xml_value = xmlNodeGetContent (cur); g_hash_table_insert (hash, xml_key, xml_value); } } xmlFreeDoc (doc); } g_timeout_add (5*1000, (GSourceFunc) ario_conf_save, NULL); } void ario_conf_shutdown (void) { ARIO_LOG_FUNCTION_START; ario_conf_save (NULL); g_hash_table_remove_all (hash); g_slist_foreach (notifications, (GFunc) ario_conf_free_notify_data, NULL); } guint ario_conf_notification_add (const char *key, ArioNotifyFunc notification_callback, gpointer callback_data) { ARIO_LOG_FUNCTION_START; ArioConfNotifyData *data = (ArioConfNotifyData *) g_malloc0 (sizeof (ArioConfNotifyData)); ++notification_counter; data->notification_id = notification_counter; data->key = g_strdup (key); data->notification_callback = notification_callback; data->callback_data = callback_data; notifications = g_slist_append (notifications, data); return notification_counter; } void ario_conf_notification_remove (guint notification_id) { ARIO_LOG_FUNCTION_START; GSList *tmp; ArioConfNotifyData *data; for (tmp = notifications; tmp; tmp = g_slist_next (tmp)) { data = tmp->data; if (data->notification_id == notification_id) { notifications = g_slist_remove (notifications, data); ario_conf_free_notify_data (data); } } } ario-1.6/src/lib/libmpdclient.h0000644000175000017500000005245513226723433013427 00000000000000/* libmpdclient (c)2003-2006 by Warren Dukes (warren.dukes@gmail.com) This project's homepage is: http://www.musicpd.org Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: - Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. - Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. - Neither the name of the Music Player Daemon nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ #ifndef LIBMPDCLIENT_H #define LIBMPDCLIENT_H #ifdef WIN32 # define __W32API_USE_DLLIMPORT__ 1 #endif #include #include #ifdef MPD_GLIB #include #endif #define MPD_BUFFER_MAX_LENGTH 50000 #define MPD_ERRORSTR_MAX_LENGTH 1000 #define MPD_WELCOME_MESSAGE "OK MPD " #define MPD_ERROR_1_TIMEOUT 10 /* timeout trying to talk to mpd */ #define MPD_ERROR_1_SYSTEM 11 /* system error */ #define MPD_ERROR_1_UNKHOST 12 /* unknown host */ #define MPD_ERROR_1_CONNPORT 13 /* problems connecting to port on host */ #define MPD_ERROR_1_NOTMPD 14 /* mpd not running on port at host */ #define MPD_ERROR_1_NORESPONSE 15 /* no response on attempting to connect */ #define MPD_ERROR_1_SENDING 16 /* error sending command */ #define MPD_ERROR_1_CONNCLOSED 17 /* connection closed by mpd */ #define MPD_ERROR_1_ACK 18 /* ACK returned! */ #define MPD_ERROR_1_BUFFEROVERRUN 19 /* Buffer was overrun! */ #define MPD_ACK_ERROR_UNK -1 #define MPD_ERROR_1_AT_UNK -1 #define MPD_ACK_ERROR_NOT_LIST 1 #define MPD_ACK_ERROR_ARG 2 #define MPD_ACK_ERROR_PASSWORD 3 #define MPD_ACK_ERROR_PERMISSION 4 #define MPD_ACK_ERROR_UNKNOWN_CMD 5 #define MPD_ACK_ERROR_NO_EXIST 50 #define MPD_ACK_ERROR_PLAYLIST_MAX 51 #define MPD_ACK_ERROR_SYSTEM 52 #define MPD_ACK_ERROR_PLAYLIST_LOAD 53 #define MPD_ACK_ERROR_UPDATE_ALREADY 54 #define MPD_ACK_ERROR_PLAYER_SYNC 55 #define MPD_ACK_ERROR_EXIST 56 #ifdef __cplusplus extern "C" { #endif typedef enum mpd_TagItems { MPD_TAG_ITEM_ARTIST, MPD_TAG_ITEM_ALBUM, MPD_TAG_ITEM_ALBUM_ARTIST, MPD_TAG_ITEM_TITLE, MPD_TAG_ITEM_TRACK, MPD_TAG_ITEM_NAME, MPD_TAG_ITEM_GENRE, MPD_TAG_ITEM_DATE, MPD_TAG_ITEM_COMPOSER, MPD_TAG_ITEM_PERFORMER, MPD_TAG_ITEM_COMMENT, MPD_TAG_ITEM_DISC, MPD_TAG_ITEM_FILENAME, MPD_TAG_ITEM_ANY, MPD_TAG_NUM_OF_ITEM_TYPES } mpd_TagItems; extern char * mpdTagItemKeys[MPD_TAG_NUM_OF_ITEM_TYPES]; /* internal stuff don't touch this struct */ typedef struct _mpd_ReturnElement { char * name; char * value; } mpd_ReturnElement; enum { /** song database has been updated*/ IDLE_DATABASE = 0x1, /** a stored playlist has been modified, created, deleted or renamed */ IDLE_STORED_PLAYLIST = 0x2, /** the current playlist has been modified */ IDLE_PLAYLIST = 0x4, /** the player state has changed: play, stop, pause, seek, ... */ IDLE_PLAYER = 0x8, /** the volume has been modified */ IDLE_MIXER = 0x10, /** an audio output device has been enabled or disabled */ IDLE_OUTPUT = 0x20, /** options have changed: crossfade, random, repeat, ... */ IDLE_OPTIONS = 0x40, /** MPD closed the connection or the connection was lost */ IDLE_DISCONNECT = 0x80, }; /* mpd_Connection * holds info about connection to mpd * use error, and errorStr to detect errors */ typedef struct _mpd_Connection { /* use this to check the version of mpd */ int version[3]; /* IMPORTANT, you want to get the error messages from here */ char errorStr[MPD_ERRORSTR_MAX_LENGTH+1]; int errorCode; int errorAt; /* this will be set to MPD_ERROR_1_* if there is an error, 0 if not */ int error; /* DON'T TOUCH any of the rest of this stuff */ int sock; char buffer[MPD_BUFFER_MAX_LENGTH+1]; int buflen; int bufstart; int doneProcessing; int listOks; int doneListOk; int commandList; mpd_ReturnElement * returnElement; struct timeval timeout; char *request; int idle; void (*notify_cb) (struct _mpd_Connection *connection, unsigned flags, void *userdata); void (*startIdle) (struct _mpd_Connection *connection); void (*stopIdle) (struct _mpd_Connection *connection); void *userdata; #ifdef MPD_GLIB int source_id; #endif } mpd_Connection; typedef void (*mpd_NotificationCb) (mpd_Connection *connection, unsigned flags, void *userdata); /* mpd_newConnection * use this to open a new connection * you should use mpd_closeConnection, when your done with the connection, * even if an error has occurred * _timeout_ is the connection timeout period in seconds */ mpd_Connection * mpd_newConnection(const char * host, int port, float timeout); void mpd_setConnectionTimeout(mpd_Connection * connection, float timeout); /* mpd_closeConnection * use this to close a connection and free'ing subsequent memory */ void mpd_closeConnection(mpd_Connection * connection); /* mpd_clearError * clears error */ void mpd_clearError(mpd_Connection * connection); /* STATUS STUFF */ /* use these with status.state to determine what state the player is in */ #define MPD_STATUS_STATE_UNKNOWN 0 #define MPD_STATUS_STATE_STOP 1 #define MPD_STATUS_STATE_PLAY 2 #define MPD_STATUS_STATE_PAUSE 3 /* us this with status.volume to determine if mpd has volume support */ #define MPD_STATUS_NO_VOLUME -1 /* mpd_Status * holds info return from status command */ typedef struct mpd_Status { /* 0-100, or MPD_STATUS_NO_VOLUME when there is no volume support */ int volume; /* 1 if repeat is on, 0 otherwise */ int repeat; /* 1 if random is on, 0 otherwise */ int random; /* 1 if consume is on, 0 otherwise */ int consume; /* playlist length */ int playlistLength; /* playlist, use this to determine when the playlist has changed */ long long playlist; /* use with MPD_STATUS_STATE_* to determine state of player */ int state; /* crossfade setting in seconds */ int crossfade; /* if a song is currently selected (always the case when state is * PLAY or PAUSE), this is the position of the currently * playing song in the playlist, beginning with 0 */ int song; /* Song ID of the currently selected song */ int songid; /* time in seconds that have elapsed in the currently playing/paused * song */ int elapsedTime; /* length in seconds of the currently playing/paused song */ int totalTime; /* current bit rate in kbs */ int bitRate; /* audio sample rate */ unsigned int sampleRate; /* audio bits */ int bits; /* audio channels */ int channels; /* 1 if mpd is updating, 0 otherwise */ int updatingDb; /* error */ char * error; } mpd_Status; void mpd_sendStatusCommand(mpd_Connection * connection); /* mpd_getStatus * returns status info, be sure to free it with mpd_freeStatus() * call this after mpd_sendStatusCommand() */ mpd_Status * mpd_getStatus(mpd_Connection * connection); /* mpd_freeStatus * free's status info malloc'd and returned by mpd_getStatus */ void mpd_freeStatus(mpd_Status * status); typedef struct _mpd_Stats { int numberOfArtists; int numberOfAlbums; int numberOfSongs; unsigned long uptime; unsigned long dbUpdateTime; unsigned long playTime; unsigned long dbPlayTime; } mpd_Stats; typedef struct _mpd_SearchStats { int numberOfSongs; unsigned long playTime; } mpd_SearchStats; void mpd_sendStatsCommand(mpd_Connection * connection); mpd_Stats * mpd_getStats(mpd_Connection * connection); void mpd_freeStats(mpd_Stats * stats); mpd_SearchStats * mpd_getSearchStats(mpd_Connection * connection); void mpd_freeSearchStats(mpd_SearchStats * stats); /* SONG STUFF */ #define MPD_SONG_NO_TIME -1 #define MPD_SONG_NO_NUM -1 #define MPD_SONG_NO_ID -1 /* mpd_Song * for storing song info returned by mpd */ typedef struct _mpd_Song { /* filename of song */ char * file; /* artist, maybe NULL if there is no tag */ char * artist; /* title, maybe NULL if there is no tag */ char * title; /* album, maybe NULL if there is no tag */ char * album; /* album artist, maybe NULL if there is no tag */ char * album_artist; /* track, maybe NULL if there is no tag */ char * track; /* name, maybe NULL if there is no tag; it's the name of the current * song, f.e. the icyName of the stream */ char * name; /* date */ char *date; /* added by qball */ /* Genre */ char *genre; /* Composer */ char *composer; /* Performer */ char *performer; /* Disc */ char *disc; /* Comment */ char *comment; /* length of song in seconds, check that it is not MPD_SONG_NO_TIME */ int time; /* if plchanges/playlistinfo/playlistid used, is the position of the * song in the playlist */ int pos; /* song id for a song in the playlist */ int id; } mpd_Song; /* mpd_newSong * use to allocate memory for a new mpd_Song * file, artist, etc all initialized to NULL * if your going to assign values to file, artist, etc * be sure to malloc or strdup the memory * use mpd_freeSong to free the memory for the mpd_Song, it will also * free memory for file, artist, etc, so don't do it yourself */ mpd_Song * mpd_newSong(void); /* mpd_freeSong * use to free memory allocated by mpd_newSong * also it will free memory pointed to by file, artist, etc, so be careful */ void mpd_freeSong(mpd_Song * song); /* mpd_songDup * works like strDup, but for a mpd_Song */ mpd_Song * mpd_songDup(mpd_Song * song); /* DIRECTORY STUFF */ /* mpd_Directory * used to store info fro directory (right now that just the path) */ typedef struct _mpd_Directory { char * path; } mpd_Directory; /* mpd_newDirectory * allocates memory for a new directory * use mpd_freeDirectory to free this memory */ mpd_Directory * mpd_newDirectory(void); /* mpd_freeDirectory * used to free memory allocated with mpd_newDirectory, and it frees * path of mpd_Directory, so be careful */ void mpd_freeDirectory(mpd_Directory * directory); /* mpd_directoryDup * works like strdup, but for mpd_Directory */ mpd_Directory * mpd_directoryDup(mpd_Directory * directory); /* PLAYLISTFILE STUFF */ /* mpd_PlaylistFile * stores info about playlist file returned by lsinfo */ typedef struct _mpd_PlaylistFile { char * path; } mpd_PlaylistFile; /* mpd_newPlaylistFile * allocates memory for new mpd_PlaylistFile, path is set to NULL * free this memory with mpd_freePlaylistFile */ mpd_PlaylistFile * mpd_newPlaylistFile(void); /* mpd_freePlaylist * free memory allocated for freePlaylistFile, will also free * path, so be careful */ void mpd_freePlaylistFile(mpd_PlaylistFile * playlist); /* mpd_playlistFileDup * works like strdup, but for mpd_PlaylistFile */ mpd_PlaylistFile * mpd_playlistFileDup(mpd_PlaylistFile * playlist); /* INFO ENTITY STUFF */ /* the type of entity returned from one of the commands that generates info * use in conjunction with mpd_InfoEntity.type */ #define MPD_INFO_ENTITY_TYPE_DIRECTORY 0 #define MPD_INFO_ENTITY_TYPE_SONG 1 #define MPD_INFO_ENTITY_TYPE_PLAYLISTFILE 2 /* mpd_InfoEntity * stores info on stuff returned info commands */ typedef struct mpd_InfoEntity { /* the type of entity, use with MPD_INFO_ENTITY_TYPE_* to determine * what this entity is (song, directory, etc...) */ int type; /* the actual data you want, mpd_Song, mpd_Directory, etc */ union { mpd_Directory * directory; mpd_Song * song; mpd_PlaylistFile * playlistFile; } info; } mpd_InfoEntity; mpd_InfoEntity * mpd_newInfoEntity(void); void mpd_freeInfoEntity(mpd_InfoEntity * entity); /* INFO COMMANDS AND STUFF */ /* use this function to loop over after calling Info/Listall functions */ mpd_InfoEntity * mpd_getNextInfoEntity(mpd_Connection * connection); /* fetches the currently seeletect song (the song referenced by status->song * and status->songid*/ void mpd_sendCurrentSongCommand(mpd_Connection * connection); /* songNum of -1, means to display the whole list */ void mpd_sendPlaylistInfoCommand(mpd_Connection * connection, int songNum); /* songId of -1, means to display the whole list */ void mpd_sendPlaylistIdCommand(mpd_Connection * connection, int songId); /* use this to get the changes in the playlist since version _playlist_ */ void mpd_sendPlChangesCommand(mpd_Connection * connection, long long playlist); /** * @param connection: A valid and connected mpd_Connection. * @param playlist: The playlist version you want the diff with. * A more bandwidth efficient version of the mpd_sendPlChangesCommand. * It only returns the pos+id of the changes song. */ void mpd_sendPlChangesPosIdCommand(mpd_Connection * connection, long long playlist); /* recursivel fetches all songs/dir/playlists in "dir* (no metadata is * returned) */ void mpd_sendListallCommand(mpd_Connection * connection, const char * dir); /* same as sendListallCommand, but also metadata is returned */ void mpd_sendListallInfoCommand(mpd_Connection * connection, const char * dir); /* non-recursive version of ListallInfo */ void mpd_sendLsInfoCommand(mpd_Connection * connection, const char * dir); #define MPD_TABLE_ARTIST MPD_TAG_ITEM_ARTIST #define MPD_TABLE_ALBUM MPD_TAG_ITEM_ALBUM #define MPD_TABLE_TITLE MPD_TAG_ITEM_TITLE #define MPD_TABLE_FILENAME MPD_TAG_ITEM_FILENAME void mpd_sendSearchCommand(mpd_Connection * connection, int table, const char * str); void mpd_sendFindCommand(mpd_Connection * connection, int table, const char * str); /* LIST TAG COMMANDS */ /* use this function fetch next artist entry, be sure to free the returned * string. NULL means there are no more. Best used with sendListArtists */ char * mpd_getNextArtist(mpd_Connection * connection); char * mpd_getNextAlbum(mpd_Connection * connection); char * mpd_getNextTag(mpd_Connection *connection, int type); /* list artist or albums by artist, arg1 should be set to the artist if * listing albums by a artist, otherwise NULL for listing all artists or albums */ void mpd_sendListCommand(mpd_Connection * connection, int table, const char * arg1); /* SIMPLE COMMANDS */ void mpd_sendAddCommand(mpd_Connection * connection, const char * file); int mpd_sendAddIdCommand(mpd_Connection *connection, const char *file); void mpd_sendDeleteCommand(mpd_Connection * connection, int songNum); void mpd_sendDeleteIdCommand(mpd_Connection * connection, int songNum); void mpd_sendSaveCommand(mpd_Connection * connection, const char * name); void mpd_sendLoadCommand(mpd_Connection * connection, const char * name); void mpd_sendRmCommand(mpd_Connection * connection, const char * name); void mpd_sendRenameCommand(mpd_Connection *connection, const char *from, const char *to); void mpd_sendShuffleCommand(mpd_Connection * connection); void mpd_sendClearCommand(mpd_Connection * connection); /* use this to start playing at the beginning, useful when in random mode */ #define MPD_PLAY_AT_BEGINNING -1 void mpd_sendPlayCommand(mpd_Connection * connection, int songNum); void mpd_sendPlayIdCommand(mpd_Connection * connection, int songNum); void mpd_sendStopCommand(mpd_Connection * connection); void mpd_sendPauseCommand(mpd_Connection * connection, int pauseMode); void mpd_sendNextCommand(mpd_Connection * connection); void mpd_sendPrevCommand(mpd_Connection * connection); void mpd_sendMoveCommand(mpd_Connection * connection, int from, int to); void mpd_sendMoveIdCommand(mpd_Connection * connection, int id, int to); void mpd_sendSwapCommand(mpd_Connection * connection, int song1, int song2); void mpd_sendSwapIdCommand(mpd_Connection * connection, int song1, int song2); void mpd_sendSeekCommand(mpd_Connection * connection, int song, int time); void mpd_sendSeekIdCommand(mpd_Connection * connection, int song, int time); void mpd_sendRepeatCommand(mpd_Connection * connection, int repeatMode); void mpd_sendRandomCommand(mpd_Connection * connection, int randomMode); void mpd_sendConsumeCommand(mpd_Connection * connection, int consumeMode); void mpd_sendSetvolCommand(mpd_Connection * connection, int volumeChange); /* WARNING: don't use volume command, its depreacted */ void mpd_sendVolumeCommand(mpd_Connection * connection, int volumeChange); void mpd_sendCrossfadeCommand(mpd_Connection * connection, int seconds); void mpd_sendUpdateCommand(mpd_Connection * connection, const char * path); /* returns the update job id, call this after a update command*/ int mpd_getUpdateId(mpd_Connection * connection); void mpd_sendPasswordCommand(mpd_Connection * connection, const char * pass); /* after executing a command, when your done with it to get its status * (you want to check connection->error for an error) */ void mpd_finishCommand(mpd_Connection * connection); /* command list stuff, use this to do things like add files very quickly */ void mpd_sendCommandListBegin(mpd_Connection * connection); void mpd_sendCommandListOkBegin(mpd_Connection * connection); void mpd_sendCommandListEnd(mpd_Connection * connection); /* advance to the next listOk * returns 0 if advanced to the next list_OK, * returns -1 if it advanced to an OK or ACK */ int mpd_nextListOkCommand(mpd_Connection * connection); typedef struct _mpd_OutputEntity { int id; char * name; int enabled; } mpd_OutputEntity; void mpd_sendOutputsCommand(mpd_Connection * connection); mpd_OutputEntity * mpd_getNextOutput(mpd_Connection * connection); void mpd_sendEnableOutputCommand(mpd_Connection * connection, int outputId); void mpd_sendDisableOutputCommand(mpd_Connection * connection, int outputId); void mpd_freeOutputElement(mpd_OutputEntity * output); /** * @param connection a #mpd_Connection * * Queries mpd for the allowed commands */ void mpd_sendCommandsCommand(mpd_Connection * connection); /** * @param connection a #mpd_Connection * * Queries mpd for the not allowed commands */ void mpd_sendNotCommandsCommand(mpd_Connection * connection); /** * @param connection a #mpd_Connection * * returns the next supported command. * * @returns a string, needs to be free'ed */ char *mpd_getNextCommand(mpd_Connection *connection); void mpd_sendUrlHandlersCommand(mpd_Connection * connection); char *mpd_getNextHandler(mpd_Connection * connection); void mpd_sendTagTypesCommand(mpd_Connection * connection); char *mpd_getNextTagType(mpd_Connection * connection); /** * @param connection a MpdConnection * @param path the path to the playlist. * * List the content, with full metadata, of a stored playlist. * */ void mpd_sendListPlaylistInfoCommand(mpd_Connection *connection, char *path); /** * @param connection a MpdConnection * @param path the path to the playlist. * * List the content of a stored playlist. * */ void mpd_sendListPlaylistCommand(mpd_Connection *connection, char *path); /** * @param connection a #mpd_Connection * @param exact if to match exact * * starts a search, use mpd_addConstraintSearch to add * a constraint to the search, and mpd_commitSearch to do the actual search */ void mpd_startSearch(mpd_Connection *connection, int exact); /** * @param connection a #mpd_Connection * @param type * @param name */ void mpd_addConstraintSearch(mpd_Connection *connection, int type, const char *name); /** * @param connection a #mpd_Connection */ void mpd_commitSearch(mpd_Connection *connection); /** * @param connection a #mpd_Connection * @param type The type to search for * * starts a search for fields... f.e. get a list of artists would be: * @code * mpd_startFieldSearch(connection, MPD_TAG_ITEM_ARTIST); * mpd_commitSearch(connection); * @endcode * * or get a list of artist in genre "jazz" would be: * @code * mpd_startFieldSearch(connection, MPD_TAG_ITEM_ARTIST); * mpd_addConstraintSearch(connection, MPD_TAG_ITEM_GENRE, "jazz") * mpd_commitSearch(connection); * @endcode * * mpd_startSearch will return a list of songs (and you need mpd_getNextInfoEntity) * this one will return a list of only one field (the one specified with type) and you need * mpd_getNextTag to get the results */ void mpd_startFieldSearch(mpd_Connection *connection, int type); void mpd_startPlaylistSearch(mpd_Connection *connection, int exact); void mpd_startStatsSearch(mpd_Connection *connection); void mpd_sendPlaylistClearCommand(mpd_Connection *connection, char *path); void mpd_sendPlaylistAddCommand(mpd_Connection *connection, char *playlist, char *path); void mpd_sendPlaylistMoveCommand(mpd_Connection *connection, char *playlist, int from, int to); void mpd_sendPlaylistDeleteCommand(mpd_Connection *connection, char *playlist, int pos); void mpd_startIdle(mpd_Connection *connection, mpd_NotificationCb notify_cb, void *userdata); void mpd_stopIdle(mpd_Connection *connection); #ifdef MPD_GLIB void mpd_glibInit(mpd_Connection *connection); #endif #ifdef __cplusplus } #endif #endif ario-1.6/src/ario-util.c0000644000175000017500000005760613226734557012127 00000000000000/* * Copyright (C) 2005 Marc Pavot * * 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, 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * */ #include "ario-util.h" #include #include #include #include #include #include #include #include #include #ifdef WIN32 #include #endif #include "ario-debug.h" #include "covers/ario-cover.h" #include "lib/ario-conf.h" #include "preferences/ario-preferences.h" /* Maximum number of covers to put in drag and drop icon */ #define MAX_COVERS_IN_DRAG 3 char * ario_util_format_time (const int time) { ARIO_LOG_FUNCTION_START; int sec, min, hours; if (time < 0) return g_strdup_printf (_("n/a")); hours = (int)(time / 3600); min = (int)((time % 3600) / 60) ; sec = (time % 60); if (hours > 0) return g_strdup_printf ("%d:%02i:%02i", hours, min, sec); else return g_strdup_printf ("%02i:%02i", min, sec); } void ario_util_format_time_buf (const int time, char *buf, int buf_len) { ARIO_LOG_FUNCTION_START; int sec, min, hours; if (time < 0) g_snprintf (buf, buf_len, _("n/a")); hours = (int)(time / 3600); min = (int)((time % 3600) / 60) ; sec = (time % 60); if (hours > 0) g_snprintf (buf, buf_len, "%d:%02i:%02i", hours, min, sec); else g_snprintf (buf, buf_len, "%02i:%02i", min, sec); } char * ario_util_format_total_time (const int time) { ARIO_LOG_FUNCTION_START; gchar *res; gchar *tmp; int temp_time; int sec, min, hours, days; if (time < 0) return g_strdup_printf (_("n/a")); /* Compute number of days */ days = (int)(time / 86400); temp_time = (time % 86400); /* Compute number of hours */ hours = (int)(temp_time / 3600); temp_time = (temp_time % 3600); /* Compute number of minutes */ min = (int)(temp_time / 60); /* Compute number of seconds */ sec = (temp_time % 60); /* Format result string */ res = g_strdup_printf ("%d %s", sec, _("seconds")); if (min != 0) { tmp = g_strdup_printf ("%d %s, %s", min, _("minutes"), res); g_free (res); res = tmp; } if (hours != 0) { tmp = g_strdup_printf ("%d %s, %s", hours, _("hours"), res); g_free (res); res = tmp; } if (days != 0) { tmp = g_strdup_printf ("%d %s, %s", days, _("days"), res); g_free (res); res = tmp; } return res; } void ario_util_format_track_buf (const gchar *track, char *buf, int buf_len) { ARIO_LOG_FUNCTION_START; gchar *slash; gchar tmp[INTLEN]; if (!track) { *buf = '\0'; return; } /* Some tracks are x/y, we only want to display x */ slash = g_strrstr (track, "/"); if (slash) { g_snprintf (tmp, ario_util_min (INTLEN, slash - track + 1), "%s", track); g_snprintf (buf, buf_len, "%02i", atoi (tmp)); } else { g_snprintf (buf, buf_len, "%02i", atoi (track)); } } gchar * ario_util_format_title (ArioServerSong *server_song) { ARIO_LOG_FUNCTION_START; gchar *dot; gchar *slash; gchar *res = NULL; if (!server_song) { res = ARIO_SERVER_UNKNOWN; } else if (server_song->title) { res = server_song->title; } else if (server_song->name) { res = server_song->name; } else { /* Original format is : "path/to/filename.extension" or http://path/to/address:port * or lastfm://path/to/address * We only want to display filename or http/last.fm address */ if (!g_ascii_strncasecmp (server_song->file, "http://", 7) || !g_ascii_strncasecmp (server_song->file, "lastfm://", 7)) { res = server_song->file; } else { slash = g_strrstr (server_song->file, "/"); if (slash) { dot = g_strrstr (slash + 1, "."); if (dot) server_song->title = g_strndup (slash+1, dot - slash - 1); else server_song->title = g_strdup (slash+1); res = server_song->title; } else { res = server_song->file; } } } return res; } void ario_util_init_icons (void) { ARIO_LOG_FUNCTION_START; GtkIconTheme *icon_theme; icon_theme = gtk_icon_theme_get_default (); gtk_icon_theme_append_search_path (icon_theme, PIXMAP_PATH); } const char * ario_util_config_dir (void) { ARIO_LOG_FUNCTION_START; static char *config_dir = NULL; if (!config_dir) { config_dir = g_build_filename (g_get_user_config_dir (), "ario", NULL); if (!ario_file_test (config_dir, G_FILE_TEST_EXISTS | G_FILE_TEST_IS_DIR)) ario_util_mkdir (config_dir); } return config_dir; } gboolean ario_util_uri_exists (const char *uri) { g_return_val_if_fail (uri != NULL, FALSE); return ario_file_test (uri, G_FILE_TEST_EXISTS); } void ario_util_unlink_uri (const char *uri) { ARIO_LOG_FUNCTION_START; gchar *uri_fse = g_filename_from_utf8 (uri, -1, NULL, NULL, NULL); if (!uri_fse) return; g_unlink (uri_fse); g_free (uri_fse); } void ario_util_mkdir (const char *uri) { ARIO_LOG_FUNCTION_START; gchar *uri_fse = g_filename_from_utf8 (uri, -1, NULL, NULL, NULL); if (!uri_fse) return; g_mkdir_with_parents (uri_fse, 0750); g_free (uri_fse); } void ario_util_copy_file (const char *src_uri, const char *dest_uri) { ARIO_LOG_FUNCTION_START; gchar *contents; gsize length; /* Get file content */ if (! ario_file_get_contents (src_uri, &contents, &length, NULL)) { return; } /* Write file content */ ario_file_set_contents (dest_uri, contents, length, NULL); g_free (contents); } typedef struct _download_struct{ char *data; int size; } download_struct; /* Limit downloaded file to 5MB */ #define MAX_SIZE 5*1024*1024 static size_t ario_util_write_data(void *buffer, size_t size, size_t nmemb, download_struct *download_data) { ARIO_LOG_FUNCTION_START; if (!size || !nmemb) return 0; if (download_data->data == NULL) download_data->size = 0; /* Increase buffer size if needed */ download_data->data = g_realloc (download_data->data, (gulong)(size*nmemb+download_data->size) + 1); /* Append received data to buffer */ memset (&(download_data->data)[download_data->size], '\0', (size*nmemb)+1); memcpy (&(download_data->data)[download_data->size], buffer, size*nmemb); /* Increase size */ download_data->size += size*nmemb; if (download_data->size >= MAX_SIZE) return 0; return size*nmemb; } void ario_util_download_file (const char *uri, const char *post_data, const int post_size, const struct curl_slist *headers, int* size, char** data) { ARIO_LOG_FUNCTION_START; ARIO_LOG_DBG ("Download:%s", uri); download_struct download_data; const gchar* address; int port; /* Initialize curl */ CURL* curl = curl_easy_init (); if (!curl) return; *size = 0; *data = NULL; download_data.size = 0; download_data.data = NULL; /* set uri */ curl_easy_setopt (curl, CURLOPT_URL, uri); /* set callback data */ curl_easy_setopt (curl, CURLOPT_WRITEDATA, &download_data); /* set callback function */ curl_easy_setopt (curl, CURLOPT_WRITEFUNCTION, (curl_write_callback)ario_util_write_data); /* set timeout */ curl_easy_setopt (curl, CURLOPT_CONNECTTIMEOUT, 20); /* set redirect */ curl_easy_setopt (curl, CURLOPT_FOLLOWLOCATION ,1); /* set NO SIGNAL */ curl_easy_setopt (curl, CURLOPT_NOSIGNAL, TRUE); /* Use a proxy if one is configured */ if (ario_conf_get_boolean (PREF_USE_PROXY, PREF_USE_PROXY_DEFAULT)) { address = ario_conf_get_string (PREF_PROXY_ADDRESS, PREF_PROXY_ADDRESS_DEFAULT); port = ario_conf_get_integer (PREF_PROXY_PORT, PREF_PROXY_PORT_DEFAULT); if (address) { curl_easy_setopt (curl, CURLOPT_PROXY, address); curl_easy_setopt (curl, CURLOPT_PROXYPORT, port); } else { ARIO_LOG_DBG ("Proxy enabled, but no proxy defined"); } } /* Handles data for POST requests */ if (post_data) { curl_easy_setopt (curl, CURLOPT_POST, TRUE); curl_easy_setopt (curl, CURLOPT_POSTFIELDS, post_data); curl_easy_setopt (curl, CURLOPT_POSTFIELDSIZE, post_size); } if (headers) { curl_easy_setopt (curl, CURLOPT_HTTPHEADER, headers); } /* Performs the request */ curl_easy_perform (curl); *size = download_data.size; *data = download_data.data; curl_easy_cleanup (curl); } void ario_util_string_replace (char **string, const char *old, const char *new) { ARIO_LOG_FUNCTION_START; gchar **strsplit; GString *str; int i; /* Check if old is present in string */ if (!g_strstr_len (*string, -1, old)) return; /* Split string around 'old' */ strsplit = g_strsplit (*string, old, 0); if (!strsplit) return; if (!strsplit[0]) { g_strfreev (strsplit); return; } /* Create a new string */ str = g_string_new (strsplit[0]); /* Append splited parts to the new string */ for (i = 1; strsplit[i] && g_utf8_collate (strsplit[i], ""); ++i) { g_string_append (str, new); g_string_append (str, strsplit[i]); } g_strfreev (strsplit); g_free (*string); *string = str->str; g_string_free (str, FALSE); } void ario_util_load_uri (const char *uri) { ARIO_LOG_FUNCTION_START; #ifdef WIN32 ShellExecute (GetDesktopWindow(), "open", uri, NULL, NULL, SW_SHOW); #else gchar *command = g_strdup_printf ("xdg-open %s", uri); g_spawn_command_line_async (command, NULL); g_free (command); #endif } char * ario_util_format_keyword (const char *keyword) { ARIO_LOG_FUNCTION_START; gchar *tmp; int i, j; int length; gchar *ret; /* List of modifications done on the keuword used for the search */ const gchar *to_remove[] = {"cd 1", "cd 2", "cd 3", "cd 4", "cd 5", "cd1", "cd2", "cd3", "cd4", "cd5", "disc", "disk", "disque", "remastered", NULL}; /* Normalize keyword */ ret = g_utf8_normalize (keyword, -1, G_NORMALIZE_ALL); /* Converts all upper case ASCII letters to lower case ASCII letters */ tmp = g_ascii_strdown (ret, -1); g_free (ret); ret = tmp; /* We remove some useless words to make more accurate requests */ for (i = 0; to_remove[i]; ++i) { ario_util_string_replace (&ret, to_remove[i], " "); } /* We escape the special characters */ length = g_utf8_strlen (ret, -1); tmp = (char *) g_malloc0 (length); j = 0; for (i = 0; ret[i]; ++i) { if (g_unichar_isalnum (ret[i]) || (g_unichar_isspace (ret[i]) && j > 0 && !g_unichar_isspace (tmp[j-1]))) { tmp[j] = ret[i]; ++j; } } tmp = g_realloc (tmp, j+1); tmp[j] = '\0'; g_free (ret); ret = tmp; /* We escape spaces */ ario_util_string_replace (&ret, " ", "%20"); return ret; } char * ario_util_format_keyword_for_lastfm (const char *keyword) { ARIO_LOG_FUNCTION_START; /* Escape string */ return g_uri_escape_string (keyword, NULL, FALSE); } #define DRAG_SIZE 70 #define DRAG_COVER_STEP 0.15 static GdkPixbuf * ario_util_get_dnd_pixbuf_from_cover_paths (GSList *covers) { ARIO_LOG_FUNCTION_START; GSList *tmp; int len = g_slist_length (covers); GdkPixbuf *pixbuf, *cover; int i = 0; gdouble scale; if (len == 0) { /* No cover means no icon */ pixbuf = NULL; } else if (len == 1) { /* Only one cover, the icon is made of this cover */ pixbuf = gdk_pixbuf_new_from_file_at_size (covers->data, DRAG_SIZE, DRAG_SIZE, NULL); } else { /* Several covers */ /* Compute scale */ scale = (1 - DRAG_COVER_STEP*(len-1)); /* Create empyt pixbuf */ pixbuf = gdk_pixbuf_new (GDK_COLORSPACE_RGB, TRUE, 8, DRAG_SIZE, DRAG_SIZE); gdk_pixbuf_fill (pixbuf, 0); for (tmp = covers; tmp; tmp = g_slist_next (tmp)) { /* Integrate cover in pixbuf */ cover = gdk_pixbuf_new_from_file_at_size (tmp->data, (int) (scale*DRAG_SIZE), (int) (scale*DRAG_SIZE), NULL); if (!cover) continue; gdk_pixbuf_composite (cover, pixbuf, (int) (i*DRAG_COVER_STEP*DRAG_SIZE), (int) (i*DRAG_COVER_STEP*DRAG_SIZE), (int) (scale*DRAG_SIZE), (int) (scale*DRAG_SIZE), (int) (i*DRAG_COVER_STEP*DRAG_SIZE), (int) (i*DRAG_COVER_STEP*DRAG_SIZE), 1.0, 1.0, GDK_INTERP_HYPER, 255); g_object_unref (cover); ++i; } } return pixbuf; } GdkPixbuf * ario_util_get_dnd_pixbuf_from_albums (const GSList *albums) { ARIO_LOG_FUNCTION_START; const GSList *tmp; GSList *covers = NULL; gchar *cover_path; ArioServerAlbum *ario_server_album; int len = 0; GdkPixbuf *pixbuf; if (!albums) return NULL; /* Get cover of each album */ for (tmp = albums; tmp && len < MAX_COVERS_IN_DRAG; tmp = g_slist_next (tmp)) { ario_server_album = tmp->data; cover_path = ario_cover_make_cover_path (ario_server_album->artist, ario_server_album->album, SMALL_COVER); if (ario_util_uri_exists (cover_path)) { covers = g_slist_append (covers, cover_path); ++len; } else { g_free (cover_path); } } /* Get the icon from covers */ pixbuf = ario_util_get_dnd_pixbuf_from_cover_paths (covers); g_slist_foreach (covers, (GFunc) g_free, NULL); g_slist_free (covers); return pixbuf; } GdkPixbuf * ario_util_get_dnd_pixbuf (const GSList *criterias) { ARIO_LOG_FUNCTION_START; const GSList *tmp; ArioServerAlbum *server_album; int len = 0; ArioServerCriteria *criteria; GSList *albums, *album_tmp; GdkPixbuf *pixbuf; gchar *cover_path; GSList *covers = NULL; if (!criterias) return NULL; /* Get covers from criterias */ for (tmp = criterias; tmp && len < MAX_COVERS_IN_DRAG; tmp = g_slist_next (tmp)) { criteria = tmp->data; /* Get albums from criteria */ albums = ario_server_get_albums (criteria); /* Get covers of albums */ for (album_tmp = albums; album_tmp && len < MAX_COVERS_IN_DRAG; album_tmp = g_slist_next (album_tmp)) { server_album = album_tmp->data; cover_path = ario_cover_make_cover_path (server_album->artist, server_album->album, SMALL_COVER); if (ario_util_uri_exists (cover_path)) { covers = g_slist_append (covers, cover_path); ++len; } else { g_free (cover_path); } } g_slist_foreach (albums, (GFunc) ario_server_free_album, NULL); g_slist_free (albums); } /* Get the icon from covers */ pixbuf = ario_util_get_dnd_pixbuf_from_cover_paths (covers); g_slist_foreach (covers, (GFunc) g_free, NULL); g_slist_free (covers); return pixbuf; } gchar * ario_util_convert_from_iso8859 (const char *string) { ARIO_LOG_FUNCTION_START; char *ret, *tmp; tmp = g_convert (string, -1, (const gchar *) "ISO-8859-1", "UTF8", NULL, NULL, NULL); ret = g_locale_from_utf8 (tmp, -1, NULL, NULL, NULL); g_free (tmp); return ret; } void ario_util_sanitize_filename (char *filename) { ARIO_LOG_FUNCTION_START; const char *to_strip = "#/*\"\\[]:;|="; static unsigned char translate[256]; static gboolean initialized = FALSE; int c; unsigned char *tmp; if (!initialized) { for (c = 0; c < 256; c++) translate[c] = strchr (to_strip, c)? ' ': (unsigned char) c; initialized = TRUE; } /* We replace some special characters with spaces. */ for (tmp = (unsigned char *) filename; *tmp != '\0'; ++tmp) *tmp = translate[*tmp]; } gboolean ario_file_get_contents (const gchar *filename, gchar **contents, gsize *length, GError **error) { ARIO_LOG_FUNCTION_START; gboolean ret; gchar *filename_fse; /* Convert filename to locale */ filename_fse = g_filename_from_utf8 (filename, -1, NULL, NULL, NULL); if (!filename_fse) { if (error) *error = g_error_new (G_FILE_ERROR, G_FILE_ERROR_NOENT, "File `%s' not found", filename); return FALSE; } /* Get file content */ ret = g_file_get_contents (filename_fse, contents, length, error); g_free (filename_fse); return ret; } gboolean ario_file_set_contents (const gchar *filename, const gchar *contents, gsize length, GError **error) { ARIO_LOG_FUNCTION_START; gboolean ret; gchar *filename_fse; /* Convert filename to locale */ filename_fse = g_filename_from_utf8 (filename, -1, NULL, NULL, NULL); if (!filename_fse) { if (error) *error = g_error_new (G_FILE_ERROR, G_FILE_ERROR_FAILED, "Could not write to file `%s'", filename); return FALSE; } /* Set file content */ ret = g_file_set_contents (filename_fse, contents, length, error); g_free (filename_fse); return ret; } gboolean ario_file_test (const gchar *filename, GFileTest test) { ARIO_LOG_FUNCTION_START; gboolean ret; gchar *filename_fse; /* Convert filename to locale */ filename_fse = g_filename_from_utf8 (filename, -1, NULL, NULL, NULL); if (!filename_fse) return FALSE; /* Test file */ ret = g_file_test (filename_fse, test); g_free (filename_fse); return ret; } const char * ario_util_stristr (const char *haystack, const char *needle) { ARIO_LOG_FUNCTION_START; if (!needle || !*needle) return haystack; for (; *haystack; ++haystack) { if (toupper(*haystack) == toupper(*needle)) { /* * Matched starting char -- loop through remaining chars. */ const char *h, *n; for (h = haystack, n = needle; *h && *n; ++h, ++n) { if (toupper(*h) != toupper(*n)) { break; } } /* matched all of 'needle' to null termination */ if (!*n) { /* return the start of the match */ return haystack; } } } return 0; } GSList * ario_util_gslist_randomize (GSList **list, const int max) { ARIO_LOG_FUNCTION_START; GSList *ret = NULL, *tmp; int i = 0; int len = g_slist_length (*list); for (i = 0; i < max; ++i) { if (len <= 0) break; /* Get a random element in list */ tmp = g_slist_nth (*list, rand()%len); /* Remove the element from list */ *list = g_slist_remove_link (*list, tmp); /* Append the element to the new list */ ret = g_slist_concat (ret, tmp); len--; } return ret; } gchar * ario_util_format_for_http (const gchar *text) { int i; int length; gchar *res; /* Normalize */ res = g_utf8_normalize (text, -1, G_NORMALIZE_ALL); /* We escape special characters */ length = g_utf8_strlen (res, -1); for(i = 0; i < length; ++i) { if (!g_unichar_isalnum (res[i])) { res[i]=' '; } } /* We escape spaces */ ario_util_string_replace (&res, " ", "%20"); return res; } ario-1.6/src/ario-avahi.c0000644000175000017500000003263013226723433012217 00000000000000/* * Copyright (C) 2005 Marc Pavot * * 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, 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * */ #include "ario-avahi.h" #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include "ario-debug.h" #define SERVICE_TYPE "_mpd._tcp" #define DOMAIN "local" static void ario_avahi_finalize (GObject *object); static void ario_avahi_resolve_callback (AvahiServiceResolver *r, AVAHI_GCC_UNUSED AvahiIfIndex interface, AVAHI_GCC_UNUSED AvahiProtocol protocol, AvahiResolverEvent event, const char *name, const char *type, const char *domain, const char *host_name, const AvahiAddress *address, uint16_t port, AvahiStringList *txt, AvahiLookupResultFlags flags, AVAHI_GCC_UNUSED void *userdata); static void ario_avahi_browse_callback (AvahiServiceBrowser *b, AvahiIfIndex interface, AvahiProtocol protocol, AvahiBrowserEvent event, const char *name, const char *type, const char *domain, AVAHI_GCC_UNUSED AvahiLookupResultFlags flags, void *userdata); static void ario_avahi_client_callback (AvahiClient *c, AvahiClientState state, AVAHI_GCC_UNUSED void *userdata); struct ArioAvahiPrivate { AvahiGLibPoll *glib_poll; const AvahiPoll *poll_api; AvahiClient *client; AvahiServiceBrowser *browser; GSList *hosts; }; enum { HOSTS_CHANGED, LAST_SIGNAL }; static guint ario_avahi_signals[LAST_SIGNAL] = { 0 }; #define ARIO_AVAHI_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_ARIO_AVAHI, ArioAvahiPrivate)) G_DEFINE_TYPE (ArioAvahi, ario_avahi, G_TYPE_OBJECT) static void ario_avahi_class_init (ArioAvahiClass *klass) { ARIO_LOG_FUNCTION_START; GObjectClass *object_class = (GObjectClass *) klass; /* Virtual methods */ object_class->finalize = ario_avahi_finalize; /* Signals */ ario_avahi_signals[HOSTS_CHANGED] = g_signal_new ("hosts_changed", G_OBJECT_CLASS_TYPE (object_class), G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (ArioAvahiClass, hosts_changed), NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0); /* Private attributes */ g_type_class_add_private (klass, sizeof (ArioAvahiPrivate)); } static void ario_avahi_init (ArioAvahi *avahi) { ARIO_LOG_FUNCTION_START; int error; avahi->priv = ARIO_AVAHI_GET_PRIVATE (avahi); avahi->priv->hosts = NULL; /* Allocate main loop object */ avahi->priv->glib_poll = avahi_glib_poll_new (NULL, G_PRIORITY_DEFAULT); avahi->priv->poll_api = avahi_glib_poll_get (avahi->priv->glib_poll); if (!avahi->priv->glib_poll) { ARIO_LOG_ERROR ("Failed to create simple poll object."); return; } /* Allocate a new client */ avahi->priv->client = avahi_client_new (avahi->priv->poll_api, 0, ario_avahi_client_callback, avahi, &error); if (!avahi->priv->client) { ARIO_LOG_ERROR ("Failed to create client: %s", avahi_strerror (error)); return; } /* Allocate a browser */ avahi->priv->browser = avahi_service_browser_new (avahi->priv->client, AVAHI_IF_UNSPEC, AVAHI_PROTO_UNSPEC, SERVICE_TYPE, DOMAIN, 0, ario_avahi_browse_callback, avahi); if (!avahi->priv->browser) { ARIO_LOG_ERROR ("Failed to create service browser for domain %s: %s", DOMAIN, avahi_strerror (avahi_client_errno (avahi->priv->client))); return; } } static void ario_avahi_free_hosts (ArioHost *host) { ARIO_LOG_FUNCTION_START; if (host) { g_free (host->name); g_free (host->host); g_free (host); } } static void ario_avahi_finalize (GObject *object) { ARIO_LOG_FUNCTION_START; ArioAvahi *avahi = ARIO_AVAHI (object); if (avahi->priv->client) avahi_client_free (avahi->priv->client); if (avahi->priv->glib_poll) avahi_glib_poll_free (avahi->priv->glib_poll); g_slist_foreach (avahi->priv->hosts, (GFunc) ario_avahi_free_hosts, NULL); g_slist_free (avahi->priv->hosts); G_OBJECT_CLASS (ario_avahi_parent_class)->finalize (object); } ArioAvahi * ario_avahi_new (void) { ARIO_LOG_FUNCTION_START; ArioAvahi *avahi; avahi = g_object_new (TYPE_ARIO_AVAHI, NULL); return avahi; } /** * Returns a list of local IP address */ static GSList * ario_avahi_get_local_addr (void) { char ip[200]; socklen_t salen; struct ifaddrs *ifa = NULL, *ifp = NULL; GSList *addrs = NULL; if (getifaddrs (&ifp) < 0) { return NULL; } for (ifa = ifp; ifa; ifa = ifa->ifa_next) { if (!ifa->ifa_addr) continue; if (ifa->ifa_addr->sa_family == AF_INET) salen = sizeof (struct sockaddr_in); else if (ifa->ifa_addr->sa_family == AF_INET6) salen = sizeof (struct sockaddr_in6); else continue; if (getnameinfo (ifa->ifa_addr, salen, ip, sizeof (ip), NULL, 0, NI_NUMERICHOST) < 0) { continue; } /* Add the address to the list */ addrs = g_slist_append (addrs, g_strdup (ip)); } freeifaddrs (ifp); return addrs; } static gboolean ario_avahi_is_local_addr (const gchar *addr) { static GSList *addrs = NULL; if (!addrs) addrs = ario_avahi_get_local_addr (); if (!addrs) return FALSE; return (g_slist_find_custom (addrs, addr, (GCompareFunc) strcmp) != NULL); } static void ario_avahi_resolve_callback (AvahiServiceResolver *r, AVAHI_GCC_UNUSED AvahiIfIndex interface, AVAHI_GCC_UNUSED AvahiProtocol protocol, AvahiResolverEvent event, const char *name, const char *type, const char *domain, AVAHI_GCC_UNUSED const char *host_name, const AvahiAddress *address, uint16_t port, AVAHI_GCC_UNUSED AvahiStringList *txt, AVAHI_GCC_UNUSED AvahiLookupResultFlags flags, AVAHI_GCC_UNUSED void *userdata) { ARIO_LOG_FUNCTION_START; g_return_if_fail (r); ArioAvahi *avahi = ARIO_AVAHI (userdata); /* Called whenever a service has been resolved successfully or timed out */ switch (event) { case AVAHI_RESOLVER_FAILURE: ARIO_LOG_ERROR ("(Resolver) Failed to resolve service '%s' of type '%s' in domain '%s': %s", name, type, domain, avahi_strerror(avahi_client_errno (avahi_service_resolver_get_client (r)))); break; case AVAHI_RESOLVER_FOUND: { /* Create a new ArioHost with host info */ char addr[AVAHI_ADDRESS_STR_MAX]; ArioHost *host; avahi_address_snprint(addr, sizeof(addr), address); host = (ArioHost *) g_malloc (sizeof (ArioHost)); host->name = g_strdup (name); if (ario_avahi_is_local_addr (addr)) host->host = g_strdup ("localhost"); else host->host = g_strdup (addr); host->port = port; avahi->priv->hosts = g_slist_append (avahi->priv->hosts, host); g_signal_emit (G_OBJECT (avahi), ario_avahi_signals[HOSTS_CHANGED], 0); } } avahi_service_resolver_free (r); } static void ario_avahi_remove_host (ArioAvahi *avahi, const gchar *name) { ARIO_LOG_FUNCTION_START; GSList *tmp; for (tmp = avahi->priv->hosts; tmp; tmp = g_slist_next (tmp)) { ArioHost *host = tmp->data; if (name && host->name && !strcmp (host->name, name)) { avahi->priv->hosts = g_slist_remove (avahi->priv->hosts, host); g_signal_emit (G_OBJECT (avahi), ario_avahi_signals[HOSTS_CHANGED], 0); } } } static void ario_avahi_browse_callback (AvahiServiceBrowser *b, AvahiIfIndex interface, AvahiProtocol protocol, AvahiBrowserEvent event, const char *name, const char *type, const char *domain, AVAHI_GCC_UNUSED AvahiLookupResultFlags flags, void *userdata) { ARIO_LOG_FUNCTION_START; g_return_if_fail (b); ArioAvahi *avahi = ARIO_AVAHI (userdata); /* Called whenever a new services becomes available on the LAN or is removed from the LAN */ switch (event) { case AVAHI_BROWSER_FAILURE: ARIO_LOG_ERROR ("(Browser) %s", avahi_strerror(avahi_client_errno(avahi_service_browser_get_client(b)))); return; case AVAHI_BROWSER_NEW: ARIO_LOG_DBG ("(Browser) NEW: service '%s' of type '%s' in domain '%s'", name, type, domain); /* We ignore the returned resolver object. In the callback function we free it. If the server is terminated before the callback function is called the server will free the resolver for us. */ if (!(avahi_service_resolver_new (avahi->priv->client, interface, protocol, name, type, domain, protocol, 0, ario_avahi_resolve_callback, avahi))) ARIO_LOG_ERROR ("Failed to resolve service '%s': %s", name, avahi_strerror (avahi_client_errno (avahi->priv->client))); break; case AVAHI_BROWSER_REMOVE: ARIO_LOG_DBG ("(Browser) REMOVE: service '%s' of type '%s' in domain '%s'", name, type, domain); ario_avahi_remove_host (avahi, name); break; case AVAHI_BROWSER_ALL_FOR_NOW: case AVAHI_BROWSER_CACHE_EXHAUSTED: ARIO_LOG_DBG ("(Browser) %s", event == AVAHI_BROWSER_CACHE_EXHAUSTED ? "CACHE_EXHAUSTED" : "ALL_FOR_NOW"); break; } } static void ario_avahi_client_callback (AvahiClient *c, AvahiClientState state, AVAHI_GCC_UNUSED void *userdata) { ARIO_LOG_FUNCTION_START; g_return_if_fail (c); /* Called whenever the client or server state changes */ if (state == AVAHI_CLIENT_FAILURE) { ARIO_LOG_ERROR ("Server connection failure: %s", avahi_strerror (avahi_client_errno (c))); } } GSList * ario_avahi_get_hosts (ArioAvahi *avahi) { ARIO_LOG_FUNCTION_START; return avahi->priv->hosts; } ario-1.6/src/Makefile.in0000644000175000017500000014572013226745577012122 00000000000000# Makefile.in generated by automake 1.15.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2017 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__is_gnu_make = { \ if test -z '$(MAKELEVEL)'; then \ false; \ elif test -n '$(MAKE_HOST)'; then \ true; \ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ true; \ else \ false; \ fi; \ } am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ bin_PROGRAMS = ario$(EXEEXT) @USE_AVAHI_TRUE@am__append_1 = ario-avahi.c\ @USE_AVAHI_TRUE@ ario-avahi.h @USE_LIBMPDCLIENT2_TRUE@am__append_2 = servers/ario-mpd2.c\ @USE_LIBMPDCLIENT2_TRUE@ servers/ario-mpd2.h @USE_LIBMPDCLIENT2_FALSE@am__append_3 = servers/ario-mpd.c\ @USE_LIBMPDCLIENT2_FALSE@ servers/ario-mpd.h\ @USE_LIBMPDCLIENT2_FALSE@ lib/libmpdclient.c\ @USE_LIBMPDCLIENT2_FALSE@ lib/libmpdclient.h @USE_XMMS2_TRUE@am__append_4 = servers/ario-xmms.c\ @USE_XMMS2_TRUE@ servers/ario-xmms.h @ENABLE_PYTHON_TRUE@am__append_5 = plugins/ario-python-module.c\ @ENABLE_PYTHON_TRUE@ plugins/ario-python-module.h\ @ENABLE_PYTHON_TRUE@ plugins/ario-python-plugin.c\ @ENABLE_PYTHON_TRUE@ plugins/ario-python-plugin.h @ENABLE_PYTHON_TRUE@am__append_6 = \ @ENABLE_PYTHON_TRUE@ $(NO_STRICT_ALIASING_CFLAGS) \ @ENABLE_PYTHON_TRUE@ $(PYGTK_CFLAGS) \ @ENABLE_PYTHON_TRUE@ $(PYTHON_CFLAGS) \ @ENABLE_PYTHON_TRUE@ $(AM_CFLAGS) @ENABLE_PYTHON_TRUE@am__append_7 = \ @ENABLE_PYTHON_TRUE@ $(top_builddir)/bindings/python/ario.la @MPD_GLIB_TRUE@am__append_8 = -DMPD_GLIB subdir = src ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = LTLIBRARIES = $(noinst_LTLIBRARIES) am__DEPENDENCIES_1 = libario_la_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_1) $(am__append_7) am__libario_la_SOURCES_DIST = ario-enum-types.c ario-enum-types.h \ ario-debug.h ario-profiles.c ario-profiles.h ario-util.c \ ario-util.h covers/ario-cover.c covers/ario-cover.h \ covers/ario-cover-handler.c covers/ario-cover-handler.h \ covers/ario-cover-lastfm.c covers/ario-cover-lastfm.h \ covers/ario-cover-local.c covers/ario-cover-local.h \ covers/ario-cover-manager.c covers/ario-cover-manager.h \ covers/ario-cover-provider.c covers/ario-cover-provider.h \ lib/ario-conf.c lib/ario-conf.h lib/gtk-builder-helpers.c \ lib/gtk-builder-helpers.h lyrics/ario-lyrics-letras.c \ lyrics/ario-lyrics-letras.h lyrics/ario-lyrics-manager.c \ lyrics/ario-lyrics-manager.h lyrics/ario-lyrics-provider.c \ lyrics/ario-lyrics-provider.h lyrics/ario-lyrics.c \ lyrics/ario-lyrics.h notification/ario-notification-manager.c \ notification/ario-notification-manager.h \ notification/ario-notifier.c notification/ario-notifier.h \ notification/ario-notifier-gnotif.c \ notification/ario-notifier-gnotif.h \ playlist/ario-playlist-manager.c \ playlist/ario-playlist-manager.h playlist/ario-playlist-mode.c \ playlist/ario-playlist-mode.h playlist/ario-playlist-normal.c \ playlist/ario-playlist-normal.h playlist/ario-playlist-queue.c \ playlist/ario-playlist-queue.h \ playlist/ario-playlist-dynamic.c \ playlist/ario-playlist-dynamic.h plugins/ario-module.c \ plugins/ario-module.h plugins/ario-plugin.c \ plugins/ario-plugin.h plugins/ario-plugin-info.c \ plugins/ario-plugin-info.h plugins/ario-plugin-info-priv.h \ plugins/ario-plugin-manager.c plugins/ario-plugin-manager.h \ plugins/ario-plugins-engine.c plugins/ario-plugins-engine.h \ preferences/ario-browser-preferences.c \ preferences/ario-browser-preferences.h \ preferences/ario-connection-preferences.c \ preferences/ario-connection-preferences.h \ preferences/ario-cover-preferences.c \ preferences/ario-cover-preferences.h \ preferences/ario-lyrics-preferences.c \ preferences/ario-lyrics-preferences.h \ preferences/ario-others-preferences.c \ preferences/ario-others-preferences.h \ preferences/ario-playlist-preferences.c \ preferences/ario-playlist-preferences.h \ preferences/ario-server-preferences.c \ preferences/ario-server-preferences.h \ preferences/ario-stats-preferences.c \ preferences/ario-stats-preferences.h \ preferences/ario-preferences.h servers/ario-server.c \ servers/ario-server.h servers/ario-server-interface.c \ servers/ario-server-interface.h sources/ario-browser.c \ sources/ario-browser.h sources/ario-tree.c sources/ario-tree.h \ sources/ario-tree-albums.c sources/ario-tree-albums.h \ sources/ario-tree-songs.c sources/ario-tree-songs.h \ sources/ario-search.c sources/ario-search.h \ sources/ario-source.c sources/ario-source.h \ sources/ario-source-manager.c sources/ario-source-manager.h \ sources/ario-storedplaylists.c sources/ario-storedplaylists.h \ shell/ario-shell.c shell/ario-shell.h \ shell/ario-shell-coverdownloader.c \ shell/ario-shell-coverdownloader.h \ shell/ario-shell-coverselect.c shell/ario-shell-coverselect.h \ shell/ario-shell-lyrics.c shell/ario-shell-lyrics.h \ shell/ario-shell-lyricsselect.c \ shell/ario-shell-lyricsselect.h shell/ario-shell-preferences.c \ shell/ario-shell-preferences.h shell/ario-shell-songinfos.c \ shell/ario-shell-songinfos.h shell/ario-shell-similarartists.c \ shell/ario-shell-similarartists.h \ widgets/ario-connection-widget.c \ widgets/ario-connection-widget.h widgets/ario-dnd-tree.c \ widgets/ario-dnd-tree.h widgets/ario-firstlaunch.c \ widgets/ario-firstlaunch.h widgets/ario-header.c \ widgets/ario-header.h widgets/ario-lyrics-editor.c \ widgets/ario-lyrics-editor.h widgets/ario-playlist.c \ widgets/ario-playlist.h widgets/ario-songlist.c \ widgets/ario-songlist.h widgets/ario-status-bar.c \ widgets/ario-status-bar.h widgets/ario-volume.c \ widgets/ario-volume.h ario-avahi.c ario-avahi.h \ servers/ario-mpd2.c servers/ario-mpd2.h servers/ario-mpd.c \ servers/ario-mpd.h lib/libmpdclient.c lib/libmpdclient.h \ servers/ario-xmms.c servers/ario-xmms.h am__dirstamp = $(am__leading_dot)dirstamp @USE_AVAHI_TRUE@am__objects_1 = ario-avahi.lo @USE_LIBMPDCLIENT2_TRUE@am__objects_2 = servers/ario-mpd2.lo @USE_LIBMPDCLIENT2_FALSE@am__objects_3 = servers/ario-mpd.lo \ @USE_LIBMPDCLIENT2_FALSE@ lib/libmpdclient.lo @USE_XMMS2_TRUE@am__objects_4 = servers/ario-xmms.lo am_libario_la_OBJECTS = ario-enum-types.lo ario-profiles.lo \ ario-util.lo covers/ario-cover.lo covers/ario-cover-handler.lo \ covers/ario-cover-lastfm.lo covers/ario-cover-local.lo \ covers/ario-cover-manager.lo covers/ario-cover-provider.lo \ lib/ario-conf.lo lib/gtk-builder-helpers.lo \ lyrics/ario-lyrics-letras.lo lyrics/ario-lyrics-manager.lo \ lyrics/ario-lyrics-provider.lo lyrics/ario-lyrics.lo \ notification/ario-notification-manager.lo \ notification/ario-notifier.lo \ notification/ario-notifier-gnotif.lo \ playlist/ario-playlist-manager.lo \ playlist/ario-playlist-mode.lo \ playlist/ario-playlist-normal.lo \ playlist/ario-playlist-queue.lo \ playlist/ario-playlist-dynamic.lo plugins/ario-module.lo \ plugins/ario-plugin.lo plugins/ario-plugin-info.lo \ plugins/ario-plugin-manager.lo plugins/ario-plugins-engine.lo \ preferences/ario-browser-preferences.lo \ preferences/ario-connection-preferences.lo \ preferences/ario-cover-preferences.lo \ preferences/ario-lyrics-preferences.lo \ preferences/ario-others-preferences.lo \ preferences/ario-playlist-preferences.lo \ preferences/ario-server-preferences.lo \ preferences/ario-stats-preferences.lo servers/ario-server.lo \ servers/ario-server-interface.lo sources/ario-browser.lo \ sources/ario-tree.lo sources/ario-tree-albums.lo \ sources/ario-tree-songs.lo sources/ario-search.lo \ sources/ario-source.lo sources/ario-source-manager.lo \ sources/ario-storedplaylists.lo shell/ario-shell.lo \ shell/ario-shell-coverdownloader.lo \ shell/ario-shell-coverselect.lo shell/ario-shell-lyrics.lo \ shell/ario-shell-lyricsselect.lo \ shell/ario-shell-preferences.lo shell/ario-shell-songinfos.lo \ shell/ario-shell-similarartists.lo \ widgets/ario-connection-widget.lo widgets/ario-dnd-tree.lo \ widgets/ario-firstlaunch.lo widgets/ario-header.lo \ widgets/ario-lyrics-editor.lo widgets/ario-playlist.lo \ widgets/ario-songlist.lo widgets/ario-status-bar.lo \ widgets/ario-volume.lo $(am__objects_1) $(am__objects_2) \ $(am__objects_3) $(am__objects_4) libario_la_OBJECTS = $(am_libario_la_OBJECTS) AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent am__v_lt_1 = am__installdirs = "$(DESTDIR)$(bindir)" PROGRAMS = $(bin_PROGRAMS) am__ario_SOURCES_DIST = ario-main.c plugins/ario-python-module.c \ plugins/ario-python-module.h plugins/ario-python-plugin.c \ plugins/ario-python-plugin.h @ENABLE_PYTHON_TRUE@am__objects_5 = \ @ENABLE_PYTHON_TRUE@ plugins/ario-python-module.$(OBJEXT) \ @ENABLE_PYTHON_TRUE@ plugins/ario-python-plugin.$(OBJEXT) am_ario_OBJECTS = ario-main.$(OBJEXT) $(am__objects_5) ario_OBJECTS = $(am_ario_OBJECTS) ario_DEPENDENCIES = libario.la $(am__DEPENDENCIES_1) AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) AM_V_CC = $(am__v_CC_@AM_V@) am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) am__v_CC_0 = @echo " CC " $@; am__v_CC_1 = CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_CCLD = $(am__v_CCLD_@AM_V@) am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) am__v_CCLD_0 = @echo " CCLD " $@; am__v_CCLD_1 = SOURCES = $(libario_la_SOURCES) $(ario_SOURCES) DIST_SOURCES = $(am__libario_la_SOURCES_DIST) $(am__ario_SOURCES_DIST) am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) # Read a list of newline-separated strings from the standard input, # and print each of them once, without duplicates. Input order is # *not* preserved. am__uniquify_input = $(AWK) '\ BEGIN { nonempty = 0; } \ { items[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in items) print i; }; } \ ' # Make sure the list of sources is unique. This is necessary because, # e.g., the same source file might be shared among _SOURCES variables # for different programs/libraries. am__define_uniq_tagged_files = \ list='$(am__tagged_files)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALL_LINGUAS = @ALL_LINGUAS@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AR_FLAGS = @AR_FLAGS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AVAHI_CFLAGS = @AVAHI_CFLAGS@ AVAHI_LIBS = @AVAHI_LIBS@ AWK = @AWK@ CATALOGS = @CATALOGS@ CATOBJEXT = @CATOBJEXT@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIRNAME = @DATADIRNAME@ DBUS_CFLAGS = @DBUS_CFLAGS@ DBUS_GLIB_BIN = @DBUS_GLIB_BIN@ DBUS_LIBS = @DBUS_LIBS@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DEPS_CFLAGS = @DEPS_CFLAGS@ DEPS_LIBS = @DEPS_LIBS@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ GLIB_MKENUMS = @GLIB_MKENUMS@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INSTOBJEXT = @INSTOBJEXT@ INTLLIBS = @INTLLIBS@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@ INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@ INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBMPDCLIENT2_CFLAGS = @LIBMPDCLIENT2_CFLAGS@ LIBMPDCLIENT2_LIBS = @LIBMPDCLIENT2_LIBS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MKINSTALLDIRS = @MKINSTALLDIRS@ MSGFMT = @MSGFMT@ MSGFMT_OPTS = @MSGFMT_OPTS@ MSGMERGE = @MSGMERGE@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ PLUGINDIR = @PLUGINDIR@ PLUGIN_DATA_DIR = @PLUGIN_DATA_DIR@ POFILES = @POFILES@ POSUB = @POSUB@ PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ PYGTK_CFLAGS = @PYGTK_CFLAGS@ PYGTK_CODEGEN = @PYGTK_CODEGEN@ PYGTK_DEFSDIR = @PYGTK_DEFSDIR@ PYGTK_H2DEF = @PYGTK_H2DEF@ PYGTK_LIBS = @PYGTK_LIBS@ PYTHON = @PYTHON@ PYTHON_CFLAGS = @PYTHON_CFLAGS@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_EXTRA_LIBS = @PYTHON_EXTRA_LIBS@ PYTHON_LIBS = @PYTHON_LIBS@ PYTHON_LIB_LOC = @PYTHON_LIB_LOC@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ PYTHON_PREFIX = @PYTHON_PREFIX@ PYTHON_VERSION = @PYTHON_VERSION@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ TAGLIB_CFLAGS = @TAGLIB_CFLAGS@ TAGLIB_LIBS = @TAGLIB_LIBS@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ WARNINGS = @WARNINGS@ XGETTEXT = @XGETTEXT@ XMMS2_CFLAGS = @XMMS2_CFLAGS@ XMMS2_LIBS = @XMMS2_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ intltool__v_merge_options_ = @intltool__v_merge_options_@ intltool__v_merge_options_0 = @intltool__v_merge_options_0@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pkgpyexecdir = @pkgpyexecdir@ pkgpythondir = @pkgpythondir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ pyexecdir = @pyexecdir@ pythondir = @pythondir@ runstatedir = @runstatedir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ BUILT_SOURCES = AUTHORS.tab noinst_LTLIBRARIES = libario.la INCLUDES = $(WARNINGS) $(am__append_6) ario_SOURCES = ario-main.c $(am__append_5) ario_LDADD = libario.la $(DEPS_LIBS) libario_la_LIBADD = $(DEPS_LIBS) $(AVAHI_LIBS) $(LIBMPDCLIENT2_LIBS) \ $(TAGLIB_LIBS) $(XMMS2_LIBS) $(LIBGCRYPT_LIBS) $(am__append_7) libario_la_SOURCES = ario-enum-types.c ario-enum-types.h ario-debug.h \ ario-profiles.c ario-profiles.h ario-util.c ario-util.h \ covers/ario-cover.c covers/ario-cover.h \ covers/ario-cover-handler.c covers/ario-cover-handler.h \ covers/ario-cover-lastfm.c covers/ario-cover-lastfm.h \ covers/ario-cover-local.c covers/ario-cover-local.h \ covers/ario-cover-manager.c covers/ario-cover-manager.h \ covers/ario-cover-provider.c covers/ario-cover-provider.h \ lib/ario-conf.c lib/ario-conf.h lib/gtk-builder-helpers.c \ lib/gtk-builder-helpers.h lyrics/ario-lyrics-letras.c \ lyrics/ario-lyrics-letras.h lyrics/ario-lyrics-manager.c \ lyrics/ario-lyrics-manager.h lyrics/ario-lyrics-provider.c \ lyrics/ario-lyrics-provider.h lyrics/ario-lyrics.c \ lyrics/ario-lyrics.h notification/ario-notification-manager.c \ notification/ario-notification-manager.h \ notification/ario-notifier.c notification/ario-notifier.h \ notification/ario-notifier-gnotif.c \ notification/ario-notifier-gnotif.h \ playlist/ario-playlist-manager.c \ playlist/ario-playlist-manager.h playlist/ario-playlist-mode.c \ playlist/ario-playlist-mode.h playlist/ario-playlist-normal.c \ playlist/ario-playlist-normal.h playlist/ario-playlist-queue.c \ playlist/ario-playlist-queue.h \ playlist/ario-playlist-dynamic.c \ playlist/ario-playlist-dynamic.h plugins/ario-module.c \ plugins/ario-module.h plugins/ario-plugin.c \ plugins/ario-plugin.h plugins/ario-plugin-info.c \ plugins/ario-plugin-info.h plugins/ario-plugin-info-priv.h \ plugins/ario-plugin-manager.c plugins/ario-plugin-manager.h \ plugins/ario-plugins-engine.c plugins/ario-plugins-engine.h \ preferences/ario-browser-preferences.c \ preferences/ario-browser-preferences.h \ preferences/ario-connection-preferences.c \ preferences/ario-connection-preferences.h \ preferences/ario-cover-preferences.c \ preferences/ario-cover-preferences.h \ preferences/ario-lyrics-preferences.c \ preferences/ario-lyrics-preferences.h \ preferences/ario-others-preferences.c \ preferences/ario-others-preferences.h \ preferences/ario-playlist-preferences.c \ preferences/ario-playlist-preferences.h \ preferences/ario-server-preferences.c \ preferences/ario-server-preferences.h \ preferences/ario-stats-preferences.c \ preferences/ario-stats-preferences.h \ preferences/ario-preferences.h servers/ario-server.c \ servers/ario-server.h servers/ario-server-interface.c \ servers/ario-server-interface.h sources/ario-browser.c \ sources/ario-browser.h sources/ario-tree.c sources/ario-tree.h \ sources/ario-tree-albums.c sources/ario-tree-albums.h \ sources/ario-tree-songs.c sources/ario-tree-songs.h \ sources/ario-search.c sources/ario-search.h \ sources/ario-source.c sources/ario-source.h \ sources/ario-source-manager.c sources/ario-source-manager.h \ sources/ario-storedplaylists.c sources/ario-storedplaylists.h \ shell/ario-shell.c shell/ario-shell.h \ shell/ario-shell-coverdownloader.c \ shell/ario-shell-coverdownloader.h \ shell/ario-shell-coverselect.c shell/ario-shell-coverselect.h \ shell/ario-shell-lyrics.c shell/ario-shell-lyrics.h \ shell/ario-shell-lyricsselect.c \ shell/ario-shell-lyricsselect.h shell/ario-shell-preferences.c \ shell/ario-shell-preferences.h shell/ario-shell-songinfos.c \ shell/ario-shell-songinfos.h shell/ario-shell-similarartists.c \ shell/ario-shell-similarartists.h \ widgets/ario-connection-widget.c \ widgets/ario-connection-widget.h widgets/ario-dnd-tree.c \ widgets/ario-dnd-tree.h widgets/ario-firstlaunch.c \ widgets/ario-firstlaunch.h widgets/ario-header.c \ widgets/ario-header.h widgets/ario-lyrics-editor.c \ widgets/ario-lyrics-editor.h widgets/ario-playlist.c \ widgets/ario-playlist.h widgets/ario-songlist.c \ widgets/ario-songlist.h widgets/ario-status-bar.c \ widgets/ario-status-bar.h widgets/ario-volume.c \ widgets/ario-volume.h $(am__append_1) $(am__append_2) \ $(am__append_3) $(am__append_4) INST_H_FILES = \ plugins/ario-plugin.h \ servers/ario-server.h \ sources/ario-source-manager.h \ sources/ario-source.h \ shell/ario-shell.h AM_CPPFLAGS = $(DEPS_CFLAGS) $(AVAHI_CFLAGS) $(LIBMPDCLIENT2_CFLAGS) \ $(TAGLIB_CFLAGS) $(LIBGCRYPT_CFLAGS) $(XMMS2_CFLAGS) \ -DLOCALE_DIR=\""$(datadir)/locale"\" \ -DPIXMAP_PATH=\""$(pkgdatadir)/art/"\" \ -DDATA_PATH=\""$(pkgdatadir)/data/"\" \ -DUI_PATH=\""$(pkgdatadir)/ui/"\" \ -DARIO_PLUGIN_DIR=\"$(PLUGINDIR)\" \ -DARIO_PLUGIN_DATA_DIR=\"$(PLUGIN_DATA_DIR)\" \ -DCURRENT_DATE="\"`date +%G`\"" $(am__append_8) CLEANFILES = $(BUILT_SOURCES) all: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) all-am .SUFFIXES: .SUFFIXES: .c .lo .o .obj $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign src/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): clean-noinstLTLIBRARIES: -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) @list='$(noinst_LTLIBRARIES)'; \ locs=`for p in $$list; do echo $$p; done | \ sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ sort -u`; \ test -z "$$locs" || { \ echo rm -f $${locs}; \ rm -f $${locs}; \ } covers/$(am__dirstamp): @$(MKDIR_P) covers @: > covers/$(am__dirstamp) covers/$(DEPDIR)/$(am__dirstamp): @$(MKDIR_P) covers/$(DEPDIR) @: > covers/$(DEPDIR)/$(am__dirstamp) covers/ario-cover.lo: covers/$(am__dirstamp) \ covers/$(DEPDIR)/$(am__dirstamp) covers/ario-cover-handler.lo: covers/$(am__dirstamp) \ covers/$(DEPDIR)/$(am__dirstamp) covers/ario-cover-lastfm.lo: covers/$(am__dirstamp) \ covers/$(DEPDIR)/$(am__dirstamp) covers/ario-cover-local.lo: covers/$(am__dirstamp) \ covers/$(DEPDIR)/$(am__dirstamp) covers/ario-cover-manager.lo: covers/$(am__dirstamp) \ covers/$(DEPDIR)/$(am__dirstamp) covers/ario-cover-provider.lo: covers/$(am__dirstamp) \ covers/$(DEPDIR)/$(am__dirstamp) lib/$(am__dirstamp): @$(MKDIR_P) lib @: > lib/$(am__dirstamp) lib/$(DEPDIR)/$(am__dirstamp): @$(MKDIR_P) lib/$(DEPDIR) @: > lib/$(DEPDIR)/$(am__dirstamp) lib/ario-conf.lo: lib/$(am__dirstamp) lib/$(DEPDIR)/$(am__dirstamp) lib/gtk-builder-helpers.lo: lib/$(am__dirstamp) \ lib/$(DEPDIR)/$(am__dirstamp) lyrics/$(am__dirstamp): @$(MKDIR_P) lyrics @: > lyrics/$(am__dirstamp) lyrics/$(DEPDIR)/$(am__dirstamp): @$(MKDIR_P) lyrics/$(DEPDIR) @: > lyrics/$(DEPDIR)/$(am__dirstamp) lyrics/ario-lyrics-letras.lo: lyrics/$(am__dirstamp) \ lyrics/$(DEPDIR)/$(am__dirstamp) lyrics/ario-lyrics-manager.lo: lyrics/$(am__dirstamp) \ lyrics/$(DEPDIR)/$(am__dirstamp) lyrics/ario-lyrics-provider.lo: lyrics/$(am__dirstamp) \ lyrics/$(DEPDIR)/$(am__dirstamp) lyrics/ario-lyrics.lo: lyrics/$(am__dirstamp) \ lyrics/$(DEPDIR)/$(am__dirstamp) notification/$(am__dirstamp): @$(MKDIR_P) notification @: > notification/$(am__dirstamp) notification/$(DEPDIR)/$(am__dirstamp): @$(MKDIR_P) notification/$(DEPDIR) @: > notification/$(DEPDIR)/$(am__dirstamp) notification/ario-notification-manager.lo: \ notification/$(am__dirstamp) \ notification/$(DEPDIR)/$(am__dirstamp) notification/ario-notifier.lo: notification/$(am__dirstamp) \ notification/$(DEPDIR)/$(am__dirstamp) notification/ario-notifier-gnotif.lo: notification/$(am__dirstamp) \ notification/$(DEPDIR)/$(am__dirstamp) playlist/$(am__dirstamp): @$(MKDIR_P) playlist @: > playlist/$(am__dirstamp) playlist/$(DEPDIR)/$(am__dirstamp): @$(MKDIR_P) playlist/$(DEPDIR) @: > playlist/$(DEPDIR)/$(am__dirstamp) playlist/ario-playlist-manager.lo: playlist/$(am__dirstamp) \ playlist/$(DEPDIR)/$(am__dirstamp) playlist/ario-playlist-mode.lo: playlist/$(am__dirstamp) \ playlist/$(DEPDIR)/$(am__dirstamp) playlist/ario-playlist-normal.lo: playlist/$(am__dirstamp) \ playlist/$(DEPDIR)/$(am__dirstamp) playlist/ario-playlist-queue.lo: playlist/$(am__dirstamp) \ playlist/$(DEPDIR)/$(am__dirstamp) playlist/ario-playlist-dynamic.lo: playlist/$(am__dirstamp) \ playlist/$(DEPDIR)/$(am__dirstamp) plugins/$(am__dirstamp): @$(MKDIR_P) plugins @: > plugins/$(am__dirstamp) plugins/$(DEPDIR)/$(am__dirstamp): @$(MKDIR_P) plugins/$(DEPDIR) @: > plugins/$(DEPDIR)/$(am__dirstamp) plugins/ario-module.lo: plugins/$(am__dirstamp) \ plugins/$(DEPDIR)/$(am__dirstamp) plugins/ario-plugin.lo: plugins/$(am__dirstamp) \ plugins/$(DEPDIR)/$(am__dirstamp) plugins/ario-plugin-info.lo: plugins/$(am__dirstamp) \ plugins/$(DEPDIR)/$(am__dirstamp) plugins/ario-plugin-manager.lo: plugins/$(am__dirstamp) \ plugins/$(DEPDIR)/$(am__dirstamp) plugins/ario-plugins-engine.lo: plugins/$(am__dirstamp) \ plugins/$(DEPDIR)/$(am__dirstamp) preferences/$(am__dirstamp): @$(MKDIR_P) preferences @: > preferences/$(am__dirstamp) preferences/$(DEPDIR)/$(am__dirstamp): @$(MKDIR_P) preferences/$(DEPDIR) @: > preferences/$(DEPDIR)/$(am__dirstamp) preferences/ario-browser-preferences.lo: preferences/$(am__dirstamp) \ preferences/$(DEPDIR)/$(am__dirstamp) preferences/ario-connection-preferences.lo: \ preferences/$(am__dirstamp) \ preferences/$(DEPDIR)/$(am__dirstamp) preferences/ario-cover-preferences.lo: preferences/$(am__dirstamp) \ preferences/$(DEPDIR)/$(am__dirstamp) preferences/ario-lyrics-preferences.lo: preferences/$(am__dirstamp) \ preferences/$(DEPDIR)/$(am__dirstamp) preferences/ario-others-preferences.lo: preferences/$(am__dirstamp) \ preferences/$(DEPDIR)/$(am__dirstamp) preferences/ario-playlist-preferences.lo: preferences/$(am__dirstamp) \ preferences/$(DEPDIR)/$(am__dirstamp) preferences/ario-server-preferences.lo: preferences/$(am__dirstamp) \ preferences/$(DEPDIR)/$(am__dirstamp) preferences/ario-stats-preferences.lo: preferences/$(am__dirstamp) \ preferences/$(DEPDIR)/$(am__dirstamp) servers/$(am__dirstamp): @$(MKDIR_P) servers @: > servers/$(am__dirstamp) servers/$(DEPDIR)/$(am__dirstamp): @$(MKDIR_P) servers/$(DEPDIR) @: > servers/$(DEPDIR)/$(am__dirstamp) servers/ario-server.lo: servers/$(am__dirstamp) \ servers/$(DEPDIR)/$(am__dirstamp) servers/ario-server-interface.lo: servers/$(am__dirstamp) \ servers/$(DEPDIR)/$(am__dirstamp) sources/$(am__dirstamp): @$(MKDIR_P) sources @: > sources/$(am__dirstamp) sources/$(DEPDIR)/$(am__dirstamp): @$(MKDIR_P) sources/$(DEPDIR) @: > sources/$(DEPDIR)/$(am__dirstamp) sources/ario-browser.lo: sources/$(am__dirstamp) \ sources/$(DEPDIR)/$(am__dirstamp) sources/ario-tree.lo: sources/$(am__dirstamp) \ sources/$(DEPDIR)/$(am__dirstamp) sources/ario-tree-albums.lo: sources/$(am__dirstamp) \ sources/$(DEPDIR)/$(am__dirstamp) sources/ario-tree-songs.lo: sources/$(am__dirstamp) \ sources/$(DEPDIR)/$(am__dirstamp) sources/ario-search.lo: sources/$(am__dirstamp) \ sources/$(DEPDIR)/$(am__dirstamp) sources/ario-source.lo: sources/$(am__dirstamp) \ sources/$(DEPDIR)/$(am__dirstamp) sources/ario-source-manager.lo: sources/$(am__dirstamp) \ sources/$(DEPDIR)/$(am__dirstamp) sources/ario-storedplaylists.lo: sources/$(am__dirstamp) \ sources/$(DEPDIR)/$(am__dirstamp) shell/$(am__dirstamp): @$(MKDIR_P) shell @: > shell/$(am__dirstamp) shell/$(DEPDIR)/$(am__dirstamp): @$(MKDIR_P) shell/$(DEPDIR) @: > shell/$(DEPDIR)/$(am__dirstamp) shell/ario-shell.lo: shell/$(am__dirstamp) \ shell/$(DEPDIR)/$(am__dirstamp) shell/ario-shell-coverdownloader.lo: shell/$(am__dirstamp) \ shell/$(DEPDIR)/$(am__dirstamp) shell/ario-shell-coverselect.lo: shell/$(am__dirstamp) \ shell/$(DEPDIR)/$(am__dirstamp) shell/ario-shell-lyrics.lo: shell/$(am__dirstamp) \ shell/$(DEPDIR)/$(am__dirstamp) shell/ario-shell-lyricsselect.lo: shell/$(am__dirstamp) \ shell/$(DEPDIR)/$(am__dirstamp) shell/ario-shell-preferences.lo: shell/$(am__dirstamp) \ shell/$(DEPDIR)/$(am__dirstamp) shell/ario-shell-songinfos.lo: shell/$(am__dirstamp) \ shell/$(DEPDIR)/$(am__dirstamp) shell/ario-shell-similarartists.lo: shell/$(am__dirstamp) \ shell/$(DEPDIR)/$(am__dirstamp) widgets/$(am__dirstamp): @$(MKDIR_P) widgets @: > widgets/$(am__dirstamp) widgets/$(DEPDIR)/$(am__dirstamp): @$(MKDIR_P) widgets/$(DEPDIR) @: > widgets/$(DEPDIR)/$(am__dirstamp) widgets/ario-connection-widget.lo: widgets/$(am__dirstamp) \ widgets/$(DEPDIR)/$(am__dirstamp) widgets/ario-dnd-tree.lo: widgets/$(am__dirstamp) \ widgets/$(DEPDIR)/$(am__dirstamp) widgets/ario-firstlaunch.lo: widgets/$(am__dirstamp) \ widgets/$(DEPDIR)/$(am__dirstamp) widgets/ario-header.lo: widgets/$(am__dirstamp) \ widgets/$(DEPDIR)/$(am__dirstamp) widgets/ario-lyrics-editor.lo: widgets/$(am__dirstamp) \ widgets/$(DEPDIR)/$(am__dirstamp) widgets/ario-playlist.lo: widgets/$(am__dirstamp) \ widgets/$(DEPDIR)/$(am__dirstamp) widgets/ario-songlist.lo: widgets/$(am__dirstamp) \ widgets/$(DEPDIR)/$(am__dirstamp) widgets/ario-status-bar.lo: widgets/$(am__dirstamp) \ widgets/$(DEPDIR)/$(am__dirstamp) widgets/ario-volume.lo: widgets/$(am__dirstamp) \ widgets/$(DEPDIR)/$(am__dirstamp) servers/ario-mpd2.lo: servers/$(am__dirstamp) \ servers/$(DEPDIR)/$(am__dirstamp) servers/ario-mpd.lo: servers/$(am__dirstamp) \ servers/$(DEPDIR)/$(am__dirstamp) lib/libmpdclient.lo: lib/$(am__dirstamp) lib/$(DEPDIR)/$(am__dirstamp) servers/ario-xmms.lo: servers/$(am__dirstamp) \ servers/$(DEPDIR)/$(am__dirstamp) libario.la: $(libario_la_OBJECTS) $(libario_la_DEPENDENCIES) $(EXTRA_libario_la_DEPENDENCIES) $(AM_V_CCLD)$(LINK) $(libario_la_OBJECTS) $(libario_la_LIBADD) $(LIBS) install-binPROGRAMS: $(bin_PROGRAMS) @$(NORMAL_INSTALL) @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(bindir)'"; \ $(MKDIR_P) "$(DESTDIR)$(bindir)" || exit 1; \ fi; \ for p in $$list; do echo "$$p $$p"; done | \ sed 's/$(EXEEXT)$$//' | \ while read p p1; do if test -f $$p \ || test -f $$p1 \ ; then echo "$$p"; echo "$$p"; else :; fi; \ done | \ sed -e 'p;s,.*/,,;n;h' \ -e 's|.*|.|' \ -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \ sed 'N;N;N;s,\n, ,g' | \ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \ { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \ if ($$2 == $$4) files[d] = files[d] " " $$1; \ else { print "f", $$3 "/" $$4, $$1; } } \ END { for (d in files) print "f", d, files[d] }' | \ while read type dir files; do \ if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \ test -z "$$files" || { \ echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \ $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \ } \ ; done uninstall-binPROGRAMS: @$(NORMAL_UNINSTALL) @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ files=`for p in $$list; do echo "$$p"; done | \ sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \ -e 's/$$/$(EXEEXT)/' \ `; \ test -n "$$list" || exit 0; \ echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(bindir)" && rm -f $$files clean-binPROGRAMS: @list='$(bin_PROGRAMS)'; test -n "$$list" || exit 0; \ echo " rm -f" $$list; \ rm -f $$list || exit $$?; \ test -n "$(EXEEXT)" || exit 0; \ list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ echo " rm -f" $$list; \ rm -f $$list plugins/ario-python-module.$(OBJEXT): plugins/$(am__dirstamp) \ plugins/$(DEPDIR)/$(am__dirstamp) plugins/ario-python-plugin.$(OBJEXT): plugins/$(am__dirstamp) \ plugins/$(DEPDIR)/$(am__dirstamp) ario$(EXEEXT): $(ario_OBJECTS) $(ario_DEPENDENCIES) $(EXTRA_ario_DEPENDENCIES) @rm -f ario$(EXEEXT) $(AM_V_CCLD)$(LINK) $(ario_OBJECTS) $(ario_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) -rm -f covers/*.$(OBJEXT) -rm -f covers/*.lo -rm -f lib/*.$(OBJEXT) -rm -f lib/*.lo -rm -f lyrics/*.$(OBJEXT) -rm -f lyrics/*.lo -rm -f notification/*.$(OBJEXT) -rm -f notification/*.lo -rm -f playlist/*.$(OBJEXT) -rm -f playlist/*.lo -rm -f plugins/*.$(OBJEXT) -rm -f plugins/*.lo -rm -f preferences/*.$(OBJEXT) -rm -f preferences/*.lo -rm -f servers/*.$(OBJEXT) -rm -f servers/*.lo -rm -f shell/*.$(OBJEXT) -rm -f shell/*.lo -rm -f sources/*.$(OBJEXT) -rm -f sources/*.lo -rm -f widgets/*.$(OBJEXT) -rm -f widgets/*.lo distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ario-avahi.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ario-enum-types.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ario-main.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ario-profiles.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ario-util.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@covers/$(DEPDIR)/ario-cover-handler.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@covers/$(DEPDIR)/ario-cover-lastfm.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@covers/$(DEPDIR)/ario-cover-local.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@covers/$(DEPDIR)/ario-cover-manager.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@covers/$(DEPDIR)/ario-cover-provider.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@covers/$(DEPDIR)/ario-cover.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/ario-conf.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/gtk-builder-helpers.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/libmpdclient.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@lyrics/$(DEPDIR)/ario-lyrics-letras.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@lyrics/$(DEPDIR)/ario-lyrics-manager.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@lyrics/$(DEPDIR)/ario-lyrics-provider.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@lyrics/$(DEPDIR)/ario-lyrics.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@notification/$(DEPDIR)/ario-notification-manager.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@notification/$(DEPDIR)/ario-notifier-gnotif.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@notification/$(DEPDIR)/ario-notifier.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@playlist/$(DEPDIR)/ario-playlist-dynamic.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@playlist/$(DEPDIR)/ario-playlist-manager.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@playlist/$(DEPDIR)/ario-playlist-mode.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@playlist/$(DEPDIR)/ario-playlist-normal.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@playlist/$(DEPDIR)/ario-playlist-queue.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@plugins/$(DEPDIR)/ario-module.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@plugins/$(DEPDIR)/ario-plugin-info.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@plugins/$(DEPDIR)/ario-plugin-manager.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@plugins/$(DEPDIR)/ario-plugin.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@plugins/$(DEPDIR)/ario-plugins-engine.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@plugins/$(DEPDIR)/ario-python-module.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@plugins/$(DEPDIR)/ario-python-plugin.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@preferences/$(DEPDIR)/ario-browser-preferences.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@preferences/$(DEPDIR)/ario-connection-preferences.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@preferences/$(DEPDIR)/ario-cover-preferences.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@preferences/$(DEPDIR)/ario-lyrics-preferences.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@preferences/$(DEPDIR)/ario-others-preferences.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@preferences/$(DEPDIR)/ario-playlist-preferences.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@preferences/$(DEPDIR)/ario-server-preferences.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@preferences/$(DEPDIR)/ario-stats-preferences.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@servers/$(DEPDIR)/ario-mpd.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@servers/$(DEPDIR)/ario-mpd2.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@servers/$(DEPDIR)/ario-server-interface.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@servers/$(DEPDIR)/ario-server.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@servers/$(DEPDIR)/ario-xmms.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@shell/$(DEPDIR)/ario-shell-coverdownloader.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@shell/$(DEPDIR)/ario-shell-coverselect.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@shell/$(DEPDIR)/ario-shell-lyrics.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@shell/$(DEPDIR)/ario-shell-lyricsselect.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@shell/$(DEPDIR)/ario-shell-preferences.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@shell/$(DEPDIR)/ario-shell-similarartists.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@shell/$(DEPDIR)/ario-shell-songinfos.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@shell/$(DEPDIR)/ario-shell.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@sources/$(DEPDIR)/ario-browser.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@sources/$(DEPDIR)/ario-search.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@sources/$(DEPDIR)/ario-source-manager.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@sources/$(DEPDIR)/ario-source.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@sources/$(DEPDIR)/ario-storedplaylists.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@sources/$(DEPDIR)/ario-tree-albums.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@sources/$(DEPDIR)/ario-tree-songs.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@sources/$(DEPDIR)/ario-tree.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@widgets/$(DEPDIR)/ario-connection-widget.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@widgets/$(DEPDIR)/ario-dnd-tree.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@widgets/$(DEPDIR)/ario-firstlaunch.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@widgets/$(DEPDIR)/ario-header.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@widgets/$(DEPDIR)/ario-lyrics-editor.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@widgets/$(DEPDIR)/ario-playlist.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@widgets/$(DEPDIR)/ario-songlist.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@widgets/$(DEPDIR)/ario-status-bar.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@widgets/$(DEPDIR)/ario-volume.Plo@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\ @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ @am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< .c.obj: @am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\ @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\ @am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\ @am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ @am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs -rm -rf covers/.libs covers/_libs -rm -rf lib/.libs lib/_libs -rm -rf lyrics/.libs lyrics/_libs -rm -rf notification/.libs notification/_libs -rm -rf playlist/.libs playlist/_libs -rm -rf plugins/.libs plugins/_libs -rm -rf preferences/.libs preferences/_libs -rm -rf servers/.libs servers/_libs -rm -rf shell/.libs shell/_libs -rm -rf sources/.libs sources/_libs -rm -rf widgets/.libs widgets/_libs ID: $(am__tagged_files) $(am__define_uniq_tagged_files); mkid -fID $$unique tags: tags-am TAGS: tags tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: ctags-am CTAGS: ctags ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" cscopelist: cscopelist-am cscopelist-am: $(am__tagged_files) list='$(am__tagged_files)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ esac; \ for i in $$list; do \ if test -f "$$i"; then \ echo "$(subdir)/$$i"; \ else \ echo "$$sdir/$$i"; \ fi; \ done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) check-am all-am: Makefile $(LTLIBRARIES) $(PROGRAMS) installdirs: for dir in "$(DESTDIR)$(bindir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) -rm -f covers/$(DEPDIR)/$(am__dirstamp) -rm -f covers/$(am__dirstamp) -rm -f lib/$(DEPDIR)/$(am__dirstamp) -rm -f lib/$(am__dirstamp) -rm -f lyrics/$(DEPDIR)/$(am__dirstamp) -rm -f lyrics/$(am__dirstamp) -rm -f notification/$(DEPDIR)/$(am__dirstamp) -rm -f notification/$(am__dirstamp) -rm -f playlist/$(DEPDIR)/$(am__dirstamp) -rm -f playlist/$(am__dirstamp) -rm -f plugins/$(DEPDIR)/$(am__dirstamp) -rm -f plugins/$(am__dirstamp) -rm -f preferences/$(DEPDIR)/$(am__dirstamp) -rm -f preferences/$(am__dirstamp) -rm -f servers/$(DEPDIR)/$(am__dirstamp) -rm -f servers/$(am__dirstamp) -rm -f shell/$(DEPDIR)/$(am__dirstamp) -rm -f shell/$(am__dirstamp) -rm -f sources/$(DEPDIR)/$(am__dirstamp) -rm -f sources/$(am__dirstamp) -rm -f widgets/$(DEPDIR)/$(am__dirstamp) -rm -f widgets/$(am__dirstamp) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES) clean: clean-am clean-am: clean-binPROGRAMS clean-generic clean-libtool \ clean-noinstLTLIBRARIES mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) covers/$(DEPDIR) lib/$(DEPDIR) lyrics/$(DEPDIR) notification/$(DEPDIR) playlist/$(DEPDIR) plugins/$(DEPDIR) preferences/$(DEPDIR) servers/$(DEPDIR) shell/$(DEPDIR) sources/$(DEPDIR) widgets/$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-binPROGRAMS install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) covers/$(DEPDIR) lib/$(DEPDIR) lyrics/$(DEPDIR) notification/$(DEPDIR) playlist/$(DEPDIR) plugins/$(DEPDIR) preferences/$(DEPDIR) servers/$(DEPDIR) shell/$(DEPDIR) sources/$(DEPDIR) widgets/$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-binPROGRAMS .MAKE: all check install install-am install-strip .PHONY: CTAGS GTAGS TAGS all all-am check check-am clean \ clean-binPROGRAMS clean-generic clean-libtool \ clean-noinstLTLIBRARIES cscopelist-am ctags ctags-am distclean \ distclean-compile distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-binPROGRAMS install-data \ install-data-am install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-pdf install-pdf-am \ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags tags-am uninstall uninstall-am uninstall-binPROGRAMS .PRECIOUS: Makefile regenerate-enum-types: (cd $(srcdir) && $(GLIB_MKENUMS) --template ario-enum-types.h.template $(INST_H_FILES)) > ario-enum-types.h (cd $(srcdir) && $(GLIB_MKENUMS) --template ario-enum-types.c.template $(INST_H_FILES)) > ario-enum-types.c AUTHORS.tab : $(top_srcdir)/AUTHORS sed -e 's/^/"/' -e 's/$$/",/' < $(top_srcdir)/AUTHORS > $@.tmp mv $@.tmp $@ # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: ario-1.6/src/servers/0000755000175000017500000000000013226745613011604 500000000000000ario-1.6/src/servers/ario-xmms.c0000644000175000017500000014056113226723433013607 00000000000000/* * Copyright (C) 2008 Marc Pavot * Copyright (C) 2009 Samuel CUELLA * * 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, 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * */ #include "servers/ario-xmms.h" #include #include #include #include #include #include #include #include "lib/ario-conf.h" #include "preferences/ario-preferences.h" #include "ario-debug.h" #include "ario-util.h" #include "ario-profiles.h" #include #include #define NORMAL_TIMEOUT 500 #define LAZY_TIMEOUT 12000 #define GOODCHAR(a) ((((a) >= 'a') && ((a) <= 'z')) || \ (((a) >= 'A') && ((a) <= 'Z')) || \ (((a) >= '0') && ((a) <= '9')) || \ ((a) == ':') || \ ((a) == '/') || \ ((a) == '-') || \ ((a) == '.') || \ ((a) == '_')) static void ario_xmms_finalize (GObject *object); static gboolean ario_xmms_connect_to (ArioXmms *xmms, gchar *hostname, int port, float timeout); static void ario_xmms_connect (void); static void ario_xmms_disconnect (void); static void ario_xmms_update_db (const gchar *path); static gboolean ario_xmms_is_connected (void); static GSList * ario_xmms_list_tags (const ArioServerTag tag, const ArioServerCriteria *criteria); static GSList * ario_xmms_get_albums (const ArioServerCriteria *criteria); static GSList * ario_xmms_get_songs (const ArioServerCriteria *criteria, const gboolean exact); static GSList * ario_xmms_get_songs_from_playlist (char *playlist); static GSList * ario_xmms_get_playlists (void); static GSList * ario_xmms_get_playlist_changes (gint64 playlist_id); static ArioServerSong * ario_xmms_get_current_song_on_server (void); static int ario_xmms_get_current_playlist_total_time (void); static unsigned long ario_xmms_get_last_update (void); static void ario_xmms_do_next (void); static void ario_xmms_do_prev (void); static void ario_xmms_do_play (void); static void ario_xmms_do_play_pos (gint id); static void ario_xmms_do_pause (void); static void ario_xmms_do_stop (void); static void ario_xmms_set_current_elapsed (const gint elapsed); static void ario_xmms_set_current_volume (const gint volume); static void ario_xmms_set_current_consume (const gboolean consume); static void ario_xmms_set_current_random (const gboolean random); static void ario_xmms_set_current_repeat (const gboolean repeat); static void ario_xmms_set_crossfadetime (const int crossfadetime); static void ario_xmms_clear (void); static void ario_xmms_shuffle (void); static void ario_xmms_queue_commit (void); static void ario_xmms_insert_at (const GSList *songs, const gint pos); static int ario_xmms_save_playlist (const char *name); static void ario_xmms_delete_playlist (const char *name); static GSList * ario_xmms_get_outputs (void); static void ario_xmms_enable_output (int id, gboolean enabled); static ArioServerStats * ario_xmms_get_stats (void); static GList * ario_xmms_get_songs_info (GSList *paths); static ArioServerFileList * ario_xmms_list_files (const char *path, gboolean recursive); static gboolean ario_xmms_is_usable_music_directory (const gchar *path); struct ArioXmmsPrivate { xmmsc_connection_t *connection; xmmsc_connection_t *async_connection; int total_time; GSList *results; xmmsc_result_t *res; }; char * ArioXmmsPattern[ARIO_TAG_COUNT] = { "artist", // ARIO_TAG_ARTIST "album", // ARIO_TAG_ALBUM NULL, // ARIO_TAG_ALBUM_ARTIST "title", // ARIO_TAG_TITLE "track", // ARIO_TAG_TRACK NULL, // ARIO_TAG_NAME "genre", // ARIO_TAG_GENRE "date", // ARIO_TAG_DATE "composer", // ARIO_TAG_COMPOSER "performer", // ARIO_TAG_PERFORMER NULL, // ARIO_TAG_COMMENT NULL, // ARIO_TAG_DISC "url", // ARIO_TAG_FILENAME NULL // ARIO_TAG_ANY }; #define ARIO_XMMS_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_ARIO_XMMS, ArioXmmsPrivate)) G_DEFINE_TYPE (ArioXmms, ario_xmms, TYPE_ARIO_SERVER_INTERFACE) static ArioXmms *instance = NULL; static ArioServer *server_instance = NULL; /* static void abcde (const void *key, xmmsc_result_value_type_t type, const void *value, void *user_data) { printf ("%s\n", key); } */ static void ario_xmms_class_init (ArioXmmsClass *klass) { ARIO_LOG_FUNCTION_START; GObjectClass *object_class = G_OBJECT_CLASS (klass); ArioServerInterfaceClass *server_class = ARIO_SERVER_INTERFACE_CLASS (klass); object_class->finalize = ario_xmms_finalize; server_class->connect = ario_xmms_connect; server_class->disconnect = ario_xmms_disconnect; server_class->is_connected = ario_xmms_is_connected; server_class->update_db = ario_xmms_update_db; server_class->list_tags = ario_xmms_list_tags; server_class->get_albums = ario_xmms_get_albums; server_class->get_songs = ario_xmms_get_songs; server_class->get_songs_from_playlist = ario_xmms_get_songs_from_playlist; server_class->get_playlists = ario_xmms_get_playlists; server_class->get_playlist_changes = ario_xmms_get_playlist_changes; server_class->get_current_song_on_server = ario_xmms_get_current_song_on_server; server_class->get_current_playlist_total_time = ario_xmms_get_current_playlist_total_time; server_class->get_last_update = ario_xmms_get_last_update; server_class->do_next = ario_xmms_do_next; server_class->do_prev = ario_xmms_do_prev; server_class->do_play = ario_xmms_do_play; server_class->do_play_pos = ario_xmms_do_play_pos; server_class->do_pause = ario_xmms_do_pause; server_class->do_stop = ario_xmms_do_stop; server_class->set_current_elapsed = ario_xmms_set_current_elapsed; server_class->set_current_volume = ario_xmms_set_current_volume; server_class->set_current_consume = ario_xmms_set_current_consume; server_class->set_current_random = ario_xmms_set_current_random; server_class->set_current_repeat = ario_xmms_set_current_repeat; server_class->set_crossfadetime = ario_xmms_set_crossfadetime; server_class->clear = ario_xmms_clear; server_class->shuffle = ario_xmms_shuffle; server_class->queue_commit = ario_xmms_queue_commit; server_class->insert_at = ario_xmms_insert_at; server_class->save_playlist = ario_xmms_save_playlist; server_class->delete_playlist = ario_xmms_delete_playlist; server_class->get_outputs = ario_xmms_get_outputs; server_class->enable_output = ario_xmms_enable_output; server_class->get_stats = ario_xmms_get_stats; server_class->get_songs_info = ario_xmms_get_songs_info; server_class->list_files = ario_xmms_list_files; g_type_class_add_private (klass, sizeof (ArioXmmsPrivate)); } static void ario_xmms_init (ArioXmms *xmms) { ARIO_LOG_FUNCTION_START; xmms->priv = ARIO_XMMS_GET_PRIVATE (xmms); } static void ario_xmms_finalize (GObject *object) { ARIO_LOG_FUNCTION_START; ArioXmms *xmms; g_return_if_fail (object != NULL); g_return_if_fail (IS_ARIO_XMMS (object)); xmms = ARIO_XMMS (object); g_return_if_fail (xmms->priv != NULL); if (xmms->priv->connection) xmmsc_unref (xmms->priv->connection); instance = NULL; G_OBJECT_CLASS (ario_xmms_parent_class)->finalize (object); } static ArioServerSong * ario_xmms_get_song_from_res (xmmsc_result_t *result) { ARIO_LOG_FUNCTION_START; ArioServerSong *song; const gchar *tmp; int tracknr; if (!result) return NULL; song = (ArioServerSong *) g_malloc0 (sizeof (ArioServerSong)); xmmsc_result_get_dict_entry_string (result, "genre", &tmp); song->genre = g_strdup (tmp); xmmsc_result_get_dict_entry_string (result, "artist", &tmp); song->artist = g_strdup (tmp); xmmsc_result_get_dict_entry_string (result, "album", &tmp); song->album = g_strdup (tmp); xmmsc_result_get_dict_entry_string (result, "title", &tmp); song->title = g_strdup (tmp); xmmsc_result_get_dict_entry_string (result, "url", &tmp); if (tmp) { song->file = g_strdup (xmmsc_result_decode_url (result, tmp)); } else { song->file = NULL; } xmmsc_result_get_dict_entry_string (result, "track", &tmp); song->track = g_strdup (tmp); xmmsc_result_get_dict_entry_int (result, "id", &song->id); xmmsc_result_get_dict_entry_int (result, "duration", &song->time); song->time = song->time / 1000; xmmsc_result_get_dict_entry_int (result, "tracknr", &tracknr); song->track = g_strdup_printf ("%d", tracknr); return song; } /* static void wait_cb (xmmsc_result_t *res, gboolean *wait) { *wait = FALSE; xmmsc_result_unref (res); } */ static void ario_xmms_result_wait (xmmsc_result_t *result) { ARIO_LOG_FUNCTION_START; /* static gboolean block = FALSE; while (block) gtk_main_iteration (); block = TRUE; gboolean wait = TRUE; xmmsc_result_notifier_set (result, (xmmsc_result_notifier_t) wait_cb, &wait); while (wait) gtk_main_iteration (); block = FALSE; */ xmmsc_result_wait (result); if (xmmsc_result_iserror (result)) { ARIO_LOG_ERROR ("Transaction error : %s\n", xmmsc_result_get_error (result)); } } ArioXmms * ario_xmms_get_instance (ArioServer *server) { ARIO_LOG_FUNCTION_START; if (!instance) { instance = g_object_new (TYPE_ARIO_XMMS, NULL); g_return_val_if_fail (instance->priv != NULL, NULL); server_instance = server; } return instance; } static gboolean playlist_not_idle (xmmsc_result_t *not_used) { g_signal_emit_by_name (G_OBJECT (server_instance), "playlist_changed"); return FALSE; } static void playlist_not (xmmsc_result_t *not_used, ArioXmms *xmms) { g_idle_add ((GSourceFunc) playlist_not_idle, NULL); } static gboolean playback_status_not_idle (xmmsc_result_t *res) { guint state = 0; if (xmmsc_result_iserror (res)) { ARIO_LOG_ERROR ("Result has error"); return FALSE; } if (!xmmsc_result_get_uint (res, &state)) { ARIO_LOG_ERROR ("Result didn't contain right type!"); return FALSE; } /* horrible hack: mpd state = xmms state + 1*/ ++state; g_object_set (G_OBJECT (instance), "state", state, NULL); g_signal_emit_by_name (G_OBJECT (server_instance), "state_changed"); return FALSE; } static void playback_status_not (xmmsc_result_t *res, ArioXmms *xmms) { g_idle_add ((GSourceFunc) playback_status_not_idle, res); } static gboolean playback_current_id_not_idle (xmmsc_result_t *res) { guint id; if (xmmsc_result_iserror (res)) { ARIO_LOG_ERROR ("Result has error"); return FALSE; } if (!xmmsc_result_get_uint (res, &id)) { ARIO_LOG_ERROR ("Result didn't contain right type!"); return FALSE; } g_object_set (G_OBJECT (instance), "song_id", id, NULL); if (instance->parent.signals_to_emit & SERVER_SONG_CHANGED_FLAG) g_signal_emit_by_name (G_OBJECT (server_instance), "song_changed"); if (instance->parent.signals_to_emit & SERVER_ALBUM_CHANGED_FLAG) g_signal_emit_by_name (G_OBJECT (server_instance), "album_changed"); return FALSE; } static void playback_current_id_not (xmmsc_result_t *res, ArioXmms *xmms) { g_idle_add ((GSourceFunc) playback_current_id_not_idle, res); } static gboolean playback_volume_changed_not_idle (xmmsc_result_t *not_used) { guint volume; xmmsc_result_t *res; res = xmmsc_playback_volume_get (instance->priv->connection); ario_xmms_result_wait (res); if (!xmmsc_result_get_dict_entry_uint (res, "left", &volume)) { ARIO_LOG_ERROR ("Result didn't contain right type!"); xmmsc_result_unref (res); return FALSE; } xmmsc_result_unref (res); if (instance->parent.volume != volume) g_object_set (G_OBJECT (instance), "volume", volume, NULL); if (instance->parent.signals_to_emit & SERVER_VOLUME_CHANGED_FLAG) g_signal_emit_by_name (G_OBJECT (server_instance), "volume_changed", volume); return FALSE; } static void playback_volume_changed_not (xmmsc_result_t *not_used, ArioXmms *xmms) { g_idle_add ((GSourceFunc) playback_volume_changed_not_idle, NULL); } static void playback_playtime_not (xmmsc_result_t *res, ArioXmms *xmms) { guint playtime; xmmsc_result_t *res2; if (xmmsc_result_iserror (res)) { ARIO_LOG_ERROR ("Result has error"); return; } if (!xmmsc_result_get_uint (res, &playtime)) { ARIO_LOG_ERROR ("Result didn't contain right type!"); return; } /* TODO: Delay this restart (1 second?) */ if (instance && instance->priv->connection) { res2 = xmmsc_result_restart (res); xmmsc_result_unref (res2); instance->priv->res = res2; } xmmsc_result_unref (res); playtime = playtime / 1000; if (xmms->parent.elapsed != playtime) { g_object_set (G_OBJECT (instance), "elapsed", playtime, NULL); g_signal_emit_by_name (G_OBJECT (server_instance), "elapsed_changed", playtime); } } static void ario_xmms_sync (ArioXmms *xmms) { ARIO_LOG_FUNCTION_START; xmmsc_result_t *res; /* Sync playlist */ playlist_not (NULL, xmms); /* Sync Playback status */ res = xmmsc_playback_status (xmms->priv->connection); ario_xmms_result_wait (res); playback_status_not (res, xmms); instance->priv->results = g_slist_append (instance->priv->results, res); /* Sync Playback song */ res = xmmsc_playback_current_id (xmms->priv->connection); ario_xmms_result_wait (res); playback_current_id_not (res, xmms); instance->priv->results = g_slist_append (instance->priv->results, res); /* Sync Volume */ playback_volume_changed_not (NULL, xmms); /* res = xmmsc_configval_list (xmms->priv->connection); ario_xmms_result_wait (res); xmmsc_result_dict_foreach (res, abcde, NULL); xmmsc_result_unref (res); */ } static void disconnect_not (ArioXmms *xmms) { ARIO_LOG_FUNCTION_START; /* TODO */ } #define ARIO_XMMS_CALLBACK_SET(conn,meth,callback,udata) \ ARIO_XMMS_CALLBACK_SET_FULL(conn,meth,callback,udata,NULL); #define ARIO_XMMS_CALLBACK_SET_FULL(conn,meth,callback,udata,free_func) {\ xmmsc_result_t *res = meth (conn); \ xmmsc_result_notifier_set_full (res, callback, udata, free_func);\ xmmsc_result_unref (res);\ instance->priv->results = g_slist_append (instance->priv->results, res);\ } static gboolean ario_xmms_connect_to (ArioXmms *xmms, gchar *hostname, int port, float timeout) { ARIO_LOG_FUNCTION_START; xmmsc_connection_t *connection; xmmsc_connection_t *async_connection; gchar *xmms_path; xmmsc_result_t *res; connection = xmmsc_init ("ario"); async_connection = xmmsc_init ("ario2"); if (!connection || !async_connection) return FALSE; xmms_path = g_strdup_printf ("tcp://%s:%d", hostname, port); if (!xmmsc_connect (connection, xmms_path) || !xmmsc_connect (async_connection, xmms_path) ) { ARIO_LOG_ERROR ("Error connecting to %s", xmms_path); g_free (xmms_path); return FALSE; } g_free (xmms_path); xmms->priv->connection = connection; xmms->priv->async_connection = async_connection; ARIO_XMMS_CALLBACK_SET (async_connection, xmmsc_broadcast_playlist_changed, (xmmsc_result_notifier_t) playlist_not, xmms); ARIO_XMMS_CALLBACK_SET (async_connection, xmmsc_broadcast_playback_status, (xmmsc_result_notifier_t) playback_status_not, xmms); ARIO_XMMS_CALLBACK_SET (async_connection, xmmsc_broadcast_playback_current_id, (xmmsc_result_notifier_t) playback_current_id_not, xmms); ARIO_XMMS_CALLBACK_SET (async_connection, xmmsc_broadcast_playback_volume_changed, (xmmsc_result_notifier_t) playback_volume_changed_not, xmms); res = xmmsc_signal_playback_playtime (async_connection); xmmsc_result_notifier_set_full (res, (xmmsc_result_notifier_t) playback_playtime_not, xmms, NULL); xmmsc_result_unref (res); instance->priv->res = res; /* Disconnect callback */ xmmsc_disconnect_callback_set (async_connection, (xmmsc_disconnect_func_t) disconnect_not, xmms); xmmsc_mainloop_gmain_init (async_connection); ario_xmms_sync (xmms); return TRUE; } static void ario_xmms_connect (void) { ARIO_LOG_FUNCTION_START; gchar *hostname; int port; float timeout; ArioProfile *profile; profile = ario_profiles_get_current (ario_profiles_get ()); hostname = profile->host; port = profile->port; timeout = (float) profile->timeout / 1000.0; if (hostname == NULL) hostname = "localhost"; if (port == 0) port = 6600; if (!ario_xmms_connect_to (instance, hostname, port, timeout)) { ario_xmms_disconnect (); } instance->parent.connecting = FALSE; } static void ario_xmms_disconnect (void) { ARIO_LOG_FUNCTION_START; GSList *tmp; /* check if there is a connection */ if (!instance->priv->connection) return; for (tmp = instance->priv->results; tmp; tmp = g_slist_next (tmp)) { xmmsc_result_unref (tmp->data); } g_slist_free (instance->priv->results); instance->priv->results = NULL; if (instance->priv->res) { xmmsc_result_unref (instance->priv->res); instance->priv->res = NULL; } xmmsc_unref (instance->priv->connection); instance->priv->connection = NULL; ario_server_interface_set_default (ARIO_SERVER_INTERFACE (instance)); ario_server_interface_emit (ARIO_SERVER_INTERFACE (instance), server_instance); } static void ario_xmms_update_db (const gchar *path) { ARIO_LOG_FUNCTION_START; xmmsc_result_t *res; /* check if there is a connection */ if (!instance->priv->connection) return; res = xmmsc_medialib_rehash (instance->priv->connection, 0); ario_xmms_result_wait (res); xmmsc_result_unref (res); } static gboolean ario_xmms_is_connected (void) { // desactivated to make the logs more readable //ARIO_LOG_FUNCTION_START; return (instance->priv->connection != NULL); } static GSList * ario_xmms_list_tags (const ArioServerTag tag, const ArioServerCriteria *criteria) { ARIO_LOG_FUNCTION_START; GSList *tags = NULL; xmmsc_result_t *res; xmmsc_coll_t *coll; const char *properties[] = { ArioXmmsPattern[tag], NULL }; const char *group_by[] = { ArioXmmsPattern[tag], NULL }; const char *char_tag; char *pattern = NULL, *pattern_tmp; const GSList *tmp; ArioServerAtomicCriteria *atomic_criteria; /* check if there is a connection */ if (!instance->priv->connection) return NULL; for (tmp = criteria; tmp; tmp = g_slist_next (tmp)) { atomic_criteria = tmp->data; if (!g_utf8_collate (atomic_criteria->value, ARIO_SERVER_UNKNOWN)) { if (pattern) { pattern_tmp = g_strdup_printf ("%s AND NOT +%s", pattern, ArioXmmsPattern[atomic_criteria->tag]); g_free (pattern); pattern = pattern_tmp; } else pattern = g_strdup_printf ("NOT +%s", ArioXmmsPattern[atomic_criteria->tag]); } else { if (pattern) { pattern_tmp = g_strdup_printf ("%s AND %s:\"%s\"", pattern, ArioXmmsPattern[atomic_criteria->tag], atomic_criteria->value); g_free (pattern); pattern = pattern_tmp; } else pattern = g_strdup_printf ("%s:\"%s\"", ArioXmmsPattern[atomic_criteria->tag], atomic_criteria->value); } } if (pattern) { if (!xmmsc_coll_parse (pattern, &coll)) return NULL; } else { coll = xmmsc_coll_universe (); } res = xmmsc_coll_query_infos (instance->priv->connection, coll, properties, 0, 0, properties, group_by); ario_xmms_result_wait (res); for (; xmmsc_result_list_valid (res); xmmsc_result_list_next (res)) { xmmsc_result_get_dict_entry_string (res, ArioXmmsPattern[tag], &char_tag); if (!char_tag) char_tag = ARIO_SERVER_UNKNOWN; tags = g_slist_append (tags, g_strdup (char_tag)); } g_free (pattern); xmmsc_coll_unref (coll); xmmsc_result_unref (res); return tags; } static GSList * ario_xmms_get_albums (const ArioServerCriteria *criteria) { ARIO_LOG_FUNCTION_START; GSList *albums = NULL; ArioServerAlbum *ario_xmms_album; xmmsc_result_t *res; xmmsc_coll_t *coll; const char *properties[] = { "artist", "album", NULL }; const char *group_by[] = { "artist", "album", NULL }; const char *album, *artist; char *pattern = NULL, *pattern_tmp; const GSList *tmp; ArioServerAtomicCriteria *atomic_criteria; /* check if there is a connection */ if (!instance->priv->connection) return NULL; for (tmp = criteria; tmp; tmp = g_slist_next (tmp)) { atomic_criteria = tmp->data; if (!g_utf8_collate (atomic_criteria->value, ARIO_SERVER_UNKNOWN)) { if (pattern) { pattern_tmp = g_strdup_printf ("%s AND NOT +%s", pattern, ArioXmmsPattern[atomic_criteria->tag]); g_free (pattern); pattern = pattern_tmp; } else pattern = g_strdup_printf ("NOT +%s", ArioXmmsPattern[atomic_criteria->tag]); } else { if (pattern) { pattern_tmp = g_strdup_printf ("%s AND %s:\"%s\"", pattern, ArioXmmsPattern[atomic_criteria->tag], atomic_criteria->value); g_free (pattern); pattern = pattern_tmp; } else pattern = g_strdup_printf ("%s:\"%s\"", ArioXmmsPattern[atomic_criteria->tag], atomic_criteria->value); } } if (pattern) { if (!xmmsc_coll_parse (pattern, &coll)) return NULL; } else { coll = xmmsc_coll_universe (); } res = xmmsc_coll_query_infos(instance->priv->connection, coll, properties, 0, 0, properties, group_by); ario_xmms_result_wait (res); for (; xmmsc_result_list_valid (res); xmmsc_result_list_next (res)) { ario_xmms_album = (ArioServerAlbum *) g_malloc0 (sizeof (ArioServerAlbum)); xmmsc_result_get_dict_entry_string (res, "artist", &artist); xmmsc_result_get_dict_entry_string (res, "album", &album); if (!album) album = ARIO_SERVER_UNKNOWN; if (!artist) artist = ARIO_SERVER_UNKNOWN; ario_xmms_album->artist = g_strdup (artist); ario_xmms_album->album = g_strdup (album); albums = g_slist_append (albums, ario_xmms_album); } g_free (pattern); xmmsc_coll_unref(coll); xmmsc_result_unref (res); return albums; } static GSList * ario_xmms_get_songs (const ArioServerCriteria *criteria, const gboolean exact) { ARIO_LOG_FUNCTION_START; GSList *songs = NULL; xmmsc_result_t *res; xmmsc_coll_t *coll; const char *properties[] = { "tracknr", "title", "url", NULL }; const char *group_by[] = { "tracknr", "title", NULL }; ArioServerSong *xmms_song; char *pattern = NULL, *pattern_tmp; const GSList *tmp; ArioServerAtomicCriteria *atomic_criteria; /* check if there is a connection */ if (!instance->priv->connection) return NULL; for (tmp = criteria; tmp; tmp = g_slist_next (tmp)) { atomic_criteria = tmp->data; if (!g_utf8_collate (atomic_criteria->value, ARIO_SERVER_UNKNOWN)) { if (pattern) { pattern_tmp = g_strdup_printf ("%s AND NOT +%s", pattern, ArioXmmsPattern[atomic_criteria->tag]); g_free (pattern); pattern = pattern_tmp; } else pattern = g_strdup_printf ("NOT +%s", ArioXmmsPattern[atomic_criteria->tag]); } else { if (pattern) { pattern_tmp = g_strdup_printf ("%s AND %s:\"%s\"", pattern, ArioXmmsPattern[atomic_criteria->tag], atomic_criteria->value); g_free (pattern); pattern = pattern_tmp; } else pattern = g_strdup_printf ("%s:\"%s\"", ArioXmmsPattern[atomic_criteria->tag], atomic_criteria->value); } } if (pattern) { if (!xmmsc_coll_parse (pattern, &coll)) return NULL; } else { coll = xmmsc_coll_universe (); } res = xmmsc_coll_query_infos(instance->priv->connection, coll, properties, 0, 0, properties, group_by); ario_xmms_result_wait (res); for (; xmmsc_result_list_valid (res); xmmsc_result_list_next (res)) { xmms_song = ario_xmms_get_song_from_res (res); songs = g_slist_append (songs, xmms_song); } g_free (pattern); xmmsc_coll_unref(coll); xmmsc_result_unref (res); return songs; } static GSList * ario_xmms_get_songs_from_playlist (char *playlist) { ARIO_LOG_FUNCTION_START; GSList *songs = NULL; xmmsc_result_t *res; xmmsc_result_t *res2; guint i; int pos = 0; ArioServerSong *song; res = xmmsc_playlist_list_entries (instance->priv->connection, playlist); ario_xmms_result_wait (res); instance->priv->total_time = 0; for (; xmmsc_result_list_valid (res); xmmsc_result_list_next (res)) { if (!xmmsc_result_get_uint(res, &i)) ARIO_LOG_ERROR ("Broken result"); res2 = xmmsc_medialib_get_info (instance->priv->connection, i); ario_xmms_result_wait (res2); song = ario_xmms_get_song_from_res (res2); song->pos = pos; ++pos; xmmsc_result_unref (res2); songs = g_slist_append (songs, song); instance->priv->total_time += song->time; } instance->parent.playlist_length = pos; xmmsc_result_unref (res); return songs; } static GSList * ario_xmms_get_playlists (void) { ARIO_LOG_FUNCTION_START; GSList *playlists = NULL; const gchar *playlist; xmmsc_result_t *res; res = xmmsc_playlist_list (instance->priv->connection); ario_xmms_result_wait (res); for (; xmmsc_result_list_valid (res); xmmsc_result_list_next (res)) { xmmsc_result_get_string (res, &playlist); if (playlist && *playlist != '_') playlists = g_slist_append (playlists, g_strdup (playlist)); } xmmsc_result_unref (res); return playlists; } static gboolean ario_xmms_playlist_exists (const gchar *name) { const gchar *playlist; xmmsc_result_t *res; res = xmmsc_playlist_list (instance->priv->connection); ario_xmms_result_wait (res); for (; xmmsc_result_list_valid (res); xmmsc_result_list_next (res)) { xmmsc_result_get_string (res, &playlist); if (playlist && !strcmp (name, playlist)) { xmmsc_result_unref (res); return TRUE; } } xmmsc_result_unref (res); return FALSE; } static GSList * ario_xmms_get_playlist_changes (gint64 playlist_id) { ARIO_LOG_FUNCTION_START; return ario_xmms_get_songs_from_playlist (NULL); } static ArioServerSong * ario_xmms_get_current_song_on_server (void) { ARIO_LOG_FUNCTION_START; ArioServerSong *song = NULL; xmmsc_result_t *result; uint pos = 0; result = xmmsc_medialib_get_info (instance->priv->connection, instance->parent.song_id); ario_xmms_result_wait (result); song = ario_xmms_get_song_from_res (result); xmmsc_result_unref (result); result = xmmsc_playlist_current_pos (instance->priv->connection, NULL); ario_xmms_result_wait (result); xmmsc_result_get_dict_entry_uint (result, "position", &pos); song->pos = (int) pos; xmmsc_result_unref (result); return song; } static int ario_xmms_get_current_playlist_total_time (void) { ARIO_LOG_FUNCTION_START; return instance->priv->total_time; } static unsigned long ario_xmms_get_last_update (void) { ARIO_LOG_FUNCTION_START; ARIO_LOG_ERROR ("Not yet implemented for XMMS"); return 0; } void ario_xmms_do_next (void) { ARIO_LOG_FUNCTION_START; xmmsc_result_t *res; /* check if there is a connection */ if (!instance->priv->connection) return; res = xmmsc_playlist_set_next_rel (instance->priv->connection, 1); ario_xmms_result_wait (res); xmmsc_result_unref (res); res = xmmsc_playback_tickle (instance->priv->connection); ario_xmms_result_wait (res); xmmsc_result_unref (res); } void ario_xmms_do_prev (void) { ARIO_LOG_FUNCTION_START; xmmsc_result_t *res; /* check if there is a connection */ if (!instance->priv->connection) return; res = xmmsc_playlist_set_next_rel (instance->priv->connection, -1); ario_xmms_result_wait (res); xmmsc_result_unref (res); res = xmmsc_playback_tickle (instance->priv->connection); ario_xmms_result_wait (res); xmmsc_result_unref (res); } void ario_xmms_do_play (void) { ARIO_LOG_FUNCTION_START; xmmsc_result_t *res; /* check if there is a connection */ if (!instance->priv->connection) return; res = xmmsc_playback_start (instance->priv->connection); ario_xmms_result_wait (res); xmmsc_result_unref (res); } void ario_xmms_do_play_pos (gint id) { ARIO_LOG_FUNCTION_START; xmmsc_result_t *res; /* check if there is a connection */ if (!instance->priv->connection) return; res = xmmsc_playback_start (instance->priv->connection); ario_xmms_result_wait (res); xmmsc_result_unref (res); res = xmmsc_playlist_set_next (instance->priv->connection, id); ario_xmms_result_wait (res); xmmsc_result_unref (res); res = xmmsc_playback_tickle (instance->priv->connection); ario_xmms_result_wait (res); xmmsc_result_unref (res); } void ario_xmms_do_pause (void) { ARIO_LOG_FUNCTION_START; xmmsc_result_t *res; /* check if there is a connection */ if (!instance->priv->connection) return; res = xmmsc_playback_pause (instance->priv->connection); ario_xmms_result_wait (res); xmmsc_result_unref (res); } void ario_xmms_do_stop (void) { ARIO_LOG_FUNCTION_START; xmmsc_result_t *res; /* check if there is a connection */ if (!instance->priv->connection) return; res = xmmsc_playback_stop (instance->priv->connection); ario_xmms_result_wait (res); xmmsc_result_unref (res); } void ario_xmms_set_current_elapsed (const gint elapsed) { ARIO_LOG_FUNCTION_START; xmmsc_result_t *res; /* check if there is a connection */ if (!instance->priv->connection) return; res = xmmsc_playback_seek_ms (instance->priv->connection, elapsed * 1000); ario_xmms_result_wait(res); xmmsc_result_unref (res); } void ario_xmms_set_current_volume (const gint volume) { ARIO_LOG_FUNCTION_START; xmmsc_result_t *res; xmmsc_result_t *res2; /* check if there is a connection */ if (!instance->priv->connection) return; res = xmmsc_playback_volume_set (instance->priv->connection, "left", volume); res2 = xmmsc_playback_volume_set (instance->priv->connection, "right", volume); ario_xmms_result_wait (res); ario_xmms_result_wait (res2); xmmsc_result_unref (res); xmmsc_result_unref (res2); } void ario_xmms_set_current_consume (const gboolean consume) { ARIO_LOG_FUNCTION_START; /* check if there is a connection */ if (!instance->priv->connection) return; ARIO_LOG_ERROR ("Not yet implemented for XMMS"); } void ario_xmms_set_current_random (const gboolean random) { ARIO_LOG_FUNCTION_START; /* check if there is a connection */ if (!instance->priv->connection) return; ARIO_LOG_ERROR ("Not yet implemented for XMMS"); } void ario_xmms_set_current_repeat (const gboolean repeat) { xmmsc_result_t *res; ARIO_LOG_FUNCTION_START; /* check if there is a connection */ if (!instance->priv->connection) return; if (repeat) res = xmmsc_configval_set (instance->priv->connection, "playlist.repeat_all", "1"); else res = xmmsc_configval_set (instance->priv->connection, "playlist.repeat_all", "0"); ario_xmms_result_wait (res); g_object_set (G_OBJECT (instance), "repeat", repeat, NULL); xmmsc_result_unref (res); } void ario_xmms_set_crossfadetime (const int crossfadetime) { ARIO_LOG_FUNCTION_START; /* check if there is a connection */ if (!instance->priv->connection) return; ARIO_LOG_ERROR ("Not yet implemented for XMMS"); } void ario_xmms_clear (void) { ARIO_LOG_FUNCTION_START; xmmsc_result_t *res; /* check if there is a connection */ if (!instance->priv->connection) return; res = xmmsc_playlist_clear (instance->priv->connection, NULL); ario_xmms_result_wait (res); xmmsc_result_unref (res); } void ario_xmms_shuffle (void) { ARIO_LOG_FUNCTION_START; xmmsc_result_t *res; /* check if there is a connection */ if (!instance->priv->connection) return; res = xmmsc_playlist_shuffle (instance->priv->connection, NULL); ario_xmms_result_wait (res); xmmsc_result_unref (res); } static void ario_xmms_queue_commit (void) { ARIO_LOG_FUNCTION_START; GSList *tmp; ArioServerQueueAction *queue_action; xmmsc_result_t *res; /* check if there is a connection */ if (!instance->priv->connection) return; for (tmp = instance->parent.queue; tmp; tmp = g_slist_next (tmp)) { queue_action = (ArioServerQueueAction *) tmp->data; if (queue_action->type == ARIO_SERVER_ACTION_ADD) { if (queue_action->path) { res = xmmsc_playlist_add_url (instance->priv->connection, NULL, queue_action->path); ario_xmms_result_wait(res); xmmsc_result_unref (res); } } else if (queue_action->type == ARIO_SERVER_ACTION_DELETE_ID) { if(queue_action->id >= 0) { /* TODO */ } } else if (queue_action->type == ARIO_SERVER_ACTION_DELETE_POS) { if(queue_action->pos >= 0) { res = xmmsc_playlist_remove_entry (instance->priv->connection, NULL, queue_action->pos); ario_xmms_result_wait(res); xmmsc_result_unref(res); } } else if (queue_action->type == ARIO_SERVER_ACTION_MOVE) { if (queue_action->id >= 0) { res = xmmsc_playlist_move_entry (instance->priv->connection, NULL, queue_action->old_pos, queue_action->new_pos); ario_xmms_result_wait(res); xmmsc_result_unref(res); } } else if (queue_action->type == ARIO_SERVER_ACTION_MOVEID) { /* TODO */ } } g_slist_foreach (instance->parent.queue, (GFunc) g_free, NULL); g_slist_free (instance->parent.queue); instance->parent.queue = NULL; } static gchar * ario_xmms_encode_url (const char *url) { static const char hex[16] = "0123456789abcdef"; int i = 0, j = 0; gchar *rv = NULL; if (url) { rv = g_malloc0 (strlen (url) * 3 + 1); if (rv) { for (i = 0, j = 0; url[i]; ++i) { unsigned char chr = url[i]; if (GOODCHAR (chr)) { rv[j++] = chr; } else if (chr == ' ') { rv[j++] = '+'; } else { rv[j++] = '%'; rv[j++] = hex[((chr & 0xf0) >> 4)]; rv[j++] = hex[(chr & 0x0f)]; } } } } return rv; } static void ario_xmms_insert_at (const GSList *songs, const gint pos) { ARIO_LOG_FUNCTION_START; const GSList *tmp; gchar *pattern = NULL, *tmp_pattern; xmmsc_coll_t *coll; xmmsc_result_t *res; gchar *url; /* check if there is a connection */ if (!instance->priv->connection) return; /* For each filename :*/ for (tmp = songs; tmp; tmp = g_slist_next (tmp)) { url = ario_xmms_encode_url (tmp->data); if (!pattern) { pattern = g_strdup_printf ("url:\"%s\"", url); } else { tmp_pattern = g_strdup_printf ("%s OR url:\"%s\"", pattern, url); g_free (pattern); pattern = tmp_pattern; } g_free (url); } if (pattern) { if (xmmsc_coll_parse (pattern, &coll)) { res = xmmsc_playlist_insert_collection (instance->priv->connection, NULL, pos + 1, coll, NULL); ario_xmms_result_wait (res); xmmsc_result_unref (res); xmmsc_coll_unref (coll); } g_free (pattern); } } static int ario_xmms_save_playlist (const char *name) { ARIO_LOG_FUNCTION_START; const char *tmp; xmmsc_result_t *res; xmmsc_coll_t *coll; if (!ario_xmms_playlist_exists (name)){ /* Retrieve the current (active) playlist name */ res = xmmsc_playlist_current_active (instance->priv->connection); ario_xmms_result_wait (res); if (xmmsc_result_get_string (res, &tmp)){ xmmsc_result_unref (res); /* Get this playlist as a collection */ res = xmmsc_coll_get (instance->priv->connection, tmp, "Playlists"); ario_xmms_result_wait (res); if (xmmsc_result_get_collection (res, &coll)) { res = xmmsc_playlist_create (instance->priv->connection, name); ario_xmms_result_wait (res); xmmsc_result_unref (res); res = xmmsc_playlist_add_idlist (instance->priv->connection, name, coll); ario_xmms_result_wait (res); xmmsc_result_unref (res); return 0; } } } return 1; } static void ario_xmms_delete_playlist (const char *name) { ARIO_LOG_FUNCTION_START; xmmsc_result_t *res; res = xmmsc_playlist_remove (instance->priv->connection, name); ario_xmms_result_wait(res); xmmsc_result_unref(res); } static GSList * ario_xmms_get_outputs (void) { ARIO_LOG_FUNCTION_START; ARIO_LOG_ERROR ("Not yet implemented for XMMS"); return NULL; } static void ario_xmms_enable_output (int id, gboolean enabled) { ARIO_LOG_FUNCTION_START; ARIO_LOG_ERROR ("Not yet implemented for XMMS"); } static ArioServerStats * ario_xmms_get_stats (void) { ARIO_LOG_FUNCTION_START; ARIO_LOG_ERROR ("Not yet implemented for XMMS"); /* TODO : * xmmsc_result_t * xmmsc_main_stats (xmmsc_connection_t *c) */ return NULL; } static GList * ario_xmms_get_songs_info (GSList *paths) { ARIO_LOG_FUNCTION_START; gchar *path; GSList *temp; GList *songs = NULL; xmmsc_result_t *res; guint id; ArioServerSong *song; /* check if there is a connection */ if (!instance->priv->connection) return NULL; for (temp = paths; temp; temp = g_slist_next (temp)) { path = ario_xmms_encode_url (temp->data); res = xmmsc_medialib_get_id (instance->priv->connection, path); ario_xmms_result_wait (res); if (xmmsc_result_get_uint (res, &id) && id > 0) { xmmsc_result_unref (res); res = xmmsc_medialib_get_info (instance->priv->connection, id); ario_xmms_result_wait (res); song = ario_xmms_get_song_from_res (res); songs = g_list_append (songs, song); } else { ARIO_LOG_ERROR ("Broken result or path not found"); } xmmsc_result_unref (res); g_free (path); } return songs; } /* *ensure that the music directory is formatted as follow * /path/to/music/dir *i.e an absolute path NOT ended by a slash. */ static gboolean ario_xmms_is_usable_music_directory (const gchar *path) { if (path) { if (g_path_is_absolute (path) && ario_file_test (path, G_FILE_TEST_IS_DIR)) { return TRUE; } } return FALSE; } static ArioServerFileList * ario_xmms_list_files (const char *path, gboolean recursive) { ARIO_LOG_FUNCTION_START; xmmsc_result_t *res; gchar *url; gint url_length; const gchar *decode_url; gchar *musicdir; gchar *full_path; ArioServerFileList *files; GFile *file; files = (ArioServerFileList *) g_malloc0 (sizeof (ArioServerFileList)); /* check if there is a connection */ if (!instance->priv->connection) return files; musicdir = ario_profiles_get_current (ario_profiles_get ())->musicdir; if (!ario_xmms_is_usable_music_directory (musicdir)) return files; file = g_file_new_for_path (musicdir); url = g_file_get_uri (file); url_length = strlen (url) + 1; full_path = g_build_filename (url, path, NULL); g_free (url); res = xmmsc_xform_media_browse (instance->priv->connection, full_path); g_free (full_path); ario_xmms_result_wait (res); for (;xmmsc_result_list_valid (res); xmmsc_result_list_next (res)) { xmmsc_result_value_type_t type; const gchar *r; gint d; type = xmmsc_result_get_dict_entry_type (res, "realpath"); if (type != XMMSC_RESULT_VALUE_TYPE_NONE) { xmmsc_result_get_dict_entry_string (res, "realpath", &r); } else { xmmsc_result_get_dict_entry_string (res, "path", &r); } decode_url = xmmsc_result_decode_url (res, r); xmmsc_result_get_dict_entry_int (res, "isdir", &d); if (d) { files->directories = g_slist_append (files->directories, g_strdup (decode_url + url_length)); } else { uint32_t id; xmmsc_result_t *res2; xmmsc_result_t *res3; res2 = xmmsc_medialib_get_id (instance->priv->connection, r); ario_xmms_result_wait (res2); if (xmmsc_result_get_uint (res2, &id)) { if (id > 0) { res3 = xmmsc_medialib_get_info (instance->priv->connection, id); ario_xmms_result_wait (res3); files->songs = g_slist_append (files->songs, ario_xmms_get_song_from_res (res3)); xmmsc_result_unref (res3); } } else { ARIO_LOG_ERROR ("Broken result"); } xmmsc_result_unref (res2); } } xmmsc_result_unref (res); return files; } ario-1.6/src/servers/ario-mpd.h0000644000175000017500000000341413226723433013403 00000000000000/* * Copyright (C) 2005 Marc Pavot * * 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, 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * */ #ifndef __ARIO_MPD_H #define __ARIO_MPD_H #include "ario-server-interface.h" G_BEGIN_DECLS #define TYPE_ARIO_MPD (ario_mpd_get_type ()) #define ARIO_MPD(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), TYPE_ARIO_MPD, ArioMpd)) #define ARIO_MPD_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), TYPE_ARIO_MPD, ArioMpdClass)) #define IS_ARIO_MPD(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), TYPE_ARIO_MPD)) #define IS_ARIO_MPD_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), TYPE_ARIO_MPD)) #define ARIO_MPD_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), TYPE_ARIO_MPD, ArioMpdClass)) typedef struct ArioMpdPrivate ArioMpdPrivate; typedef struct { ArioServerInterface parent; ArioMpdPrivate *priv; } ArioMpd; typedef struct { ArioServerInterfaceClass parent; } ArioMpdClass; GType ario_mpd_get_type (void) G_GNUC_CONST; ArioMpd * ario_mpd_get_instance (ArioServer *server); G_END_DECLS #endif /* __ARIO_MPD_H */ ario-1.6/src/servers/ario-server-interface.c0000644000175000017500000005212413226723433016064 00000000000000/* * Copyright (C) 2005 Marc Pavot * * 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, 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * */ #include "servers/ario-server-interface.h" #include #include "ario-debug.h" #include "ario-util.h" static void ario_server_interface_finalize (GObject *object); static void ario_server_interface_set_property (GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec); static void ario_server_interface_get_property (GObject *object, guint prop_id, GValue *value, GParamSpec *pspec); /* Object properties */ enum { PROP_0, PROP_SONGID, PROP_STATE, PROP_VOLUME, PROP_ELAPSED, PROP_PLAYLISTID, PROP_CONSUME, PROP_RANDOM, PROP_UPDATINGDB, PROP_REPEAT }; G_DEFINE_TYPE (ArioServerInterface, ario_server_interface, G_TYPE_OBJECT) /* Dummy methods for default behavior */ static void dummy_void_void (void) { } static void dummy_void_int (const int a) { } static void dummy_void_int_int (const int a, const int b) { } static void dummy_void_pointer (const gpointer *a) { } static void dummy_void_pointer_int (const gpointer *a, const int b) { } static int dummy_int_void (void) { return 0; } static int dummy_int_pointer (const gpointer *a) { return 0; } static unsigned long dummy_ulong_void (void) { return 0; } static gpointer dummy_pointer_void (void) { return NULL; } static gpointer dummy_pointer_pointer (const gpointer *a) { return NULL; } static gpointer dummy_pointer_pointer_int (const gpointer *a, const int b) { return NULL; } static gpointer dummy_pointer_tag_pointer (const ArioServerTag a, const gpointer *b) { return NULL; } static gpointer dummy_pointer_int (gint64 playlist_id) { return NULL; } static void ario_server_interface_class_init (ArioServerInterfaceClass *klass) { ARIO_LOG_FUNCTION_START; GObjectClass *object_class = G_OBJECT_CLASS (klass); /* GObject virtual methods */ object_class->finalize = ario_server_interface_finalize; object_class->set_property = ario_server_interface_set_property; object_class->get_property = ario_server_interface_get_property; /* Default virtual methods for ArioServerInterface */ klass->connect = dummy_void_void; klass->disconnect = dummy_void_void; klass->is_connected = dummy_int_void; klass->update_status = dummy_int_void; klass->update_db = (void (*) (const char *)) dummy_void_pointer; klass->list_tags = (GSList* (*) (const ArioServerTag, const ArioServerCriteria *)) dummy_pointer_tag_pointer; klass->get_albums = (GSList* (*) (const ArioServerCriteria *)) dummy_pointer_pointer; klass->get_songs = (GSList* (*) (const ArioServerCriteria *, const gboolean)) dummy_pointer_pointer_int; klass->get_songs_from_playlist = (GSList* (*) (char *)) dummy_pointer_pointer; klass->get_playlists = (GSList* (*) (void)) dummy_pointer_void; klass->get_playlist_changes = (GSList* (*) (gint64))dummy_pointer_int; klass->get_current_song_on_server = (ArioServerSong* (*) (void)) dummy_pointer_void; klass->get_current_playlist_total_time = dummy_int_void; klass->get_last_update = dummy_ulong_void; klass->do_next = dummy_void_void; klass->do_prev = dummy_void_void; klass->do_play = dummy_void_void; klass->do_play_pos = dummy_void_int; klass->do_pause = dummy_void_void; klass->do_stop = dummy_void_void; klass->set_current_elapsed = dummy_void_int; klass->set_current_volume = dummy_void_int; klass->set_current_consume = dummy_void_int; klass->set_current_random = dummy_void_int; klass->set_current_repeat = dummy_void_int; klass->set_crossfadetime = dummy_void_int; klass->clear = dummy_void_void; klass->shuffle = dummy_void_void; klass->queue_commit = dummy_void_void; klass->insert_at = (void (*) (const GSList *, const gint)) dummy_void_pointer_int; klass->save_playlist = (int (*) (const char *)) dummy_int_pointer; klass->delete_playlist = (void (*) (const char *)) dummy_void_pointer; klass->get_outputs = (GSList* (*) (void)) dummy_pointer_void; klass->enable_output = dummy_void_int_int; klass->get_stats = (ArioServerStats* (*) (void)) dummy_pointer_void; klass->get_songs_info = (GList* (*) (GSList *)) dummy_pointer_pointer; klass->list_files = (ArioServerFileList* (*) (const char *, const int)) dummy_pointer_pointer_int; /* Object properties */ g_object_class_install_property (object_class, PROP_SONGID, g_param_spec_int ("song_id", "song_id", "song_id", -1, INT_MAX, 0, G_PARAM_READWRITE)); g_object_class_install_property (object_class, PROP_STATE, g_param_spec_uint ("state", "state", "state", 0, 3, 0, G_PARAM_READWRITE)); g_object_class_install_property (object_class, PROP_VOLUME, g_param_spec_int ("volume", "volume", "volume", -1, 100, 0, G_PARAM_READWRITE)); g_object_class_install_property (object_class, PROP_ELAPSED, g_param_spec_uint ("elapsed", "elapsed", "elapsed", 0, INT_MAX, 0, G_PARAM_READWRITE)); g_object_class_install_property (object_class, PROP_PLAYLISTID, g_param_spec_int64 ("playlist_id", "playlist_id", "playlist_id", -1, G_MAXINT64, 0, G_PARAM_READWRITE)); g_object_class_install_property (object_class, PROP_RANDOM, g_param_spec_boolean ("random", "random", "random", FALSE, G_PARAM_READWRITE)); g_object_class_install_property (object_class, PROP_CONSUME, g_param_spec_boolean ("consume", "consume", "consume", FALSE, G_PARAM_READWRITE)); g_object_class_install_property (object_class, PROP_REPEAT, g_param_spec_boolean ("repeat", "repeat", "repeat", FALSE, G_PARAM_READWRITE)); g_object_class_install_property (object_class, PROP_UPDATINGDB, g_param_spec_uint ("updatingdb", "updatingdb", "updatingdb", 0, INT_MAX, 0, G_PARAM_READWRITE)); } static void ario_server_interface_init (ArioServerInterface *server_interface) { ARIO_LOG_FUNCTION_START; /* Initialization of attributes */ server_interface->song_id = -1; server_interface->playlist_id = -1; server_interface->volume = -1; } static void ario_server_interface_finalize (GObject *object) { ARIO_LOG_FUNCTION_START; ArioServerInterface *server_interface; g_return_if_fail (object != NULL); g_return_if_fail (IS_ARIO_SERVER_INTERFACE (object)); server_interface = ARIO_SERVER_INTERFACE (object); /* Free current song */ if (server_interface->server_song) ario_server_free_song (server_interface->server_song); G_OBJECT_CLASS (ario_server_interface_parent_class)->finalize (object); } static void ario_server_interface_set_property (GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec) { ARIO_LOG_FUNCTION_START; ArioServerInterface *server_interface = ARIO_SERVER_INTERFACE (object); int song_id; gboolean song_changed = FALSE; switch (prop_id) { case PROP_SONGID: song_id = g_value_get_int (value); /* Detect if song has changed */ if (server_interface->song_id != song_id) { server_interface->signals_to_emit |= SERVER_SONG_CHANGED_FLAG; server_interface->song_id = song_id; song_changed = TRUE; } /* Check if there is a connection */ if (ario_server_is_connected ()) { ArioServerSong *new_song; ArioServerSong *old_song = server_interface->server_song; gboolean state_changed; gboolean artist_changed = FALSE; gboolean album_changed = FALSE; /* Get new song on server */ new_song = ario_server_get_current_song_on_server (); /* Detect is state has changed */ state_changed = (!old_song || !new_song); if (!state_changed) { /* Detect if artist has changed */ artist_changed = ario_util_strcmp (old_song->artist, new_song->artist) != 0; if (!artist_changed) album_changed = ario_util_strcmp (old_song->album, new_song->album) != 0; /* Detect if song has changed */ if (!song_changed) song_changed = ario_util_strcmp (old_song->name, new_song->name) != 0 || ario_util_strcmp (old_song->title, new_song->title) != 0; } /* Remember to emit album-changed signal */ if (state_changed || artist_changed || album_changed) server_interface->signals_to_emit |= SERVER_ALBUM_CHANGED_FLAG; /* Remember to emit song-changed signal */ if (song_changed) server_interface->signals_to_emit |= SERVER_SONG_CHANGED_FLAG; /* Change current song */ if (server_interface->server_song) ario_server_free_song (server_interface->server_song); server_interface->server_song = new_song; } else { /* Not connected: free song */ if (server_interface->server_song) { ario_server_free_song (server_interface->server_song); server_interface->server_song = NULL; } } break; case PROP_STATE: /* Change value and flag signal to emit */ server_interface->state = g_value_get_uint (value); server_interface->signals_to_emit |= SERVER_STATE_CHANGED_FLAG; break; case PROP_VOLUME: /* Change value and flag signal to emit */ server_interface->volume = g_value_get_int (value); server_interface->signals_to_emit |= SERVER_VOLUME_CHANGED_FLAG; break; case PROP_ELAPSED: /* Change value and flag signal to emit */ server_interface->elapsed = g_value_get_uint (value); server_interface->signals_to_emit |= SERVER_ELAPSED_CHANGED_FLAG; break; case PROP_PLAYLISTID: /* Change value and flag signal to emit */ server_interface->playlist_id = g_value_get_int64 (value); if (!ario_server_is_connected ()) server_interface->playlist_length = 0; server_interface->signals_to_emit |= SERVER_PLAYLIST_CHANGED_FLAG; break; case PROP_CONSUME: /* Change value and flag signal to emit */ server_interface->consume = g_value_get_boolean (value); server_interface->signals_to_emit |= SERVER_CONSUME_CHANGED_FLAG; break; case PROP_RANDOM: /* Change value and flag signal to emit */ server_interface->random = g_value_get_boolean (value); server_interface->signals_to_emit |= SERVER_RANDOM_CHANGED_FLAG; break; case PROP_REPEAT: /* Change value and flag signal to emit */ server_interface->repeat = g_value_get_boolean (value); server_interface->signals_to_emit |= SERVER_REPEAT_CHANGED_FLAG; break; case PROP_UPDATINGDB: /* Change value and flag signal to emit */ server_interface->updatingdb = g_value_get_uint (value); server_interface->signals_to_emit |= SERVER_UPDATINGDB_CHANGED_FLAG; break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); break; } } static void ario_server_interface_get_property (GObject *object, guint prop_id, GValue *value, GParamSpec *pspec) { ARIO_LOG_FUNCTION_START; ArioServerInterface *server_interface = ARIO_SERVER_INTERFACE (object); switch (prop_id) { case PROP_SONGID: g_value_set_int (value, server_interface->song_id); break; case PROP_STATE: g_value_set_int (value, server_interface->state); break; case PROP_VOLUME: g_value_set_int (value, server_interface->volume); break; case PROP_ELAPSED: g_value_set_int (value, server_interface->elapsed); break; case PROP_PLAYLISTID: g_value_set_int64 (value, server_interface->playlist_id); break; case PROP_CONSUME: g_value_set_boolean (value, server_interface->consume); break; case PROP_RANDOM: g_value_set_boolean (value, server_interface->random); break; case PROP_REPEAT: g_value_set_boolean (value, server_interface->repeat); break; case PROP_UPDATINGDB: g_value_set_int (value, server_interface->updatingdb); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); break; } } void ario_server_interface_set_default (ArioServerInterface *server_interface) { ARIO_LOG_FUNCTION_START; /* Set default song ID */ if (server_interface->song_id != 0) g_object_set (G_OBJECT (server_interface), "song_id", 0, NULL); /* Set default state */ if (server_interface->state != ARIO_STATE_UNKNOWN) g_object_set (G_OBJECT (server_interface), "state", ARIO_STATE_UNKNOWN, NULL); /* Set default volume */ if (server_interface->volume != -1) g_object_set (G_OBJECT (server_interface), "volume", -1, NULL); /* Set default elapsed time */ if (server_interface->elapsed != 0) g_object_set (G_OBJECT (server_interface), "elapsed", 0, NULL); /* Set default playlist ID */ g_object_set (G_OBJECT (server_interface), "playlist_id", (gint64) -1, NULL); /* Set default consume value */ if (server_interface->consume != FALSE) g_object_set (G_OBJECT (server_interface), "consume", FALSE, NULL); /* Set default random value */ if (server_interface->random != FALSE) g_object_set (G_OBJECT (server_interface), "random", FALSE, NULL); /* Set default repeat value */ if (server_interface->repeat != FALSE) g_object_set (G_OBJECT (server_interface), "repeat", FALSE, NULL); /* Set default updatingdb value */ if (server_interface->updatingdb != 0) g_object_set (G_OBJECT (server_interface), "updatingdb", 0, NULL); } void ario_server_interface_emit (ArioServerInterface *server_interface, ArioServer *server) { ARIO_LOG_FUNCTION_START; /* Emit signals depending of flags set in signals_to_emit */ if (server_interface->signals_to_emit & SERVER_SONG_CHANGED_FLAG) g_signal_emit_by_name (G_OBJECT (server), "song_changed"); if (server_interface->signals_to_emit & SERVER_ALBUM_CHANGED_FLAG) g_signal_emit_by_name (G_OBJECT (server), "album_changed"); if (server_interface->signals_to_emit & SERVER_STATE_CHANGED_FLAG) g_signal_emit_by_name (G_OBJECT (server), "state_changed"); if (server_interface->signals_to_emit & SERVER_VOLUME_CHANGED_FLAG) g_signal_emit_by_name (G_OBJECT (server), "volume_changed", server_interface->volume); if (server_interface->signals_to_emit & SERVER_ELAPSED_CHANGED_FLAG) g_signal_emit_by_name (G_OBJECT (server), "elapsed_changed", server_interface->elapsed); if (server_interface->signals_to_emit & SERVER_PLAYLIST_CHANGED_FLAG) g_signal_emit_by_name (G_OBJECT (server), "playlist_changed"); if (server_interface->signals_to_emit & SERVER_CONSUME_CHANGED_FLAG) g_signal_emit_by_name (G_OBJECT (server), "consume_changed"); if (server_interface->signals_to_emit & SERVER_RANDOM_CHANGED_FLAG) g_signal_emit_by_name (G_OBJECT (server), "random_changed"); if (server_interface->signals_to_emit & SERVER_REPEAT_CHANGED_FLAG) g_signal_emit_by_name (G_OBJECT (server), "repeat_changed"); if (server_interface->signals_to_emit & SERVER_UPDATINGDB_CHANGED_FLAG) g_signal_emit_by_name (G_OBJECT (server), "updatingdb_changed"); server_interface->signals_to_emit = 0; } ario-1.6/src/servers/ario-mpd2.h0000644000175000017500000000341413226723435013467 00000000000000/* * Copyright (C) 2005 Marc Pavot * * 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, 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * */ #ifndef __ARIO_MPD_H #define __ARIO_MPD_H #include "ario-server-interface.h" G_BEGIN_DECLS #define TYPE_ARIO_MPD (ario_mpd_get_type ()) #define ARIO_MPD(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), TYPE_ARIO_MPD, ArioMpd)) #define ARIO_MPD_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), TYPE_ARIO_MPD, ArioMpdClass)) #define IS_ARIO_MPD(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), TYPE_ARIO_MPD)) #define IS_ARIO_MPD_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), TYPE_ARIO_MPD)) #define ARIO_MPD_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), TYPE_ARIO_MPD, ArioMpdClass)) typedef struct ArioMpdPrivate ArioMpdPrivate; typedef struct { ArioServerInterface parent; ArioMpdPrivate *priv; } ArioMpd; typedef struct { ArioServerInterfaceClass parent; } ArioMpdClass; GType ario_mpd_get_type (void) G_GNUC_CONST; ArioMpd * ario_mpd_get_instance (ArioServer *server); G_END_DECLS #endif /* __ARIO_MPD_H */ ario-1.6/src/servers/ario-mpd.c0000644000175000017500000014304413226723432013401 00000000000000/* * Copyright (C) 2005 Marc Pavot * * 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, 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * */ #include "servers/ario-mpd.h" #include "config.h" #include #include #define MPD_GLIB 1 #include "lib/libmpdclient.h" #include "ario-debug.h" #include "ario-profiles.h" #include "preferences/ario-preferences.h" #include "lib/ario-conf.h" #include "widgets/ario-playlist.h" /* Number of milliseconds in 1 second */ #define ONE_SECOND 1000 /* Timeout for retrieve of data on MPD */ #define NORMAL_TIMEOUT 500 /* Reconnect after 0.5 second in case of error */ #define RECONNECT_INIT_TIMEOUT 500 /* Multiply reconnection timeout by 2 after each tentative */ #define RECONNECT_FACTOR 2 /* Try to reconnect 5 times */ #define RECONNECT_TENTATIVES 5 static void ario_mpd_finalize (GObject *object); static gboolean ario_mpd_connect_to (ArioMpd *mpd, gchar *hostname, int port, float timeout); static void ario_mpd_connect (void); static void ario_mpd_disconnect (void); static void ario_mpd_update_db (const gchar *path); static gboolean ario_mpd_check_errors (void); static gboolean ario_mpd_is_connected (void); static GSList * ario_mpd_list_tags (const ArioServerTag tag, const ArioServerCriteria *criteria); static gboolean ario_mpd_album_is_present (GHashTable *albums, const char *album); static GSList * ario_mpd_get_albums (const ArioServerCriteria *criteria); static GSList * ario_mpd_get_songs (const ArioServerCriteria *criteria, const gboolean exact); static GSList * ario_mpd_get_songs_from_playlist (char *playlist); static GSList * ario_mpd_get_playlists (void); static GSList * ario_mpd_get_playlist_changes (gint64 playlist_id); static gboolean ario_mpd_update_status (void); static ArioServerSong * ario_mpd_get_current_song_on_server (void); static int ario_mpd_get_current_playlist_total_time (void); static unsigned long ario_mpd_get_last_update (void); static void ario_mpd_do_next (void); static void ario_mpd_do_prev (void); static void ario_mpd_do_play (void); static void ario_mpd_do_play_pos (gint id); static void ario_mpd_do_pause (void); static void ario_mpd_do_stop (void); static void ario_mpd_set_current_elapsed (const gint elapsed); static void ario_mpd_set_current_volume (const gint volume); static void ario_mpd_set_current_consume (const gboolean consume); static void ario_mpd_set_current_random (const gboolean random); static void ario_mpd_set_current_repeat (const gboolean repeat); static void ario_mpd_set_crossfadetime (const int crossfadetime); static void ario_mpd_clear (void); static void ario_mpd_shuffle (void); static void ario_mpd_queue_commit (void); static void ario_mpd_insert_at (const GSList *songs, const gint pos); static int ario_mpd_save_playlist (const char *name); static void ario_mpd_delete_playlist (const char *name); static void ario_mpd_launch_timeout (void); static GSList * ario_mpd_get_outputs (void); static void ario_mpd_enable_output (int id, gboolean enabled); static ArioServerStats * ario_mpd_get_stats (void); static GList * ario_mpd_get_songs_info (GSList *paths); static ArioServerFileList * ario_mpd_list_files (const char *path, gboolean recursive); /* Private attributes */ struct ArioMpdPrivate { mpd_Status *status; mpd_Connection *connection; mpd_Stats *stats; guint timeout_id; gboolean support_empty_tags; gboolean support_idle; gboolean is_updating; int elapsed; int reconnect_time; }; #define ARIO_MPD_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_ARIO_MPD, ArioMpdPrivate)) G_DEFINE_TYPE (ArioMpd, ario_mpd, TYPE_ARIO_SERVER_INTERFACE) static ArioMpd *instance = NULL; static ArioServer *server_instance = NULL; static void ario_mpd_class_init (ArioMpdClass *klass) { ARIO_LOG_FUNCTION_START; GObjectClass *object_class = G_OBJECT_CLASS (klass); ArioServerInterfaceClass *server_class = ARIO_SERVER_INTERFACE_CLASS (klass); /* GObject virtual methods */ object_class->finalize = ario_mpd_finalize; /* ArioServerInterface virtual methods */ server_class->connect = ario_mpd_connect; server_class->disconnect = ario_mpd_disconnect; server_class->is_connected = ario_mpd_is_connected; server_class->update_status = ario_mpd_update_status; server_class->update_db = ario_mpd_update_db; server_class->list_tags = ario_mpd_list_tags; server_class->get_albums = ario_mpd_get_albums; server_class->get_songs = ario_mpd_get_songs; server_class->get_songs_from_playlist = ario_mpd_get_songs_from_playlist; server_class->get_playlists = ario_mpd_get_playlists; server_class->get_playlist_changes = ario_mpd_get_playlist_changes; server_class->get_current_song_on_server = ario_mpd_get_current_song_on_server; server_class->get_current_playlist_total_time = ario_mpd_get_current_playlist_total_time; server_class->get_last_update = ario_mpd_get_last_update; server_class->do_next = ario_mpd_do_next; server_class->do_prev = ario_mpd_do_prev; server_class->do_play = ario_mpd_do_play; server_class->do_play_pos = ario_mpd_do_play_pos; server_class->do_pause = ario_mpd_do_pause; server_class->do_stop = ario_mpd_do_stop; server_class->set_current_elapsed = ario_mpd_set_current_elapsed; server_class->set_current_volume = ario_mpd_set_current_volume; server_class->set_current_consume = ario_mpd_set_current_consume; server_class->set_current_random = ario_mpd_set_current_random; server_class->set_current_repeat = ario_mpd_set_current_repeat; server_class->set_crossfadetime = ario_mpd_set_crossfadetime; server_class->clear = ario_mpd_clear; server_class->shuffle = ario_mpd_shuffle; server_class->queue_commit = ario_mpd_queue_commit; server_class->insert_at = ario_mpd_insert_at; server_class->save_playlist = ario_mpd_save_playlist; server_class->delete_playlist = ario_mpd_delete_playlist; server_class->get_outputs = ario_mpd_get_outputs; server_class->enable_output = ario_mpd_enable_output; server_class->get_stats = ario_mpd_get_stats; server_class->get_songs_info = ario_mpd_get_songs_info; server_class->list_files = ario_mpd_list_files; /* Private attributes */ g_type_class_add_private (klass, sizeof (ArioMpdPrivate)); } static void ario_mpd_init (ArioMpd *mpd) { ARIO_LOG_FUNCTION_START; mpd->priv = ARIO_MPD_GET_PRIVATE (mpd); mpd->priv->timeout_id = 0; } static void ario_mpd_finalize (GObject *object) { ARIO_LOG_FUNCTION_START; ArioMpd *mpd; g_return_if_fail (object != NULL); g_return_if_fail (IS_ARIO_MPD (object)); mpd = ARIO_MPD (object); g_return_if_fail (mpd->priv != NULL); /* Close connection to MPD */ if (mpd->priv->connection) mpd_closeConnection (mpd->priv->connection); /* Free a few data */ if (mpd->priv->status) mpd_freeStatus (mpd->priv->status); if (mpd->priv->stats) mpd_freeStats (mpd->priv->stats); /* Stop retrieving data from MPD */ if (mpd->priv->timeout_id) g_source_remove (mpd->priv->timeout_id); instance = NULL; G_OBJECT_CLASS (ario_mpd_parent_class)->finalize (object); } ArioMpd * ario_mpd_get_instance (ArioServer *server) { ARIO_LOG_FUNCTION_START; /* Create instance if needed */ if (!instance) { instance = g_object_new (TYPE_ARIO_MPD, NULL); g_return_val_if_fail (instance->priv != NULL, NULL); server_instance = server; } return instance; } static void ario_mpd_check_idle (ArioMpd *mpd) { ARIO_LOG_FUNCTION_START; mpd->priv->support_idle = FALSE; #ifdef ENABLE_MPDIDLE char *command; /* Get list of supported commands */ mpd_sendCommandsCommand (mpd->priv->connection); while ((command = mpd_getNextCommand (mpd->priv->connection))) { /* Detect if idle command is supported */ if (!strcmp (command, "idle")) mpd->priv->support_idle = TRUE; g_free (command); } #endif } static void ario_mpd_launch_timeout (void) { ARIO_LOG_FUNCTION_START; instance->priv->timeout_id = g_timeout_add (NORMAL_TIMEOUT, (GSourceFunc) ario_mpd_update_status, NULL); } #ifdef ENABLE_MPDIDLE static gboolean ario_mpd_update_elapsed (gpointer data) { ARIO_LOG_FUNCTION_START; /* If in idle mode: update elapsed time every seconds when MPD is playing */ if (ario_server_get_current_state() == ARIO_STATE_PLAY) { ++instance->priv->elapsed; g_object_set (G_OBJECT (instance), "elapsed", instance->priv->elapsed, NULL); ario_server_interface_emit (ARIO_SERVER_INTERFACE (instance), server_instance); } return TRUE; } static void ario_mpd_launch_idle_timeout (void) { ARIO_LOG_FUNCTION_START; instance->priv->timeout_id = g_timeout_add (ONE_SECOND, (GSourceFunc) ario_mpd_update_elapsed, NULL); } #endif static void ario_mpd_idle_cb (mpd_Connection *connection, unsigned flags, void *userdata) { ARIO_LOG_FUNCTION_START; /* Update MPD status */ /* TODO: Be more selective depending on flags */ if (flags & IDLE_DATABASE || flags & IDLE_PLAYLIST || flags & IDLE_PLAYER || flags & IDLE_MIXER || flags & IDLE_OPTIONS) ario_mpd_update_status (); /* Stored playlists changed, update list */ if (flags & IDLE_STORED_PLAYLIST) g_signal_emit_by_name (G_OBJECT (server_instance), "storedplaylists_changed"); /* Diconnected from MPD: check errors */ if (flags & IDLE_DISCONNECT) ario_mpd_check_errors (); /* Restart idle */ if (instance->priv->connection) mpd_startIdle (instance->priv->connection, ario_mpd_idle_cb, NULL); } static gboolean ario_mpd_connect_to (ArioMpd *mpd, gchar *hostname, int port, float timeout) { ARIO_LOG_FUNCTION_START; gchar *password; mpd_Connection *connection; /* Connect to MPD */ connection = mpd_newConnection (hostname, port, timeout); if (!connection) return FALSE; /* Check connection errors */ if (connection->error) { ARIO_LOG_ERROR("%s", connection->errorStr); mpd_clearError (connection); mpd_closeConnection (connection); return FALSE; } /* Send password if one is set in profile */ password = ario_profiles_get_current (ario_profiles_get ())->password; if (password) { mpd_sendPasswordCommand (connection, password); mpd_finishCommand (connection); } mpd->priv->connection = connection; /* Check if idle is supported by MPD server */ ario_mpd_check_idle (mpd); if (instance->priv->support_idle && instance->priv->connection) { #ifdef ENABLE_MPDIDLE /* Initialise Idle mode */ mpd_glibInit (instance->priv->connection); mpd_startIdle (instance->priv->connection, ario_mpd_idle_cb, NULL); g_idle_add ((GSourceFunc) ario_mpd_update_status, NULL); /* Launch timeout to update elapsed time */ ario_mpd_launch_idle_timeout (); #endif } else { /* Launch timeout for data retrieve from MPD */ ario_mpd_launch_timeout (); } return TRUE; } static gpointer ario_mpd_connect_thread (ArioServer *server) { ARIO_LOG_FUNCTION_START; gchar *hostname; int port; float timeout; ArioProfile *profile; profile = ario_profiles_get_current (ario_profiles_get ()); hostname = profile->host; port = profile->port; timeout = 5.0; if (hostname == NULL) hostname = "localhost"; if (port == 0) port = 6600; if (!ario_mpd_connect_to (instance, hostname, port, timeout)) { ario_mpd_disconnect (); } instance->priv->support_empty_tags = FALSE; instance->parent.connecting = FALSE; return NULL; } static void ario_mpd_connect (void) { ARIO_LOG_FUNCTION_START; GtkWidget *win = NULL, *vbox,*label, *bar; GThread* thread; GtkWidget *dialog; gboolean is_in_error = (instance->priv->reconnect_time > 0); thread = g_thread_new ("connect", (GThreadFunc) ario_mpd_connect_thread, instance); if (!is_in_error) { win = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_modal (GTK_WINDOW (win), TRUE); vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); label = gtk_label_new (_("Connecting to server...")); bar = gtk_progress_bar_new (); gtk_container_add (GTK_CONTAINER (win), vbox); gtk_box_pack_start (GTK_BOX (vbox), label, FALSE, FALSE, 6); gtk_box_pack_start (GTK_BOX (vbox), bar, FALSE, FALSE, 6); gtk_window_set_resizable (GTK_WINDOW (win), FALSE); gtk_window_set_title (GTK_WINDOW (win), "Ario"); gtk_window_set_position (GTK_WINDOW (win), GTK_WIN_POS_CENTER); gtk_widget_show_all (win); while (instance->parent.connecting) { gtk_progress_bar_pulse (GTK_PROGRESS_BAR (bar)); while (gtk_events_pending ()) gtk_main_iteration (); g_usleep (200000); } } g_thread_join (thread); if (ario_server_is_connected ()) { instance->priv->reconnect_time = 0; } else if (!is_in_error) { dialog = gtk_message_dialog_new (NULL, GTK_DIALOG_MODAL, GTK_MESSAGE_ERROR, GTK_BUTTONS_OK, _("Impossible to connect to server. Check the connection options.")); if (gtk_dialog_run (GTK_DIALOG (dialog)) != GTK_RESPONSE_NONE) gtk_widget_destroy (dialog); g_signal_emit_by_name (G_OBJECT (server_instance), "state_changed"); } if (win) { gtk_widget_hide (win); gtk_widget_destroy (win); } } static void ario_mpd_disconnect (void) { ARIO_LOG_FUNCTION_START; /* check if there is a connection */ if (!instance->priv->connection) return; if (instance->priv->support_idle) mpd_stopIdle (instance->priv->connection); mpd_closeConnection (instance->priv->connection); instance->priv->connection = NULL; if (instance->priv->timeout_id) { g_source_remove (instance->priv->timeout_id); instance->priv->timeout_id = 0; } ario_mpd_update_status (); } static void ario_mpd_update_db (const gchar *path) { ARIO_LOG_FUNCTION_START; /* check if there is a connection */ if (!instance->priv->connection) return; if (!path) mpd_sendUpdateCommand (instance->priv->connection, ""); else mpd_sendUpdateCommand (instance->priv->connection, path); mpd_finishCommand (instance->priv->connection); if (instance->priv->support_idle && instance->priv->connection) mpd_startIdle (instance->priv->connection, ario_mpd_idle_cb, NULL); } static gboolean ario_mpd_try_reconnect (gpointer data) { ARIO_LOG_FUNCTION_START; ario_server_connect (); if (!instance->priv->connection && instance->priv->reconnect_time <= RECONNECT_TENTATIVES) { /* Try to reconnect */ ++instance->priv->reconnect_time; g_timeout_add (RECONNECT_INIT_TIMEOUT * instance->priv->reconnect_time * RECONNECT_FACTOR, ario_mpd_try_reconnect, NULL); } return FALSE; } static gboolean ario_mpd_check_errors (void) { // desactivated to make the logs more readable //ARIO_LOG_FUNCTION_START; if (!instance->priv->connection) return FALSE; if (instance->priv->connection->error) { ARIO_LOG_ERROR("%s", instance->priv->connection->errorStr); mpd_clearError (instance->priv->connection); ario_server_disconnect (); /* Try to reconnect */ instance->priv->reconnect_time = 1; g_timeout_add (RECONNECT_INIT_TIMEOUT * instance->priv->reconnect_time * RECONNECT_FACTOR, ario_mpd_try_reconnect, NULL); return TRUE; } return FALSE; } static gboolean ario_mpd_is_connected (void) { // desactivated to make the logs more readable //ARIO_LOG_FUNCTION_START; return (instance->priv->connection != NULL); } static GSList * ario_mpd_list_tags (const ArioServerTag tag, const ArioServerCriteria *criteria) { ARIO_LOG_FUNCTION_START; gchar *value; const GSList *tmp; GSList *values = NULL; ArioServerAtomicCriteria *atomic_criteria; /* check if there is a connection */ if (!instance->priv->connection) return NULL; mpd_startFieldSearch (instance->priv->connection, tag); for (tmp = criteria; tmp; tmp = g_slist_next (tmp)) { atomic_criteria = tmp->data; if (instance->priv->support_empty_tags && !g_utf8_collate (atomic_criteria->value, ARIO_SERVER_UNKNOWN)) mpd_addConstraintSearch (instance->priv->connection, atomic_criteria->tag, ""); else mpd_addConstraintSearch (instance->priv->connection, atomic_criteria->tag, atomic_criteria->value); } mpd_commitSearch (instance->priv->connection); while ((value = mpd_getNextTag (instance->priv->connection, tag))) { if (*value) values = g_slist_append (values, value); else { g_free (value); values = g_slist_append (values, g_strdup (ARIO_SERVER_UNKNOWN)); instance->priv->support_empty_tags = TRUE; } } if (instance->priv->support_idle && instance->priv->connection) mpd_startIdle (instance->priv->connection, ario_mpd_idle_cb, NULL); return values; } static gboolean ario_mpd_album_is_present (GHashTable *albums, const char *album) { ARIO_LOG_FUNCTION_START; return g_hash_table_lookup (albums, album) != NULL; } static GSList * ario_mpd_get_albums (const ArioServerCriteria *criteria) { ARIO_LOG_FUNCTION_START; GHashTable *albums; const GSList *tmp; GList *values; GSList *result = NULL; mpd_InfoEntity *entity = NULL; ArioServerAlbum *mpd_album; ArioServerAtomicCriteria *atomic_criteria; /* check if there is a connection */ if (!instance->priv->connection) return NULL; albums = g_hash_table_new (g_str_hash, g_str_equal); if (!criteria) { mpd_sendListallInfoCommand (instance->priv->connection, "/"); } else { mpd_startSearch (instance->priv->connection, TRUE); for (tmp = criteria; tmp; tmp = g_slist_next (tmp)) { atomic_criteria = tmp->data; if (instance->priv->support_empty_tags && !g_utf8_collate (atomic_criteria->value, ARIO_SERVER_UNKNOWN)) mpd_addConstraintSearch (instance->priv->connection, atomic_criteria->tag, ""); else mpd_addConstraintSearch (instance->priv->connection, atomic_criteria->tag, atomic_criteria->value); } mpd_commitSearch (instance->priv->connection); } while ((entity = mpd_getNextInfoEntity (instance->priv->connection))) { if (entity->type != MPD_INFO_ENTITY_TYPE_SONG) { mpd_freeInfoEntity (entity); continue; } if (!entity->info.song->album) { if (ario_mpd_album_is_present (albums, ARIO_SERVER_UNKNOWN)) { mpd_freeInfoEntity (entity); continue; } } else { if (ario_mpd_album_is_present (albums, entity->info.song->album)) { mpd_freeInfoEntity (entity); continue; } } mpd_album = (ArioServerAlbum *) g_malloc (sizeof (ArioServerAlbum)); if (entity->info.song->album) { mpd_album->album = entity->info.song->album; entity->info.song->album = NULL; } else { mpd_album->album = g_strdup (ARIO_SERVER_UNKNOWN); } if (entity->info.song->artist) { mpd_album->artist = entity->info.song->artist; entity->info.song->artist = NULL; } else { mpd_album->artist = g_strdup (ARIO_SERVER_UNKNOWN); } if (entity->info.song->file) { mpd_album->path = g_path_get_dirname (entity->info.song->file); } else { mpd_album->path = NULL; } if (entity->info.song->date) { mpd_album->date = entity->info.song->date; entity->info.song->date = NULL; } else { mpd_album->date = NULL; } g_hash_table_insert(albums, mpd_album->album, (gpointer) mpd_album); mpd_freeInfoEntity (entity); } mpd_finishCommand (instance->priv->connection); if (instance->priv->support_idle && instance->priv->connection) mpd_startIdle (instance->priv->connection, ario_mpd_idle_cb, NULL); for (values = g_hash_table_get_values (albums); values; values = g_list_next (values)) result = g_slist_append (result, values->data); /* * we don't need to free neither the keys nor the values since * they are returned within the resulting list */ g_hash_table_destroy (albums); return result; } static GSList * ario_mpd_get_songs (const ArioServerCriteria *criteria, const gboolean exact) { ARIO_LOG_FUNCTION_START; GSList *songs = NULL; mpd_InfoEntity *entity = NULL; const GSList *tmp; gboolean is_album_unknown = FALSE; ArioServerAtomicCriteria *atomic_criteria; /* check if there is a connection */ if (!instance->priv->connection) return NULL; for (tmp = criteria; tmp; tmp = g_slist_next (tmp)) { atomic_criteria = tmp->data; if (atomic_criteria->tag == ARIO_TAG_ALBUM && !g_utf8_collate (atomic_criteria->value, ARIO_SERVER_UNKNOWN)) is_album_unknown = TRUE; } mpd_startSearch (instance->priv->connection, exact); for (tmp = criteria; tmp; tmp = g_slist_next (tmp)) { atomic_criteria = tmp->data; if (instance->priv->support_empty_tags && !g_utf8_collate (atomic_criteria->value, ARIO_SERVER_UNKNOWN)) mpd_addConstraintSearch (instance->priv->connection, atomic_criteria->tag, ""); else if (atomic_criteria->tag != ARIO_TAG_ALBUM || g_utf8_collate (atomic_criteria->value, ARIO_SERVER_UNKNOWN)) mpd_addConstraintSearch (instance->priv->connection, atomic_criteria->tag, atomic_criteria->value); } mpd_commitSearch (instance->priv->connection); while ((entity = mpd_getNextInfoEntity (instance->priv->connection))) { if (entity->type == MPD_INFO_ENTITY_TYPE_SONG && entity->info.song) { if (instance->priv->support_empty_tags || !is_album_unknown || !entity->info.song->album) { songs = g_slist_append (songs, entity->info.song); entity->info.song = NULL; } } mpd_freeInfoEntity (entity); } mpd_finishCommand (instance->priv->connection); if (instance->priv->support_idle && instance->priv->connection) mpd_startIdle (instance->priv->connection, ario_mpd_idle_cb, NULL); return songs; } static GSList * ario_mpd_get_songs_from_playlist (char *playlist) { ARIO_LOG_FUNCTION_START; GSList *songs = NULL; mpd_InfoEntity *ent = NULL; /* check if there is a connection */ if (!instance->priv->connection) return NULL; mpd_sendListPlaylistInfoCommand (instance->priv->connection, playlist); while ((ent = mpd_getNextInfoEntity (instance->priv->connection))) { songs = g_slist_append (songs, ent->info.song); ent->info.song = NULL; mpd_freeInfoEntity (ent); } mpd_finishCommand (instance->priv->connection); if (instance->priv->support_idle && instance->priv->connection) mpd_startIdle (instance->priv->connection, ario_mpd_idle_cb, NULL); return songs; } static GSList * ario_mpd_get_playlists (void) { ARIO_LOG_FUNCTION_START; GSList *playlists = NULL; mpd_InfoEntity *ent = NULL; /* check if there is a connection */ if (!instance->priv->connection) return NULL; mpd_sendLsInfoCommand(instance->priv->connection, "/"); while ((ent = mpd_getNextInfoEntity (instance->priv->connection))) { if (ent->type == MPD_INFO_ENTITY_TYPE_PLAYLISTFILE) { playlists = g_slist_append (playlists, g_strdup (ent->info.playlistFile->path)); } mpd_freeInfoEntity (ent); } mpd_finishCommand (instance->priv->connection); if (instance->priv->support_idle && instance->priv->connection) mpd_startIdle (instance->priv->connection, ario_mpd_idle_cb, NULL); return playlists; } static GSList * ario_mpd_get_playlist_changes (gint64 playlist_id) { ARIO_LOG_FUNCTION_START; GSList *songs = NULL; mpd_InfoEntity *entity; /* check if there is a connection */ if (!instance->priv->connection) return NULL; mpd_sendPlChangesCommand (instance->priv->connection, (long long) playlist_id); while ((entity = mpd_getNextInfoEntity (instance->priv->connection))) { if (entity->info.song) { songs = g_slist_append (songs, entity->info.song); entity->info.song = NULL; } mpd_freeInfoEntity (entity); } mpd_finishCommand (instance->priv->connection); if (instance->priv->support_idle && instance->priv->connection) mpd_startIdle (instance->priv->connection, ario_mpd_idle_cb, NULL); return songs; } static gboolean ario_mpd_update_status (void) { // desactivated to make the logs more readable //ARIO_LOG_FUNCTION_START; if (instance->priv->is_updating) return !instance->priv->support_idle; instance->priv->is_updating = TRUE; /* check if there is a connection */ if (!instance->priv->connection) { ario_server_interface_set_default (ARIO_SERVER_INTERFACE (instance)); } else { if (instance->priv->status) mpd_freeStatus (instance->priv->status); mpd_sendStatusCommand (instance->priv->connection); instance->priv->status = mpd_getStatus (instance->priv->connection); if (ario_mpd_check_errors ()) { ario_server_interface_set_default (ARIO_SERVER_INTERFACE (instance)); } else if (instance->priv->status) { if (instance->parent.song_id != instance->priv->status->songid || instance->parent.playlist_id != (gint64) instance->priv->status->playlist) g_object_set (G_OBJECT (instance), "song_id", instance->priv->status->songid, NULL); if ((gint) instance->parent.state != instance->priv->status->state) g_object_set (G_OBJECT (instance), "state", instance->priv->status->state, NULL); if (instance->parent.volume != instance->priv->status->volume) g_object_set (G_OBJECT (instance), "volume", instance->priv->status->volume, NULL); if ((gint) instance->parent.elapsed != instance->priv->status->elapsedTime) { g_object_set (G_OBJECT (instance), "elapsed", instance->priv->status->elapsedTime, NULL); instance->priv->elapsed = instance->priv->status->elapsedTime; } if (instance->parent.playlist_id != (gint64) instance->priv->status->playlist) { g_object_set (G_OBJECT (instance), "playlist_id", (gint64) instance->priv->status->playlist, NULL); instance->parent.playlist_length = instance->priv->status->playlistLength; } if (instance->parent.random != (gboolean) instance->priv->status->random) g_object_set (G_OBJECT (instance), "random", instance->priv->status->random, NULL); if (instance->parent.consume != (gboolean) instance->priv->status->consume) g_object_set (G_OBJECT (instance), "consume", instance->priv->status->consume, NULL); if (instance->parent.repeat != (gboolean) instance->priv->status->repeat) g_object_set (G_OBJECT (instance), "repeat", instance->priv->status->repeat, NULL); if ((gint) instance->parent.updatingdb != instance->priv->status->updatingDb) g_object_set (G_OBJECT (instance), "updatingdb", instance->priv->status->updatingDb, NULL); instance->parent.crossfade = instance->priv->status->crossfade; } } ario_server_interface_emit (ARIO_SERVER_INTERFACE (instance), server_instance); instance->priv->is_updating = FALSE; if (instance->priv->support_idle && instance->priv->connection) mpd_startIdle (instance->priv->connection, ario_mpd_idle_cb, NULL); return !instance->priv->support_idle; } static ArioServerSong * ario_mpd_get_current_song_on_server (void) { ARIO_LOG_FUNCTION_START; ArioServerSong *song = NULL; mpd_InfoEntity *ent ; mpd_sendCurrentSongCommand (instance->priv->connection); ent = mpd_getNextInfoEntity (instance->priv->connection); if (ent) { song = (ArioServerSong *) ent->info.song; ent->info.song = NULL; mpd_freeInfoEntity (ent); } mpd_finishCommand (instance->priv->connection); if (instance->priv->support_idle && instance->priv->connection) mpd_startIdle (instance->priv->connection, ario_mpd_idle_cb, NULL); return song; } static int ario_mpd_get_current_playlist_total_time (void) { ARIO_LOG_FUNCTION_START; if (!instance->priv->connection) return 0; /* Compute it from playlist widget (quite coslty but not often called) */ return ario_playlist_get_total_time (); } static unsigned long ario_mpd_get_last_update (void) { ARIO_LOG_FUNCTION_START; /* check if there is a connection */ if (!instance->priv->connection) return 0; if (instance->priv->stats) mpd_freeStats (instance->priv->stats); mpd_sendStatsCommand (instance->priv->connection); instance->priv->stats = mpd_getStats (instance->priv->connection); ario_mpd_check_errors (); if (instance->priv->support_idle && instance->priv->connection) mpd_startIdle (instance->priv->connection, ario_mpd_idle_cb, NULL); if (instance->priv->stats) return instance->priv->stats->dbUpdateTime; else return 0; } static void ario_mpd_do_next (void) { ARIO_LOG_FUNCTION_START; /* check if there is a connection */ if (!instance->priv->connection) return; mpd_sendNextCommand (instance->priv->connection); mpd_finishCommand (instance->priv->connection); if (instance->priv->support_idle && instance->priv->connection) mpd_startIdle (instance->priv->connection, ario_mpd_idle_cb, NULL); } static void ario_mpd_do_prev (void) { ARIO_LOG_FUNCTION_START; /* check if there is a connection */ if (!instance->priv->connection) return; mpd_sendPrevCommand (instance->priv->connection); mpd_finishCommand (instance->priv->connection); if (instance->priv->support_idle && instance->priv->connection) mpd_startIdle (instance->priv->connection, ario_mpd_idle_cb, NULL); } static void ario_mpd_do_play (void) { ARIO_LOG_FUNCTION_START; /* check if there is a connection */ if (!instance->priv->connection) return; mpd_sendPlayCommand (instance->priv->connection, -1); mpd_finishCommand (instance->priv->connection); if (instance->priv->support_idle && instance->priv->connection) mpd_startIdle (instance->priv->connection, ario_mpd_idle_cb, NULL); } static void ario_mpd_do_play_pos (gint id) { ARIO_LOG_FUNCTION_START; /* check if there is a connection */ if (!instance->priv->connection) return; /* send mpd the play command */ mpd_sendPlayCommand (instance->priv->connection, id); mpd_finishCommand (instance->priv->connection); if (instance->priv->support_idle && instance->priv->connection) mpd_startIdle (instance->priv->connection, ario_mpd_idle_cb, NULL); } static void ario_mpd_do_pause (void) { ARIO_LOG_FUNCTION_START; /* check if there is a connection */ if (!instance->priv->connection) return; mpd_sendPauseCommand (instance->priv->connection, TRUE); mpd_finishCommand (instance->priv->connection); if (instance->priv->support_idle && instance->priv->connection) mpd_startIdle (instance->priv->connection, ario_mpd_idle_cb, NULL); } static void ario_mpd_do_stop (void) { ARIO_LOG_FUNCTION_START; /* check if there is a connection */ if (!instance->priv->connection) return; mpd_sendStopCommand (instance->priv->connection); mpd_finishCommand (instance->priv->connection); if (instance->priv->support_idle && instance->priv->connection) mpd_startIdle (instance->priv->connection, ario_mpd_idle_cb, NULL); } static void ario_mpd_set_current_elapsed (const gint elapsed) { ARIO_LOG_FUNCTION_START; /* check if there is a connection */ if (!instance->priv->connection) return; mpd_sendSeekCommand (instance->priv->connection, instance->priv->status->song, elapsed); mpd_finishCommand (instance->priv->connection); if (instance->priv->support_idle && instance->priv->connection) mpd_startIdle (instance->priv->connection, ario_mpd_idle_cb, NULL); } static void ario_mpd_set_current_volume (const gint volume) { ARIO_LOG_FUNCTION_START; /* check if there is a connection */ if (!instance->priv->connection) return; mpd_sendSetvolCommand (instance->priv->connection, volume); mpd_finishCommand (instance->priv->connection); ario_mpd_update_status (); if (instance->priv->support_idle && instance->priv->connection) mpd_startIdle (instance->priv->connection, ario_mpd_idle_cb, NULL); } static void ario_mpd_set_current_consume (const gboolean consume) { ARIO_LOG_FUNCTION_START; /* check if there is a connection */ if (!instance->priv->connection) return; mpd_sendConsumeCommand (instance->priv->connection, consume); mpd_finishCommand (instance->priv->connection); if (instance->priv->support_idle && instance->priv->connection) mpd_startIdle (instance->priv->connection, ario_mpd_idle_cb, NULL); } static void ario_mpd_set_current_random (const gboolean random) { ARIO_LOG_FUNCTION_START; /* check if there is a connection */ if (!instance->priv->connection) return; mpd_sendRandomCommand (instance->priv->connection, random); mpd_finishCommand (instance->priv->connection); if (instance->priv->support_idle && instance->priv->connection) mpd_startIdle (instance->priv->connection, ario_mpd_idle_cb, NULL); } static void ario_mpd_set_current_repeat (const gboolean repeat) { ARIO_LOG_FUNCTION_START; /* check if there is a connection */ if (!instance->priv->connection) return; mpd_sendRepeatCommand (instance->priv->connection, repeat); mpd_finishCommand (instance->priv->connection); if (instance->priv->support_idle && instance->priv->connection) mpd_startIdle (instance->priv->connection, ario_mpd_idle_cb, NULL); } static void ario_mpd_set_crossfadetime (const int crossfadetime) { ARIO_LOG_FUNCTION_START; /* check if there is a connection */ if (!instance->priv->connection) return; mpd_sendCrossfadeCommand (instance->priv->connection, crossfadetime); mpd_finishCommand (instance->priv->connection); if (instance->priv->support_idle && instance->priv->connection) mpd_startIdle (instance->priv->connection, ario_mpd_idle_cb, NULL); } static void ario_mpd_clear (void) { ARIO_LOG_FUNCTION_START; /* check if there is a connection */ if (!instance->priv->connection) return; mpd_sendClearCommand (instance->priv->connection); mpd_finishCommand (instance->priv->connection); ario_mpd_update_status (); if (instance->priv->support_idle && instance->priv->connection) mpd_startIdle (instance->priv->connection, ario_mpd_idle_cb, NULL); } static void ario_mpd_shuffle (void) { ARIO_LOG_FUNCTION_START; /* check if there is a connection */ if (!instance->priv->connection) return; mpd_sendShuffleCommand (instance->priv->connection); mpd_finishCommand (instance->priv->connection); ario_mpd_update_status (); if (instance->priv->support_idle && instance->priv->connection) mpd_startIdle (instance->priv->connection, ario_mpd_idle_cb, NULL); } static void ario_mpd_queue_commit (void) { ARIO_LOG_FUNCTION_START; GSList *temp; ArioServerQueueAction *queue_action; /* check if there is a connection */ if (!instance->priv->connection) return; mpd_sendCommandListBegin(instance->priv->connection); for (temp = instance->parent.queue; temp; temp = g_slist_next (temp)) { queue_action = (ArioServerQueueAction *) temp->data; if (queue_action->type == ARIO_SERVER_ACTION_ADD) { if (queue_action->path) { mpd_sendAddCommand(instance->priv->connection, queue_action->path); } } else if (queue_action->type == ARIO_SERVER_ACTION_DELETE_ID) { if (queue_action->id >= 0) { mpd_sendDeleteIdCommand(instance->priv->connection, queue_action->id); } } else if (queue_action->type == ARIO_SERVER_ACTION_DELETE_POS) { if (queue_action->pos >= 0) { mpd_sendDeleteCommand(instance->priv->connection, queue_action->pos); } } else if (queue_action->type == ARIO_SERVER_ACTION_MOVE) { if (queue_action->id >= 0) { mpd_sendMoveCommand(instance->priv->connection, queue_action->old_pos, queue_action->new_pos); } } else if (queue_action->type == ARIO_SERVER_ACTION_MOVEID) { if (queue_action->id >= 0) { mpd_sendMoveIdCommand(instance->priv->connection, queue_action->old_pos, queue_action->new_pos); } } } mpd_sendCommandListEnd (instance->priv->connection); mpd_finishCommand (instance->priv->connection); ario_mpd_update_status (); g_slist_foreach (instance->parent.queue, (GFunc) g_free, NULL); g_slist_free (instance->parent.queue); instance->parent.queue = NULL; if (instance->priv->support_idle && instance->priv->connection) mpd_startIdle (instance->priv->connection, ario_mpd_idle_cb, NULL); } static void ario_mpd_insert_at (const GSList *songs, const gint pos) { ARIO_LOG_FUNCTION_START; int end, offset = 0; const GSList *tmp; end = instance->parent.playlist_length; /* For each filename :*/ for (tmp = songs; tmp; tmp = g_slist_next (tmp)) { /* Add it in the playlist*/ ario_server_queue_add (tmp->data); ++offset; /* move it in the right place */ ario_server_queue_move (end + offset - 1, pos + offset); } ario_mpd_queue_commit (); } static int ario_mpd_save_playlist (const char *name) { ARIO_LOG_FUNCTION_START; mpd_sendSaveCommand (instance->priv->connection, name); mpd_finishCommand (instance->priv->connection); if (instance->priv->support_idle && instance->priv->connection) mpd_startIdle (instance->priv->connection, ario_mpd_idle_cb, NULL); if (instance->priv->connection->error == MPD_ERROR_1_ACK && instance->priv->connection->errorCode == MPD_ACK_ERROR_EXIST) return 1; return 0; } static void ario_mpd_delete_playlist (const char *name) { ARIO_LOG_FUNCTION_START; mpd_sendRmCommand (instance->priv->connection, name); mpd_finishCommand (instance->priv->connection); if (instance->priv->support_idle && instance->priv->connection) mpd_startIdle (instance->priv->connection, ario_mpd_idle_cb, NULL); } static GSList * ario_mpd_get_outputs (void) { ARIO_LOG_FUNCTION_START; GSList *outputs = NULL; mpd_OutputEntity *output_ent; /* check if there is a connection */ if (!instance->priv->connection) return NULL; mpd_sendOutputsCommand (instance->priv->connection); while ((output_ent = mpd_getNextOutput (instance->priv->connection))) outputs = g_slist_append (outputs, output_ent); mpd_finishCommand (instance->priv->connection); if (instance->priv->support_idle && instance->priv->connection) mpd_startIdle (instance->priv->connection, ario_mpd_idle_cb, NULL); return outputs; } static void ario_mpd_enable_output (int id, gboolean enabled) { ARIO_LOG_FUNCTION_START; if (enabled) { mpd_sendEnableOutputCommand(instance->priv->connection, id); } else { mpd_sendDisableOutputCommand(instance->priv->connection, id); } mpd_finishCommand (instance->priv->connection); if (instance->priv->support_idle && instance->priv->connection) mpd_startIdle (instance->priv->connection, ario_mpd_idle_cb, NULL); } static ArioServerStats * ario_mpd_get_stats (void) { ARIO_LOG_FUNCTION_START; /* check if there is a connection */ if (!instance->priv->connection) return NULL; if (instance->priv->stats) mpd_freeStats (instance->priv->stats); mpd_sendStatsCommand (instance->priv->connection); instance->priv->stats = mpd_getStats (instance->priv->connection); ario_mpd_check_errors (); if (instance->priv->support_idle && instance->priv->connection) mpd_startIdle (instance->priv->connection, ario_mpd_idle_cb, NULL); return (ArioServerStats *) instance->priv->stats; } static GList * ario_mpd_get_songs_info (GSList *paths) { ARIO_LOG_FUNCTION_START; const gchar *path = NULL; GSList *temp; GList *songs = NULL; mpd_InfoEntity *ent; /* check if there is a connection */ if (!instance->priv->connection) return NULL; for (temp = paths; temp; temp = g_slist_next (temp)) { path = temp->data; mpd_sendListallInfoCommand (instance->priv->connection, path); ent = mpd_getNextInfoEntity (instance->priv->connection); mpd_finishCommand (instance->priv->connection); if (!ent) continue; songs = g_list_append (songs, ent->info.song); ent->info.song = NULL; mpd_freeInfoEntity (ent); ario_mpd_check_errors (); } if (instance->priv->support_idle && instance->priv->connection) mpd_startIdle (instance->priv->connection, ario_mpd_idle_cb, NULL); return songs; } static ArioServerFileList * ario_mpd_list_files (const char *path, gboolean recursive) { ARIO_LOG_FUNCTION_START; mpd_InfoEntity *entity; ArioServerFileList *files = (ArioServerFileList *) g_malloc0 (sizeof (ArioServerFileList)); /* check if there is a connection */ if (!instance->priv->connection) return files; if (recursive) mpd_sendListallCommand (instance->priv->connection, path); else mpd_sendLsInfoCommand (instance->priv->connection, path); while ((entity = mpd_getNextInfoEntity (instance->priv->connection))) { if (entity->type == MPD_INFO_ENTITY_TYPE_DIRECTORY) { files->directories = g_slist_append (files->directories, entity->info.directory->path); entity->info.directory->path = NULL; } else if (entity->type == MPD_INFO_ENTITY_TYPE_SONG) { files->songs = g_slist_append (files->songs, entity->info.song); entity->info.song = NULL; } mpd_freeInfoEntity(entity); } if (instance->priv->support_idle && instance->priv->connection) mpd_startIdle (instance->priv->connection, ario_mpd_idle_cb, NULL); return files; } ario-1.6/src/servers/ario-server-interface.h0000644000175000017500000001422413226723435016072 00000000000000/* * Copyright (C) 2005 Marc Pavot * * 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, 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * */ #ifndef __ARIO_SERVER_INTERFACE_H #define __ARIO_SERVER_INTERFACE_H #include #include "ario-server.h" G_BEGIN_DECLS #define TYPE_ARIO_SERVER_INTERFACE (ario_server_interface_get_type ()) #define ARIO_SERVER_INTERFACE(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), TYPE_ARIO_SERVER_INTERFACE, ArioServerInterface)) #define ARIO_SERVER_INTERFACE_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), TYPE_ARIO_SERVER_INTERFACE, ArioServerInterfaceClass)) #define IS_ARIO_SERVER_INTERFACE(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), TYPE_ARIO_SERVER_INTERFACE)) #define IS_ARIO_SERVER_INTERFACE_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), TYPE_ARIO_SERVER_INTERFACE)) #define ARIO_SERVER_INTERFACE_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), TYPE_ARIO_SERVER_INTERFACE, ArioServerInterfaceClass)) typedef struct { GObject parent; int song_id; guint state; int volume; guint elapsed; ArioServerSong *server_song; gint64 playlist_id; int playlist_length; gboolean consume; gboolean random; gboolean repeat; guint updatingdb; int crossfade; GSList *queue; gboolean connecting; int signals_to_emit; } ArioServerInterface; typedef struct { GObjectClass parent; /* Virtual public methods */ void (*connect) (void); void (*disconnect) (void); gboolean (*is_connected) (void); gboolean (*update_status) (void); void (*update_db) (const gchar* path); GSList * (*list_tags) (const ArioServerTag tag, const ArioServerCriteria *criteria); GSList * (*get_albums) (const ArioServerCriteria *criteria); GSList * (*get_songs) (const ArioServerCriteria *criteria, const gboolean exact); GSList * (*get_songs_from_playlist) (char *playlist); GSList * (*get_playlists) (void); GSList * (*get_playlist_changes) (gint64 playlist_id); ArioServerSong * (*get_current_song_on_server) (void); int (*get_current_playlist_total_time) (void); unsigned long (*get_last_update) (void); void (*do_next) (void); void (*do_prev) (void); void (*do_play) (void); void (*do_play_pos) (gint id); void (*do_pause) (void); void (*do_stop) (void); void (*set_current_elapsed) (const gint elapsed); void (*set_current_volume) (const gint volume); void (*set_current_consume) (const gboolean consume); void (*set_current_random) (const gboolean random); void (*set_current_repeat) (const gboolean repeat); void (*set_crossfadetime) (const int crossfadetime); void (*clear) (void); void (*shuffle) (void); void (*queue_commit) (void); void (*insert_at) (const GSList *songs, const gint pos); int (*save_playlist) (const char *name); void (*delete_playlist) (const char *name); GSList * (*get_outputs) (void); void (*enable_output) (const int id, const gboolean enabled); ArioServerStats * (*get_stats) (void); GList * (*get_songs_info) (GSList *paths); ArioServerFileList* (*list_files) (const char *path, const gboolean recursive); } ArioServerInterfaceClass; GType ario_server_interface_get_type (void) G_GNUC_CONST; void ario_server_interface_set_default (ArioServerInterface *server_interface); void ario_server_interface_emit (ArioServerInterface *server_interface, ArioServer *server); G_END_DECLS #endif /* __ARIO_SERVER_INTERFACE_H */ ario-1.6/src/servers/ario-mpd2.c0000644000175000017500000015317313226723433013470 00000000000000/* * Copyright (C) 2005 Marc Pavot * * 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, 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * */ #include "servers/ario-mpd.h" #include "config.h" #include #include #include "servers/ario-server.h" #include "mpd/client.h" #include "ario-debug.h" #include "ario-profiles.h" #include "ario-util.h" #include "preferences/ario-preferences.h" #include "lib/ario-conf.h" #include "lib/gtk-builder-helpers.h" #include "widgets/ario-playlist.h" /* Number of milliseconds in 1 second */ #define ONE_SECOND 1000 /* Timeout for retrieve of data on MPD */ #define NORMAL_TIMEOUT 500 /* Reconnect after 0.5 second in case of error */ #define RECONNECT_INIT_TIMEOUT 500 /* Multiply reconnection timeout by 2 after each tentative */ #define RECONNECT_FACTOR 2 /* Reconnect timeout will never exceed 8 seconds */ #define RECONNECT_MAXIMUM_TIMEOUT 8000 static void ario_mpd_finalize (GObject *object); static gboolean ario_mpd_connect_to (ArioMpd *mpd, gchar *hostname, int port, guint timeout); static void ario_mpd_connect (void); static void ario_mpd_disconnect (void); static void ario_mpd_update_db (const gchar *path); static gboolean ario_mpd_check_errors (void); static gboolean ario_mpd_is_connected (void); static GSList * ario_mpd_list_tags (const ArioServerTag tag, const ArioServerCriteria *criteria); static gboolean ario_mpd_album_is_present (GHashTable *albums, const char *album); static GSList * ario_mpd_get_albums (const ArioServerCriteria *criteria); static GSList * ario_mpd_get_songs (const ArioServerCriteria *criteria, const gboolean exact); static GSList * ario_mpd_get_songs_from_playlist (char *playlist); static GSList * ario_mpd_get_playlists (void); static GSList * ario_mpd_get_playlist_changes (gint64 playlist_id); static gboolean ario_mpd_update_status (void); static ArioServerSong * ario_mpd_get_current_song_on_server (void); static int ario_mpd_get_current_playlist_total_time (void); static unsigned long ario_mpd_get_last_update (void); static void ario_mpd_do_next (void); static void ario_mpd_do_prev (void); static void ario_mpd_do_play (void); static void ario_mpd_do_play_pos (gint id); static void ario_mpd_do_pause (void); static void ario_mpd_do_stop (void); static void ario_mpd_set_current_elapsed (const gint elapsed); static void ario_mpd_set_current_volume (const gint volume); static void ario_mpd_set_current_consume (const gboolean consume); static void ario_mpd_set_current_random (const gboolean random); static void ario_mpd_set_current_repeat (const gboolean repeat); static void ario_mpd_set_crossfadetime (const int crossfadetime); static void ario_mpd_clear (void); static void ario_mpd_shuffle (void); static void ario_mpd_queue_commit (void); static void ario_mpd_insert_at (const GSList *songs, const gint pos); static int ario_mpd_save_playlist (const char *name); static void ario_mpd_delete_playlist (const char *name); static void ario_mpd_launch_timeout (void); static GSList * ario_mpd_get_outputs (void); static void ario_mpd_enable_output (int id, gboolean enabled); static ArioServerStats * ario_mpd_get_stats (void); static GList * ario_mpd_get_songs_info (GSList *paths); static ArioServerFileList * ario_mpd_list_files (const char *path, gboolean recursive); // Return TRUE on error static gboolean ario_mpd_command_preinvoke (void); static void ario_mpd_command_postinvoke (void); static void ario_mpd_idle_start (void); static void ario_mpd_server_state_changed_cb (ArioServer *server, gpointer data); /* Private attributes */ struct ArioMpdPrivate { struct mpd_status *status; struct mpd_connection *connection; ArioServerStats *stats; guint timeout_id; gboolean support_empty_tags; gboolean support_idle; GSList * supported_tags; gboolean is_updating; int elapsed; int reconnect_time; int idle; int source_id; gboolean supported[ARIO_TAG_COUNT]; }; #define ARIO_MPD_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_ARIO_MPD, ArioMpdPrivate)) G_DEFINE_TYPE (ArioMpd, ario_mpd, TYPE_ARIO_SERVER_INTERFACE) static ArioMpd *instance = NULL; static ArioServer *server_instance = NULL; static void ario_mpd_class_init (ArioMpdClass *klass) { ARIO_LOG_FUNCTION_START; GObjectClass *object_class = G_OBJECT_CLASS (klass); ArioServerInterfaceClass *server_class = ARIO_SERVER_INTERFACE_CLASS (klass); /* GObject virtual methods */ object_class->finalize = ario_mpd_finalize; /* ArioServerInterface virtual methods */ server_class->connect = ario_mpd_connect; server_class->disconnect = ario_mpd_disconnect; server_class->is_connected = ario_mpd_is_connected; server_class->update_status = ario_mpd_update_status; server_class->update_db = ario_mpd_update_db; server_class->list_tags = ario_mpd_list_tags; server_class->get_albums = ario_mpd_get_albums; server_class->get_songs = ario_mpd_get_songs; server_class->get_songs_from_playlist = ario_mpd_get_songs_from_playlist; server_class->get_playlists = ario_mpd_get_playlists; server_class->get_playlist_changes = ario_mpd_get_playlist_changes; server_class->get_current_song_on_server = ario_mpd_get_current_song_on_server; server_class->get_current_playlist_total_time = ario_mpd_get_current_playlist_total_time; server_class->get_last_update = ario_mpd_get_last_update; server_class->do_next = ario_mpd_do_next; server_class->do_prev = ario_mpd_do_prev; server_class->do_play = ario_mpd_do_play; server_class->do_play_pos = ario_mpd_do_play_pos; server_class->do_pause = ario_mpd_do_pause; server_class->do_stop = ario_mpd_do_stop; server_class->set_current_elapsed = ario_mpd_set_current_elapsed; server_class->set_current_volume = ario_mpd_set_current_volume; server_class->set_current_consume = ario_mpd_set_current_consume; server_class->set_current_random = ario_mpd_set_current_random; server_class->set_current_repeat = ario_mpd_set_current_repeat; server_class->set_crossfadetime = ario_mpd_set_crossfadetime; server_class->clear = ario_mpd_clear; server_class->shuffle = ario_mpd_shuffle; server_class->queue_commit = ario_mpd_queue_commit; server_class->insert_at = ario_mpd_insert_at; server_class->save_playlist = ario_mpd_save_playlist; server_class->delete_playlist = ario_mpd_delete_playlist; server_class->get_outputs = ario_mpd_get_outputs; server_class->enable_output = ario_mpd_enable_output; server_class->get_stats = ario_mpd_get_stats; server_class->get_songs_info = ario_mpd_get_songs_info; server_class->list_files = ario_mpd_list_files; /* Private attributes */ g_type_class_add_private (klass, sizeof (ArioMpdPrivate)); } static void ario_mpd_init (ArioMpd *mpd) { ARIO_LOG_FUNCTION_START; mpd->priv = ARIO_MPD_GET_PRIVATE (mpd); mpd->priv->timeout_id = 0; } static void ario_mpd_finalize (GObject *object) { ARIO_LOG_FUNCTION_START; ArioMpd *mpd; g_return_if_fail (object != NULL); g_return_if_fail (IS_ARIO_MPD (object)); mpd = ARIO_MPD (object); g_return_if_fail (mpd->priv != NULL); /* Close connection to MPD */ if (mpd->priv->connection) mpd_connection_free (mpd->priv->connection); /* Free a few data */ if (mpd->priv->status) mpd_status_free (mpd->priv->status); if (mpd->priv->stats) g_free (mpd->priv->stats); /* Stop retrieving data from MPD */ if (mpd->priv->timeout_id) g_source_remove (mpd->priv->timeout_id); /* Free list of supported tags */ g_slist_foreach (mpd->priv->supported_tags, (GFunc) g_free, NULL); g_slist_free (mpd->priv->supported_tags); mpd->priv->supported_tags = NULL; instance = NULL; G_OBJECT_CLASS (ario_mpd_parent_class)->finalize (object); } ArioMpd * ario_mpd_get_instance (ArioServer *server) { ARIO_LOG_FUNCTION_START; /* Create instance if needed */ if (!instance) { instance = g_object_new (TYPE_ARIO_MPD, NULL); g_return_val_if_fail (instance->priv != NULL, NULL); server_instance = server; } return instance; } static void ario_mpd_check_idle (ArioMpd *mpd) { ARIO_LOG_FUNCTION_START; mpd->priv->support_idle = FALSE; #ifdef ENABLE_MPDIDLE struct mpd_pair * pair; /* Get list of supported commands */ mpd_send_allowed_commands (mpd->priv->connection); while ((pair = mpd_recv_pair_named (mpd->priv->connection, "command"))) { /* Detect if idle command is supported */ if (!strcmp (pair->value, "idle")) mpd->priv->support_idle = TRUE; mpd_return_pair (mpd->priv->connection, pair); } #endif } static void ario_mpd_check_tags (ArioMpd *mpd) { ARIO_LOG_FUNCTION_START; struct mpd_pair * pair; int i; /* Free list of supported tags */ g_slist_foreach (mpd->priv->supported_tags, (GFunc) g_free, NULL); g_slist_free (mpd->priv->supported_tags); mpd->priv->supported_tags = NULL; for (i = 0; i < ARIO_TAG_COUNT; ++i) { mpd->priv->supported[i] = FALSE; } /* Get list of supported tags */ mpd_send_list_tag_types (mpd->priv->connection); while ((pair = mpd_recv_tag_type_pair (mpd->priv->connection))) { /* Add them to the list */ mpd->priv->supported_tags = g_slist_append (mpd->priv->supported_tags, g_strdup (pair->value)); mpd_return_pair (mpd->priv->connection, pair); } } static void ario_mpd_launch_timeout (void) { ARIO_LOG_FUNCTION_START; instance->priv->timeout_id = g_timeout_add (NORMAL_TIMEOUT, (GSourceFunc) ario_mpd_update_status, NULL); } static gboolean ario_mpd_update_elapsed (gpointer data) { ARIO_LOG_FUNCTION_START; /* If in idle mode: update elapsed time every seconds when MPD is playing */ ++instance->priv->elapsed; g_object_set (G_OBJECT (instance), "elapsed", instance->priv->elapsed, NULL); ario_server_interface_emit (ARIO_SERVER_INTERFACE (instance), server_instance); return TRUE; } static gboolean ario_mpd_emit_storedplaylist (gpointer not_used) { g_signal_emit_by_name (G_OBJECT (server_instance), "storedplaylists_changed"); /* * We're being hooked into the main loop using g_idle_add and * want to be called just once */ return FALSE; } static void ario_mpd_idle_read (void) { ARIO_LOG_FUNCTION_START; enum mpd_idle flags = mpd_recv_idle (instance->priv->connection, FALSE); ario_mpd_check_errors (); /* Update MPD status */ /* TODO: Be more selective depending on flags */ if (flags & MPD_IDLE_DATABASE || flags & MPD_IDLE_QUEUE || flags & MPD_IDLE_PLAYER || flags & MPD_IDLE_MIXER || flags & MPD_IDLE_OPTIONS) g_idle_add ((GSourceFunc) ario_mpd_update_status, NULL); /* Stored playlists changed, update list */ if (flags & MPD_IDLE_STORED_PLAYLIST) g_idle_add ((GSourceFunc) ario_mpd_emit_storedplaylist, NULL); } static gboolean ario_mpd_idle_read_cb (GIOChannel *iochan, GIOCondition cond, gpointer data) { ARIO_LOG_FUNCTION_START; if (!instance->priv->idle) { instance->priv->source_id = 0; return FALSE; } if (cond & G_IO_IN) { instance->priv->idle = FALSE; if (instance->priv->source_id) { g_source_remove (instance->priv->source_id); instance->priv->source_id = 0; } ario_mpd_idle_read (); } return TRUE; } static void ario_mpd_idle_start (void) { ARIO_LOG_FUNCTION_START; static GIOChannel* iochan = NULL; if (!instance->priv->connection) return; if (!iochan) { #ifdef WIN32 iochan = g_io_channel_win32_new_socket (mpd_connection_get_fd (instance->priv->connection)); #else iochan = g_io_channel_unix_new (mpd_connection_get_fd (instance->priv->connection)); #endif } if (!instance->priv->idle) { instance->priv->source_id = g_io_add_watch (iochan, G_IO_IN | G_IO_ERR | G_IO_HUP, ario_mpd_idle_read_cb, NULL); instance->priv->idle = TRUE; mpd_send_idle (instance->priv->connection); } } static void ario_mpd_idle_stop (void) { ARIO_LOG_FUNCTION_START; if (instance->priv->source_id) { g_source_remove (instance->priv->source_id); instance->priv->source_id = 0; } if (instance->priv->idle) { instance->priv->idle = FALSE; mpd_send_noidle (instance->priv->connection); ario_mpd_idle_read (); } } static void ario_mpd_idle_init (void) { } static void ario_mpd_idle_free (void) { ARIO_LOG_FUNCTION_START; ario_mpd_idle_stop (); if (instance->priv->source_id) { g_source_remove (instance->priv->source_id); instance->priv->source_id = 0; } } static gboolean ario_mpd_connect_to (ArioMpd *mpd, gchar *hostname, int port, guint timeout) { ARIO_LOG_FUNCTION_START; gchar *password; struct mpd_connection *connection; /* Connect to MPD */ connection = mpd_connection_new (hostname, port, timeout); if (!connection) return FALSE; /* Check connection errors */ if (mpd_connection_get_error (connection) != MPD_ERROR_SUCCESS) { ARIO_LOG_ERROR("%s", mpd_connection_get_error_message (connection)); mpd_connection_clear_error (connection); mpd_connection_free (connection); return FALSE; } /* Send password if one is set in profile */ password = ario_profiles_get_current (ario_profiles_get ())->password; if (password) { mpd_run_password (connection, password); } mpd->priv->connection = connection; /* Check if idle is supported by MPD server */ ario_mpd_check_idle (mpd); /* Check if idle is supported by MPD server */ ario_mpd_check_tags (mpd); if (instance->priv->support_idle && instance->priv->connection) { /* Initialise Idle mode */ ario_mpd_idle_init (); ario_mpd_idle_start (); g_idle_add ((GSourceFunc) ario_mpd_update_status, NULL); /* Connect signal to launch timeout to update elapsed time */ g_signal_connect_object (ario_server_get_instance (), "state_changed", G_CALLBACK (ario_mpd_server_state_changed_cb), NULL, 0); } else { /* Launch timeout for data retrieve from MPD */ ario_mpd_launch_timeout (); } return TRUE; } static gpointer ario_mpd_connect_thread (ArioServer *server) { ARIO_LOG_FUNCTION_START; gchar *hostname; int port; guint timeout; ArioProfile *profile; profile = ario_profiles_get_current (ario_profiles_get ()); hostname = profile->host; port = profile->port; timeout = profile->timeout; if (hostname == NULL) hostname = "localhost"; if (port == 0) port = 6600; if (!ario_mpd_connect_to (instance, hostname, port, timeout)) { ario_mpd_disconnect (); } instance->priv->support_empty_tags = FALSE; instance->parent.connecting = FALSE; return NULL; } static void ario_mpd_connect (void) { ARIO_LOG_FUNCTION_START; GtkBuilder *builder; GtkWidget *win = NULL; static GtkProgressBar *bar; GThread* thread; GtkWidget *dialog; gboolean is_in_error = (instance->priv->reconnect_time > 0); thread = g_thread_new ("connect", (GThreadFunc) ario_mpd_connect_thread, instance); if (!is_in_error) { builder = gtk_builder_new (); gtk_builder_add_from_file (builder, UI_PATH "connection-dialog.ui", NULL); win = GTK_WIDGET (gtk_builder_get_object (builder, "ario_connection_dialog")); bar = GTK_PROGRESS_BAR (gtk_builder_get_object (builder, "connection_progressbar")); g_object_unref (builder); gtk_widget_show_all (win); while (instance->parent.connecting) { gtk_progress_bar_pulse (bar); while (gtk_events_pending ()) gtk_main_iteration (); g_usleep (200000); } } g_thread_join (thread); if (ario_server_is_connected ()) { instance->priv->reconnect_time = 0; } else if (!is_in_error) { dialog = gtk_message_dialog_new (NULL, GTK_DIALOG_MODAL, GTK_MESSAGE_ERROR, GTK_BUTTONS_OK, _("Impossible to connect to server. Check the connection options.")); if (gtk_dialog_run (GTK_DIALOG (dialog)) != GTK_RESPONSE_NONE) gtk_widget_destroy (dialog); g_signal_emit_by_name (G_OBJECT (server_instance), "state_changed"); } if (win) { gtk_widget_hide (win); gtk_widget_destroy (win); } } static void ario_mpd_disconnect (void) { ARIO_LOG_FUNCTION_START; /* check if there is a connection */ if (!instance->priv->connection) return; if (instance->priv->support_idle) ario_mpd_idle_free (); /* * check if there is a connection again * * if the connection has been cut, a call to ario_mpd_idle_free * might time out and cause ario_mpd_disconnect to be called a * second time and free the connection and set the pointer * to NULL, causing the first invocation of this function * to segfault. Since the second invocation cleaned everything * up, we can just return. */ if (!instance->priv->connection) return; mpd_connection_free (instance->priv->connection); instance->priv->connection = NULL; if (instance->priv->timeout_id) { g_source_remove (instance->priv->timeout_id); instance->priv->timeout_id = 0; } ario_mpd_update_status (); } static void ario_mpd_update_db (const gchar *path) { ARIO_LOG_FUNCTION_START; /* check if there is a connection */ if (ario_mpd_command_preinvoke ()) return; mpd_run_update (instance->priv->connection, NULL); ario_mpd_command_postinvoke (); } static gboolean ario_mpd_try_reconnect (gpointer data) { ARIO_LOG_FUNCTION_START; ario_server_connect (); if (!instance->priv->connection) { /* Try to reconnect */ if (RECONNECT_INIT_TIMEOUT * instance->priv->reconnect_time * RECONNECT_FACTOR < RECONNECT_MAXIMUM_TIMEOUT) ++instance->priv->reconnect_time; g_timeout_add (RECONNECT_INIT_TIMEOUT * instance->priv->reconnect_time * RECONNECT_FACTOR, ario_mpd_try_reconnect, NULL); } return FALSE; } static gboolean ario_mpd_check_errors (void) { // desactivated to make the logs more readable //ARIO_LOG_FUNCTION_START; if (!instance->priv->connection) return FALSE; if (mpd_connection_get_error (instance->priv->connection) != MPD_ERROR_SUCCESS) { ARIO_LOG_ERROR("%s", mpd_connection_get_error_message (instance->priv->connection)); mpd_connection_clear_error (instance->priv->connection); ario_server_disconnect (); /* Try to reconnect */ instance->priv->reconnect_time = 1; g_timeout_add (RECONNECT_INIT_TIMEOUT * instance->priv->reconnect_time * RECONNECT_FACTOR, ario_mpd_try_reconnect, NULL); return TRUE; } return FALSE; } static gboolean ario_mpd_is_connected (void) { // desactivated to make the logs more readable //ARIO_LOG_FUNCTION_START; return (instance->priv->connection != NULL); } static ArioServerTag ario_mpd_filter_tag (const ArioServerTag tag) { GSList *tmp; if (instance->priv->supported[tag]) { return tag; } else { const gchar *tag_name = mpd_tag_name (tag); for (tmp = instance->priv->supported_tags; tmp; tmp = g_slist_next (tmp)) { if (!ario_util_strcmp (tag_name, tmp->data)) { instance->priv->supported[tag] = TRUE; return tag; } } } return ARIO_TAG_ARTIST; } static GSList * ario_mpd_list_tags (const ArioServerTag server_tag, const ArioServerCriteria *criteria) { ARIO_LOG_FUNCTION_START; const GSList *tmp; GSList *values = NULL; ArioServerAtomicCriteria *atomic_criteria; struct mpd_pair *pair; ArioServerTag tag = ario_mpd_filter_tag(server_tag); if (ario_mpd_command_preinvoke ()) return NULL; mpd_search_db_tags (instance->priv->connection, tag); for (tmp = criteria; tmp; tmp = g_slist_next (tmp)) { atomic_criteria = tmp->data; if (instance->priv->support_empty_tags && !g_utf8_collate (atomic_criteria->value, ARIO_SERVER_UNKNOWN)) mpd_search_add_tag_constraint (instance->priv->connection, MPD_OPERATOR_DEFAULT, ario_mpd_filter_tag (atomic_criteria->tag), ""); else mpd_search_add_tag_constraint (instance->priv->connection, MPD_OPERATOR_DEFAULT, ario_mpd_filter_tag (atomic_criteria->tag), atomic_criteria->value); } mpd_search_commit (instance->priv->connection); while ((pair = mpd_recv_pair_tag (instance->priv->connection, tag))) { if (*pair->value) values = g_slist_append (values, g_strdup(pair->value)); else { values = g_slist_append (values, g_strdup (ARIO_SERVER_UNKNOWN)); instance->priv->support_empty_tags = TRUE; } mpd_return_pair (instance->priv->connection, pair); } ario_mpd_command_postinvoke (); return values; } static gboolean ario_mpd_album_is_present (GHashTable *albums, const char *album) { ARIO_LOG_FUNCTION_START; return g_hash_table_lookup (albums, album) != NULL; } static GSList * ario_mpd_get_albums (const ArioServerCriteria *criteria) { ARIO_LOG_FUNCTION_START; GHashTable *albums; const GSList *tmp; GList *values; GSList *result = NULL; struct mpd_song *song; ArioServerAlbum *mpd_album; ArioServerAtomicCriteria *atomic_criteria; if (ario_mpd_command_preinvoke ()) return NULL; albums = g_hash_table_new (g_str_hash, g_str_equal); if (!criteria) { mpd_send_list_all_meta (instance->priv->connection, "/"); } else { mpd_search_db_songs (instance->priv->connection, TRUE); for (tmp = criteria; tmp; tmp = g_slist_next (tmp)) { atomic_criteria = tmp->data; if (instance->priv->support_empty_tags && !g_utf8_collate (atomic_criteria->value, ARIO_SERVER_UNKNOWN)) mpd_search_add_tag_constraint (instance->priv->connection, MPD_OPERATOR_DEFAULT, ario_mpd_filter_tag (atomic_criteria->tag), ""); else mpd_search_add_tag_constraint (instance->priv->connection, MPD_OPERATOR_DEFAULT, ario_mpd_filter_tag (atomic_criteria->tag), atomic_criteria->value); } mpd_search_commit (instance->priv->connection); } while ((song = mpd_recv_song (instance->priv->connection))) { const char *artist; const char *album; const char *file; const char *date; artist = mpd_song_get_tag (song, MPD_TAG_ARTIST, 0); album = mpd_song_get_tag (song, MPD_TAG_ALBUM, 0); file = mpd_song_get_uri (song); date = mpd_song_get_tag (song, MPD_TAG_DATE, 0); if (!album) { if (ario_mpd_album_is_present (albums, ARIO_SERVER_UNKNOWN)) { mpd_song_free (song); continue; } } else { if (ario_mpd_album_is_present (albums, album)) { mpd_song_free (song); continue; } } mpd_album = (ArioServerAlbum *) g_malloc (sizeof (ArioServerAlbum)); if (album) mpd_album->album = g_strdup (album); else mpd_album->album = g_strdup (ARIO_SERVER_UNKNOWN); if (artist) mpd_album->artist = g_strdup (artist); else mpd_album->artist = g_strdup (ARIO_SERVER_UNKNOWN); if (file) mpd_album->path = g_path_get_dirname (file); else mpd_album->path = NULL; if (date) mpd_album->date = g_strdup (date); else mpd_album->date = NULL; g_hash_table_insert (albums, mpd_album->album, (gpointer) mpd_album); mpd_song_free (song); } mpd_response_finish (instance->priv->connection); ario_mpd_command_postinvoke (); for (values = g_hash_table_get_values (albums); values; values = g_list_next (values)) result = g_slist_append (result, values->data); /* * we don't need to free neither the keys nor the values since * they are returned within the resulting list */ g_hash_table_destroy (albums); return result; } static ArioServerSong * ario_mpd_build_ario_song (const struct mpd_song *song) { ARIO_LOG_FUNCTION_START; ArioServerSong * ario_song; ario_song = (ArioServerSong *) g_malloc0 (sizeof (ArioServerSong)); ario_song->file = g_strdup (mpd_song_get_uri (song)); ario_song->artist = g_strdup (mpd_song_get_tag (song, MPD_TAG_ARTIST, 0)); ario_song->title = g_strdup (mpd_song_get_tag (song, MPD_TAG_TITLE, 0)); ario_song->album = g_strdup (mpd_song_get_tag (song, MPD_TAG_ALBUM, 0)); ario_song->album_artist = g_strdup (mpd_song_get_tag (song, MPD_TAG_ALBUM_ARTIST, 0)); ario_song->track = g_strdup (mpd_song_get_tag (song, MPD_TAG_TRACK, 0)); ario_song->name = g_strdup (mpd_song_get_tag (song, MPD_TAG_NAME, 0)); ario_song->date = g_strdup (mpd_song_get_tag (song, MPD_TAG_DATE, 0)); ario_song->genre = g_strdup (mpd_song_get_tag (song, MPD_TAG_GENRE, 0)); ario_song->composer = g_strdup (mpd_song_get_tag (song, MPD_TAG_COMPOSER, 0)); ario_song->performer = g_strdup (mpd_song_get_tag (song, MPD_TAG_PERFORMER, 0)); ario_song->disc = g_strdup (mpd_song_get_tag (song, MPD_TAG_DISC, 0)); ario_song->comment = g_strdup (mpd_song_get_tag (song, MPD_TAG_COMMENT, 0)); ario_song->time = mpd_song_get_duration (song); ario_song->pos = mpd_song_get_pos (song); ario_song->id = mpd_song_get_id (song); return ario_song; } static ArioServerStats * ario_mpd_build_ario_stats (struct mpd_stats *stats) { ARIO_LOG_FUNCTION_START; ArioServerStats * ario_stats; ario_stats = (ArioServerStats *) g_malloc0 (sizeof (ArioServerStats)); ario_stats->numberOfArtists = mpd_stats_get_number_of_artists (stats); ario_stats->numberOfAlbums = mpd_stats_get_number_of_albums (stats); ario_stats->numberOfSongs = mpd_stats_get_number_of_songs (stats); ario_stats->uptime = mpd_stats_get_uptime (stats); ario_stats->dbUpdateTime = mpd_stats_get_db_update_time (stats); ario_stats->playTime = mpd_stats_get_play_time (stats); ario_stats->dbPlayTime = mpd_stats_get_db_play_time (stats); return ario_stats; } static ArioServerOutput * ario_mpd_build_ario_output (struct mpd_output *output) { ARIO_LOG_FUNCTION_START; ArioServerOutput * ario_output; ario_output = (ArioServerOutput *) g_malloc0 (sizeof (ArioServerOutput)); ario_output->id = mpd_output_get_id (output); ario_output->name = g_strdup (mpd_output_get_name (output)); ario_output->enabled = mpd_output_get_enabled (output); return ario_output; } static GSList * ario_mpd_get_songs (const ArioServerCriteria *criteria, const gboolean exact) { ARIO_LOG_FUNCTION_START; GSList *songs = NULL; struct mpd_song *song; const GSList *tmp; gboolean is_album_unknown = FALSE; ArioServerAtomicCriteria *atomic_criteria; if (ario_mpd_command_preinvoke ()) return NULL; for (tmp = criteria; tmp; tmp = g_slist_next (tmp)) { atomic_criteria = tmp->data; if (atomic_criteria->tag == ARIO_TAG_ALBUM && !g_utf8_collate (atomic_criteria->value, ARIO_SERVER_UNKNOWN)) is_album_unknown = TRUE; } mpd_search_db_songs (instance->priv->connection, exact); for (tmp = criteria; tmp; tmp = g_slist_next (tmp)) { atomic_criteria = tmp->data; if (atomic_criteria->tag == ARIO_TAG_ANY) mpd_search_add_any_tag_constraint (instance->priv->connection, MPD_OPERATOR_DEFAULT, atomic_criteria->value); else if (instance->priv->support_empty_tags && !g_utf8_collate (atomic_criteria->value, ARIO_SERVER_UNKNOWN)) mpd_search_add_tag_constraint (instance->priv->connection, MPD_OPERATOR_DEFAULT, ario_mpd_filter_tag (atomic_criteria->tag), ""); else if (atomic_criteria->tag != ARIO_TAG_ALBUM || g_utf8_collate (atomic_criteria->value, ARIO_SERVER_UNKNOWN)) mpd_search_add_tag_constraint (instance->priv->connection, MPD_OPERATOR_DEFAULT, ario_mpd_filter_tag (atomic_criteria->tag), atomic_criteria->value); } mpd_search_commit (instance->priv->connection); while ((song = mpd_recv_song (instance->priv->connection))) { if (instance->priv->support_empty_tags || !is_album_unknown || !mpd_song_get_tag (song, MPD_TAG_ALBUM, 0)) { songs = g_slist_append (songs, ario_mpd_build_ario_song (song)); } mpd_song_free (song); } mpd_response_finish (instance->priv->connection); ario_mpd_command_postinvoke (); return songs; } static GSList * ario_mpd_get_songs_from_playlist (char *playlist) { ARIO_LOG_FUNCTION_START; GSList *songs = NULL; struct mpd_song *song; if (ario_mpd_command_preinvoke ()) return NULL; mpd_send_list_playlist_meta (instance->priv->connection, playlist); while ((song = mpd_recv_song (instance->priv->connection))) { songs = g_slist_append (songs, ario_mpd_build_ario_song (song)); mpd_song_free (song); } mpd_response_finish (instance->priv->connection); ario_mpd_command_postinvoke (); return songs; } static GSList * ario_mpd_get_playlists (void) { ARIO_LOG_FUNCTION_START; GSList *playlists = NULL; struct mpd_entity *ent; if (ario_mpd_command_preinvoke ()) return NULL; mpd_send_list_meta (instance->priv->connection, "/"); while ((ent = mpd_recv_entity (instance->priv->connection))) { if (mpd_entity_get_type (ent) == MPD_ENTITY_TYPE_PLAYLIST) { const struct mpd_playlist * playlist = mpd_entity_get_playlist (ent); playlists = g_slist_append (playlists, g_strdup (mpd_playlist_get_path (playlist))); } mpd_entity_free (ent); } mpd_response_finish (instance->priv->connection); ario_mpd_command_postinvoke (); return playlists; } static GSList * ario_mpd_get_playlist_changes (gint64 playlist_id) { ARIO_LOG_FUNCTION_START; GSList *songs = NULL; struct mpd_song *song; if (ario_mpd_command_preinvoke ()) return NULL; mpd_send_queue_changes_meta (instance->priv->connection, (unsigned) playlist_id); while ((song = mpd_recv_song (instance->priv->connection))) { songs = g_slist_append (songs, ario_mpd_build_ario_song (song)); mpd_song_free (song); } mpd_response_finish (instance->priv->connection); ario_mpd_command_postinvoke (); return songs; } static gboolean ario_mpd_update_status (void) { // desactivated to make the logs more readable //ARIO_LOG_FUNCTION_START; if (instance->priv->is_updating) return !instance->priv->support_idle; instance->priv->is_updating = TRUE; /* check if there is a connection */ if (ario_mpd_command_preinvoke ()) { ario_server_interface_set_default (ARIO_SERVER_INTERFACE (instance)); } else { if (instance->priv->status) mpd_status_free (instance->priv->status); instance->priv->status = mpd_run_status (instance->priv->connection); ario_mpd_command_postinvoke (); if (ario_mpd_check_errors ()) { ario_server_interface_set_default (ARIO_SERVER_INTERFACE (instance)); } else if (instance->priv->status) { if (instance->parent.song_id != mpd_status_get_song_id (instance->priv->status) || instance->parent.playlist_id != (gint64) mpd_status_get_queue_version (instance->priv->status)) g_object_set (G_OBJECT (instance), "song_id", mpd_status_get_song_id (instance->priv->status), NULL); if (instance->parent.state != mpd_status_get_state (instance->priv->status)) g_object_set (G_OBJECT (instance), "state", mpd_status_get_state (instance->priv->status), NULL); if (instance->parent.volume != mpd_status_get_volume (instance->priv->status)) g_object_set (G_OBJECT (instance), "volume", mpd_status_get_volume (instance->priv->status), NULL); if (instance->parent.elapsed != mpd_status_get_elapsed_time (instance->priv->status)) { g_object_set (G_OBJECT (instance), "elapsed", mpd_status_get_elapsed_time (instance->priv->status), NULL); instance->priv->elapsed = mpd_status_get_elapsed_time (instance->priv->status); } if (instance->parent.playlist_id != (gint64) mpd_status_get_queue_version (instance->priv->status)) { g_object_set (G_OBJECT (instance), "playlist_id", (gint64) mpd_status_get_queue_version (instance->priv->status), NULL); instance->parent.playlist_length = mpd_status_get_queue_length (instance->priv->status); } if (instance->parent.consume != mpd_status_get_consume (instance->priv->status)) g_object_set (G_OBJECT (instance), "consume", mpd_status_get_consume (instance->priv->status), NULL); if (instance->parent.random != mpd_status_get_random (instance->priv->status)) g_object_set (G_OBJECT (instance), "random", mpd_status_get_random (instance->priv->status), NULL); if (instance->parent.repeat != mpd_status_get_repeat (instance->priv->status)) g_object_set (G_OBJECT (instance), "repeat", mpd_status_get_repeat (instance->priv->status), NULL); if (instance->parent.updatingdb != mpd_status_get_update_id (instance->priv->status)) g_object_set (G_OBJECT (instance), "updatingdb", mpd_status_get_update_id (instance->priv->status), NULL); instance->parent.crossfade = mpd_status_get_crossfade (instance->priv->status); } } ario_server_interface_emit (ARIO_SERVER_INTERFACE (instance), server_instance); instance->priv->is_updating = FALSE; return !instance->priv->support_idle; } static ArioServerSong * ario_mpd_get_current_song_on_server (void) { ARIO_LOG_FUNCTION_START; ArioServerSong *ario_song = NULL; struct mpd_song *song; if (ario_mpd_command_preinvoke ()) return NULL; mpd_send_current_song (instance->priv->connection); song = mpd_recv_song (instance->priv->connection); if (song) { ario_song = ario_mpd_build_ario_song (song); mpd_song_free (song); } mpd_response_finish (instance->priv->connection); ario_mpd_command_postinvoke (); return ario_song; } static int ario_mpd_get_current_playlist_total_time (void) { ARIO_LOG_FUNCTION_START; if (!instance->priv->connection) return 0; /* Compute it from playlist widget (quite coslty but not often called) */ return ario_playlist_get_total_time (); } static unsigned long ario_mpd_get_last_update (void) { ARIO_LOG_FUNCTION_START; ario_mpd_get_stats (); if (instance->priv->stats) return instance->priv->stats->dbUpdateTime; else return 0; } static void ario_mpd_do_next (void) { ARIO_LOG_FUNCTION_START; if (ario_mpd_command_preinvoke ()) return; mpd_run_next (instance->priv->connection); ario_mpd_command_postinvoke (); } static void ario_mpd_do_prev (void) { ARIO_LOG_FUNCTION_START; if (ario_mpd_command_preinvoke ()) return; mpd_run_previous (instance->priv->connection); ario_mpd_command_postinvoke (); } static void ario_mpd_do_play (void) { ARIO_LOG_FUNCTION_START; if (ario_mpd_command_preinvoke ()) return; mpd_run_play (instance->priv->connection); ario_mpd_command_postinvoke (); } static void ario_mpd_do_play_pos (gint id) { ARIO_LOG_FUNCTION_START; if (ario_mpd_command_preinvoke ()) return; /* send mpd the play command */ mpd_run_play_pos (instance->priv->connection, id); ario_mpd_command_postinvoke (); } static void ario_mpd_do_pause (void) { ARIO_LOG_FUNCTION_START; if (ario_mpd_command_preinvoke ()) return; mpd_run_pause (instance->priv->connection, TRUE); ario_mpd_command_postinvoke (); } static void ario_mpd_do_stop (void) { ARIO_LOG_FUNCTION_START; if (ario_mpd_command_preinvoke ()) return; mpd_run_stop (instance->priv->connection); ario_mpd_command_postinvoke (); } static void ario_mpd_set_current_elapsed (const gint elapsed) { ARIO_LOG_FUNCTION_START; if (ario_mpd_command_preinvoke ()) return; mpd_run_seek_id (instance->priv->connection, mpd_status_get_song_id (instance->priv->status), elapsed); ario_mpd_command_postinvoke (); } static void ario_mpd_set_current_volume (const gint volume) { ARIO_LOG_FUNCTION_START; if (ario_mpd_command_preinvoke ()) return; mpd_run_set_volume (instance->priv->connection, volume); ario_mpd_command_postinvoke (); ario_mpd_update_status (); } static void ario_mpd_set_current_consume (const gboolean consume) { ARIO_LOG_FUNCTION_START; if (ario_mpd_command_preinvoke ()) return; mpd_run_consume (instance->priv->connection, consume); ario_mpd_command_postinvoke (); } static void ario_mpd_set_current_random (const gboolean random) { ARIO_LOG_FUNCTION_START; if (ario_mpd_command_preinvoke ()) return; mpd_run_random (instance->priv->connection, random); ario_mpd_command_postinvoke (); } static void ario_mpd_set_current_repeat (const gboolean repeat) { ARIO_LOG_FUNCTION_START; if (ario_mpd_command_preinvoke ()) return; mpd_run_repeat (instance->priv->connection, repeat); ario_mpd_command_postinvoke (); } static void ario_mpd_set_crossfadetime (const int crossfadetime) { ARIO_LOG_FUNCTION_START; if (ario_mpd_command_preinvoke ()) return; mpd_run_crossfade (instance->priv->connection, crossfadetime); ario_mpd_command_postinvoke (); } static void ario_mpd_clear (void) { ARIO_LOG_FUNCTION_START; if (ario_mpd_command_preinvoke ()) return; mpd_run_clear (instance->priv->connection); ario_mpd_command_postinvoke (); ario_mpd_update_status (); } static void ario_mpd_shuffle (void) { ARIO_LOG_FUNCTION_START; if (ario_mpd_command_preinvoke ()) return; mpd_run_shuffle (instance->priv->connection); ario_mpd_command_postinvoke (); ario_mpd_update_status (); } static void ario_mpd_queue_commit (void) { ARIO_LOG_FUNCTION_START; GSList *temp; ArioServerQueueAction *queue_action; if (ario_mpd_command_preinvoke ()) return; mpd_command_list_begin (instance->priv->connection, FALSE); for (temp = instance->parent.queue; temp; temp = g_slist_next (temp)) { queue_action = (ArioServerQueueAction *) temp->data; if (queue_action->type == ARIO_SERVER_ACTION_ADD) { if (queue_action->path) { mpd_send_add (instance->priv->connection, queue_action->path); } } else if (queue_action->type == ARIO_SERVER_ACTION_DELETE_ID) { if (queue_action->id >= 0) { mpd_send_delete_id (instance->priv->connection, queue_action->id); } } else if (queue_action->type == ARIO_SERVER_ACTION_DELETE_POS) { if (queue_action->pos >= 0) { mpd_send_delete (instance->priv->connection, queue_action->pos); } } else if (queue_action->type == ARIO_SERVER_ACTION_MOVE) { if (queue_action->id >= 0) { mpd_send_move (instance->priv->connection, queue_action->old_pos, queue_action->new_pos); } } else if (queue_action->type == ARIO_SERVER_ACTION_MOVEID) { if (queue_action->id >= 0) { mpd_send_move_id (instance->priv->connection, queue_action->old_pos, queue_action->new_pos); } } } mpd_command_list_end (instance->priv->connection); mpd_response_finish (instance->priv->connection); g_slist_foreach (instance->parent.queue, (GFunc) g_free, NULL); g_slist_free (instance->parent.queue); instance->parent.queue = NULL; ario_mpd_command_postinvoke (); ario_mpd_update_status (); } static void ario_mpd_insert_at (const GSList *songs, const gint pos) { ARIO_LOG_FUNCTION_START; const GSList *tmp; guint offset = 0; if (ario_mpd_command_preinvoke ()) return; mpd_command_list_begin (instance->priv->connection, FALSE); /* For each filename :*/ for (tmp = songs; tmp; tmp = g_slist_next (tmp)) { /* Add it in the playlist*/ mpd_send_add_id_to (instance->priv->connection, tmp->data, pos + offset + 1); ++offset; } mpd_command_list_end (instance->priv->connection); mpd_response_finish (instance->priv->connection); ario_mpd_command_postinvoke (); } static int ario_mpd_save_playlist (const char *name) { ARIO_LOG_FUNCTION_START; int ret; if (ario_mpd_command_preinvoke ()) return 1; ret = !mpd_run_save (instance->priv->connection, name); if (mpd_connection_get_error (instance->priv->connection) != MPD_ERROR_SUCCESS) { ARIO_LOG_ERROR("%s", mpd_connection_get_error_message (instance->priv->connection)); mpd_connection_clear_error (instance->priv->connection); } ario_mpd_command_postinvoke (); return ret; } static void ario_mpd_delete_playlist (const char *name) { ARIO_LOG_FUNCTION_START; if (ario_mpd_command_preinvoke ()) return; mpd_run_rm (instance->priv->connection, name); ario_mpd_command_postinvoke (); } static GSList * ario_mpd_get_outputs (void) { ARIO_LOG_FUNCTION_START; GSList *outputs = NULL; struct mpd_output *output_ent; if (ario_mpd_command_preinvoke ()) return NULL; mpd_send_outputs (instance->priv->connection); while ((output_ent = mpd_recv_output (instance->priv->connection))) { outputs = g_slist_append (outputs, ario_mpd_build_ario_output (output_ent)); mpd_output_free (output_ent); } mpd_response_finish (instance->priv->connection); ario_mpd_command_postinvoke (); return outputs; } static void ario_mpd_enable_output (int id, gboolean enabled) { ARIO_LOG_FUNCTION_START; if (ario_mpd_command_preinvoke ()) return; if (enabled) { mpd_run_enable_output (instance->priv->connection, id); } else { mpd_run_disable_output (instance->priv->connection, id); } ario_mpd_command_postinvoke (); } static ArioServerStats * ario_mpd_get_stats (void) { ARIO_LOG_FUNCTION_START; struct mpd_stats *stats; if (ario_mpd_command_preinvoke ()) return NULL; stats = mpd_run_stats (instance->priv->connection); if (instance->priv->stats) g_free (instance->priv->stats); instance->priv->stats = ario_mpd_build_ario_stats (stats); mpd_stats_free (stats); ario_mpd_check_errors (); ario_mpd_command_postinvoke (); return instance->priv->stats; } static GList * ario_mpd_get_songs_info (GSList *paths) { ARIO_LOG_FUNCTION_START; const gchar *path = NULL; GSList *temp; GList *songs = NULL; struct mpd_song *song; if (ario_mpd_command_preinvoke ()) return NULL; for (temp = paths; temp; temp = g_slist_next (temp)) { path = temp->data; mpd_send_list_all_meta (instance->priv->connection, path); song = mpd_recv_song (instance->priv->connection); mpd_response_finish (instance->priv->connection); if (!song) continue; songs = g_list_append (songs, ario_mpd_build_ario_song (song)); mpd_song_free (song); ario_mpd_check_errors (); } ario_mpd_command_postinvoke (); return songs; } static ArioServerFileList * ario_mpd_list_files (const char *path, gboolean recursive) { ARIO_LOG_FUNCTION_START; struct mpd_entity *entity; ArioServerFileList *files = (ArioServerFileList *) g_malloc0 (sizeof (ArioServerFileList)); if (ario_mpd_command_preinvoke ()) return files; if (recursive) mpd_send_list_all_meta (instance->priv->connection, path); else mpd_send_list_meta (instance->priv->connection, path); while ((entity = mpd_recv_entity (instance->priv->connection))) { enum mpd_entity_type type = mpd_entity_get_type (entity); if (type == MPD_ENTITY_TYPE_DIRECTORY) { const struct mpd_directory * directory = mpd_entity_get_directory (entity); files->directories = g_slist_append (files->directories, g_strdup (mpd_directory_get_path (directory))); } else if (type == MPD_ENTITY_TYPE_SONG) { const struct mpd_song * song = mpd_entity_get_song (entity); files->songs = g_slist_append (files->songs, ario_mpd_build_ario_song (song)); } mpd_entity_free(entity); } ario_mpd_command_postinvoke (); return files; } static gboolean ario_mpd_command_preinvoke (void) { ARIO_LOG_FUNCTION_START; /* check if there is a connection */ if (!instance->priv->connection) return TRUE; if (instance->priv->support_idle) { ario_mpd_idle_stop (); if (!instance->priv->connection) return TRUE; } return FALSE; } static void ario_mpd_command_postinvoke (void) { ARIO_LOG_FUNCTION_START; if (instance->priv->support_idle && instance->priv->connection) { ario_mpd_idle_start (); } } static void ario_mpd_server_state_changed_cb (ArioServer *server, gpointer data) { ARIO_LOG_FUNCTION_START; if (instance->priv->timeout_id) { g_source_remove (instance->priv->timeout_id); instance->priv->timeout_id = 0; } if (ario_server_get_current_state () == ARIO_STATE_PLAY) { instance->priv->timeout_id = g_timeout_add (ONE_SECOND, (GSourceFunc) ario_mpd_update_elapsed, NULL); } } ario-1.6/src/servers/ario-server.c0000644000175000017500000010374713226723432014135 00000000000000/* * Copyright (C) 2005 Marc Pavot * * 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, 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * */ #include "servers/ario-server.h" #include #include #include #include #include #include #include #include "lib/ario-conf.h" #include "servers/ario-mpd.h" #include "ario-util.h" #ifdef ENABLE_XMMS2 #include "servers/ario-xmms.h" #endif #include "preferences/ario-preferences.h" #include "ario-debug.h" #include "ario-profiles.h" #define NORMAL_TIMEOUT 500 #define LAZY_TIMEOUT 12000 static guint ario_server_signals[SERVER_LAST_SIGNAL] = { 0 }; char * ArioServerItemNames[ARIO_TAG_COUNT] = { N_("Artist"), // ARIO_TAG_ARTIST N_("Album"), // ARIO_TAG_ALBUM N_("Album Artist"), // ARIO_TAG_ALBUM_ARTIST N_("Title"), // ARIO_TAG_TITLE N_("Track"), // ARIO_TAG_TRACK NULL, // ARIO_TAG_NAME N_("Genre"), // ARIO_TAG_GENRE N_("Date"), // ARIO_TAG_DATE N_("Composer"), // ARIO_TAG_COMPOSER N_("Performer"), // ARIO_TAG_PERFORMER NULL, // ARIO_TAG_COMMENT NULL, // ARIO_TAG_DISC N_("Filename"), // ARIO_TAG_FILENAME N_("Any") // ARIO_TAG_ANY }; G_DEFINE_TYPE (ArioServer, ario_server, G_TYPE_OBJECT) static ArioServer *instance = NULL; static ArioServerInterface *interface = NULL; static void ario_server_class_init (ArioServerClass *klass) { ARIO_LOG_FUNCTION_START; GObjectClass *object_class = G_OBJECT_CLASS (klass); /* Object Signals */ ario_server_signals[SERVER_SONG_CHANGED] = g_signal_new ("song_changed", G_OBJECT_CLASS_TYPE (object_class), G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (ArioServerClass, song_changed), NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0); ario_server_signals[SERVER_ALBUM_CHANGED] = g_signal_new ("album_changed", G_OBJECT_CLASS_TYPE (object_class), G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (ArioServerClass, album_changed), NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0); ario_server_signals[SERVER_CONNECTIVITY_CHANGED] = g_signal_new ("connectivity_changed", G_OBJECT_CLASS_TYPE (object_class), G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (ArioServerClass, connectivity_changed), NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0); ario_server_signals[SERVER_STATE_CHANGED] = g_signal_new ("state_changed", G_OBJECT_CLASS_TYPE (object_class), G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (ArioServerClass, state_changed), NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0); ario_server_signals[SERVER_VOLUME_CHANGED] = g_signal_new ("volume_changed", G_OBJECT_CLASS_TYPE (object_class), G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (ArioServerClass, volume_changed), NULL, NULL, g_cclosure_marshal_VOID__INT, G_TYPE_NONE, 1, G_TYPE_INT); ario_server_signals[SERVER_ELAPSED_CHANGED] = g_signal_new ("elapsed_changed", G_OBJECT_CLASS_TYPE (object_class), G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (ArioServerClass, elapsed_changed), NULL, NULL, g_cclosure_marshal_VOID__INT, G_TYPE_NONE, 1, G_TYPE_INT); ario_server_signals[SERVER_PLAYLIST_CHANGED] = g_signal_new ("playlist_changed", G_OBJECT_CLASS_TYPE (object_class), G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (ArioServerClass, playlist_changed), NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0); ario_server_signals[SERVER_CONSUME_CHANGED] = g_signal_new ("consume_changed", G_OBJECT_CLASS_TYPE (object_class), G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (ArioServerClass, consume_changed), NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0); ario_server_signals[SERVER_RANDOM_CHANGED] = g_signal_new ("random_changed", G_OBJECT_CLASS_TYPE (object_class), G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (ArioServerClass, random_changed), NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0); ario_server_signals[SERVER_REPEAT_CHANGED] = g_signal_new ("repeat_changed", G_OBJECT_CLASS_TYPE (object_class), G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (ArioServerClass, repeat_changed), NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0); ario_server_signals[SERVER_UPDATINGDB_CHANGED] = g_signal_new ("updatingdb_changed", G_OBJECT_CLASS_TYPE (object_class), G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (ArioServerClass, updatingdb_changed), NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0); ario_server_signals[SERVER_STOREDPLAYLISTS_CHANGED] = g_signal_new ("storedplaylists_changed", G_OBJECT_CLASS_TYPE (object_class), G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (ArioServerClass, storedplaylists_changed), NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0); } static void ario_server_init (ArioServer *server) { ARIO_LOG_FUNCTION_START; } static void ario_server_reset_interface (void) { ARIO_LOG_FUNCTION_START; static ArioServerType interface_type = -1; ArioServerType new_interface_type; /* Get new interface type */ new_interface_type = ario_profiles_get_current (ario_profiles_get ())->type; /* Same type as before: do nothing */ if (new_interface_type == interface_type) return; /* Change type */ interface_type = new_interface_type; /* destroy previous insterface */ if (interface) { ario_server_disconnect (); g_object_unref (interface); } /* Create new interface */ if (interface_type == ArioServerMpd) { /* MPD interface */ interface = ARIO_SERVER_INTERFACE (ario_mpd_get_instance (instance)); #ifdef ENABLE_XMMS2 } else if (interface_type == ArioServerXmms) { /* XMMS2 interface */ interface = ARIO_SERVER_INTERFACE (ario_xmms_get_instance (instance)); #endif } else { /* Unknown interface */ ARIO_LOG_ERROR ("Unknown server type: %d", interface_type); interface = ARIO_SERVER_INTERFACE (ario_mpd_get_instance (instance)); } } ArioServer * ario_server_get_instance (void) { ARIO_LOG_FUNCTION_START; /* Singleton instanciation if needed */ if (!instance) { instance = g_object_new (ARIO_TYPE_SERVER, NULL); } if (!interface) { ario_server_reset_interface (); } return instance; } gboolean ario_server_connect (void) { ARIO_LOG_FUNCTION_START; /* Make sure we have the right interface type */ ario_server_reset_interface (); /* check if there is a connection */ if (ario_server_is_connected () || interface->connecting) return FALSE; interface->connecting = TRUE; /* Call virtual method */ ARIO_SERVER_INTERFACE_GET_CLASS (interface)->connect (); g_signal_emit (G_OBJECT (instance), ario_server_signals[SERVER_CONNECTIVITY_CHANGED], 0); return FALSE; } void ario_server_disconnect (void) { ARIO_LOG_FUNCTION_START; /* Call virtual method */ ARIO_SERVER_INTERFACE_GET_CLASS (interface)->disconnect (); g_signal_emit (G_OBJECT (instance), ario_server_signals[SERVER_CONNECTIVITY_CHANGED], 0); } void ario_server_reconnect (void) { ARIO_LOG_FUNCTION_START; ario_server_disconnect (); ario_server_connect (); } void ario_server_shutdown (void) { ARIO_LOG_FUNCTION_START; g_object_unref (interface); } void ario_server_update_db (const gchar *path) { ARIO_LOG_FUNCTION_START; interface->updatingdb = 1; ARIO_SERVER_INTERFACE_GET_CLASS (interface)->update_db (path); } gboolean ario_server_is_connected (void) { // desactivated to make the logs more readable //ARIO_LOG_FUNCTION_START; /* Call virtual method */ return ARIO_SERVER_INTERFACE_GET_CLASS (interface)->is_connected (); } GSList * ario_server_list_tags (const ArioServerTag tag, const ArioServerCriteria *criteria) { ARIO_LOG_FUNCTION_START; /* Call virtual method */ return ARIO_SERVER_INTERFACE_GET_CLASS (interface)->list_tags (tag, criteria); } GSList * ario_server_get_albums (const ArioServerCriteria *criteria) { ARIO_LOG_FUNCTION_START; /* Call virtual method */ return ARIO_SERVER_INTERFACE_GET_CLASS (interface)->get_albums (criteria); } GSList * ario_server_get_songs (const ArioServerCriteria *criteria, const gboolean exact) { ARIO_LOG_FUNCTION_START; /* Call virtual method */ return ARIO_SERVER_INTERFACE_GET_CLASS (interface)->get_songs (criteria, exact); } GSList * ario_server_get_songs_from_playlist (char *playlist) { ARIO_LOG_FUNCTION_START; /* Call virtual method */ return ARIO_SERVER_INTERFACE_GET_CLASS (interface)->get_songs_from_playlist (playlist); } GSList * ario_server_get_playlists (void) { ARIO_LOG_FUNCTION_START; /* Call virtual method */ return ARIO_SERVER_INTERFACE_GET_CLASS (interface)->get_playlists (); } GSList * ario_server_get_playlist_changes (gint64 playlist_id) { ARIO_LOG_FUNCTION_START; /* Call virtual method */ return ARIO_SERVER_INTERFACE_GET_CLASS (interface)->get_playlist_changes (playlist_id); } gboolean ario_server_update_status (void) { /* Call virtual method */ return ARIO_SERVER_INTERFACE_GET_CLASS (interface)->update_status (); } ArioServerSong * ario_server_get_current_song_on_server (void) { ARIO_LOG_FUNCTION_START; /* Call virtual method */ return ARIO_SERVER_INTERFACE_GET_CLASS (interface)->get_current_song_on_server (); } ArioServerSong * ario_server_get_current_song (void) { ARIO_LOG_FUNCTION_START; if (interface->server_song) return interface->server_song; else return NULL; } char * ario_server_get_current_artist (void) { ARIO_LOG_FUNCTION_START; if (interface->server_song) return interface->server_song->artist; else return NULL; } char * ario_server_get_current_album (void) { ARIO_LOG_FUNCTION_START; if (interface->server_song) return interface->server_song->album; else return NULL; } char * ario_server_get_current_song_path (void) { ARIO_LOG_FUNCTION_START; if (interface->server_song) return interface->server_song->file; else return NULL; } int ario_server_get_current_song_id (void) { ARIO_LOG_FUNCTION_START; return interface->song_id; } int ario_server_get_current_state (void) { ARIO_LOG_FUNCTION_START; return interface->state; } int ario_server_get_current_elapsed (void) { ARIO_LOG_FUNCTION_START; return interface->elapsed; } int ario_server_get_current_volume (void) { ARIO_LOG_FUNCTION_START; return interface->volume; } int ario_server_get_current_total_time (void) { ARIO_LOG_FUNCTION_START; if (interface->server_song) return interface->server_song->time; else return 0; } gint64 ario_server_get_current_playlist_id (void) { ARIO_LOG_FUNCTION_START; return interface->playlist_id; } int ario_server_get_current_playlist_length (void) { ARIO_LOG_FUNCTION_START; return interface->playlist_length; } int ario_server_get_current_playlist_total_time (void) { ARIO_LOG_FUNCTION_START; /* Call virtual method */ return ARIO_SERVER_INTERFACE_GET_CLASS (interface)->get_current_playlist_total_time (); } int ario_server_get_crossfadetime (void) { ARIO_LOG_FUNCTION_START; if (ario_server_is_connected ()) return interface->crossfade; else return 0; } gboolean ario_server_get_current_consume (void) { ARIO_LOG_FUNCTION_START; return interface->consume; } gboolean ario_server_get_current_random (void) { ARIO_LOG_FUNCTION_START; return interface->random; } gboolean ario_server_get_current_repeat (void) { ARIO_LOG_FUNCTION_START; return interface->repeat; } gboolean ario_server_get_updating (void) { ARIO_LOG_FUNCTION_START; return ario_server_is_connected () && interface->updatingdb; } unsigned long ario_server_get_last_update (void) { /* Call virtual method */ return ARIO_SERVER_INTERFACE_GET_CLASS (interface)->get_last_update (); } gboolean ario_server_is_paused (void) { ARIO_LOG_FUNCTION_START; return (interface->state == ARIO_STATE_PAUSE) || (interface->state == ARIO_STATE_STOP); } void ario_server_do_next (void) { ARIO_LOG_FUNCTION_START; /* Call virtual method */ ARIO_SERVER_INTERFACE_GET_CLASS (interface)->do_next (); } void ario_server_do_prev (void) { ARIO_LOG_FUNCTION_START; /* Call virtual method */ ARIO_SERVER_INTERFACE_GET_CLASS (interface)->do_prev (); } void ario_server_do_play (void) { ARIO_LOG_FUNCTION_START; /* Call virtual method */ ARIO_SERVER_INTERFACE_GET_CLASS (interface)->do_play (); } void ario_server_do_play_pos (gint id) { ARIO_LOG_FUNCTION_START; /* Call virtual method */ ARIO_SERVER_INTERFACE_GET_CLASS (interface)->do_play_pos (id); } void ario_server_do_pause (void) { ARIO_LOG_FUNCTION_START; /* Call virtual method */ ARIO_SERVER_INTERFACE_GET_CLASS (interface)->do_pause (); } void ario_server_do_stop (void) { ARIO_LOG_FUNCTION_START; /* Call virtual method */ ARIO_SERVER_INTERFACE_GET_CLASS (interface)->do_stop (); } void ario_server_free_album (ArioServerAlbum *server_album) { ARIO_LOG_FUNCTION_START; if (server_album) { g_free (server_album->album); g_free (server_album->artist); g_free (server_album->path); g_free (server_album->date); g_free (server_album); } } ArioServerAlbum* ario_server_copy_album (const ArioServerAlbum *server_album) { ARIO_LOG_FUNCTION_START; ArioServerAlbum *ret = NULL; if (server_album) { ret = (ArioServerAlbum *) g_malloc (sizeof (ArioServerAlbum)); ret->album = g_strdup (server_album->album); ret->artist = g_strdup (server_album->artist); ret->path = g_strdup (server_album->path); ret->date = g_strdup (server_album->date); } return ret; } void ario_server_set_current_elapsed (const gint elapsed) { ARIO_LOG_FUNCTION_START; /* Call virtual method */ ARIO_SERVER_INTERFACE_GET_CLASS (interface)->set_current_elapsed (elapsed); } void ario_server_set_current_volume (const gint volume) { ARIO_LOG_FUNCTION_START; /* Call virtual method */ ARIO_SERVER_INTERFACE_GET_CLASS (interface)->set_current_volume (volume); } void ario_server_set_current_consume (const gboolean consume) { ARIO_LOG_FUNCTION_START; /* Call virtual method */ ARIO_SERVER_INTERFACE_GET_CLASS (interface)->set_current_consume (consume); } void ario_server_set_current_random (const gboolean random) { ARIO_LOG_FUNCTION_START; /* Call virtual method */ ARIO_SERVER_INTERFACE_GET_CLASS (interface)->set_current_random (random); } void ario_server_set_current_repeat (const gboolean repeat) { ARIO_LOG_FUNCTION_START; /* Call virtual method */ ARIO_SERVER_INTERFACE_GET_CLASS (interface)->set_current_repeat (repeat); } void ario_server_set_crossfadetime (const int crossfadetime) { ARIO_LOG_FUNCTION_START; /* Call virtual method */ ARIO_SERVER_INTERFACE_GET_CLASS (interface)->set_crossfadetime (crossfadetime); } void ario_server_clear (void) { ARIO_LOG_FUNCTION_START; /* Call virtual method */ ARIO_SERVER_INTERFACE_GET_CLASS (interface)->clear (); } void ario_server_shuffle (void) { ARIO_LOG_FUNCTION_START; /* Call virtual method */ ARIO_SERVER_INTERFACE_GET_CLASS (interface)->shuffle (); } void ario_server_queue_add (const char *path) { ARIO_LOG_FUNCTION_START; /* Append a queue action to list */ ArioServerQueueAction *queue_action = (ArioServerQueueAction *) g_malloc (sizeof (ArioServerQueueAction)); queue_action->type = ARIO_SERVER_ACTION_ADD; queue_action->path = path; interface->queue = g_slist_append (interface->queue, queue_action); } void ario_server_queue_delete_id (const int id) { /* Append a queue action to list */ ArioServerQueueAction *queue_action = (ArioServerQueueAction *) g_malloc (sizeof (ArioServerQueueAction)); queue_action->type = ARIO_SERVER_ACTION_DELETE_ID; queue_action->id = id; interface->queue = g_slist_append (interface->queue, queue_action); } void ario_server_queue_delete_pos (const int pos) { ARIO_LOG_FUNCTION_START; /* Append a queue action to list */ ArioServerQueueAction *queue_action = (ArioServerQueueAction *) g_malloc (sizeof (ArioServerQueueAction)); queue_action->type = ARIO_SERVER_ACTION_DELETE_POS; queue_action->pos = pos; interface->queue = g_slist_append (interface->queue, queue_action); } void ario_server_queue_move (const int old_pos, const int new_pos) { ARIO_LOG_FUNCTION_START; /* Append a queue action to list */ ArioServerQueueAction *queue_action = (ArioServerQueueAction *) g_malloc (sizeof (ArioServerQueueAction)); queue_action->type = ARIO_SERVER_ACTION_MOVE; queue_action->old_pos = old_pos; queue_action->new_pos = new_pos; interface->queue = g_slist_append (interface->queue, queue_action); } void ario_server_queue_moveid (const int id, const int pos) { ARIO_LOG_FUNCTION_START; /* Append a queue action to list */ ArioServerQueueAction *queue_action = (ArioServerQueueAction *) g_malloc (sizeof (ArioServerQueueAction)); queue_action->type = ARIO_SERVER_ACTION_MOVEID; queue_action->old_pos = id; queue_action->new_pos = pos; interface->queue = g_slist_append (interface->queue, queue_action); } void ario_server_queue_commit (void) { ARIO_LOG_FUNCTION_START; /* Call virtual method */ ARIO_SERVER_INTERFACE_GET_CLASS (interface)->queue_commit (); } void ario_server_insert_at (const GSList *songs, const gint pos) { ARIO_LOG_FUNCTION_START; /* Call virtual method */ ARIO_SERVER_INTERFACE_GET_CLASS (interface)->insert_at (songs, pos); } int ario_server_save_playlist (const char *name) { ARIO_LOG_FUNCTION_START; /* Call virtual method */ int ret = ARIO_SERVER_INTERFACE_GET_CLASS (interface)->save_playlist (name); #ifndef ENABLE_MPDIDLE g_signal_emit (G_OBJECT (instance), ario_server_signals[SERVER_STOREDPLAYLISTS_CHANGED], 0); #endif return ret; } void ario_server_delete_playlist (const char *name) { ARIO_LOG_FUNCTION_START; /* Call virtual method */ ARIO_SERVER_INTERFACE_GET_CLASS (interface)->delete_playlist (name); #ifndef ENABLE_MPDIDLE g_signal_emit (G_OBJECT (instance), ario_server_signals[SERVER_STOREDPLAYLISTS_CHANGED], 0); #endif } GSList * ario_server_get_outputs (void) { ARIO_LOG_FUNCTION_START; /* Call virtual method */ return ARIO_SERVER_INTERFACE_GET_CLASS (interface)->get_outputs (); } void ario_server_enable_output (int id, gboolean enabled) { ARIO_LOG_FUNCTION_START; /* Call virtual method */ ARIO_SERVER_INTERFACE_GET_CLASS (interface)->enable_output (id, enabled); } ArioServerStats * ario_server_get_stats (void) { ARIO_LOG_FUNCTION_START; /* Call virtual method */ return ARIO_SERVER_INTERFACE_GET_CLASS (interface)->get_stats (); } GList * ario_server_get_songs_info (GSList *paths) { ARIO_LOG_FUNCTION_START; /* Call virtual method */ return ARIO_SERVER_INTERFACE_GET_CLASS (interface)->get_songs_info (paths); } ArioServerFileList * ario_server_list_files (const char *path, gboolean recursive) { ARIO_LOG_FUNCTION_START; /* Call virtual method */ return ARIO_SERVER_INTERFACE_GET_CLASS (interface)->list_files (path, recursive); } void ario_server_free_file_list (ArioServerFileList *files) { ARIO_LOG_FUNCTION_START; if (files) { g_slist_foreach (files->directories, (GFunc) g_free, NULL); g_slist_free (files->directories); g_slist_foreach (files->songs, (GFunc) ario_server_free_song, NULL); g_slist_free (files->songs); g_free (files); } } void ario_server_criteria_free (ArioServerCriteria *criteria) { ARIO_LOG_FUNCTION_START; GSList *tmp; ArioServerAtomicCriteria *atomic_criteria; for (tmp = criteria; tmp; tmp = g_slist_next (tmp)) { atomic_criteria = tmp->data; g_free (atomic_criteria->value); g_free (atomic_criteria); } g_slist_free (criteria); } ArioServerCriteria * ario_server_criteria_copy (const ArioServerCriteria *criteria) { ARIO_LOG_FUNCTION_START; ArioServerCriteria *ret = NULL; const GSList *tmp; ArioServerAtomicCriteria *atomic_criteria; ArioServerAtomicCriteria *new_atomic_criteria; for (tmp = criteria; tmp; tmp = g_slist_next (tmp)) { atomic_criteria = tmp->data; if (criteria) { new_atomic_criteria = (ArioServerAtomicCriteria *) g_malloc0 (sizeof (ArioServerAtomicCriteria)); new_atomic_criteria->tag = atomic_criteria->tag; new_atomic_criteria->value = g_strdup (atomic_criteria->value); ret = g_slist_append (ret, new_atomic_criteria); } } return ret; } gchar ** ario_server_get_items_names (void) { return ArioServerItemNames; } const gchar* ario_server_song_get_tag (const ArioServerSong *song, ArioServerTag tag) { ARIO_LOG_FUNCTION_START; switch (tag) { case ARIO_TAG_ARTIST: return song->artist; case ARIO_TAG_ALBUM: return song->album; case ARIO_TAG_ALBUM_ARTIST: return song->album_artist; case ARIO_TAG_TITLE: return song->title; case ARIO_TAG_TRACK: return song->track; case ARIO_TAG_NAME: return song->name; case ARIO_TAG_GENRE: return song->genre; case ARIO_TAG_DATE: return song->date; case ARIO_TAG_COMPOSER: return song->composer; case ARIO_TAG_PERFORMER: return song->performer; case ARIO_TAG_COMMENT: return song->comment; case ARIO_TAG_DISC: return song->disc; case ARIO_TAG_FILENAME: return song->file; default: return NULL; } } void ario_server_playlist_add_songs (const GSList *songs, const gint pos, const PlaylistAction action) { ARIO_LOG_FUNCTION_START; const GSList *tmp; int end; int song_pos = pos; /* Clear playlist if needed */ if (action == PLAYLIST_REPLACE) { ario_server_clear (); } /* Get current song position */ if (action == PLAYLIST_ADD_AFTER_PLAYING && (interface->state == ARIO_STATE_PLAY || interface->state == ARIO_STATE_PAUSE)) { song_pos = ario_server_get_current_song()->pos; } end = ario_server_get_current_playlist_length (); if (song_pos >= 0) { /* Insert songs at a given position */ ario_server_insert_at (songs, song_pos); } else { /* For each filename :*/ for (tmp = songs; tmp; tmp = g_slist_next (tmp)) { /* Add it in the playlist*/ ario_server_queue_add (tmp->data); } /* Commit song additions */ ario_server_queue_commit (); } /* Start playing if needed */ if (action == PLAYLIST_ADD_PLAY || action == PLAYLIST_REPLACE) { ario_server_do_play_pos (end); } } void ario_server_playlist_add_dir (const gchar *dir, const gint pos, const PlaylistAction action) { ARIO_LOG_FUNCTION_START; GSList *tmp; ArioServerFileList *files; ArioServerSong *song; GSList *char_songs = NULL; /* List files in dir */ files = ario_server_list_files (dir, TRUE); /* For each file */ for (tmp = files->songs; tmp; tmp = g_slist_next (tmp)) { song = tmp->data; /* Append file to list */ char_songs = g_slist_append (char_songs, song->file); } /* Append all files to playlist */ ario_server_playlist_add_songs (char_songs, pos, action); g_slist_free (char_songs); ario_server_free_file_list (files); } void ario_server_playlist_add_criterias (const GSList *criterias, const gint pos, const PlaylistAction action, const gint nb_entries) { ARIO_LOG_FUNCTION_START; GSList *filenames = NULL, *tmp_filenames = NULL, *songs = NULL; const GSList *tmp_criteria, *tmp_songs; const ArioServerCriteria *criteria; ArioServerSong *server_song; /* For each criteria :*/ for (tmp_criteria = criterias; tmp_criteria; tmp_criteria = g_slist_next (tmp_criteria)) { criteria = tmp_criteria->data; songs = ario_server_get_songs (criteria, TRUE); /* For each song */ for (tmp_songs = songs; tmp_songs; tmp_songs = g_slist_next (tmp_songs)) { /* Append song filename to list */ server_song = tmp_songs->data; filenames = g_slist_append (filenames, server_song->file); server_song->file = NULL; } g_slist_foreach (songs, (GFunc) ario_server_free_song, NULL); g_slist_free (songs); } /* Need to only add a limited number of songs */ if (nb_entries > 0 && filenames) { /* Randomly get some songs in list */ tmp_filenames = ario_util_gslist_randomize (&filenames, nb_entries); g_slist_foreach (filenames, (GFunc) g_free, NULL); g_slist_free (filenames); filenames = tmp_filenames; } /* Add songs to playlist */ ario_server_playlist_add_songs (filenames, pos, action); g_slist_foreach (filenames, (GFunc) g_free, NULL); g_slist_free (filenames); } void ario_server_playlist_append_songs (const GSList *songs, const PlaylistAction action) { ARIO_LOG_FUNCTION_START; /* Add songs to playlist */ ario_server_playlist_add_songs (songs, -1, action); } void ario_server_playlist_append_server_songs (const GSList *songs, const PlaylistAction action) { ARIO_LOG_FUNCTION_START; const GSList *tmp; GSList *char_songs = NULL; ArioServerSong *song; /* For each song */ for (tmp = songs; tmp; tmp = g_slist_next (tmp)) { /* Append song filename to list */ song = tmp->data; char_songs = g_slist_append (char_songs, song->file); } /* Add songs to playlist */ ario_server_playlist_add_songs (char_songs, -1, action); g_slist_free (char_songs); } void ario_server_playlist_append_artists (const GSList *artists, const PlaylistAction action, const gint nb_entries) { ARIO_LOG_FUNCTION_START; ArioServerAtomicCriteria *atomic_criteria; ArioServerCriteria *criteria; GSList *criterias = NULL; const GSList *tmp; /* For each artist */ for (tmp = artists; tmp; tmp = g_slist_next (tmp)) { /* Create a criteria corresponding to artist */ criteria = NULL; atomic_criteria = (ArioServerAtomicCriteria *) g_malloc0 (sizeof (ArioServerAtomicCriteria)); atomic_criteria->tag = ARIO_TAG_ARTIST; atomic_criteria->value = g_strdup (tmp->data); criteria = g_slist_append (criteria, atomic_criteria); criterias = g_slist_append (criterias, criteria); } /* Add songs matching criteria to playlist */ ario_server_playlist_append_criterias (criterias, action, nb_entries); g_slist_foreach (criterias, (GFunc) ario_server_criteria_free, NULL); g_slist_free (criterias); } void ario_server_playlist_append_dir (const gchar *dir, const PlaylistAction action) { ARIO_LOG_FUNCTION_START; /* Append all files in dir to playlist */ ario_server_playlist_add_dir (dir, -1, action); } void ario_server_playlist_append_criterias (const GSList *criterias, const PlaylistAction action, const gint nb_entries) { ARIO_LOG_FUNCTION_START; /* Append all songs matching criteria to playlist */ ario_server_playlist_add_criterias (criterias, -1, action, nb_entries); } void ario_server_free_song (ArioServerSong *song) { ARIO_LOG_FUNCTION_START; if (song) { g_free (song->file); g_free (song->artist); g_free (song->title); g_free (song->album); g_free (song->album_artist); g_free (song->track); g_free (song->name); g_free (song->date); g_free (song->genre); g_free (song->composer); g_free (song->performer); g_free (song->disc); g_free (song->comment); g_free (song); } } void ario_server_free_output (ArioServerOutput *output) { ARIO_LOG_FUNCTION_START; if (output) { g_free (output->name); g_free (output); } } ario-1.6/src/servers/ario-xmms.h0000644000175000017500000000344513226723433013613 00000000000000/* * Copyright (C) 2005 Marc Pavot * * 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, 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * */ #ifndef __ARIO_XMMS_H #define __ARIO_XMMS_H #include "ario-server-interface.h" G_BEGIN_DECLS #define TYPE_ARIO_XMMS (ario_xmms_get_type ()) #define ARIO_XMMS(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), TYPE_ARIO_XMMS, ArioXmms)) #define ARIO_XMMS_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), TYPE_ARIO_XMMS, ArioXmmsClass)) #define IS_ARIO_XMMS(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), TYPE_ARIO_XMMS)) #define IS_ARIO_XMMS_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), TYPE_ARIO_XMMS)) #define ARIO_XMMS_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), TYPE_ARIO_XMMS, ArioXmmsClass)) typedef struct ArioXmmsPrivate ArioXmmsPrivate; typedef struct { ArioServerInterface parent; ArioXmmsPrivate *priv; } ArioXmms; typedef struct { ArioServerInterfaceClass parent; } ArioXmmsClass; GType ario_xmms_get_type (void) G_GNUC_CONST; ArioXmms * ario_xmms_get_instance (ArioServer *server); G_END_DECLS #endif /* __ARIO_XMMS_H */ ario-1.6/src/servers/ario-server.h0000644000175000017500000004115713226723432014136 00000000000000/* * Copyright (C) 2005 Marc Pavot * * 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, 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * */ #ifndef __ARIO_SERVER_H #define __ARIO_SERVER_H #include G_BEGIN_DECLS #define ARIO_SERVER_UNKNOWN _("Unknown") #define ARIO_TYPE_SERVER (ario_server_get_type ()) #define ARIO_SERVER(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), ARIO_TYPE_SERVER, ArioServer)) #define ARIO_SERVER_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), ARIO_TYPE_SERVER, ArioServerClass)) #define IS_ARIO_SERVER(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), ARIO_TYPE_SERVER)) #define IS_ARIO_SERVER_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), ARIO_TYPE_SERVER)) #define ARIO_SERVER_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), ARIO_TYPE_SERVER, ArioServerClass)) typedef struct { /* filename of song */ char * file; /* artist, maybe NULL if there is no tag */ char * artist; /* title, maybe NULL if there is no tag */ char * title; /* album, maybe NULL if there is no tag */ char * album; /* album artist, maybe NULL if there is no tag */ char * album_artist; /* track, maybe NULL if there is no tag */ char * track; /* name, maybe NULL if there is no tag; it's the name of the current * song, f.e. the icyName of the stream */ char * name; /* date */ char *date; /* Genre */ char *genre; /* Composer */ char *composer; /* Performer */ char *performer; /* Disc */ char *disc; /* Comment */ char *comment; /* length of song in seconds */ int time; /* if plchanges/playlistinfo/playlistid used, is the position of the * song in the playlist */ int pos; /* song id for a song in the playlist */ int id; } ArioServerSong; typedef struct { int numberOfArtists; int numberOfAlbums; int numberOfSongs; unsigned long uptime; unsigned long dbUpdateTime; unsigned long playTime; unsigned long dbPlayTime; } ArioServerStats; typedef struct { int id; char * name; int enabled; } ArioServerOutput; typedef enum { /** no information available */ ARIO_STATE_UNKNOWN = 0, /** not playing */ ARIO_STATE_STOP = 1, /** playing */ ARIO_STATE_PLAY = 2, /** playing, but paused */ ARIO_STATE_PAUSE = 3, } ArioServerState; typedef enum { ARIO_TAG_ARTIST, ARIO_TAG_ALBUM, ARIO_TAG_ALBUM_ARTIST, ARIO_TAG_TITLE, ARIO_TAG_TRACK, ARIO_TAG_NAME, ARIO_TAG_GENRE, ARIO_TAG_DATE, ARIO_TAG_COMPOSER, ARIO_TAG_PERFORMER, ARIO_TAG_COMMENT, ARIO_TAG_DISC, ARIO_TAG_FILENAME, ARIO_TAG_ANY, ARIO_TAG_COUNT }ArioServerTag; typedef struct { gchar *artist; gchar *album; gchar *path; gchar *date; } ArioServerAlbum; typedef struct { GSList *directories; GSList *songs; } ArioServerFileList; typedef struct { ArioServerTag tag; gchar *value; } ArioServerAtomicCriteria; typedef GSList ArioServerCriteria; /* A criteria is a list of atomic criterias */ typedef enum { ArioServerMpd, ArioServerXmms } ArioServerType; typedef enum { ARIO_SERVER_ACTION_ADD, ARIO_SERVER_ACTION_DELETE_ID, ARIO_SERVER_ACTION_DELETE_POS, ARIO_SERVER_ACTION_MOVE, ARIO_SERVER_ACTION_MOVEID }ArioServerActionType; typedef struct ArioServerQueueAction { ArioServerActionType type; union { const char *path; // For ARIO_SERVER_ACTION_ADD int id; // For ARIO_SERVER_ACTION_DELETE_ID int pos; // For ARIO_SERVER_ACTION_DELETE_POS struct { // For ARIO_SERVER_ACTION_MOVE and ARIO_SERVER_ACTION_MOVEID int old_pos; int new_pos; }; }; } ArioServerQueueAction; enum { SERVER_SONG_CHANGED, SERVER_ALBUM_CHANGED, SERVER_CONNECTIVITY_CHANGED, SERVER_STATE_CHANGED, SERVER_VOLUME_CHANGED, SERVER_ELAPSED_CHANGED, SERVER_PLAYLIST_CHANGED, SERVER_CONSUME_CHANGED, SERVER_RANDOM_CHANGED, SERVER_REPEAT_CHANGED, SERVER_UPDATINGDB_CHANGED, SERVER_STOREDPLAYLISTS_CHANGED, SERVER_LAST_SIGNAL }; enum { SERVER_SONG_CHANGED_FLAG = 2 << SERVER_SONG_CHANGED, SERVER_ALBUM_CHANGED_FLAG = 2 << SERVER_ALBUM_CHANGED, SERVER_CONNECTIVITY_CHANGED_FLAG = 2 << SERVER_CONNECTIVITY_CHANGED, SERVER_STATE_CHANGED_FLAG = 2 << SERVER_STATE_CHANGED, SERVER_VOLUME_CHANGED_FLAG = 2 << SERVER_VOLUME_CHANGED, SERVER_ELAPSED_CHANGED_FLAG = 2 << SERVER_ELAPSED_CHANGED, SERVER_PLAYLIST_CHANGED_FLAG = 2 << SERVER_PLAYLIST_CHANGED, SERVER_CONSUME_CHANGED_FLAG = 2 << SERVER_CONSUME_CHANGED, SERVER_RANDOM_CHANGED_FLAG = 2 << SERVER_RANDOM_CHANGED, SERVER_REPEAT_CHANGED_FLAG = 2 << SERVER_REPEAT_CHANGED, SERVER_UPDATINGDB_CHANGED_FLAG = 2 << SERVER_UPDATINGDB_CHANGED, SERVER_STOREDPLAYLISTS_CHANGED_FLAG = 2 << SERVER_STOREDPLAYLISTS_CHANGED }; typedef enum { PLAYLIST_ADD, PLAYLIST_ADD_PLAY, PLAYLIST_REPLACE, PLAYLIST_ADD_AFTER_PLAYING, PLAYLIST_N_BEHAVIOR } PlaylistAction; typedef struct { GObject parent; } ArioServer; typedef struct { GObjectClass parent; /* Signals */ void (*song_changed) (ArioServer *server); void (*album_changed) (ArioServer *server); void (*connectivity_changed) (ArioServer *server); void (*state_changed) (ArioServer *server); void (*volume_changed) (ArioServer *server, int volume); void (*elapsed_changed) (ArioServer *server, int elapsed); void (*playlist_changed) (ArioServer *server); void (*consume_changed) (ArioServer *server); void (*random_changed) (ArioServer *server); void (*repeat_changed) (ArioServer *server); void (*updatingdb_changed) (ArioServer *server); void (*storedplaylists_changed) (ArioServer *server); } ArioServerClass; GType ario_server_get_type (void) G_GNUC_CONST; ArioServer * ario_server_get_instance (void); gboolean ario_server_connect (void); void ario_server_disconnect (void); void ario_server_reconnect (void); void ario_server_shutdown (void); gboolean ario_server_is_connected (void); gboolean ario_server_update_status (void); void ario_server_update_db (const gchar *path); GSList * ario_server_list_tags (const ArioServerTag tag, const ArioServerCriteria *criteria); GSList * ario_server_get_albums (const ArioServerCriteria *criteria); GSList * ario_server_get_songs (const ArioServerCriteria *criteria, const gboolean exact); GSList * ario_server_get_songs_from_playlist (char *playlist); GSList * ario_server_get_playlists (void); GSList * ario_server_get_playlist_changes (gint64 playlist_id); ArioServerSong * ario_server_get_current_song_on_server (void); ArioServerSong * ario_server_get_current_song (void); char * ario_server_get_current_artist (void); char * ario_server_get_current_album (void); char * ario_server_get_current_song_path (void); int ario_server_get_current_song_id (void); int ario_server_get_current_state (void); int ario_server_get_current_elapsed (void); int ario_server_get_current_volume (void); int ario_server_get_current_total_time (void); gint64 ario_server_get_current_playlist_id (void); int ario_server_get_current_playlist_length (void); int ario_server_get_current_playlist_total_time (void); int ario_server_get_crossfadetime (void); gboolean ario_server_get_current_consume (void); gboolean ario_server_get_current_random (void); gboolean ario_server_get_current_repeat (void); gboolean ario_server_get_updating (void); unsigned long ario_server_get_last_update (void); void ario_server_set_current_elapsed (const gint elapsed); void ario_server_set_current_volume (const gint volume); GSList * ario_server_get_outputs (void); void ario_server_set_current_consume (const gboolean consume); void ario_server_set_current_random (const gboolean random); void ario_server_set_current_repeat (const gboolean repeat); void ario_server_set_crossfadetime (const int crossfadetime); gboolean ario_server_is_paused (void); void ario_server_do_next (void); void ario_server_do_prev (void); void ario_server_do_play (void); void ario_server_do_play_pos (gint id); void ario_server_do_pause (void); void ario_server_do_stop (void); void ario_server_free_album (ArioServerAlbum *server_album); ArioServerAlbum * ario_server_copy_album (const ArioServerAlbum *server_album); void ario_server_clear (void); void ario_server_shuffle (void); void ario_server_queue_add (const char *path); void ario_server_queue_delete_id (const int id); void ario_server_queue_delete_pos (const int pos); void ario_server_queue_move (const int old_pos, const int new_pos); void ario_server_queue_moveid (const int id, const int pos); void ario_server_queue_commit (void); void ario_server_insert_at (const GSList *songs, const gint pos); // returns 0 if OK, 1 if playlist already exists int ario_server_save_playlist (const char *name); void ario_server_delete_playlist (const char *name); GSList * ario_server_get_outputs (void); void ario_server_enable_output (const int id, const gboolean enabled); ArioServerStats * ario_server_get_stats (void); GList * ario_server_get_songs_info (GSList *paths); ArioServerFileList* ario_server_list_files (const char *path, const gboolean recursive); void ario_server_free_file_list (ArioServerFileList *files); ArioServerCriteria * ario_server_criteria_copy (const ArioServerCriteria *criteria); void ario_server_criteria_free (ArioServerCriteria *criteria); gchar ** ario_server_get_items_names (void); const gchar* ario_server_song_get_tag (const ArioServerSong *song, ArioServerTag tag); void ario_server_playlist_add_songs (const GSList *songs, const gint pos, const PlaylistAction action); void ario_server_playlist_add_dir (const gchar *dir, const gint pos, const PlaylistAction action); void ario_server_playlist_add_criterias (const GSList *criterias, const gint pos, const PlaylistAction action, const gint nb_entries); void ario_server_playlist_append_artists (const GSList *artists, const PlaylistAction action, const gint nb_entries); void ario_server_playlist_append_songs (const GSList *songs, const PlaylistAction action); void ario_server_playlist_append_server_songs (const GSList *songs, const PlaylistAction action); void ario_server_playlist_append_dir (const gchar *dir, const PlaylistAction action); void ario_server_playlist_append_criterias (const GSList *criterias, const PlaylistAction action, const gint nb_entries); void ario_server_free_song (ArioServerSong *song); void ario_server_free_output (ArioServerOutput *output); G_END_DECLS #endif /* __ARIO_SERVER_H */ ario-1.6/src/ario-enum-types.h0000644000175000017500000000152213226723436013241 00000000000000 /* Generated data (by glib-mkenums) */ #ifndef __ARIO_ENUM_TYPES_H__ #define __ARIO_ENUM_TYPES_H__ #include G_BEGIN_DECLS /* Enumerations from "servers/ario-server.h" */ #define ARIO_TYPE_SERVER_TYPE (ario_server_type_get_type()) GType ario_server_type_get_type (void) G_GNUC_CONST; #define ARIO_TYPE_SERVER_ACTION_TYPE (ario_server_action_type_get_type()) GType ario_server_action_type_get_type (void) G_GNUC_CONST; /* Enumerations from "sources/ario-source-manager.h" */ #define ARIO_TYPE_SOURCE_TYPE (ario_source_type_get_type()) GType ario_source_type_get_type (void) G_GNUC_CONST; /* Enumerations from "shell/ario-shell.h" */ #define ARIO_TYPE_VISIBILITY (ario_visibility_get_type()) GType ario_visibility_get_type (void) G_GNUC_CONST; G_END_DECLS #endif /* __ARIO_ENUM_TYPES_H__ */ /* Generated data ends here */ ario-1.6/src/ario-debug.h0000644000175000017500000000305413226723434012221 00000000000000/* * Copyright (C) 2005 Marc Pavot * * 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, 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * */ #ifndef __ARIO_DEBUG_H #define __ARIO_DEBUG_H #include #include /* Macro used to log an error */ #define ARIO_LOG_ERROR(x,args...) {printf("[ERROR](%s:%d) %s : " x "\n", __FILE__, __LINE__, __FUNCTION__, ##args);} /* Macro used to log an information */ #define ARIO_LOG_INFO(x,args...) {printf("[info]" x "\n", ##args);} #ifdef DEBUG /* Macro used to log a debug information */ #define ARIO_LOG_DBG(x,args...) {printf("[debug](%s:%d) %s : " x "\n", __FILE__, __LINE__, __FUNCTION__, ##args);} /* Macro used to log the start of a function */ #define ARIO_LOG_FUNCTION_START ARIO_LOG_DBG("Function start") #else /* If DEBUG is not activated we don't log debug info */ #define ARIO_LOG_DBG(x,args...) {} #define ARIO_LOG_FUNCTION_START #endif #endif /* __ARIO_DEBUG_H */ ario-1.6/src/lyrics/0000755000175000017500000000000013226745613011420 500000000000000ario-1.6/src/lyrics/ario-lyrics-letras.c0000644000175000017500000002062613226723432015232 00000000000000/* * Copyright (C) 2004,2005 Marc Pavot * * 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * */ #include "lyrics/ario-lyrics-letras.h" #include #include #include #include #include #include "lib/ario-conf.h" #include "ario-util.h" #include "preferences/ario-preferences.h" #include "ario-debug.h" #include #define LETRAS_URI "http://letras.mus.br/winamp.php?t=%s%%20-%%20%s" #define LETRAS_ARTIST_URI "http://letras.mus.br/winamp.php?t=%s" #define LETRAS_SONG_URI "http://letras.mus.br/winamp.php?t=%s" ArioLyrics* ario_lyrics_letras_get_lyrics (ArioLyricsProvider *lyrics_provider, const char *artist, const char *song, const char *file); static void ario_lyrics_letras_get_lyrics_candidates (ArioLyricsProvider *lyrics_provider, const gchar *artist, const gchar *song, GSList **candidates); static ArioLyrics * ario_lyrics_letras_get_lyrics_from_candidate (ArioLyricsProvider *lyrics_provider, const ArioLyricsCandidate *candidate); G_DEFINE_TYPE (ArioLyricsLetras, ario_lyrics_letras, ARIO_TYPE_LYRICS_PROVIDER) static gchar * ario_lyrics_letras_get_id (ArioLyricsProvider *lyrics_provider) { return "letras"; } static gchar * ario_lyrics_letras_get_name (ArioLyricsProvider *lyrics_provider) { return "Letras"; } static void ario_lyrics_letras_class_init (ArioLyricsLetrasClass *klass) { ARIO_LOG_FUNCTION_START; ArioLyricsProviderClass *lyrics_provider_class = ARIO_LYRICS_PROVIDER_CLASS (klass); lyrics_provider_class->get_id = ario_lyrics_letras_get_id; lyrics_provider_class->get_name = ario_lyrics_letras_get_name; lyrics_provider_class->get_lyrics = ario_lyrics_letras_get_lyrics; lyrics_provider_class->get_lyrics_candidates = ario_lyrics_letras_get_lyrics_candidates; lyrics_provider_class->get_lyrics_from_candidate = ario_lyrics_letras_get_lyrics_from_candidate; } static void ario_lyrics_letras_init (ArioLyricsLetras *lyrics_letras) { ARIO_LOG_FUNCTION_START; } ArioLyricsProvider* ario_lyrics_letras_new (void) { ARIO_LOG_FUNCTION_START; ArioLyricsLetras *letras; letras = g_object_new (TYPE_ARIO_LYRICS_LETRAS, NULL); return ARIO_LYRICS_PROVIDER (letras); } static ArioLyrics * ario_lyrics_letras_parse_file (gchar *data, int size) { ARIO_LOG_FUNCTION_START; ArioLyrics *lyrics = NULL; gchar *begin, *end, *tmp; char *buf; guint i = 0, offset = 0;; if (g_strrstr (data, "cute;sica não encontrada'")) return NULL; begin = strstr (data, "

"); if (!begin) return NULL; begin = strstr (begin, "

"); begin += strlen("

"); end = strstr (begin, "

"); if (!end) return NULL; lyrics = (ArioLyrics *) g_malloc0 (sizeof (ArioLyrics)); lyrics->lyrics = g_strndup (begin, end - begin); ario_util_string_replace (&lyrics->lyrics, "
", "\n"); ario_util_string_replace (&lyrics->lyrics, "

", "\n\n"); tmp = ario_util_convert_from_iso8859 (lyrics->lyrics); g_free (lyrics->lyrics); lyrics->lyrics = tmp; /* Convert encoded characters (like ' -> ') */ buf = (char *) g_malloc0 (strlen(lyrics->lyrics)); for (i = 0; i + offset < strlen(lyrics->lyrics); ++i) { if (!strncmp (lyrics->lyrics + i + offset, "&#", 2)) { int char_nb = atoi (lyrics->lyrics + i + offset + 2); if (char_nb > 0) { buf[i] = char_nb; offset += 5; } else { buf[i] = lyrics->lyrics[i + offset]; } } else { buf[i] = lyrics->lyrics[i + offset]; } } g_free (lyrics->lyrics); lyrics->lyrics = buf; return lyrics; } ArioLyrics * ario_lyrics_letras_get_lyrics (ArioLyricsProvider *lyrics_provider, const char *artist, const char *title, const char *file) { ARIO_LOG_FUNCTION_START; char *uri; int size; char *data; gchar *conv_artist = NULL; gchar *conv_title = NULL; ArioLyrics *lyrics = NULL; if (artist) conv_artist = ario_util_format_for_http (artist); if (title) conv_title = ario_util_format_for_http (title); if (conv_artist && conv_title) uri = g_strdup_printf(LETRAS_URI, conv_artist, conv_title); else if (conv_artist) uri = g_strdup_printf(LETRAS_ARTIST_URI, conv_artist); else if (conv_title) uri = g_strdup_printf(LETRAS_SONG_URI, conv_title); else return NULL; g_free (conv_artist); g_free (conv_title); /* We load file */ ario_util_download_file (uri, NULL, 0, NULL, &size, &data); g_free (uri); if (size == 0) return NULL; lyrics = ario_lyrics_letras_parse_file (data, size); if (lyrics) { lyrics->title = g_strdup (title); lyrics->artist = g_strdup (artist); } g_free (data); return lyrics; } static void ario_lyrics_letras_get_lyrics_candidates (ArioLyricsProvider *lyrics_provider, const gchar *artist, const gchar *title, GSList **candidates) { ARIO_LOG_FUNCTION_START; ArioLyrics *lyrics; ArioLyricsCandidate *candidate; lyrics = ario_lyrics_letras_get_lyrics (lyrics_provider, artist, title, NULL); if (!lyrics) return; candidate = (ArioLyricsCandidate *) g_malloc0 (sizeof (ArioLyricsCandidate)); candidate->artist = g_strdup (lyrics->artist); candidate->title = g_strdup (lyrics->title); candidate->data = g_strdup (lyrics->lyrics); candidate->lyrics_provider = lyrics_provider; *candidates = g_slist_append (*candidates, candidate); ario_lyrics_free (lyrics); } static ArioLyrics * ario_lyrics_letras_get_lyrics_from_candidate (ArioLyricsProvider *lyrics_provider, const ArioLyricsCandidate *candidate) { ARIO_LOG_FUNCTION_START; ArioLyrics *lyrics; lyrics = (ArioLyrics *) g_malloc0 (sizeof (ArioLyrics)); lyrics->artist = g_strdup (candidate->artist); lyrics->title = g_strdup (candidate->title); lyrics->lyrics = g_strdup (candidate->data); ario_lyrics_prepend_infos (lyrics); ario_lyrics_save_lyrics (candidate->artist, candidate->title, lyrics->lyrics); return lyrics; } ario-1.6/src/lyrics/ario-lyrics-provider.h0000644000175000017500000001100213226723435015566 00000000000000/* * Copyright (C) 2008 Marc Pavot * * 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, 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * */ #ifndef __ARIO_LYRICS_PROVIDER_H__ #define __ARIO_LYRICS_PROVIDER_H__ typedef struct _ArioLyricsProvider ArioLyricsProvider; #include #include "lyrics/ario-lyrics.h" G_BEGIN_DECLS /* * Type checking and casting macros */ #define ARIO_TYPE_LYRICS_PROVIDER (ario_lyrics_provider_get_type()) #define ARIO_LYRICS_PROVIDER(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), ARIO_TYPE_LYRICS_PROVIDER, ArioLyricsProvider)) #define ARIO_LYRICS_PROVIDER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), ARIO_TYPE_LYRICS_PROVIDER, ArioLyricsProviderClass)) #define ARIO_IS_LYRICS_PROVIDER(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), ARIO_TYPE_LYRICS_PROVIDER)) #define ARIO_IS_LYRICS_PROVIDER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), ARIO_TYPE_LYRICS_PROVIDER)) #define ARIO_LYRICS_PROVIDER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), ARIO_TYPE_LYRICS_PROVIDER, ArioLyricsProviderClass)) /* * Main object structure */ struct _ArioLyricsProvider { GObject parent; gboolean is_active; }; /* * Class definition */ typedef struct { GObjectClass parent_class; /* Virtual public methods */ gchar* (*get_id) (ArioLyricsProvider *lyrics_provider); gchar* (*get_name) (ArioLyricsProvider *lyrics_provider); ArioLyrics* (*get_lyrics) (ArioLyricsProvider *lyrics_provider, const char *artist, const char *song, const char *file); void (*get_lyrics_candidates) (ArioLyricsProvider *lyrics_provider, const gchar *artist, const gchar *song, GSList **candidates); ArioLyrics* (*get_lyrics_from_candidate) (ArioLyricsProvider *lyrics_provider, const ArioLyricsCandidate *candidate); } ArioLyricsProviderClass; /* * Public methods */ GType ario_lyrics_provider_get_type (void) G_GNUC_CONST; gchar* ario_lyrics_provider_get_id (ArioLyricsProvider *lyrics_provider); gchar* ario_lyrics_provider_get_name (ArioLyricsProvider *lyrics_provider); ArioLyrics* ario_lyrics_provider_get_lyrics (ArioLyricsProvider *lyrics_provider, const char *artist, const char *song, const char *file); void ario_lyrics_provider_get_lyrics_candidates (ArioLyricsProvider *lyrics_provider, const gchar *artist, const gchar *song, GSList **candidates); ArioLyrics* ario_lyrics_provider_get_lyrics_from_candidate (ArioLyricsProvider *lyrics_provider, const ArioLyricsCandidate *candidate); gboolean ario_lyrics_provider_is_active (ArioLyricsProvider *lyrics_provider); void ario_lyrics_provider_set_active (ArioLyricsProvider *lyrics_provider, gboolean is_active); G_END_DECLS #endif /* __ARIO_LYRICS_PROVIDER_H__ */ ario-1.6/src/lyrics/ario-lyrics-manager.h0000644000175000017500000000764413226723432015364 00000000000000/* * Copyright (C) 2005 Marc Pavot * * 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, 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * */ #ifndef __ARIO_LYRICS_MANAGER_H #define __ARIO_LYRICS_MANAGER_H #include #include "lyrics/ario-lyrics-provider.h" G_BEGIN_DECLS #define TYPE_ARIO_LYRICS_MANAGER (ario_lyrics_manager_get_type ()) #define ARIO_LYRICS_MANAGER(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), TYPE_ARIO_LYRICS_MANAGER, ArioLyricsManager)) #define ARIO_LYRICS_MANAGER_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), TYPE_ARIO_LYRICS_MANAGER, ArioLyricsManagerClass)) #define IS_ARIO_LYRICS_MANAGER(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), TYPE_ARIO_LYRICS_MANAGER)) #define IS_ARIO_LYRICS_MANAGER_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), TYPE_ARIO_LYRICS_MANAGER)) #define ARIO_LYRICS_MANAGER_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), TYPE_ARIO_LYRICS_MANAGER, ArioLyricsManagerClass)) typedef struct ArioLyricsManagerPrivate ArioLyricsManagerPrivate; typedef struct { GObject parent; ArioLyricsManagerPrivate *priv; } ArioLyricsManager; typedef struct { GObjectClass parent; } ArioLyricsManagerClass; GType ario_lyrics_manager_get_type (void) G_GNUC_CONST; ArioLyricsManager* ario_lyrics_manager_get_instance (void); void ario_lyrics_manager_add_provider (ArioLyricsManager *lyrics_manager, ArioLyricsProvider *lyrics_provider); void ario_lyrics_manager_remove_provider (ArioLyricsManager *lyrics_manager, ArioLyricsProvider *lyrics_provider); void ario_lyrics_manager_update_providers (ArioLyricsManager *lyrics_manager); GSList* ario_lyrics_manager_get_providers (ArioLyricsManager *lyrics_manager); void ario_lyrics_manager_set_providers (ArioLyricsManager *lyrics_manager, GSList *providers); ArioLyricsProvider* ario_lyrics_manager_get_provider_from_id (ArioLyricsManager *lyrics_manager, const gchar *id); void ario_lyrics_manager_shutdown (ArioLyricsManager *lyrics_manager); ArioLyrics* ario_lyrics_manager_get_lyrics (ArioLyricsManager *lyrics_manager, const char *artist, const char *song, const char *file); void ario_lyrics_manager_get_lyrics_candidates (ArioLyricsManager *lyrics_manager, const gchar *artist, const gchar *song, GSList **candidates); G_END_DECLS #endif /* __ARIO_LYRICS_MANAGER_H */ ario-1.6/src/lyrics/ario-lyrics-manager.c0000644000175000017500000002324013226723432015345 00000000000000/* * Copyright (C) 2005 Marc Pavot * * 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, 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * */ #include "lyrics/ario-lyrics-manager.h" #include #include #include #include #include "lib/ario-conf.h" #include "lyrics/ario-lyrics-letras.h" #include "lyrics/ario-lyrics.h" #include "preferences/ario-preferences.h" #include "ario-debug.h" struct ArioLyricsManagerPrivate { GSList *providers; }; #define ARIO_LYRICS_MANAGER_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_ARIO_LYRICS_MANAGER, ArioLyricsManagerPrivate)) G_DEFINE_TYPE (ArioLyricsManager, ario_lyrics_manager, G_TYPE_OBJECT) static void ario_lyrics_manager_class_init (ArioLyricsManagerClass *klass) { ARIO_LOG_FUNCTION_START; g_type_class_add_private (klass, sizeof (ArioLyricsManagerPrivate)); } static void ario_lyrics_manager_init (ArioLyricsManager *lyrics_manager) { ARIO_LOG_FUNCTION_START; lyrics_manager->priv = ARIO_LYRICS_MANAGER_GET_PRIVATE (lyrics_manager); } ArioLyricsManager * ario_lyrics_manager_get_instance (void) { ARIO_LOG_FUNCTION_START; static ArioLyricsManager *lyrics_manager = NULL; if (!lyrics_manager) { ArioLyricsProvider *lyrics_provider; lyrics_manager = g_object_new (TYPE_ARIO_LYRICS_MANAGER, NULL); g_return_val_if_fail (lyrics_manager->priv != NULL, NULL); lyrics_provider = ario_lyrics_letras_new (); ario_lyrics_manager_add_provider (lyrics_manager, ARIO_LYRICS_PROVIDER (lyrics_provider)); ario_lyrics_manager_update_providers (lyrics_manager); } return ARIO_LYRICS_MANAGER (lyrics_manager); } static void ario_lyrics_manager_shutdown_foreach (ArioLyricsProvider *lyrics_provider, GSList **providers) { *providers = g_slist_append (*providers, ario_lyrics_provider_get_id (lyrics_provider)); } static void ario_lyrics_manager_shutdown_active_foreach (ArioLyricsProvider *lyrics_provider, GSList **providers) { if (ario_lyrics_provider_is_active (lyrics_provider)) *providers = g_slist_append (*providers, ario_lyrics_provider_get_id (lyrics_provider)); } void ario_lyrics_manager_shutdown (ArioLyricsManager *lyrics_manager) { GSList *providers = NULL; GSList *active_providers = NULL; g_slist_foreach (lyrics_manager->priv->providers, (GFunc) ario_lyrics_manager_shutdown_foreach, &providers); g_slist_foreach (lyrics_manager->priv->providers, (GFunc) ario_lyrics_manager_shutdown_active_foreach, &active_providers); ario_conf_set_string_slist (PREF_LYRICS_PROVIDERS_LIST, providers); ario_conf_set_string_slist (PREF_LYRICS_ACTIVE_PROVIDERS_LIST, active_providers); g_slist_free (providers); g_slist_free (active_providers); } static gint ario_lyrics_manager_compare_providers (ArioLyricsProvider *lyrics_provider, const gchar *id) { return strcmp (ario_lyrics_provider_get_id (lyrics_provider), id); } void ario_lyrics_manager_update_providers (ArioLyricsManager *lyrics_manager) { ARIO_LOG_FUNCTION_START; GSList *conf_tmp; GSList *conf_providers; GSList *conf_active_providers; GSList *found; GSList *providers = NULL; ArioLyricsProvider *lyrics_provider; conf_providers = ario_conf_get_string_slist (PREF_LYRICS_PROVIDERS_LIST, PREF_LYRICS_PROVIDERS_LIST_DEFAULT); for (conf_tmp = conf_providers; conf_tmp; conf_tmp = g_slist_next (conf_tmp)) { found = g_slist_find_custom (lyrics_manager->priv->providers, conf_tmp->data, (GCompareFunc) ario_lyrics_manager_compare_providers); if (found) { providers = g_slist_append (providers, found->data); } } g_slist_foreach (conf_providers, (GFunc) g_free, NULL); g_slist_free (conf_providers); conf_active_providers = ario_conf_get_string_slist (PREF_LYRICS_ACTIVE_PROVIDERS_LIST, PREF_LYRICS_ACTIVE_PROVIDERS_LIST_DEFAULT); for (conf_tmp = conf_active_providers; conf_tmp; conf_tmp = g_slist_next (conf_tmp)) { found = g_slist_find_custom (providers, conf_tmp->data, (GCompareFunc) ario_lyrics_manager_compare_providers); if (found) { lyrics_provider = found->data; ario_lyrics_provider_set_active (lyrics_provider, TRUE); } } g_slist_foreach (conf_active_providers, (GFunc) g_free, NULL); g_slist_free (conf_active_providers); for (conf_tmp = lyrics_manager->priv->providers; conf_tmp; conf_tmp = g_slist_next (conf_tmp)) { if (!g_slist_find (providers, conf_tmp->data)) { providers = g_slist_append (providers, conf_tmp->data); } } g_slist_free (lyrics_manager->priv->providers); lyrics_manager->priv->providers = providers; } GSList* ario_lyrics_manager_get_providers (ArioLyricsManager *lyrics_manager) { ARIO_LOG_FUNCTION_START; return lyrics_manager->priv->providers; } void ario_lyrics_manager_set_providers (ArioLyricsManager *lyrics_manager, GSList *providers) { ARIO_LOG_FUNCTION_START; lyrics_manager->priv->providers = providers; } ArioLyricsProvider* ario_lyrics_manager_get_provider_from_id (ArioLyricsManager *lyrics_manager, const gchar *id) { ARIO_LOG_FUNCTION_START; GSList *found; found = g_slist_find_custom (lyrics_manager->priv->providers, id, (GCompareFunc) ario_lyrics_manager_compare_providers); return ARIO_LYRICS_PROVIDER (found->data); } void ario_lyrics_manager_add_provider (ArioLyricsManager *lyrics_manager, ArioLyricsProvider *lyrics_provider) { ARIO_LOG_FUNCTION_START; lyrics_manager->priv->providers = g_slist_append (lyrics_manager->priv->providers, lyrics_provider); } void ario_lyrics_manager_remove_provider (ArioLyricsManager *lyrics_manager, ArioLyricsProvider *lyrics_provider) { ARIO_LOG_FUNCTION_START; lyrics_manager->priv->providers = g_slist_remove (lyrics_manager->priv->providers, lyrics_provider); } ArioLyrics * ario_lyrics_manager_get_lyrics (ArioLyricsManager *lyrics_manager, const char *artist, const char *song, const char *file) { ARIO_LOG_FUNCTION_START; GSList *tmp; ArioLyricsProvider *lyrics_provider; ArioLyrics *lyrics = NULL; if (ario_lyrics_lyrics_exists (artist, song)) { lyrics = ario_lyrics_get_local_lyrics (artist, song); } if (lyrics) return lyrics; for (tmp = lyrics_manager->priv->providers; tmp; tmp = g_slist_next (tmp)) { lyrics_provider = tmp->data; if (!ario_lyrics_provider_is_active (lyrics_provider)) continue; ARIO_LOG_DBG ("looking for lyrics using provider:%s for song:%s\n", ario_lyrics_provider_get_name (lyrics_provider), song); lyrics = ario_lyrics_provider_get_lyrics (lyrics_provider, artist, song, file); if (lyrics) break; } if (lyrics) { ario_lyrics_prepend_infos (lyrics); ario_lyrics_save_lyrics (artist, song, lyrics->lyrics); } return lyrics; } void ario_lyrics_manager_get_lyrics_candidates (ArioLyricsManager *lyrics_manager, const gchar *artist, const gchar *song, GSList **candidates) { ARIO_LOG_FUNCTION_START; GSList *tmp; ArioLyricsProvider *lyrics_provider; for (tmp = lyrics_manager->priv->providers; tmp; tmp = g_slist_next (tmp)) { lyrics_provider = tmp->data; if (!ario_lyrics_provider_is_active (lyrics_provider)) continue; ario_lyrics_provider_get_lyrics_candidates (lyrics_provider, artist, song, candidates); } } ario-1.6/src/lyrics/ario-lyrics-provider.c0000644000175000017500000001077013226723435015574 00000000000000/* * Copyright (C) 2008 Marc Pavot * * 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, 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * */ #include "lyrics/ario-lyrics-provider.h" #include #include "ario-debug.h" G_DEFINE_TYPE (ArioLyricsProvider, ario_lyrics_provider, G_TYPE_OBJECT) static ArioLyrics * dummy_lyrics (ArioLyricsProvider *lyrics_provider, const char *artist, const char *song, const char *file) { return NULL; } static gchar * dummy_char (ArioLyricsProvider *lyrics_provider) { return NULL; } static void dummy_void (ArioLyricsProvider *lyrics_provider, const gchar *artist, const gchar *song, GSList **candidates) { } static ArioLyrics * dummy_lyrics_candidate (ArioLyricsProvider *lyrics_provider, const ArioLyricsCandidate *candidate) { return NULL; } static void ario_lyrics_provider_class_init (ArioLyricsProviderClass *klass) { klass->get_id = dummy_char; klass->get_name = dummy_char; klass->get_lyrics = dummy_lyrics; klass->get_lyrics_candidates = dummy_void; klass->get_lyrics_from_candidate = dummy_lyrics_candidate; } static void ario_lyrics_provider_init (ArioLyricsProvider *lyrics_provider) { lyrics_provider->is_active = FALSE; } gchar * ario_lyrics_provider_get_id (ArioLyricsProvider *lyrics_provider) { g_return_val_if_fail (ARIO_IS_LYRICS_PROVIDER (lyrics_provider), FALSE); return ARIO_LYRICS_PROVIDER_GET_CLASS (lyrics_provider)->get_id (lyrics_provider); } gchar * ario_lyrics_provider_get_name (ArioLyricsProvider *lyrics_provider) { g_return_val_if_fail (ARIO_IS_LYRICS_PROVIDER (lyrics_provider), FALSE); return ARIO_LYRICS_PROVIDER_GET_CLASS (lyrics_provider)->get_name (lyrics_provider); } void ario_lyrics_provider_get_lyrics_candidates (ArioLyricsProvider *lyrics_provider, const gchar *artist, const gchar *song, GSList **candidates) { g_return_if_fail (ARIO_IS_LYRICS_PROVIDER (lyrics_provider)); ARIO_LYRICS_PROVIDER_GET_CLASS (lyrics_provider)->get_lyrics_candidates (lyrics_provider, artist, song, candidates); } ArioLyrics * ario_lyrics_provider_get_lyrics_from_candidate (ArioLyricsProvider *lyrics_provider, const ArioLyricsCandidate *candidate) { g_return_val_if_fail (ARIO_IS_LYRICS_PROVIDER (lyrics_provider), NULL); return ARIO_LYRICS_PROVIDER_GET_CLASS (lyrics_provider)->get_lyrics_from_candidate (lyrics_provider, candidate); } ArioLyrics * ario_lyrics_provider_get_lyrics (ArioLyricsProvider *lyrics_provider, const char *artist, const char *song, const char *file) { g_return_val_if_fail (ARIO_IS_LYRICS_PROVIDER (lyrics_provider), NULL); return ARIO_LYRICS_PROVIDER_GET_CLASS (lyrics_provider)->get_lyrics (lyrics_provider, artist, song, file); } gboolean ario_lyrics_provider_is_active (ArioLyricsProvider *lyrics_provider) { ARIO_LOG_FUNCTION_START; return lyrics_provider->is_active; } void ario_lyrics_provider_set_active (ArioLyricsProvider *lyrics_provider, gboolean is_active) { ARIO_LOG_FUNCTION_START; lyrics_provider->is_active = is_active; } ario-1.6/src/lyrics/ario-lyrics-letras.h0000644000175000017500000000355613226723432015242 00000000000000/* * Copyright (C) 2004,2005 Marc Pavot * * 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * */ #ifndef __ARIO_LYRICS_LETRAS_H #define __ARIO_LYRICS_LETRAS_H #include "lyrics/ario-lyrics-provider.h" G_BEGIN_DECLS #define TYPE_ARIO_LYRICS_LETRAS (ario_lyrics_letras_get_type ()) #define ARIO_LYRICS_LETRAS(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), TYPE_ARIO_LYRICS_LETRAS, ArioLyricsLetras)) #define ARIO_LYRICS_LETRAS_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), TYPE_ARIO_LYRICS_LETRAS, ArioLyricsLetrasClass)) #define IS_ARIO_LYRICS_LETRAS(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), TYPE_ARIO_LYRICS_LETRAS)) #define IS_ARIO_LYRICS_LETRAS_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), TYPE_ARIO_LYRICS_LETRAS)) #define ARIO_LYRICS_LETRAS_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), TYPE_ARIO_LYRICS_LETRAS, ArioLyricsLetrasClass)) typedef struct { ArioLyricsProvider parent; } ArioLyricsLetras; typedef struct { ArioLyricsProviderClass parent; } ArioLyricsLetrasClass; GType ario_lyrics_letras_get_type (void) G_GNUC_CONST; ArioLyricsProvider* ario_lyrics_letras_new (void); G_END_DECLS #endif /* __ARIO_LYRICS_LETRAS_H */ ario-1.6/src/lyrics/ario-lyrics.h0000644000175000017500000000504613226723432013746 00000000000000/* * Copyright (C) 2004,2005 Marc Pavot * * 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * */ #ifndef __ARIO_LYRICS_H #define __ARIO_LYRICS_H typedef struct _ArioLyrics ArioLyrics; typedef struct _ArioLyricsCandidate ArioLyricsCandidate; #include "lyrics/ario-lyrics-provider.h" struct _ArioLyrics { gchar *artist; gchar *title; gchar *lyrics; }; struct _ArioLyricsCandidate { gchar *artist; gchar *title; gchar *data; ArioLyricsProvider *lyrics_provider; }; ArioLyrics * ario_lyrics_get_local_lyrics (const gchar *artist, const gchar *title); void ario_lyrics_free (ArioLyrics *lyrics); void ario_lyrics_candidate_free (ArioLyricsCandidate *candidate); ArioLyricsCandidate * ario_lyrics_candidate_copy (const ArioLyricsCandidate *candidate); gboolean ario_lyrics_save_lyrics (const gchar *artist, const gchar *title, const gchar *lyrics); void ario_lyrics_remove_lyrics (const gchar *artist, const gchar *title); gboolean ario_lyrics_lyrics_exists (const gchar *artist, const gchar *title); gchar* ario_lyrics_make_lyrics_path (const gchar *artist, const gchar *title); void ario_lyrics_prepend_infos (ArioLyrics *lyrics); G_END_DECLS #endif /* __ARIO_LYRICS_H */ ario-1.6/src/lyrics/ario-lyrics.c0000644000175000017500000001403713226723432013741 00000000000000/* * Copyright (C) 2004,2005 Marc Pavot * * 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * */ #include "ario-lyrics.h" #include #include #include #include "ario-util.h" #include "ario-debug.h" static void ario_lyrics_create_ario_lyrics_dir (void); gchar* ario_lyrics_make_lyrics_path (const gchar *artist, const gchar *title) { ARIO_LOG_FUNCTION_START; char *ario_lyrics_path; char *filename; filename = g_strdup_printf ("%s-%s.txt", artist, title); ario_util_sanitize_filename (filename); /* The returned path is ~/.config/ario/lyrics/filename */ ario_lyrics_path = g_build_filename (ario_util_config_dir (), "lyrics", filename, NULL); g_free (filename); return ario_lyrics_path; } static void ario_lyrics_create_ario_lyrics_dir (void) { ARIO_LOG_FUNCTION_START; gchar *ario_lyrics_dir; ario_lyrics_dir = g_build_filename (ario_util_config_dir (), "lyrics", NULL); /* If the lyrics directory doesn't exist, we create it */ if (!ario_util_uri_exists (ario_lyrics_dir)) ario_util_mkdir (ario_lyrics_dir); g_free (ario_lyrics_dir); } void ario_lyrics_remove_lyrics (const gchar *artist, const gchar *title) { ARIO_LOG_FUNCTION_START; gchar *ario_lyrics_path; if (!ario_lyrics_lyrics_exists (artist, title)) return; /* Delete the lyrics*/ ario_lyrics_path = ario_lyrics_make_lyrics_path (artist, title); if (ario_util_uri_exists (ario_lyrics_path)) ario_util_unlink_uri (ario_lyrics_path); g_free (ario_lyrics_path); } ArioLyrics * ario_lyrics_get_local_lyrics (const gchar *artist, const gchar *title) { ARIO_LOG_FUNCTION_START; ArioLyrics *lyrics = NULL; gchar *ario_lyrics_path; gchar *read_data; if (!ario_lyrics_lyrics_exists (artist, title)) return NULL; ario_lyrics_path = ario_lyrics_make_lyrics_path (artist, title); if (ario_file_get_contents (ario_lyrics_path, &read_data, NULL, NULL)) { lyrics = (ArioLyrics *) g_malloc0 (sizeof (ArioLyrics)); lyrics->lyrics = read_data; lyrics->artist = g_strdup (artist); lyrics->title = g_strdup (title); } g_free (ario_lyrics_path); return lyrics; } void ario_lyrics_free (ArioLyrics *lyrics) { if (lyrics) { g_free (lyrics->artist); g_free (lyrics->title); g_free (lyrics->lyrics); g_free (lyrics); } } void ario_lyrics_candidate_free (ArioLyricsCandidate *candidate) { if (candidate) { g_free (candidate->artist); g_free (candidate->title); g_free (candidate->data); g_free (candidate); } } ArioLyricsCandidate * ario_lyrics_candidate_copy (const ArioLyricsCandidate *candidate) { ArioLyricsCandidate *ret; ret = (ArioLyricsCandidate *) g_malloc (sizeof (ArioLyricsCandidate)); ret->artist = g_strdup (candidate->artist); ret->title = g_strdup (candidate->title); ret->data = g_strdup (candidate->data); ret->lyrics_provider = candidate->lyrics_provider; return ret; } gboolean ario_lyrics_save_lyrics (const gchar *artist, const gchar *title, const gchar *lyrics) { ARIO_LOG_FUNCTION_START; gboolean ret; gchar *ario_lyrics_path; if (!artist || !title || !lyrics) return FALSE; /* If the lyrics directory doesn't exist, we create it */ ario_lyrics_create_ario_lyrics_dir (); /* The path for the lyrics */ ario_lyrics_path = ario_lyrics_make_lyrics_path (artist, title); ret = ario_file_set_contents (ario_lyrics_path, lyrics, -1, NULL); g_free (ario_lyrics_path); return ret; } gboolean ario_lyrics_lyrics_exists (const gchar *artist, const gchar *title) { ARIO_LOG_FUNCTION_START; gchar *ario_lyrics_path; gboolean result; /* The path for the lyrics */ ario_lyrics_path = ario_lyrics_make_lyrics_path (artist, title); result = ario_util_uri_exists (ario_lyrics_path); g_free (ario_lyrics_path); return result; } void ario_lyrics_prepend_infos (ArioLyrics *lyrics) { GString *string; gchar *toprepend; if (!lyrics) return; if (lyrics->artist && lyrics->title) { toprepend = g_strdup_printf ("%s - %s\n\n", lyrics->artist, lyrics->title); } else if (lyrics->artist) { toprepend = g_strdup_printf ("%s\n\n", lyrics->artist); } else if (lyrics->title) { toprepend = g_strdup_printf ("%s\n\n", lyrics->title); } else { return; } string = g_string_new (lyrics->lyrics); string = g_string_prepend (string, toprepend); g_free (lyrics->lyrics); lyrics->lyrics = g_string_free (string, FALSE); g_free (toprepend); } ario-1.6/src/playlist/0000755000175000017500000000000013226745613011754 500000000000000ario-1.6/src/playlist/ario-playlist-manager.c0000644000175000017500000001276713226723433016252 00000000000000/* * Copyright (C) 2009 Marc Pavot * * 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, 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * */ #include #include #include #include #include "lib/ario-conf.h" #include "playlist/ario-playlist-manager.h" #include "playlist/ario-playlist-normal.h" #include "playlist/ario-playlist-queue.h" #include "playlist/ario-playlist-dynamic.h" #include "servers/ario-server.h" #include "preferences/ario-preferences.h" #include "ario-debug.h" static void ario_playlist_manager_class_init (ArioPlaylistManagerClass *klass); static void ario_playlist_manager_init (ArioPlaylistManager *playlist_manager); struct ArioPlaylistManagerPrivate { GSList *modes; }; #define ARIO_PLAYLIST_MANAGER_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_ARIO_PLAYLIST_MANAGER, ArioPlaylistManagerPrivate)) G_DEFINE_TYPE (ArioPlaylistManager, ario_playlist_manager, G_TYPE_OBJECT) static void ario_playlist_manager_class_init (ArioPlaylistManagerClass *klass) { ARIO_LOG_FUNCTION_START; /* Private attributes */ g_type_class_add_private (klass, sizeof (ArioPlaylistManagerPrivate)); } static void ario_playlist_manager_init (ArioPlaylistManager *playlist_manager) { ARIO_LOG_FUNCTION_START; playlist_manager->priv = ARIO_PLAYLIST_MANAGER_GET_PRIVATE (playlist_manager); } static void ario_playlist_manager_song_changed_cb (ArioServer *server, ArioPlaylist *playlist) { ARIO_LOG_FUNCTION_START; ArioPlaylistMode *mode; ArioServerSong *song = ario_server_get_current_song (); const gchar *id = ario_conf_get_string (PREF_PLAYLIST_MODE, PREF_PLAYLIST_MODE_DEFAULT); mode = ario_playlist_manager_get_mode_from_id (ario_playlist_manager_get_instance (), id); ario_playlist_mode_next_song (mode, playlist); if (song && (song->pos == ario_server_get_current_playlist_length () - 1)) { if (mode) ario_playlist_mode_last_song (mode, playlist); } } ArioPlaylistManager * ario_playlist_manager_get_instance (void) { ARIO_LOG_FUNCTION_START; static ArioPlaylistManager *playlist_manager = NULL; if (!playlist_manager) { ArioPlaylistMode *playlist_mode; playlist_manager = g_object_new (TYPE_ARIO_PLAYLIST_MANAGER, NULL); g_return_val_if_fail (playlist_manager->priv != NULL, NULL); playlist_mode = ario_playlist_normal_new (); ario_playlist_manager_add_mode (playlist_manager, playlist_mode); playlist_mode = ario_playlist_queue_new (); ario_playlist_manager_add_mode (playlist_manager, playlist_mode); playlist_mode = ario_playlist_dynamic_new (); ario_playlist_manager_add_mode (playlist_manager, playlist_mode); g_signal_connect (ario_server_get_instance (), "song_changed", G_CALLBACK (ario_playlist_manager_song_changed_cb), playlist_manager); } return ARIO_PLAYLIST_MANAGER (playlist_manager); } GSList* ario_playlist_manager_get_modes (ArioPlaylistManager *playlist_manager) { ARIO_LOG_FUNCTION_START; return playlist_manager->priv->modes; } static gint ario_playlist_manager_compare_modes (ArioPlaylistMode *playlist_mode, const gchar *id) { return strcmp (ario_playlist_mode_get_id (playlist_mode), id); } ArioPlaylistMode* ario_playlist_manager_get_mode_from_id (ArioPlaylistManager *playlist_manager, const gchar *id) { ARIO_LOG_FUNCTION_START; GSList *found; if (!id) return NULL; found = g_slist_find_custom (playlist_manager->priv->modes, id, (GCompareFunc) ario_playlist_manager_compare_modes); if (!found) return NULL; return ARIO_PLAYLIST_MODE (found->data); } void ario_playlist_manager_add_mode (ArioPlaylistManager *playlist_manager, ArioPlaylistMode *playlist_mode) { ARIO_LOG_FUNCTION_START; playlist_manager->priv->modes = g_slist_append (playlist_manager->priv->modes, playlist_mode); } void ario_playlist_manager_remove_mode (ArioPlaylistManager *playlist_manager, ArioPlaylistMode *playlist_mode) { ARIO_LOG_FUNCTION_START; playlist_manager->priv->modes = g_slist_remove (playlist_manager->priv->modes, playlist_mode); } ario-1.6/src/playlist/ario-playlist-dynamic.c0000644000175000017500000003145113226723433016253 00000000000000/* * Copyright (C) 2009 Marc Pavot * * 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * */ #include #include #include #include "lib/ario-conf.h" #include "playlist/ario-playlist-dynamic.h" #include "shell/ario-shell-similarartists.h" #include "servers/ario-server.h" #include "ario-util.h" #include "preferences/ario-preferences.h" #include "ario-debug.h" static void ario_playlist_dynamic_class_init (ArioPlaylistDynamicClass *klass); static void ario_playlist_dynamic_init (ArioPlaylistDynamic *playlist_dynamic); static void ario_playlist_dynamic_last_song (ArioPlaylistMode *playlist_mode, ArioPlaylist *playlist); static GtkWidget* ario_playlist_dynamic_get_config (ArioPlaylistMode *playlist_mode); static GObjectClass *parent_class = NULL; typedef enum { SONGS_FROM_SAME_ARTIST, SONGS_FROM_SAME_ALBUM, SONGS_FROM_SIMILAR_ARTISTS, ALBUMS_FROM_SAME_ARTIST, ALBUMS_FROM_SIMILAR_ARTISTS } ArioDynamicType; static const char *dynamic_type[] = { N_("songs of same artist"), N_("songs of same album"), N_("songs of similar artists"), N_("albums of same artists"), N_("albums of similar artists"), NULL }; #define ARIO_PLAYLIST_DYNAMIC_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_ARIO_PLAYLIST_DYNAMIC, ArioPlaylistDynamicPrivate)) G_DEFINE_TYPE (ArioPlaylistDynamic, ario_playlist_dynamic, ARIO_TYPE_PLAYLIST_MODE) static gchar * ario_playlist_dynamic_get_id (ArioPlaylistMode *playlist_mode) { return "dynamic"; } static gchar * ario_playlist_dynamic_get_name (ArioPlaylistMode *playlist_mode) { return _("Dynamic Playlist"); } static void ario_playlist_dynamic_class_init (ArioPlaylistDynamicClass *klass) { ARIO_LOG_FUNCTION_START; ArioPlaylistModeClass *playlist_mode_class = ARIO_PLAYLIST_MODE_CLASS (klass); parent_class = g_type_class_peek_parent (klass); playlist_mode_class->get_id = ario_playlist_dynamic_get_id; playlist_mode_class->get_name = ario_playlist_dynamic_get_name; playlist_mode_class->last_song = ario_playlist_dynamic_last_song; playlist_mode_class->get_config = ario_playlist_dynamic_get_config; } static void ario_playlist_dynamic_init (ArioPlaylistDynamic *playlist_dynamic) { ARIO_LOG_FUNCTION_START; } ArioPlaylistMode* ario_playlist_dynamic_new (void) { ARIO_LOG_FUNCTION_START; ArioPlaylistDynamic *dynamic; dynamic = g_object_new (TYPE_ARIO_PLAYLIST_DYNAMIC, NULL); return ARIO_PLAYLIST_MODE (dynamic); } static void ario_playlist_dynamic_last_song (ArioPlaylistMode *playlist_mode, ArioPlaylist *playlist) { ARIO_LOG_FUNCTION_START; GSList *artists = NULL; GSList *albums = NULL, *tmp, *tmp_artist; ArioServerAtomicCriteria atomic_criteria1; ArioServerAtomicCriteria atomic_criteria2; ArioServerCriteria *criteria = NULL; GSList *criterias = NULL; int nbitems = ario_conf_get_integer (PREF_DYNAMIC_NBITEMS, PREF_DYNAMIC_NBITEMS_DEFAULT); char * artist = ario_server_get_current_artist (); if (!artist) return; switch (ario_conf_get_integer (PREF_DYNAMIC_TYPE, PREF_DYNAMIC_TYPE_DEFAULT)) { case SONGS_FROM_SAME_ARTIST: artists = g_slist_append (artists, artist); ario_server_playlist_append_artists (artists, PLAYLIST_ADD, nbitems); g_slist_free (artists); break; case SONGS_FROM_SAME_ALBUM: atomic_criteria1.tag = ARIO_TAG_ARTIST; atomic_criteria1.value = artist; atomic_criteria2.tag = ARIO_TAG_ALBUM; atomic_criteria2.value = ario_server_get_current_album (); criteria = g_slist_append (criteria, &atomic_criteria1); criteria = g_slist_append (criteria, &atomic_criteria2); criterias = g_slist_append (criterias, criteria); ario_server_playlist_append_criterias (criterias, PLAYLIST_ADD, nbitems); g_slist_free (criteria); g_slist_free (criterias); break; case SONGS_FROM_SIMILAR_ARTISTS: ario_shell_similarartists_add_similar_to_playlist (artist, nbitems); break; case ALBUMS_FROM_SAME_ARTIST: atomic_criteria1.tag = ARIO_TAG_ARTIST; atomic_criteria1.value = ario_server_get_current_artist (); criteria = g_slist_append (criteria, &atomic_criteria1); albums = ario_server_get_albums (criteria); g_slist_free (criteria); tmp = ario_util_gslist_randomize (&albums, nbitems); g_slist_foreach (albums, (GFunc) ario_server_free_album, NULL); g_slist_free (albums); albums = tmp; for (tmp = albums; tmp; tmp = g_slist_next (tmp)) { ArioServerAlbum *album = tmp->data; atomic_criteria1.tag = ARIO_TAG_ARTIST; atomic_criteria1.value = album->artist; atomic_criteria2.tag = ARIO_TAG_ALBUM; atomic_criteria2.value = album->album; criteria = NULL; criteria = g_slist_append (criteria, &atomic_criteria1); criteria = g_slist_append (criteria, &atomic_criteria2); criterias = NULL; criterias = g_slist_append (criterias, criteria); ario_server_playlist_append_criterias (criterias, PLAYLIST_ADD, -1); g_slist_free (criteria); g_slist_free (criterias); } g_slist_foreach (albums, (GFunc) ario_server_free_album, NULL); g_slist_free (albums); break; case ALBUMS_FROM_SIMILAR_ARTISTS: artists = ario_shell_similarartists_get_similar_artists (artist); for (tmp_artist = artists; tmp_artist; tmp_artist = g_slist_next (tmp_artist)) { ArioSimilarArtist *artist = tmp_artist->data; atomic_criteria1.tag = ARIO_TAG_ARTIST; atomic_criteria1.value = (gchar*) artist->name; criteria = NULL; criteria = g_slist_append (criteria, &atomic_criteria1); albums = g_slist_concat (albums, ario_server_get_albums (criteria)); g_slist_free (criteria); } g_slist_foreach (artists, (GFunc) ario_shell_similarartists_free_similarartist, NULL); g_slist_free (artists); tmp = ario_util_gslist_randomize (&albums, nbitems); g_slist_foreach (albums, (GFunc) ario_server_free_album, NULL); g_slist_free (albums); albums = tmp; for (tmp = albums; tmp; tmp = g_slist_next (tmp)) { ArioServerAlbum *album = tmp->data; atomic_criteria1.tag = ARIO_TAG_ARTIST; atomic_criteria1.value = album->artist; atomic_criteria2.tag = ARIO_TAG_ALBUM; atomic_criteria2.value = album->album; criteria = NULL; criteria = g_slist_append (criteria, &atomic_criteria1); criteria = g_slist_append (criteria, &atomic_criteria2); criterias = NULL; criterias = g_slist_append (criterias, criteria); ario_server_playlist_append_criterias (criterias, PLAYLIST_ADD, -1); g_slist_free (criteria); g_slist_free (criterias); } g_slist_foreach (albums, (GFunc) ario_server_free_album, NULL); g_slist_free (albums); break; default: break; } } static void ario_playlist_dynamic_type_combobox_changed_cb (GtkComboBox *combobox, ArioPlaylistMode *playlist_mode) { ARIO_LOG_FUNCTION_START; GtkTreeIter iter; int type; gtk_combo_box_get_active_iter (combobox, &iter); gtk_tree_model_get (gtk_combo_box_get_model (combobox), &iter, 1, &type, -1); ario_conf_set_integer (PREF_DYNAMIC_TYPE, type); } static void ario_playlist_dynamic_nbitems_changed_cb (GtkWidget *widget, ArioPlaylistMode *playlist_mode) { ARIO_LOG_FUNCTION_START; gdouble nbitems = gtk_spin_button_get_value (GTK_SPIN_BUTTON (widget)); ario_conf_set_integer (PREF_DYNAMIC_NBITEMS, (int) nbitems); } static GtkWidget* ario_playlist_dynamic_get_config (ArioPlaylistMode *playlist_mode) { GtkWidget *hbox; GtkWidget *spinbutton; GtkWidget *combobox; GtkAdjustment *adj; GtkListStore *list_store; GtkCellRenderer *renderer; GtkTreeIter iter; int i; int nbitems; hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 4); gtk_box_pack_start (GTK_BOX (hbox), gtk_label_new ("Automatically add"), FALSE, FALSE, 0); adj = GTK_ADJUSTMENT (gtk_adjustment_new (10, 0.0, 1000.0, 1.0, 10.0, 0.0)); spinbutton = gtk_spin_button_new (adj, 1.0, 0); nbitems = ario_conf_get_integer (PREF_DYNAMIC_NBITEMS, PREF_DYNAMIC_NBITEMS_DEFAULT); gtk_spin_button_set_value (GTK_SPIN_BUTTON (spinbutton), (double) nbitems); g_signal_connect (G_OBJECT (spinbutton), "value_changed", G_CALLBACK (ario_playlist_dynamic_nbitems_changed_cb), playlist_mode); gtk_box_pack_start (GTK_BOX (hbox), spinbutton, FALSE, FALSE, 0); combobox = gtk_combo_box_new (); list_store = gtk_list_store_new (2, G_TYPE_STRING, G_TYPE_INT); for (i = 0; dynamic_type[i]; ++i) { gtk_list_store_append (list_store, &iter); gtk_list_store_set (list_store, &iter, 0, gettext (dynamic_type[i]), 1, i, -1); } gtk_combo_box_set_model (GTK_COMBO_BOX (combobox), GTK_TREE_MODEL (list_store)); g_object_unref (list_store); renderer = gtk_cell_renderer_text_new (); gtk_cell_layout_clear (GTK_CELL_LAYOUT (combobox)); gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (combobox), renderer, TRUE); gtk_cell_layout_set_attributes (GTK_CELL_LAYOUT (combobox), renderer, "text", 0, NULL); gtk_combo_box_set_active (GTK_COMBO_BOX (combobox), ario_conf_get_integer (PREF_DYNAMIC_TYPE, PREF_DYNAMIC_TYPE_DEFAULT)); g_signal_connect (G_OBJECT (combobox), "changed", G_CALLBACK (ario_playlist_dynamic_type_combobox_changed_cb), playlist_mode); gtk_box_pack_start (GTK_BOX (hbox), combobox, FALSE, FALSE, 0); gtk_box_pack_start (GTK_BOX (hbox), gtk_label_new ("to playlist."), FALSE, FALSE, 0); return hbox; } ario-1.6/src/playlist/ario-playlist-mode.c0000644000175000017500000000606313226723433015554 00000000000000/* * Copyright (C) 2009 Marc Pavot * * 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, 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * */ #include "playlist/ario-playlist-mode.h" #include #include "ario-debug.h" static void ario_playlist_mode_class_init (ArioPlaylistModeClass *klass); static void ario_playlist_mode_init (ArioPlaylistMode *playlist_mode); #define ARIO_PLAYLIST_MODE_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_ARIO_PLAYLIST_MODE, ArioPlaylistModePrivate)) G_DEFINE_TYPE (ArioPlaylistMode, ario_playlist_mode, G_TYPE_OBJECT) static void dummy_void (ArioPlaylistMode *playlist_mode, ArioPlaylist *playlist) { } static GtkWidget* dummy_widget (ArioPlaylistMode *playlist_mode) { return NULL; } static gchar * dummy_char (ArioPlaylistMode *playlist_mode) { return NULL; } static void ario_playlist_mode_class_init (ArioPlaylistModeClass *klass) { klass->next_song = dummy_void; klass->last_song = dummy_void; klass->get_config = dummy_widget; klass->get_id = dummy_char; klass->get_name = dummy_char; } static void ario_playlist_mode_init (ArioPlaylistMode *playlist_mode) { } void ario_playlist_mode_next_song (ArioPlaylistMode *playlist_mode, ArioPlaylist *playlist) { g_return_if_fail (ARIO_IS_PLAYLIST_MODE (playlist_mode)); ARIO_PLAYLIST_MODE_GET_CLASS (playlist_mode)->next_song (playlist_mode, playlist); } void ario_playlist_mode_last_song (ArioPlaylistMode *playlist_mode, ArioPlaylist *playlist) { g_return_if_fail (ARIO_IS_PLAYLIST_MODE (playlist_mode)); ARIO_PLAYLIST_MODE_GET_CLASS (playlist_mode)->last_song (playlist_mode, playlist); } GtkWidget* ario_playlist_mode_get_config (ArioPlaylistMode *playlist_mode) { g_return_val_if_fail (ARIO_IS_PLAYLIST_MODE (playlist_mode), NULL); return ARIO_PLAYLIST_MODE_GET_CLASS (playlist_mode)->get_config (playlist_mode); } gchar * ario_playlist_mode_get_id (ArioPlaylistMode *playlist_mode) { g_return_val_if_fail (ARIO_IS_PLAYLIST_MODE (playlist_mode), FALSE); return ARIO_PLAYLIST_MODE_GET_CLASS (playlist_mode)->get_id (playlist_mode); } gchar * ario_playlist_mode_get_name (ArioPlaylistMode *playlist_mode) { g_return_val_if_fail (ARIO_IS_PLAYLIST_MODE (playlist_mode), FALSE); return ARIO_PLAYLIST_MODE_GET_CLASS (playlist_mode)->get_name (playlist_mode); } ario-1.6/src/playlist/ario-playlist-manager.h0000644000175000017500000000543313226723433016247 00000000000000/* * Copyright (C) 2009 Marc Pavot * * 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, 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * */ #ifndef __ARIO_PLAYLIST_MANAGER_H #define __ARIO_PLAYLIST_MANAGER_H #include #include "playlist/ario-playlist-mode.h" G_BEGIN_DECLS #define TYPE_ARIO_PLAYLIST_MANAGER (ario_playlist_manager_get_type ()) #define ARIO_PLAYLIST_MANAGER(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), TYPE_ARIO_PLAYLIST_MANAGER, ArioPlaylistManager)) #define ARIO_PLAYLIST_MANAGER_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), TYPE_ARIO_PLAYLIST_MANAGER, ArioPlaylistManagerClass)) #define IS_ARIO_PLAYLIST_MANAGER(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), TYPE_ARIO_PLAYLIST_MANAGER)) #define IS_ARIO_PLAYLIST_MANAGER_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), TYPE_ARIO_PLAYLIST_MANAGER)) #define ARIO_PLAYLIST_MANAGER_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), TYPE_ARIO_PLAYLIST_MANAGER, ArioPlaylistManagerClass)) typedef struct ArioPlaylistManagerPrivate ArioPlaylistManagerPrivate; typedef struct { GObject parent; ArioPlaylistManagerPrivate *priv; } ArioPlaylistManager; typedef struct { GObjectClass parent; } ArioPlaylistManagerClass; GType ario_playlist_manager_get_type (void) G_GNUC_CONST; ArioPlaylistManager* ario_playlist_manager_get_instance (void); void ario_playlist_manager_add_mode (ArioPlaylistManager *playlist_manager, ArioPlaylistMode *playlist_mode); void ario_playlist_manager_remove_mode (ArioPlaylistManager *playlist_manager, ArioPlaylistMode *playlist_mode); GSList* ario_playlist_manager_get_modes (ArioPlaylistManager *playlist_manager); ArioPlaylistMode* ario_playlist_manager_get_mode_from_id (ArioPlaylistManager *playlist_manager, const gchar *id); G_END_DECLS #endif /* __ARIO_PLAYLIST_MANAGER_H */ ario-1.6/src/playlist/ario-playlist-normal.h0000644000175000017500000000362013226723435016123 00000000000000/* * Copyright (C) 2009 Marc Pavot * * 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * */ #ifndef __ARIO_PLAYLIST_NORMAL_H #define __ARIO_PLAYLIST_NORMAL_H #include "playlist/ario-playlist-mode.h" G_BEGIN_DECLS #define TYPE_ARIO_PLAYLIST_NORMAL (ario_playlist_normal_get_type ()) #define ARIO_PLAYLIST_NORMAL(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), TYPE_ARIO_PLAYLIST_NORMAL, ArioPlaylistNormal)) #define ARIO_PLAYLIST_NORMAL_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), TYPE_ARIO_PLAYLIST_NORMAL, ArioPlaylistNormalClass)) #define IS_ARIO_PLAYLIST_NORMAL(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), TYPE_ARIO_PLAYLIST_NORMAL)) #define IS_ARIO_PLAYLIST_NORMAL_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), TYPE_ARIO_PLAYLIST_NORMAL)) #define ARIO_PLAYLIST_NORMAL_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), TYPE_ARIO_PLAYLIST_NORMAL, ArioPlaylistNormalClass)) typedef struct { ArioPlaylistMode parent; } ArioPlaylistNormal; typedef struct { ArioPlaylistModeClass parent; } ArioPlaylistNormalClass; GType ario_playlist_normal_get_type (void) G_GNUC_CONST; ArioPlaylistMode* ario_playlist_normal_new (void); G_END_DECLS #endif /* __ARIO_PLAYLIST_NORMAL_H */ ario-1.6/src/playlist/ario-playlist-queue.c0000644000175000017500000000633113226723433015752 00000000000000/* * Copyright (C) 2009 Marc Pavot * * 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * */ #include #include #include #include "lib/ario-conf.h" #include "playlist/ario-playlist-queue.h" #include "servers/ario-server.h" #include "ario-util.h" #include "preferences/ario-preferences.h" #include "ario-debug.h" static void ario_playlist_queue_class_init (ArioPlaylistQueueClass *klass); static void ario_playlist_queue_init (ArioPlaylistQueue *playlist_queue); static void ario_playlist_queue_next_song (ArioPlaylistMode *playlist_mode, ArioPlaylist *playlist); static GObjectClass *parent_class = NULL; #define ARIO_PLAYLIST_QUEUE_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_ARIO_PLAYLIST_QUEUE, ArioPlaylistQueuePrivate)) G_DEFINE_TYPE (ArioPlaylistQueue, ario_playlist_queue, ARIO_TYPE_PLAYLIST_MODE) static gchar * ario_playlist_queue_get_id (ArioPlaylistMode *playlist_mode) { return "queue"; } static gchar * ario_playlist_queue_get_name (ArioPlaylistMode *playlist_mode) { return _("Queue Mode"); } static void ario_playlist_queue_class_init (ArioPlaylistQueueClass *klass) { ARIO_LOG_FUNCTION_START; ArioPlaylistModeClass *playlist_mode_class = ARIO_PLAYLIST_MODE_CLASS (klass); parent_class = g_type_class_peek_parent (klass); playlist_mode_class->get_id = ario_playlist_queue_get_id; playlist_mode_class->get_name = ario_playlist_queue_get_name; playlist_mode_class->next_song = ario_playlist_queue_next_song; } static void ario_playlist_queue_init (ArioPlaylistQueue *playlist_queue) { ARIO_LOG_FUNCTION_START; } ArioPlaylistMode* ario_playlist_queue_new (void) { ARIO_LOG_FUNCTION_START; ArioPlaylistQueue *queue; queue = g_object_new (TYPE_ARIO_PLAYLIST_QUEUE, NULL); return ARIO_PLAYLIST_MODE (queue); } static void ario_playlist_queue_next_song (ArioPlaylistMode *playlist_mode, ArioPlaylist *playlist) { ARIO_LOG_FUNCTION_START; ArioServerSong *song = ario_server_get_current_song (); int i; int state = ario_server_get_current_state (); if (state != ARIO_STATE_PLAY && state != ARIO_STATE_PAUSE) return; if (!song) return; if (!song->pos) return; for (i=0; ipos; ++i) { ario_server_queue_delete_pos (0); } ario_server_queue_commit (); } ario-1.6/src/playlist/ario-playlist-queue.h0000644000175000017500000000357213226723433015763 00000000000000/* * Copyright (C) 2009 Marc Pavot * * 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * */ #ifndef __ARIO_PLAYLIST_QUEUE_H #define __ARIO_PLAYLIST_QUEUE_H #include "playlist/ario-playlist-mode.h" G_BEGIN_DECLS #define TYPE_ARIO_PLAYLIST_QUEUE (ario_playlist_queue_get_type ()) #define ARIO_PLAYLIST_QUEUE(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), TYPE_ARIO_PLAYLIST_QUEUE, ArioPlaylistQueue)) #define ARIO_PLAYLIST_QUEUE_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), TYPE_ARIO_PLAYLIST_QUEUE, ArioPlaylistQueueClass)) #define IS_ARIO_PLAYLIST_QUEUE(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), TYPE_ARIO_PLAYLIST_QUEUE)) #define IS_ARIO_PLAYLIST_QUEUE_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), TYPE_ARIO_PLAYLIST_QUEUE)) #define ARIO_PLAYLIST_QUEUE_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), TYPE_ARIO_PLAYLIST_QUEUE, ArioPlaylistQueueClass)) typedef struct { ArioPlaylistMode parent; } ArioPlaylistQueue; typedef struct { ArioPlaylistModeClass parent; } ArioPlaylistQueueClass; GType ario_playlist_queue_get_type (void) G_GNUC_CONST; ArioPlaylistMode* ario_playlist_queue_new (void); G_END_DECLS #endif /* __ARIO_PLAYLIST_QUEUE_H */ ario-1.6/src/playlist/ario-playlist-normal.c0000644000175000017500000000464113226723435016122 00000000000000/* * Copyright (C) 2009 Marc Pavot * * 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * */ #include #include #include #include "lib/ario-conf.h" #include "playlist/ario-playlist-normal.h" #include "servers/ario-server.h" #include "ario-util.h" #include "preferences/ario-preferences.h" #include "ario-debug.h" static void ario_playlist_normal_class_init (ArioPlaylistNormalClass *klass); static void ario_playlist_normal_init (ArioPlaylistNormal *playlist_normal); static GObjectClass *parent_class = NULL; #define ARIO_PLAYLIST_NORMAL_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_ARIO_PLAYLIST_NORMAL, ArioPlaylistNormalPrivate)) G_DEFINE_TYPE (ArioPlaylistNormal, ario_playlist_normal, ARIO_TYPE_PLAYLIST_MODE) static gchar * ario_playlist_normal_get_id (ArioPlaylistMode *playlist_mode) { return "normal"; } static gchar * ario_playlist_normal_get_name (ArioPlaylistMode *playlist_mode) { return _("Normal"); } static void ario_playlist_normal_class_init (ArioPlaylistNormalClass *klass) { ARIO_LOG_FUNCTION_START; ArioPlaylistModeClass *playlist_mode_class = ARIO_PLAYLIST_MODE_CLASS (klass); parent_class = g_type_class_peek_parent (klass); playlist_mode_class->get_id = ario_playlist_normal_get_id; playlist_mode_class->get_name = ario_playlist_normal_get_name; } static void ario_playlist_normal_init (ArioPlaylistNormal *playlist_normal) { ARIO_LOG_FUNCTION_START; } ArioPlaylistMode* ario_playlist_normal_new (void) { ARIO_LOG_FUNCTION_START; ArioPlaylistNormal *normal; normal = g_object_new (TYPE_ARIO_PLAYLIST_NORMAL, NULL); return ARIO_PLAYLIST_MODE (normal); } ario-1.6/src/playlist/ario-playlist-dynamic.h0000644000175000017500000000364613226723433016265 00000000000000/* * Copyright (C) 2009 Marc Pavot * * 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * */ #ifndef __ARIO_PLAYLIST_DYNAMIC_H #define __ARIO_PLAYLIST_DYNAMIC_H #include "playlist/ario-playlist-mode.h" G_BEGIN_DECLS #define TYPE_ARIO_PLAYLIST_DYNAMIC (ario_playlist_dynamic_get_type ()) #define ARIO_PLAYLIST_DYNAMIC(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), TYPE_ARIO_PLAYLIST_DYNAMIC, ArioPlaylistDynamic)) #define ARIO_PLAYLIST_DYNAMIC_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), TYPE_ARIO_PLAYLIST_DYNAMIC, ArioPlaylistDynamicClass)) #define IS_ARIO_PLAYLIST_DYNAMIC(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), TYPE_ARIO_PLAYLIST_DYNAMIC)) #define IS_ARIO_PLAYLIST_DYNAMIC_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), TYPE_ARIO_PLAYLIST_DYNAMIC)) #define ARIO_PLAYLIST_DYNAMIC_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), TYPE_ARIO_PLAYLIST_DYNAMIC, ArioPlaylistDynamicClass)) typedef struct { ArioPlaylistMode parent; } ArioPlaylistDynamic; typedef struct { ArioPlaylistModeClass parent; } ArioPlaylistDynamicClass; GType ario_playlist_dynamic_get_type (void) G_GNUC_CONST; ArioPlaylistMode* ario_playlist_dynamic_new (void); G_END_DECLS #endif /* __ARIO_PLAYLIST_DYNAMIC_H */ ario-1.6/src/playlist/ario-playlist-mode.h0000644000175000017500000000641413226723433015561 00000000000000/* * Copyright (C) 2009 Marc Pavot * * 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, 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * */ #ifndef __ARIO_PLAYLIST_MODE_H__ #define __ARIO_PLAYLIST_MODE_H__ #include #include "widgets/ario-playlist.h" G_BEGIN_DECLS /* * Type checking and casting macros */ #define ARIO_TYPE_PLAYLIST_MODE (ario_playlist_mode_get_type()) #define ARIO_PLAYLIST_MODE(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), ARIO_TYPE_PLAYLIST_MODE, ArioPlaylistMode)) #define ARIO_PLAYLIST_MODE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), ARIO_TYPE_PLAYLIST_MODE, ArioPlaylistModeClass)) #define ARIO_IS_PLAYLIST_MODE(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), ARIO_TYPE_PLAYLIST_MODE)) #define ARIO_IS_PLAYLIST_MODE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), ARIO_TYPE_PLAYLIST_MODE)) #define ARIO_PLAYLIST_MODE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), ARIO_TYPE_PLAYLIST_MODE, ArioPlaylistModeClass)) /* * Main object structure */ typedef struct _ArioPlaylistMode { GObject parent; } ArioPlaylistMode; /* * Class definition */ typedef struct { GObjectClass parent_class; /* Virtual public methods */ gchar* (*get_id) (ArioPlaylistMode *playlist_mode); gchar* (*get_name) (ArioPlaylistMode *playlist_mode); void (*next_song) (ArioPlaylistMode *playlist_mode, ArioPlaylist *playlist); void (*last_song) (ArioPlaylistMode *playlist_mode, ArioPlaylist *playlist); GtkWidget* (*get_config) (ArioPlaylistMode *playlist_mode); } ArioPlaylistModeClass; /* * Public methods */ GType ario_playlist_mode_get_type (void) G_GNUC_CONST; gchar* ario_playlist_mode_get_id (ArioPlaylistMode *playlist_mode); gchar* ario_playlist_mode_get_name (ArioPlaylistMode *playlist_mode); void ario_playlist_mode_next_song (ArioPlaylistMode *playlist_mode, ArioPlaylist *playlist); void ario_playlist_mode_last_song (ArioPlaylistMode *playlist_mode, ArioPlaylist *playlist); GtkWidget* ario_playlist_mode_get_config (ArioPlaylistMode *playlist_mode); G_END_DECLS #endif /* __ARIO_PLAYLIST_MODE_H__ */ ario-1.6/src/shell/0000755000175000017500000000000013226745613011222 500000000000000ario-1.6/src/shell/ario-shell-preferences.h0000644000175000017500000000400213226723431015637 00000000000000/* * Copyright (C) 2005 Marc Pavot * * 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, 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * */ #include #ifndef __ARIO_SHELL_PREFERENCES_H #define __ARIO_SHELL_PREFERENCES_H G_BEGIN_DECLS #define TYPE_ARIO_SHELL_PREFERENCES (ario_shell_preferences_get_type ()) #define ARIO_SHELL_PREFERENCES(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), TYPE_ARIO_SHELL_PREFERENCES, ArioShellPreferences)) #define ARIO_SHELL_PREFERENCES_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), TYPE_ARIO_SHELL_PREFERENCES, ArioShellPreferencesClass)) #define IS_ARIO_SHELL_PREFERENCES(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), TYPE_ARIO_SHELL_PREFERENCES)) #define IS_ARIO_SHELL_PREFERENCES_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), TYPE_ARIO_SHELL_PREFERENCES)) #define ARIO_SHELL_PREFERENCES_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), TYPE_ARIO_SHELL_PREFERENCES, ArioShellPreferencesClass)) typedef struct ArioShellPreferencesPrivate ArioShellPreferencesPrivate; typedef struct { GtkDialog parent; ArioShellPreferencesPrivate *priv; } ArioShellPreferences; typedef struct { GtkDialogClass parent_class; } ArioShellPreferencesClass; GType ario_shell_preferences_get_type (void) G_GNUC_CONST; GtkWidget * ario_shell_preferences_new (void); G_END_DECLS #endif /* __ARIO_SHELL_PREFERENCES_H */ ario-1.6/src/shell/ario-shell-songinfos.h0000644000175000017500000000373113226723432015354 00000000000000/* * Copyright (C) 2005 Marc Pavot * * 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, 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * */ #include #ifndef __ARIO_SHELL_SONGINFOS_H #define __ARIO_SHELL_SONGINFOS_H G_BEGIN_DECLS #define TYPE_ARIO_SHELL_SONGINFOS (ario_shell_songinfos_get_type ()) #define ARIO_SHELL_SONGINFOS(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), TYPE_ARIO_SHELL_SONGINFOS, ArioShellSonginfos)) #define ARIO_SHELL_SONGINFOS_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), TYPE_ARIO_SHELL_SONGINFOS, ArioShellSonginfosClass)) #define IS_ARIO_SHELL_SONGINFOS(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), TYPE_ARIO_SHELL_SONGINFOS)) #define IS_ARIO_SHELL_SONGINFOS_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), TYPE_ARIO_SHELL_SONGINFOS)) #define ARIO_SHELL_SONGINFOS_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), TYPE_ARIO_SHELL_SONGINFOS, ArioShellSonginfosClass)) typedef struct ArioShellSonginfosPrivate ArioShellSonginfosPrivate; typedef struct { GtkDialog parent; ArioShellSonginfosPrivate *priv; } ArioShellSonginfos; typedef struct { GtkDialogClass parent_class; } ArioShellSonginfosClass; GType ario_shell_songinfos_get_type (void) G_GNUC_CONST; GtkWidget * ario_shell_songinfos_new (GSList *paths); G_END_DECLS #endif /* __ARIO_SHELL_SONGINFOS_H */ ario-1.6/src/shell/ario-shell.h0000644000175000017500000000472313226723431013352 00000000000000/* * Copyright (C) 2005 Marc Pavot * * 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, 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * */ #ifndef __ARIO_SHELL_H #define __ARIO_SHELL_H #include G_BEGIN_DECLS /** * ArioShell represents the main window of Ario. * It is also in charge of starting the different services at startup * and of stoping them on exit */ #define ARIO_TYPE_SHELL (ario_shell_get_type ()) #define ARIO_SHELL(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), ARIO_TYPE_SHELL, ArioShell)) #define ARIO_SHELL_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), ARIO_TYPE_SHELL, ArioShellClass)) #define IS_ARIO_SHELL(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), ARIO_TYPE_SHELL)) #define IS_ARIO_SHELL_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), ARIO_TYPE_SHELL)) #define ARIO_SHELL_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), ARIO_TYPE_SHELL, ArioShellClass)) typedef struct ArioShellPrivate ArioShellPrivate; typedef struct { GtkApplicationWindow parent; ArioShellPrivate *priv; } ArioShell; typedef struct { GtkApplicationWindowClass parent_class; } ArioShellClass; /* Main Window visibility */ typedef enum { VISIBILITY_HIDDEN, VISIBILITY_VISIBLE, VISIBILITY_TOGGLE } ArioVisibility; GType ario_shell_get_type (void) G_GNUC_CONST; ArioShell * ario_shell_new (GtkApplication *app); void ario_shell_construct (ArioShell *shell, gboolean minimized); void ario_shell_shutdown (ArioShell *shell); void ario_shell_present (ArioShell *shell); void ario_shell_set_visibility (ArioShell *shell, ArioVisibility state); G_END_DECLS #endif /* __ARIO_SHELL_H */ ario-1.6/src/shell/ario-shell-similarartists.c0000644000175000017500000004775113226723431016425 00000000000000/* * Copyright (C) 2005 Marc Pavot * * 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, 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * */ #include "shell/ario-shell-similarartists.h" #include #include #include #include #include #include "ario-debug.h" #include "ario-util.h" #include "lib/gtk-builder-helpers.h" #include "servers/ario-server.h" #include "widgets/ario-playlist.h" static gboolean ario_shell_similarartists_window_delete_cb (GtkWidget *window, GdkEventAny *event, ArioShellSimilarartists *shell_similarartists); G_MODULE_EXPORT void ario_shell_similarartists_close_cb (GtkButton *button, ArioShellSimilarartists *shell_similarartists); G_MODULE_EXPORT void ario_shell_similarartists_lastfm_cb (GtkButton *button, ArioShellSimilarartists *shell_similarartists); G_MODULE_EXPORT void ario_shell_similarartists_add_cb (GtkButton *button, ArioShellSimilarartists *shell_similarartists); G_MODULE_EXPORT void ario_shell_similarartists_addall_cb (GtkButton *button, ArioShellSimilarartists *shell_similarartists); #define LASTFM_URI "http://ws.audioscrobbler.com/1.0/artist/%s/similar.xml" #define MAX_ARTISTS 10 #define IMAGE_SIZE 120 /* Private attributes */ struct ArioShellSimilarartistsPrivate { GtkTreeSelection *selection; GtkListStore *liststore; GThread *thread; gboolean closed; const gchar* artist; }; /* Tree model columns */ enum { IMAGE_COLUMN, ARTIST_COLUMN, SONGS_COLUMN, IMAGEURL_COLUMN, URL_COLUMN, N_COLUMN }; #define ARIO_SHELL_SIMILARARTISTS_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_ARIO_SHELL_SIMILARARTISTS, ArioShellSimilarartistsPrivate)) G_DEFINE_TYPE (ArioShellSimilarartists, ario_shell_similarartists, GTK_TYPE_WINDOW) static void ario_shell_similarartists_class_init (ArioShellSimilarartistsClass *klass) { ARIO_LOG_FUNCTION_START; /* Private attributes */ g_type_class_add_private (klass, sizeof (ArioShellSimilarartistsPrivate)); } static void ario_shell_similarartists_init (ArioShellSimilarartists *shell_similarartists) { ARIO_LOG_FUNCTION_START; shell_similarartists->priv = ARIO_SHELL_SIMILARARTISTS_GET_PRIVATE (shell_similarartists); /* Connect signal for window deletion */ g_signal_connect (shell_similarartists, "delete_event", G_CALLBACK (ario_shell_similarartists_window_delete_cb), shell_similarartists); /* Set window properties */ gtk_window_set_title (GTK_WINDOW (shell_similarartists), "Ario"); gtk_window_set_resizable (GTK_WINDOW (shell_similarartists), TRUE); gtk_container_set_border_width (GTK_CONTAINER (shell_similarartists), 5); } static GSList * ario_shell_similarartists_parse_xml_file (char *xmldata, int size) { ARIO_LOG_FUNCTION_START; xmlDocPtr doc; xmlNodePtr cur; xmlNodePtr cur2; GSList *similar_artists = NULL; ArioSimilarArtist *similar_artist; /* Parse XML file */ doc = xmlParseMemory (xmldata, size); if (doc == NULL ) { return NULL; } /* Get root of document */ cur = xmlDocGetRootElement(doc); if (!cur) { xmlFreeDoc (doc); return NULL; } /* Check that the root node name is "similarartists" */ if (xmlStrcmp (cur->name, (const xmlChar *) "similarartists")) { xmlFreeDoc (doc); return NULL; } for (cur = cur->xmlChildrenNode; cur; cur = cur->next) { /* For each artist node */ if (!xmlStrcmp (cur->name, (const xmlChar *) "artist")) { /* Create an ArioSimilarArtist */ similar_artist = (ArioSimilarArtist *) g_malloc0 (sizeof (ArioSimilarArtist)); for (cur2 = cur->xmlChildrenNode; cur2; cur2 = cur2->next) { if ((!xmlStrcmp (cur2->name, (const xmlChar *) "name"))) { /* Fill name */ similar_artist->name = xmlNodeListGetString (doc, cur2->xmlChildrenNode, 1); } else if ((!xmlStrcmp (cur2->name, (const xmlChar *) "image"))) { /* Fill image */ similar_artist->image = xmlNodeListGetString (doc, cur2->xmlChildrenNode, 1); } else if ((!xmlStrcmp (cur2->name, (const xmlChar *) "url"))) { /* Fill URL */ similar_artist->url = xmlNodeListGetString (doc, cur2->xmlChildrenNode, 1); } } /* Append ArioSimilarArtist to the list */ similar_artists = g_slist_append (similar_artists, similar_artist); } } xmlFreeDoc (doc); return similar_artists; } void ario_shell_similarartists_free_similarartist (ArioSimilarArtist *similar_artist) { if (similar_artist) { g_free (similar_artist->name); g_free (similar_artist->url); g_free (similar_artist->image); g_free (similar_artist); } } static gboolean ario_shell_similarartists_get_images_foreach (GtkTreeModel *model, GtkTreePath *path, GtkTreeIter *iter, ArioShellSimilarartists *shell_similarartists) { ARIO_LOG_FUNCTION_START; int size; char *data; GdkPixbufLoader *loader; GdkPixbuf *pixbuf, *tmp_pixbuf; int width, height; gchar *image_url; /* Get image URL of current row */ gtk_tree_model_get (model, iter, IMAGEURL_COLUMN, &image_url, -1); /* Download image */ ario_util_download_file (image_url, NULL, 0, NULL, &size, &data); g_free (image_url); if (size == 0 || !data) return FALSE; /* Create pixbuf from image data */ loader = gdk_pixbuf_loader_new (); gdk_pixbuf_loader_write (loader, (const guchar *) data, size, NULL); gdk_pixbuf_loader_close (loader, NULL); g_free (data); pixbuf = gdk_pixbuf_loader_get_pixbuf (loader); if (!pixbuf) return FALSE; /* Resize image to IMAGE_SIZE, keeping proportions */ width = gdk_pixbuf_get_width (pixbuf); height = gdk_pixbuf_get_height (pixbuf); if (width > height) { tmp_pixbuf = gdk_pixbuf_scale_simple (pixbuf, IMAGE_SIZE, height * IMAGE_SIZE / width, GDK_INTERP_BILINEAR); } else { tmp_pixbuf = gdk_pixbuf_scale_simple (pixbuf, width * IMAGE_SIZE / height, IMAGE_SIZE, GDK_INTERP_BILINEAR); } g_object_unref (G_OBJECT (pixbuf)); pixbuf = tmp_pixbuf; /* Set pixbuf in current row */ gtk_list_store_set (shell_similarartists->priv->liststore, iter, IMAGE_COLUMN, pixbuf, -1); g_object_unref (G_OBJECT (pixbuf)); return FALSE; } static gpointer ario_shell_similarartists_get_images (ArioShellSimilarartists *shell_similarartists) { ARIO_LOG_FUNCTION_START; /* Get images of each row */ gtk_tree_model_foreach (GTK_TREE_MODEL (shell_similarartists->priv->liststore), (GtkTreeModelForeachFunc) ario_shell_similarartists_get_images_foreach, shell_similarartists); return NULL; } GSList * ario_shell_similarartists_get_similar_artists (const gchar *artist) { ARIO_LOG_FUNCTION_START; char *keyword; char *xml_uri; int xml_size; char *xml_data; GSList *similar_artists; /* Format artist */ keyword = ario_util_format_keyword (artist); /* Get last.fm uri */ xml_uri = g_strdup_printf (LASTFM_URI, keyword); g_free (keyword); /* Download XML file */ ario_util_download_file (xml_uri, NULL, 0, NULL, &xml_size, &xml_data); g_free (xml_uri); if (xml_size == 0) { return NULL; } /* Parse XML file */ similar_artists = ario_shell_similarartists_parse_xml_file (xml_data, xml_size); g_free (xml_data); return similar_artists; } static void ario_shell_similarartists_get_artists (ArioShellSimilarartists *shell_similarartists) { ARIO_LOG_FUNCTION_START; GSList *similar_artists, *tmp; ArioSimilarArtist *similar_artist; GtkTreeIter iter; int i = 0; gchar *songs_txt; GSList *songs = NULL; ArioServerAtomicCriteria atomic_criteria; ArioServerCriteria *criteria = NULL; /* Get list of similar artists */ similar_artists = ario_shell_similarartists_get_similar_artists (shell_similarartists->priv->artist); atomic_criteria.tag = ARIO_TAG_ARTIST; criteria = g_slist_append (criteria, &atomic_criteria); /* For each similar artist */ for (tmp = similar_artists; tmp; tmp = g_slist_next (tmp)) { /* Stop here if needed */ if (++i > MAX_ARTISTS || shell_similarartists->priv->closed) break; similar_artist = tmp->data; atomic_criteria.value = (gchar *) similar_artist->name; /* Get all songs of artist */ songs = ario_server_get_songs (criteria, TRUE); /* Format number of songs for display */ if (songs) songs_txt = g_strdup_printf (_("%d songs"), g_slist_length (songs)); else songs_txt = g_strdup (""); g_slist_foreach (songs, (GFunc) ario_server_free_song, NULL); g_slist_free (songs); /* Append row */ gtk_list_store_append (shell_similarartists->priv->liststore, &iter); gtk_list_store_set (shell_similarartists->priv->liststore, &iter, ARTIST_COLUMN, similar_artist->name, SONGS_COLUMN, songs_txt, IMAGEURL_COLUMN, similar_artist->image, URL_COLUMN, similar_artist->url, -1); g_free (songs_txt); } g_slist_foreach (similar_artists, (GFunc) ario_shell_similarartists_free_similarartist, NULL); g_slist_free (similar_artists); /* Launch a thread to download artist images */ shell_similarartists->priv->thread = g_thread_new ("artistimage", (GThreadFunc) ario_shell_similarartists_get_images, shell_similarartists); g_slist_free (criteria); } GtkWidget * ario_shell_similarartists_new (void) { ARIO_LOG_FUNCTION_START; ArioShellSimilarartists *shell_similarartists; GtkBuilder *builder; GtkWidget *treeview; gchar *artist; artist = ario_server_get_current_artist (); if (!artist) return NULL; shell_similarartists = g_object_new (TYPE_ARIO_SHELL_SIMILARARTISTS, NULL); g_return_val_if_fail (shell_similarartists->priv != NULL, NULL); shell_similarartists->priv->closed = FALSE; /* Build UI using GtkBuilder */ builder = gtk_builder_helpers_new (UI_PATH "similar-artists.ui", shell_similarartists); /* Get pointers to various widgets */ treeview = GTK_WIDGET (gtk_builder_get_object (builder, "treeview")); shell_similarartists->priv->liststore = GTK_LIST_STORE (gtk_builder_get_object (builder, "liststore")); /* Get tree selection */ shell_similarartists->priv->selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (treeview)); gtk_tree_selection_set_mode (shell_similarartists->priv->selection, GTK_SELECTION_BROWSE); /* Set window properties */ gtk_window_set_resizable (GTK_WINDOW (shell_similarartists), TRUE); gtk_window_set_default_size (GTK_WINDOW (shell_similarartists), 350, 500); gtk_window_set_position (GTK_WINDOW (shell_similarartists), GTK_WIN_POS_CENTER); gtk_container_add (GTK_CONTAINER (shell_similarartists), GTK_WIDGET (gtk_builder_get_object (builder, "vbox"))); gtk_widget_show_all (GTK_WIDGET (shell_similarartists)); /* Refresh UI */ while (gtk_events_pending ()) gtk_main_iteration (); /* Get similar artists and fill tree */ shell_similarartists->priv->artist = artist; ario_shell_similarartists_get_artists (shell_similarartists); g_object_unref (builder); return GTK_WIDGET (shell_similarartists); } static gboolean ario_shell_similarartists_window_delete_cb (GtkWidget *window, GdkEventAny *event, ArioShellSimilarartists *shell_similarartists) { ARIO_LOG_FUNCTION_START; shell_similarartists->priv->closed = TRUE; /* Wait for end of images download thread */ g_thread_join (shell_similarartists->priv->thread); /* Destroy window */ gtk_widget_hide (GTK_WIDGET (shell_similarartists)); gtk_widget_destroy (GTK_WIDGET (shell_similarartists)); return TRUE; } void ario_shell_similarartists_close_cb (GtkButton *button, ArioShellSimilarartists *shell_similarartists) { ARIO_LOG_FUNCTION_START; shell_similarartists->priv->closed = TRUE; /* Wait for end of images download thread */ g_thread_join (shell_similarartists->priv->thread); /* Destroy window */ gtk_widget_hide (GTK_WIDGET (shell_similarartists)); gtk_widget_destroy (GTK_WIDGET (shell_similarartists)); } void ario_shell_similarartists_lastfm_cb (GtkButton *button, ArioShellSimilarartists *shell_similarartists) { ARIO_LOG_FUNCTION_START; GtkTreeModel *treemodel; GtkTreeIter iter; gchar *url; /* Get selected row */ if (gtk_tree_selection_get_selected (shell_similarartists->priv->selection, &treemodel, &iter)) { /* Get URL of selected row */ gtk_tree_model_get (treemodel, &iter, URL_COLUMN, &url, -1); /* Open last.fm URL in web browser */ ario_util_load_uri (url); g_free (url); } } void ario_shell_similarartists_add_cb (GtkButton *button, ArioShellSimilarartists *shell_similarartists) { ARIO_LOG_FUNCTION_START; GtkTreeModel *treemodel; GtkTreeIter iter; GSList *artists = NULL; gchar *artist; /* Get selected row */ if (gtk_tree_selection_get_selected (shell_similarartists->priv->selection, &treemodel, &iter)) { /* Get artist of selected row */ gtk_tree_model_get (treemodel, &iter, ARTIST_COLUMN, &artist, -1); /* Append artist songs to playlist */ artists = g_slist_append (artists, artist); ario_server_playlist_append_artists (artists, PLAYLIST_ADD, -1); g_slist_foreach (artists, (GFunc) g_free, NULL); g_slist_free (artists); } } static gboolean ario_shell_similarartists_addall_foreach (GtkTreeModel *model, GtkTreePath *path, GtkTreeIter *iter, GSList **artists) { ARIO_LOG_FUNCTION_START; gchar *artist; /* Get artist of row */ gtk_tree_model_get (model, iter, ARTIST_COLUMN, &artist, -1); /* Append artist to the list */ *artists = g_slist_append (*artists, artist); return FALSE; } void ario_shell_similarartists_addall_cb (GtkButton *button, ArioShellSimilarartists *shell_similarartists) { ARIO_LOG_FUNCTION_START; GSList *artists = NULL; /* Get list of all artists */ gtk_tree_model_foreach (GTK_TREE_MODEL (shell_similarartists->priv->liststore), (GtkTreeModelForeachFunc) ario_shell_similarartists_addall_foreach, &artists); /* Appends songs of all artists to playlist */ ario_server_playlist_append_artists (artists, PLAYLIST_ADD, -1); g_slist_foreach (artists, (GFunc) g_free, NULL); g_slist_free (artists); } void ario_shell_similarartists_add_similar_to_playlist (const gchar *artist, const int nb_entries) { ARIO_LOG_FUNCTION_START; ArioSimilarArtist *similar_artist; GSList *artists = NULL, *similar_artists, *tmp; /* Get list of similar artists */ similar_artists = ario_shell_similarartists_get_similar_artists (artist); /* For each similar artist */ for (tmp = similar_artists; tmp; tmp = g_slist_next (tmp)) { /* Build a list of artists names */ similar_artist = tmp->data; artists = g_slist_append (artists, similar_artist->name); } /* Append songs of artists to playlist */ ario_server_playlist_append_artists (artists, PLAYLIST_ADD, nb_entries); g_slist_foreach (similar_artists, (GFunc) ario_shell_similarartists_free_similarartist, NULL); g_slist_free (similar_artists); g_slist_free (artists); } ario-1.6/src/shell/ario-shell-songinfos.c0000644000175000017500000006424313226723431015353 00000000000000/* * Copyright (C) 2005 Marc Pavot * * 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, 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * */ #include "shell/ario-shell-songinfos.h" #include #include #include #include #ifdef ENABLE_TAGLIB #include "taglib/tag_c.h" #endif #include "ario-debug.h" #include "ario-profiles.h" #include "ario-util.h" #include "lib/gtk-builder-helpers.h" #include "widgets/ario-lyrics-editor.h" #define ARIO_PREVIOUS 987 #define ARIO_NEXT 998 #define ARIO_SAVE 999 #define VALUE(b) b ? b : "" static void ario_shell_songinfos_finalize (GObject *object); static gboolean ario_shell_songinfos_window_delete_cb (GtkWidget *window, GdkEventAny *event, ArioShellSonginfos *shell_songinfos); static void ario_shell_songinfos_response_cb (GtkDialog *dial, int response_id, ArioShellSonginfos *shell_songinfos); static void ario_shell_songinfos_set_current_song (ArioShellSonginfos *shell_songinfos); G_MODULE_EXPORT void ario_shell_songinfos_text_changed_cb (GtkWidget *widget, ArioShellSonginfos *shell_songinfos); /* Private attributes */ struct ArioShellSonginfosPrivate { GtkWidget *notebook; GList *songs; GtkWidget *title_entry; GtkWidget *artist_entry; GtkWidget *album_entry; GtkWidget *album_artist_entry; GtkWidget *track_entry; GtkWidget *date_entry; GtkWidget *genre_entry; GtkWidget *comment_entry; GtkWidget *file_entry; GtkWidget *length_entry; GtkWidget *composer_entry; GtkWidget *performer_entry; GtkWidget *disc_entry; GtkWidget *lyrics_editor; GtkWidget *previous_button; GtkWidget *next_button; GtkWidget *save_button; }; #define ARIO_SHELL_SONGINFOS_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_ARIO_SHELL_SONGINFOS, ArioShellSonginfosPrivate)) G_DEFINE_TYPE (ArioShellSonginfos, ario_shell_songinfos, GTK_TYPE_DIALOG) static void ario_shell_songinfos_class_init (ArioShellSonginfosClass *klass) { ARIO_LOG_FUNCTION_START; GObjectClass *object_class = G_OBJECT_CLASS (klass); /* Virtual methods */ object_class->finalize = ario_shell_songinfos_finalize; /* Private attributes */ g_type_class_add_private (klass, sizeof (ArioShellSonginfosPrivate)); } static void ario_shell_songinfos_init (ArioShellSonginfos *shell_songinfos) { ARIO_LOG_FUNCTION_START; shell_songinfos->priv = ARIO_SHELL_SONGINFOS_GET_PRIVATE (shell_songinfos); } static gboolean ario_shell_songinfos_can_edit_tags (void) { ARIO_LOG_FUNCTION_START; #ifdef ENABLE_TAGLIB /* User can edit tags only if TABGLIB is enabled and Ario is on the same * computer as music server and music directory is filled */ return (ario_profiles_get_current (ario_profiles_get ())->local && ario_profiles_get_current (ario_profiles_get ())->musicdir); #else return FALSE; #endif } static void ario_shell_songinfos_fill_tags (ArioServerSong *song) { ARIO_LOG_FUNCTION_START; #ifdef ENABLE_TAGLIB gchar *filename; TagLib_File *file; TagLib_Tag *tag; const TagLib_AudioProperties *properties; /* Get song full path */ filename = g_strconcat (ario_profiles_get_current (ario_profiles_get ())->musicdir, "/", song->file, NULL); /* Get taglib file */ file = taglib_file_new (filename); g_free (filename); if (file && taglib_file_is_valid (file)) { /* Replace ArioServerSong tags by 'real' tags from taglib */ tag = taglib_file_tag (file); properties = taglib_file_audioproperties (file); if (tag) { g_free (song->title); song->title = g_strdup (taglib_tag_title (tag)); g_free (song->artist); song->artist = g_strdup (taglib_tag_artist (tag)); g_free (song->album); song->album = g_strdup (taglib_tag_album (tag)); g_free (song->track); song->track = g_strdup_printf ("%i", taglib_tag_track (tag)); g_free (song->date); song->date = g_strdup_printf ("%i", taglib_tag_year (tag)); g_free (song->genre); song->genre = g_strdup (taglib_tag_genre (tag)); g_free (song->comment); song->comment = g_strdup (taglib_tag_comment (tag)); } if (properties) song->time = taglib_audioproperties_length (properties); taglib_tag_free_strings (); taglib_file_free (file); } #endif } GtkWidget * ario_shell_songinfos_new (GSList *paths) { ARIO_LOG_FUNCTION_START; ArioShellSonginfos *shell_songinfos; GtkWidget *widget; GtkBuilder *builder; GList *tmp; shell_songinfos = g_object_new (TYPE_ARIO_SHELL_SONGINFOS, NULL); g_return_val_if_fail (shell_songinfos->priv != NULL, NULL); /* Build UI using GtkBuilder */ builder = gtk_builder_helpers_new (UI_PATH "song-infos.ui", shell_songinfos); /* Get pointers to various widgets */ widget = GTK_WIDGET (gtk_builder_get_object (builder, "vbox")); shell_songinfos->priv->title_entry = GTK_WIDGET (gtk_builder_get_object (builder, "title_entry")); shell_songinfos->priv->artist_entry = GTK_WIDGET (gtk_builder_get_object (builder, "artist_entry")); shell_songinfos->priv->album_entry = GTK_WIDGET (gtk_builder_get_object (builder, "album_entry")); shell_songinfos->priv->album_artist_entry = GTK_WIDGET (gtk_builder_get_object (builder, "album_artist_entry")); shell_songinfos->priv->track_entry = GTK_WIDGET (gtk_builder_get_object (builder, "track_entry")); shell_songinfos->priv->length_entry = GTK_WIDGET (gtk_builder_get_object (builder, "length_entry")); shell_songinfos->priv->date_entry = GTK_WIDGET (gtk_builder_get_object (builder, "date_entry")); shell_songinfos->priv->file_entry = GTK_WIDGET (gtk_builder_get_object (builder, "file_entry")); shell_songinfos->priv->genre_entry = GTK_WIDGET (gtk_builder_get_object (builder, "genre_entry")); shell_songinfos->priv->composer_entry = GTK_WIDGET (gtk_builder_get_object (builder, "composer_entry")); shell_songinfos->priv->performer_entry = GTK_WIDGET (gtk_builder_get_object (builder, "performer_entry")); shell_songinfos->priv->disc_entry = GTK_WIDGET (gtk_builder_get_object (builder, "disc_entry")); shell_songinfos->priv->comment_entry = GTK_WIDGET (gtk_builder_get_object (builder, "comment_entry")); /* Disable not editable text boxes */ gtk_widget_set_sensitive (shell_songinfos->priv->album_artist_entry, FALSE); gtk_widget_set_sensitive (shell_songinfos->priv->length_entry, FALSE); gtk_widget_set_sensitive (shell_songinfos->priv->file_entry, FALSE); gtk_widget_set_sensitive (shell_songinfos->priv->composer_entry, FALSE); gtk_widget_set_sensitive (shell_songinfos->priv->performer_entry, FALSE); gtk_widget_set_sensitive (shell_songinfos->priv->disc_entry, FALSE); /* Change style of a labels */ gtk_builder_helpers_boldify_label (builder, "frame_label"); gtk_builder_helpers_boldify_label (builder, "title_const_label"); gtk_builder_helpers_boldify_label (builder, "artist_const_label"); gtk_builder_helpers_boldify_label (builder, "album_const_label"); gtk_builder_helpers_boldify_label (builder, "album_artist_const_label"); gtk_builder_helpers_boldify_label (builder, "track_const_label"); gtk_builder_helpers_boldify_label (builder, "length_const_label"); gtk_builder_helpers_boldify_label (builder, "date_const_label"); gtk_builder_helpers_boldify_label (builder, "file_const_label"); gtk_builder_helpers_boldify_label (builder, "genre_const_label"); gtk_builder_helpers_boldify_label (builder, "composer_const_label"); gtk_builder_helpers_boldify_label (builder, "performer_const_label"); gtk_builder_helpers_boldify_label (builder, "disc_const_label"); gtk_builder_helpers_boldify_label (builder, "comment_const_label"); gtk_widget_set_size_request(shell_songinfos->priv->artist_entry, 280, -1); gtk_widget_set_size_request(shell_songinfos->priv->album_entry, 280, -1); gtk_widget_set_size_request(shell_songinfos->priv->album_artist_entry, 280, -1); gtk_widget_set_size_request(shell_songinfos->priv->track_entry, 280, -1); gtk_widget_set_size_request(shell_songinfos->priv->length_entry, 280, -1); gtk_widget_set_size_request(shell_songinfos->priv->date_entry, 280, -1); gtk_widget_set_size_request(shell_songinfos->priv->file_entry, 280, -1); gtk_widget_set_size_request(shell_songinfos->priv->genre_entry, 280, -1); gtk_widget_set_size_request(shell_songinfos->priv->composer_entry, 280, -1); gtk_widget_set_size_request(shell_songinfos->priv->performer_entry, 280, -1); gtk_widget_set_size_request(shell_songinfos->priv->disc_entry, 280, -1); gtk_widget_set_size_request(shell_songinfos->priv->comment_entry, 280, -1); /* Set window properties */ gtk_window_set_title (GTK_WINDOW (shell_songinfos), _("Song Properties")); gtk_window_set_resizable (GTK_WINDOW (shell_songinfos), TRUE); gtk_window_set_default_size (GTK_WINDOW (shell_songinfos), 450, 350); /* Create notebook */ shell_songinfos->priv->notebook = GTK_WIDGET (gtk_notebook_new ()); gtk_container_set_border_width (GTK_CONTAINER (shell_songinfos->priv->notebook), 5); gtk_container_add (GTK_CONTAINER (gtk_dialog_get_content_area (GTK_DIALOG (shell_songinfos))), shell_songinfos->priv->notebook); /* Set songinfos properties */ gtk_container_set_border_width (GTK_CONTAINER (shell_songinfos), 5); gtk_box_set_spacing (GTK_BOX (gtk_dialog_get_content_area (GTK_DIALOG (shell_songinfos))), 2); /* Append tags page to notebook */ gtk_notebook_append_page (GTK_NOTEBOOK (shell_songinfos->priv->notebook), widget, gtk_label_new (_("Song Properties"))); /* Append lyrics page to notebook */ shell_songinfos->priv->lyrics_editor = ario_lyrics_editor_new (); gtk_notebook_append_page (GTK_NOTEBOOK (shell_songinfos->priv->notebook), shell_songinfos->priv->lyrics_editor, gtk_label_new (_("Lyrics"))); /* Connect signals for window deletion */ g_signal_connect (shell_songinfos, "delete_event", G_CALLBACK (ario_shell_songinfos_window_delete_cb), shell_songinfos); g_signal_connect (shell_songinfos, "response", G_CALLBACK (ario_shell_songinfos_response_cb), shell_songinfos); shell_songinfos->priv->songs = ario_server_get_songs_info (paths); if (ario_shell_songinfos_can_edit_tags ()) { /* Activate edition of text boxes */ gtk_editable_set_editable (GTK_EDITABLE (shell_songinfos->priv->title_entry), TRUE); gtk_editable_set_editable (GTK_EDITABLE (shell_songinfos->priv->artist_entry), TRUE); gtk_editable_set_editable (GTK_EDITABLE (shell_songinfos->priv->album_entry), TRUE); gtk_editable_set_editable (GTK_EDITABLE (shell_songinfos->priv->track_entry), TRUE); gtk_editable_set_editable (GTK_EDITABLE (shell_songinfos->priv->date_entry), TRUE); gtk_editable_set_editable (GTK_EDITABLE (shell_songinfos->priv->genre_entry), TRUE); gtk_editable_set_editable (GTK_EDITABLE (shell_songinfos->priv->comment_entry), TRUE); /* Add save button */ shell_songinfos->priv->save_button = gtk_button_new_from_icon_name ("document-save", GTK_ICON_SIZE_BUTTON); gtk_dialog_add_action_widget (GTK_DIALOG (shell_songinfos), shell_songinfos->priv->save_button, ARIO_SAVE); /* Fill tags of all songs with 'real' tags from tablib */ for (tmp = shell_songinfos->priv->songs; tmp; tmp = g_list_next (tmp)) { ario_shell_songinfos_fill_tags (tmp->data); } } else { /* Deactivate edition of text boxes */ gtk_editable_set_editable (GTK_EDITABLE (shell_songinfos->priv->title_entry), FALSE); gtk_editable_set_editable (GTK_EDITABLE (shell_songinfos->priv->artist_entry), FALSE); gtk_editable_set_editable (GTK_EDITABLE (shell_songinfos->priv->album_entry), FALSE); gtk_editable_set_editable (GTK_EDITABLE (shell_songinfos->priv->track_entry), FALSE); gtk_editable_set_editable (GTK_EDITABLE (shell_songinfos->priv->date_entry), FALSE); gtk_editable_set_editable (GTK_EDITABLE (shell_songinfos->priv->genre_entry), FALSE); gtk_editable_set_editable (GTK_EDITABLE (shell_songinfos->priv->comment_entry), FALSE); } /* Add previous button */ shell_songinfos->priv->previous_button = gtk_button_new_from_icon_name ("go-previous", GTK_ICON_SIZE_BUTTON); gtk_dialog_add_action_widget (GTK_DIALOG (shell_songinfos), shell_songinfos->priv->previous_button, ARIO_PREVIOUS); /* Add next button */ shell_songinfos->priv->next_button = gtk_button_new_from_icon_name ("go-next", GTK_ICON_SIZE_BUTTON); gtk_dialog_add_action_widget (GTK_DIALOG (shell_songinfos), shell_songinfos->priv->next_button, ARIO_NEXT); /* Add close button */ gtk_dialog_add_button (GTK_DIALOG (shell_songinfos), "window-close", GTK_RESPONSE_CLOSE); gtk_dialog_set_default_response (GTK_DIALOG (shell_songinfos), GTK_RESPONSE_CLOSE); /* Display first song */ ario_shell_songinfos_set_current_song (shell_songinfos); g_object_unref (builder); return GTK_WIDGET (shell_songinfos); } static void ario_shell_songinfos_finalize (GObject *object) { ARIO_LOG_FUNCTION_START; ArioShellSonginfos *shell_songinfos; g_return_if_fail (object != NULL); g_return_if_fail (IS_ARIO_SHELL_SONGINFOS (object)); shell_songinfos = ARIO_SHELL_SONGINFOS (object); g_return_if_fail (shell_songinfos->priv != NULL); /* Delete songs list */ shell_songinfos->priv->songs = g_list_first (shell_songinfos->priv->songs); g_list_foreach (shell_songinfos->priv->songs, (GFunc) ario_server_free_song, NULL); g_list_free (shell_songinfos->priv->songs); G_OBJECT_CLASS (ario_shell_songinfos_parent_class)->finalize (object); } static gboolean ario_shell_songinfos_window_delete_cb (GtkWidget *window, GdkEventAny *event, ArioShellSonginfos *shell_songinfos) { ARIO_LOG_FUNCTION_START; gtk_widget_hide (GTK_WIDGET (shell_songinfos)); gtk_widget_destroy (GTK_WIDGET (shell_songinfos)); return TRUE; } static void ario_shell_songinfos_response_cb (GtkDialog *dial, int response_id, ArioShellSonginfos *shell_songinfos) { ARIO_LOG_FUNCTION_START; #ifdef ENABLE_TAGLIB gchar *filename; TagLib_File *file; TagLib_Tag *tag; GtkWidget *dialog; gboolean success; ArioServerSong *song; #endif switch (response_id) { case GTK_RESPONSE_CLOSE: /* Destroy window */ gtk_widget_hide (GTK_WIDGET (shell_songinfos)); gtk_widget_destroy (GTK_WIDGET (shell_songinfos)); break; #ifdef ENABLE_TAGLIB case ARIO_SAVE: /* Save tags */ success = FALSE; g_return_if_fail (shell_songinfos->priv->songs); song = shell_songinfos->priv->songs->data; /* Get full file path */ filename = g_strconcat (ario_profiles_get_current (ario_profiles_get ())->musicdir, "/", song->file, NULL); file = taglib_file_new (filename); if (file && taglib_file_is_valid (file)) { /* Fill taglib taglib tags with text boxes value */ tag = taglib_file_tag (file); if (tag) { taglib_tag_set_title (tag, gtk_entry_get_text (GTK_ENTRY (shell_songinfos->priv->title_entry))); taglib_tag_set_artist (tag, gtk_entry_get_text (GTK_ENTRY (shell_songinfos->priv->artist_entry))); taglib_tag_set_album (tag, gtk_entry_get_text (GTK_ENTRY (shell_songinfos->priv->album_entry))); taglib_tag_set_track (tag, atoi (gtk_entry_get_text (GTK_ENTRY (shell_songinfos->priv->track_entry)))); taglib_tag_set_year (tag, atoi (gtk_entry_get_text (GTK_ENTRY (shell_songinfos->priv->date_entry)))); taglib_tag_set_genre (tag, gtk_entry_get_text (GTK_ENTRY (shell_songinfos->priv->genre_entry))); taglib_tag_set_comment (tag, gtk_entry_get_text (GTK_ENTRY (shell_songinfos->priv->comment_entry))); } /* Save tags in file */ if (taglib_file_save (file)) { /* Update song values with 'real' tags from taglib */ success = TRUE; g_free (song->title); song->title = g_strdup (taglib_tag_title (tag)); g_free (song->artist); song->artist = g_strdup (taglib_tag_artist (tag)); g_free (song->album); song->album = g_strdup (taglib_tag_album (tag)); g_free (song->track); song->track = g_strdup_printf ("%i", taglib_tag_track (tag)); g_free (song->date); song->date = g_strdup_printf ("%i", taglib_tag_year (tag)); g_free (song->genre); song->genre = g_strdup (taglib_tag_genre (tag)); g_free (song->comment); song->comment = g_strdup (taglib_tag_comment (tag)); /* Update server database */ ario_server_update_db (song->file); } taglib_tag_free_strings (); taglib_file_free (file); } if (!success) { /* Run error dialog */ dialog = gtk_message_dialog_new (GTK_WINDOW (shell_songinfos), GTK_DIALOG_MODAL, GTK_MESSAGE_ERROR, GTK_BUTTONS_OK, "%s %s", _("Error saving tags of file:"), filename); gtk_dialog_run (GTK_DIALOG (dialog)); gtk_widget_destroy (dialog); } else if (shell_songinfos->priv->save_button) { /* Deactivate save button until next tag modification */ gtk_widget_set_sensitive (GTK_WIDGET (shell_songinfos->priv->save_button), FALSE); } g_free (filename); break; #endif case ARIO_PREVIOUS: if (g_list_previous (shell_songinfos->priv->songs)) { /* Display previous song */ shell_songinfos->priv->songs = g_list_previous (shell_songinfos->priv->songs); ario_shell_songinfos_set_current_song (shell_songinfos); } break; case ARIO_NEXT: if (g_list_next (shell_songinfos->priv->songs)) { /* Display next song */ shell_songinfos->priv->songs = g_list_next (shell_songinfos->priv->songs); ario_shell_songinfos_set_current_song (shell_songinfos); } break; } } static void ario_shell_songinfos_set_current_song (ArioShellSonginfos *shell_songinfos) { ARIO_LOG_FUNCTION_START; ArioServerSong *song; gchar *length; gchar *window_title; ArioLyricsEditorData *data; gboolean can_edit = ario_shell_songinfos_can_edit_tags (); if (!shell_songinfos->priv->songs) return; /* Get current song */ song = shell_songinfos->priv->songs->data; if (!song) return; /* Fill text boxes with song tags */ gtk_entry_set_text (GTK_ENTRY (shell_songinfos->priv->title_entry), VALUE (song->title)); gtk_entry_set_text (GTK_ENTRY (shell_songinfos->priv->artist_entry), VALUE (song->artist)); gtk_entry_set_text (GTK_ENTRY (shell_songinfos->priv->album_entry), VALUE (song->album)); gtk_entry_set_text (GTK_ENTRY (shell_songinfos->priv->album_artist_entry), VALUE (song->album_artist)); gtk_entry_set_text (GTK_ENTRY (shell_songinfos->priv->track_entry), VALUE (song->track)); gtk_entry_set_text (GTK_ENTRY (shell_songinfos->priv->date_entry), VALUE (song->date)); gtk_entry_set_text (GTK_ENTRY (shell_songinfos->priv->genre_entry), VALUE (song->genre)); gtk_entry_set_text (GTK_ENTRY (shell_songinfos->priv->comment_entry), VALUE (song->comment)); length = ario_util_format_time (song->time); gtk_entry_set_text (GTK_ENTRY (shell_songinfos->priv->length_entry), VALUE (length)); g_free (length); gtk_entry_set_text (GTK_ENTRY (shell_songinfos->priv->file_entry), VALUE (song->file)); gtk_entry_set_text (GTK_ENTRY (shell_songinfos->priv->composer_entry), VALUE (song->composer)); gtk_entry_set_text (GTK_ENTRY (shell_songinfos->priv->performer_entry), VALUE (song->performer)); gtk_entry_set_text (GTK_ENTRY (shell_songinfos->priv->disc_entry), VALUE (song->disc)); /* Set text boxes sensitivity */ gtk_widget_set_sensitive (shell_songinfos->priv->title_entry, can_edit); gtk_widget_set_sensitive (shell_songinfos->priv->artist_entry, can_edit); gtk_widget_set_sensitive (shell_songinfos->priv->album_entry, can_edit); gtk_widget_set_sensitive (shell_songinfos->priv->track_entry, can_edit); gtk_widget_set_sensitive (shell_songinfos->priv->date_entry, can_edit); gtk_widget_set_sensitive (shell_songinfos->priv->genre_entry, can_edit); gtk_widget_set_sensitive (shell_songinfos->priv->comment_entry, can_edit); /* Deactivate save button until next tag modification */ if (shell_songinfos->priv->save_button) gtk_widget_set_sensitive (GTK_WIDGET (shell_songinfos->priv->save_button), FALSE); /* Deactivate previous button if first song is displayed */ gtk_widget_set_sensitive (shell_songinfos->priv->previous_button, g_list_previous (shell_songinfos->priv->songs) != NULL); /* Deactivate next button if last song is displayed */ gtk_widget_set_sensitive (shell_songinfos->priv->next_button, g_list_next (shell_songinfos->priv->songs) != NULL); /* Get song lyrics */ data = (ArioLyricsEditorData *) g_malloc0 (sizeof (ArioLyricsEditorData)); data->artist = g_strdup (song->artist); data->title = g_strdup (ario_util_format_title (song)); ario_lyrics_editor_push (ARIO_LYRICS_EDITOR (shell_songinfos->priv->lyrics_editor), data); /* Set window title */ window_title = g_strdup_printf ("%s - %s", _("Song Properties"), data->title); gtk_window_set_title (GTK_WINDOW (shell_songinfos), window_title); g_free (window_title); } void ario_shell_songinfos_text_changed_cb (GtkWidget *widget, ArioShellSonginfos *shell_songinfos) { ARIO_LOG_FUNCTION_START; /* One tag has been modified, activate save button */ if (shell_songinfos->priv->save_button) gtk_widget_set_sensitive (GTK_WIDGET (shell_songinfos->priv->save_button), TRUE); } ario-1.6/src/shell/ario-shell-coverdownloader.c0000644000175000017500000005376013226723432016546 00000000000000/* * Copyright (C) 2004,2005 Marc Pavot * * 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * */ #include "shell/ario-shell-coverdownloader.h" #include #include #include #include "ario-debug.h" #include "covers/ario-cover.h" #include "covers/ario-cover-handler.h" #include "covers/ario-cover-manager.h" #include "lib/gtk-builder-helpers.h" #include "servers/ario-server.h" static void ario_shell_coverdownloader_finalize (GObject *object); static GObject * ario_shell_coverdownloader_constructor (GType type, guint n_construct_properties, GObjectConstructParam *construct_properties); static gboolean ario_shell_coverdownloader_window_delete_cb (GtkWidget *window, GdkEventAny *event, ArioShellCoverdownloader *ario_shell_coverdownloader); static void ario_shell_coverdownloader_get_cover (ArioShellCoverdownloader *ario_shell_coverdownloader, const char *artist, const char *album, const char *path); static void ario_shell_coverdownloader_close_cb (GtkButton *button, ArioShellCoverdownloader *ario_shell_coverdownloader); static void ario_shell_coverdownloader_cancel_cb (GtkButton *button, ArioShellCoverdownloader *ario_shell_coverdownloader); static void ario_shell_coverdownloader_get_cover_from_album (ArioShellCoverdownloader *ario_shell_coverdownloader, const ArioServerAlbum *server_album, const ArioShellCoverdownloaderOperation operation); struct ArioShellCoverdownloaderPrivate { int nb_covers; int nb_covers_already_exist; int nb_covers_found; int nb_covers_not_found; gboolean cancelled; GtkWidget *progress_artist_label; GtkWidget *progress_album_label; GtkWidget *progress_hbox; GtkWidget *progress_const_artist_label; GtkWidget *progressbar; GtkWidget *cancel_button; GtkWidget *close_button; GSList *albums; ArioShellCoverdownloaderOperation operation; GThread *thread; }; static gboolean is_instantiated = FALSE; #define ARIO_SHELL_COVERDOWNLOADER_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_ARIO_SHELL_COVERDOWNLOADER, ArioShellCoverdownloaderPrivate)) G_DEFINE_TYPE (ArioShellCoverdownloader, ario_shell_coverdownloader, GTK_TYPE_WINDOW) static void ario_shell_coverdownloader_class_init (ArioShellCoverdownloaderClass *klass) { ARIO_LOG_FUNCTION_START; GObjectClass *object_class = G_OBJECT_CLASS (klass); /* Virtual methods */ object_class->finalize = ario_shell_coverdownloader_finalize; object_class->constructor = ario_shell_coverdownloader_constructor; /* Private attributes */ g_type_class_add_private (klass, sizeof (ArioShellCoverdownloaderPrivate)); } static void ario_shell_coverdownloader_init (ArioShellCoverdownloader *ario_shell_coverdownloader) { ARIO_LOG_FUNCTION_START; ario_shell_coverdownloader->priv = ARIO_SHELL_COVERDOWNLOADER_GET_PRIVATE (ario_shell_coverdownloader); ario_shell_coverdownloader->priv->cancelled = FALSE; } static void ario_shell_coverdownloader_finalize (GObject *object) { ARIO_LOG_FUNCTION_START; ArioShellCoverdownloader *ario_shell_coverdownloader; g_return_if_fail (object != NULL); g_return_if_fail (IS_ARIO_SHELL_COVERDOWNLOADER (object)); ario_shell_coverdownloader = ARIO_SHELL_COVERDOWNLOADER (object); g_return_if_fail (ario_shell_coverdownloader->priv != NULL); /* Wait for thread to finish */ if (ario_shell_coverdownloader->priv->thread) g_thread_join (ario_shell_coverdownloader->priv->thread); /* We free the list */ g_slist_foreach (ario_shell_coverdownloader->priv->albums, (GFunc) ario_server_free_album, NULL); g_slist_free (ario_shell_coverdownloader->priv->albums); is_instantiated = FALSE; G_OBJECT_CLASS (ario_shell_coverdownloader_parent_class)->finalize (object); } GtkWidget * ario_shell_coverdownloader_new (void) { ARIO_LOG_FUNCTION_START; ArioShellCoverdownloader *ario_shell_coverdownloader; /* Ensure that only one coverdownloader is instantiated at the same time */ if (is_instantiated) return NULL; else is_instantiated = TRUE; ario_shell_coverdownloader = g_object_new (TYPE_ARIO_SHELL_COVERDOWNLOADER, NULL); g_return_val_if_fail (ario_shell_coverdownloader->priv != NULL, NULL); return GTK_WIDGET (ario_shell_coverdownloader); } static GObject * ario_shell_coverdownloader_constructor (GType type, guint n_construct_properties, GObjectConstructParam *construct_properties) { ARIO_LOG_FUNCTION_START; ArioShellCoverdownloader *ario_shell_coverdownloader; ArioShellCoverdownloaderClass *klass; GObjectClass *parent_class; GtkBuilder *builder; GtkWidget *vbox; /* Call parent constructor */ klass = ARIO_SHELL_COVERDOWNLOADER_CLASS (g_type_class_peek (TYPE_ARIO_SHELL_COVERDOWNLOADER)); parent_class = G_OBJECT_CLASS (g_type_class_peek_parent (klass)); ario_shell_coverdownloader = ARIO_SHELL_COVERDOWNLOADER (parent_class->constructor (type, n_construct_properties, construct_properties)); /* Create UI using GtkBuilder */ builder = gtk_builder_helpers_new (UI_PATH "cover-progress.ui", NULL); /* Get pointers to various widgets */ vbox = GTK_WIDGET (gtk_builder_get_object (builder, "vbox")); ario_shell_coverdownloader->priv->progress_artist_label = GTK_WIDGET (gtk_builder_get_object (builder, "artist_label")); ario_shell_coverdownloader->priv->progress_album_label = GTK_WIDGET (gtk_builder_get_object (builder, "album_label")); ario_shell_coverdownloader->priv->progressbar = GTK_WIDGET (gtk_builder_get_object (builder, "progressbar")); ario_shell_coverdownloader->priv->progress_hbox = GTK_WIDGET (gtk_builder_get_object (builder, "hbox2")); ario_shell_coverdownloader->priv->progress_const_artist_label = GTK_WIDGET (gtk_builder_get_object (builder, "const_artist_label")); ario_shell_coverdownloader->priv->cancel_button = GTK_WIDGET (gtk_builder_get_object (builder, "cancel_button")); ario_shell_coverdownloader->priv->close_button = GTK_WIDGET (gtk_builder_get_object (builder, "close_button")); gtk_builder_helpers_boldify_label (builder, "operation_label"); /* Set window properties */ gtk_window_set_title (GTK_WINDOW (ario_shell_coverdownloader), _("Music Player Cover Download")); gtk_container_add (GTK_CONTAINER (ario_shell_coverdownloader), vbox); gtk_window_set_position (GTK_WINDOW (ario_shell_coverdownloader), GTK_WIN_POS_CENTER); /* Connect signals for user actions */ g_signal_connect (ario_shell_coverdownloader->priv->cancel_button, "clicked", G_CALLBACK (ario_shell_coverdownloader_cancel_cb), ario_shell_coverdownloader); g_signal_connect (ario_shell_coverdownloader->priv->close_button, "clicked", G_CALLBACK (ario_shell_coverdownloader_close_cb), ario_shell_coverdownloader); g_signal_connect (ario_shell_coverdownloader, "delete_event", G_CALLBACK (ario_shell_coverdownloader_window_delete_cb), ario_shell_coverdownloader); g_object_unref (builder); return G_OBJECT (ario_shell_coverdownloader); } static void ario_shell_coverdownloader_close_cb (GtkButton *button, ArioShellCoverdownloader *ario_shell_coverdownloader) { ARIO_LOG_FUNCTION_START; /* Close button pressed : we close and destroy the window */ ario_shell_coverdownloader->priv->cancelled = TRUE; gtk_widget_hide (GTK_WIDGET (ario_shell_coverdownloader)); gtk_widget_destroy (GTK_WIDGET (ario_shell_coverdownloader)); } static void ario_shell_coverdownloader_cancel_cb (GtkButton *button, ArioShellCoverdownloader *ario_shell_coverdownloader) { ARIO_LOG_FUNCTION_START; /* Cancel button pressed : we wait until the end of the current download and we stop the search */ ario_shell_coverdownloader->priv->cancelled = TRUE; } static gboolean ario_shell_coverdownloader_window_delete_cb (GtkWidget *window, GdkEventAny *event, ArioShellCoverdownloader *ario_shell_coverdownloader) { ARIO_LOG_FUNCTION_START; if (!ario_shell_coverdownloader->priv->cancelled) { /* Window destroyed for the first time : we wait until the end of the current download and we stop the search */ ario_shell_coverdownloader->priv->cancelled = TRUE; } else { /* Window destroyed for the second time : we close and destroy the window */ gtk_widget_hide (GTK_WIDGET (ario_shell_coverdownloader)); gtk_widget_destroy (GTK_WIDGET (ario_shell_coverdownloader)); } return TRUE; } static gboolean ario_shell_coverdownloader_refresh (gpointer data) { /* Wait for UI refresh */ while (gtk_events_pending ()) gtk_main_iteration (); return FALSE; } static gboolean ario_shell_coverdownloader_progress_start (ArioShellCoverdownloader *ario_shell_coverdownloader) { ARIO_LOG_FUNCTION_START; gtk_window_resize (GTK_WINDOW (ario_shell_coverdownloader), 350, 150); gtk_window_set_resizable (GTK_WINDOW (ario_shell_coverdownloader), FALSE); gtk_progress_bar_set_fraction (GTK_PROGRESS_BAR (ario_shell_coverdownloader->priv->progressbar), 0); gtk_widget_show_all (GTK_WIDGET (ario_shell_coverdownloader)); /* We only want the cancel button at beginning, not the close button */ gtk_widget_hide (ario_shell_coverdownloader->priv->close_button); /* We refresh the window */ ario_shell_coverdownloader_refresh (NULL); return FALSE; } typedef struct { ArioShellCoverdownloader *ario_shell_coverdownloader; gchar *artist; gchar *album; } ArioShellCoverdownloaderIdleData; static gboolean ario_shell_coverdownloader_progress_update (ArioShellCoverdownloaderIdleData *data) { ARIO_LOG_FUNCTION_START; /* We have already searched for nb_covers_done covers */ gdouble nb_covers_done = (data->ario_shell_coverdownloader->priv->nb_covers_found + data->ario_shell_coverdownloader->priv->nb_covers_not_found + data->ario_shell_coverdownloader->priv->nb_covers_already_exist); /* We update the progress bar */ gtk_progress_bar_set_fraction (GTK_PROGRESS_BAR (data->ario_shell_coverdownloader->priv->progressbar), nb_covers_done / data->ario_shell_coverdownloader->priv->nb_covers); /* We update the artist and the album label */ gtk_label_set_text (GTK_LABEL (data->ario_shell_coverdownloader->priv->progress_artist_label), data->artist); gtk_label_set_text (GTK_LABEL (data->ario_shell_coverdownloader->priv->progress_album_label), data->album); /* We refresh the window */ ario_shell_coverdownloader_refresh (NULL); g_free (data->artist); g_free (data->album); g_free (data); return FALSE; } static gboolean ario_shell_coverdownloader_progress_end (ArioShellCoverdownloader *ario_shell_coverdownloader) { ARIO_LOG_FUNCTION_START; char *label_text; /* We only want the close button at the end, not the cancel button */ gtk_widget_hide (ario_shell_coverdownloader->priv->cancel_button); gtk_widget_show (ario_shell_coverdownloader->priv->close_button); gtk_label_set_text (GTK_LABEL (ario_shell_coverdownloader->priv->progress_artist_label), ""); gtk_label_set_text (GTK_LABEL (ario_shell_coverdownloader->priv->progress_album_label), ""); gtk_progress_bar_set_fraction (GTK_PROGRESS_BAR (ario_shell_coverdownloader->priv->progressbar), 1); gtk_label_set_text (GTK_LABEL (ario_shell_coverdownloader->priv->progress_const_artist_label), _("Download Finished!")); /* We show the numbers of covers found and not found */ label_text = g_strdup_printf (_("%i covers found\n%i covers not found\n%i covers already exist"), ario_shell_coverdownloader->priv->nb_covers_found, ario_shell_coverdownloader->priv->nb_covers_not_found, ario_shell_coverdownloader->priv->nb_covers_already_exist); gtk_label_set_text (GTK_LABEL (ario_shell_coverdownloader->priv->progress_const_artist_label), label_text); g_free (label_text); gtk_widget_destroy (ario_shell_coverdownloader->priv->progress_hbox); gtk_widget_destroy (ario_shell_coverdownloader->priv->progress_artist_label); return FALSE; } void ario_shell_coverdownloader_get_covers (ArioShellCoverdownloader *ario_shell_coverdownloader, const ArioShellCoverdownloaderOperation operation) { ARIO_LOG_FUNCTION_START; GSList *albums; /* Get list of all albums of server */ albums = ario_server_get_albums (NULL); /* Get covers of albums */ ario_shell_coverdownloader_get_covers_from_albums (ario_shell_coverdownloader, albums, operation); g_slist_foreach (albums, (GFunc) ario_server_free_album, NULL); g_slist_free (albums); } static gboolean ario_shell_coverdownloader_force_reload (gpointer data) { ARIO_LOG_FUNCTION_START; ario_cover_handler_force_reload(); return FALSE; } static gpointer ario_shell_coverdownloader_get_covers_from_albums_thread (ArioShellCoverdownloader *ario_shell_coverdownloader) { ARIO_LOG_FUNCTION_START; GSList *tmp; if (!ario_shell_coverdownloader->priv->albums) return NULL; /* We show the window with the progress bar */ if (ario_shell_coverdownloader->priv->operation == GET_COVERS) g_idle_add ((GSourceFunc) ario_shell_coverdownloader_progress_start, ario_shell_coverdownloader); ario_shell_coverdownloader->priv->nb_covers = g_slist_length (ario_shell_coverdownloader->priv->albums); /* While there are still covers to search */ for (tmp = ario_shell_coverdownloader->priv->albums; tmp; tmp = g_slist_next (tmp)) { /* The user has pressed the "cancel button" or has closed the window : we stop the search */ if (ario_shell_coverdownloader->priv->cancelled) break; /* We search for a new cover */ ario_shell_coverdownloader_get_cover_from_album (ario_shell_coverdownloader, tmp->data, ario_shell_coverdownloader->priv->operation); } /* We change the window to show a close button and infos about the search */ if (ario_shell_coverdownloader->priv->operation == GET_COVERS) g_idle_add ((GSourceFunc) ario_shell_coverdownloader_progress_end, ario_shell_coverdownloader); else g_idle_add ((GSourceFunc) gtk_widget_destroy, ario_shell_coverdownloader); g_idle_add ((GSourceFunc) ario_shell_coverdownloader_force_reload, NULL); return NULL; } void ario_shell_coverdownloader_get_covers_from_albums (ArioShellCoverdownloader *ario_shell_coverdownloader, const GSList *albums, const ArioShellCoverdownloaderOperation operation) { ARIO_LOG_FUNCTION_START; const GSList *tmp; if (!albums) return; /* Copy the list of albums */ ario_shell_coverdownloader->priv->albums = NULL; for (tmp = albums; tmp; tmp = g_slist_next (tmp)) { ario_shell_coverdownloader->priv->albums = g_slist_append (ario_shell_coverdownloader->priv->albums, ario_server_copy_album (tmp->data)); } ario_shell_coverdownloader->priv->operation = operation; /* Launch thread for cover download */ ario_shell_coverdownloader->priv->thread = g_thread_new ("coverdl", (GThreadFunc) ario_shell_coverdownloader_get_covers_from_albums_thread, ario_shell_coverdownloader); } static void ario_shell_coverdownloader_get_cover_from_album (ArioShellCoverdownloader *ario_shell_coverdownloader, const ArioServerAlbum *server_album, const ArioShellCoverdownloaderOperation operation) { ARIO_LOG_FUNCTION_START; const gchar *artist; const gchar *album; const gchar *path; ArioShellCoverdownloaderIdleData *data; if (!server_album) return; artist = server_album->artist; album = server_album->album; path = server_album->path; if (!album || !artist) return; switch (operation) { case GET_COVERS: /* We update the progress bar */ data = (ArioShellCoverdownloaderIdleData *) g_malloc0 (sizeof (ArioShellCoverdownloaderIdleData)); data->ario_shell_coverdownloader = ario_shell_coverdownloader; data->artist = g_strdup (artist); data->album = g_strdup (album); g_idle_add ((GSourceFunc) ario_shell_coverdownloader_progress_update, data); if (ario_cover_cover_exists (artist, album)) /* The cover already exists, we do nothing */ ++ario_shell_coverdownloader->priv->nb_covers_already_exist; else /* We search for the cover */ ario_shell_coverdownloader_get_cover (ario_shell_coverdownloader, artist, album, path); break; case REMOVE_COVERS: /* We remove the cover from the ~/.config/ario/covers/ directory */ ario_cover_remove_cover (artist, album); break; default: break; } } static void ario_shell_coverdownloader_get_cover (ArioShellCoverdownloader *ario_shell_coverdownloader, const char *artist, const char *album, const char *path) { ARIO_LOG_FUNCTION_START; GArray *size; GSList *data = NULL; gboolean ret; size = g_array_new (TRUE, TRUE, sizeof (int)); /* If a cover is found, it is loaded in data(0) */ ret = ario_cover_manager_get_covers (ario_cover_manager_get_instance (), artist, album, path, &size, &data, GET_FIRST_COVER); /* If the cover is not too big and not too small (blank image), we save it */ if (ret && ario_cover_size_is_valid (g_array_index (size, int, 0))) { ret = ario_cover_save_cover (artist, album, g_slist_nth_data (data, 0), g_array_index (size, int, 0), OVERWRITE_MODE_SKIP); if (ret) ++ario_shell_coverdownloader->priv->nb_covers_found; else ++ario_shell_coverdownloader->priv->nb_covers_not_found; } else { ++ario_shell_coverdownloader->priv->nb_covers_not_found; } g_array_free (size, TRUE); g_slist_foreach (data, (GFunc) g_free, NULL); g_slist_free (data); } ario-1.6/src/shell/ario-shell-preferences.c0000644000175000017500000001563013226723431015643 00000000000000/* * Copyright (C) 2005 Marc Pavot * * 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, 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * */ #include "shell/ario-shell-preferences.h" #include #include #include #include #include #include #include "preferences/ario-browser-preferences.h" #include "preferences/ario-connection-preferences.h" #include "preferences/ario-cover-preferences.h" #include "preferences/ario-lyrics-preferences.h" #include "preferences/ario-others-preferences.h" #include "preferences/ario-playlist-preferences.h" #include "preferences/ario-server-preferences.h" #include "preferences/ario-stats-preferences.h" #include "ario-debug.h" static gboolean ario_shell_preferences_window_delete_cb (GtkWidget *window, GdkEventAny *event, ArioShellPreferences *shell_preferences); static void ario_shell_preferences_response_cb (GtkDialog *dialog, int response_id, ArioShellPreferences *shell_preferences); struct ArioShellPreferencesPrivate { GtkWidget *notebook; }; #define ARIO_SHELL_PREFERENCES_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_ARIO_SHELL_PREFERENCES, ArioShellPreferencesPrivate)) G_DEFINE_TYPE (ArioShellPreferences, ario_shell_preferences, GTK_TYPE_DIALOG) static void ario_shell_preferences_class_init (ArioShellPreferencesClass *klass) { ARIO_LOG_FUNCTION_START; g_type_class_add_private (klass, sizeof (ArioShellPreferencesPrivate)); } static void ario_shell_preferences_init (ArioShellPreferences *shell_preferences) { ARIO_LOG_FUNCTION_START; shell_preferences->priv = ARIO_SHELL_PREFERENCES_GET_PRIVATE (shell_preferences); g_signal_connect (shell_preferences, "delete_event", G_CALLBACK (ario_shell_preferences_window_delete_cb), shell_preferences); g_signal_connect (shell_preferences, "response", G_CALLBACK (ario_shell_preferences_response_cb), shell_preferences); gtk_dialog_add_button (GTK_DIALOG (shell_preferences), _("_Close"), GTK_RESPONSE_CLOSE); gtk_dialog_set_default_response (GTK_DIALOG (shell_preferences), GTK_RESPONSE_CLOSE); gtk_window_set_title (GTK_WINDOW (shell_preferences), _("Ario Preferences")); gtk_window_set_resizable (GTK_WINDOW (shell_preferences), FALSE); shell_preferences->priv->notebook = GTK_WIDGET (gtk_notebook_new ()); gtk_container_set_border_width (GTK_CONTAINER (shell_preferences->priv->notebook), 5); gtk_container_add (GTK_CONTAINER (gtk_dialog_get_content_area (GTK_DIALOG (shell_preferences))), shell_preferences->priv->notebook); gtk_container_set_border_width (GTK_CONTAINER (shell_preferences), 5); gtk_box_set_spacing (GTK_BOX (gtk_dialog_get_content_area (GTK_DIALOG (shell_preferences))), 2); } GtkWidget * ario_shell_preferences_new (void) { ARIO_LOG_FUNCTION_START; ArioShellPreferences *shell_preferences; GtkWidget *widget; shell_preferences = g_object_new (TYPE_ARIO_SHELL_PREFERENCES, NULL); g_return_val_if_fail (shell_preferences->priv != NULL, NULL); widget = ario_connection_preferences_new (); gtk_notebook_append_page (GTK_NOTEBOOK (shell_preferences->priv->notebook), widget, gtk_label_new (_("Connection"))); widget = ario_server_preferences_new (); gtk_notebook_append_page (GTK_NOTEBOOK (shell_preferences->priv->notebook), widget, gtk_label_new (_("Server"))); widget = ario_browser_preferences_new (); gtk_notebook_append_page (GTK_NOTEBOOK (shell_preferences->priv->notebook), widget, gtk_label_new (_("Library"))); widget = ario_playlist_preferences_new (); gtk_notebook_append_page (GTK_NOTEBOOK (shell_preferences->priv->notebook), widget, gtk_label_new (_("Playlist"))); widget = ario_cover_preferences_new (); gtk_notebook_append_page (GTK_NOTEBOOK (shell_preferences->priv->notebook), widget, gtk_label_new (_("Covers"))); widget = ario_lyrics_preferences_new (); gtk_notebook_append_page (GTK_NOTEBOOK (shell_preferences->priv->notebook), widget, gtk_label_new (_("Lyrics"))); widget = ario_others_preferences_new (); gtk_notebook_append_page (GTK_NOTEBOOK (shell_preferences->priv->notebook), widget, gtk_label_new (_("Others"))); widget = ario_stats_preferences_new (); gtk_notebook_append_page (GTK_NOTEBOOK (shell_preferences->priv->notebook), widget, gtk_label_new (_("Statistics"))); return GTK_WIDGET (shell_preferences); } static gboolean ario_shell_preferences_window_delete_cb (GtkWidget *window, GdkEventAny *event, ArioShellPreferences *shell_preferences) { ARIO_LOG_FUNCTION_START; gtk_widget_hide (GTK_WIDGET (shell_preferences)); gtk_widget_destroy (GTK_WIDGET (shell_preferences)); return TRUE; } static void ario_shell_preferences_response_cb (GtkDialog *dialog, int response_id, ArioShellPreferences *shell_preferences) { ARIO_LOG_FUNCTION_START; if (response_id == GTK_RESPONSE_CLOSE) { gtk_widget_hide (GTK_WIDGET (shell_preferences)); gtk_widget_destroy (GTK_WIDGET (shell_preferences)); } } ario-1.6/src/shell/ario-shell.c0000644000175000017500000012545613226743667013371 00000000000000/* * Copyright (C) 2005 Marc Pavot * * 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, 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * */ #include "shell/ario-shell.h" #include #include #include #include #include #include "ario-debug.h" #include "ario-util.h" #include "covers/ario-cover-handler.h" #include "covers/ario-cover-manager.h" #include "lib/ario-conf.h" #include "lyrics/ario-lyrics-manager.h" #include "notification/ario-notification-manager.h" #include "playlist/ario-playlist-manager.h" #include "plugins/ario-plugin-manager.h" #include "preferences/ario-preferences.h" #include "servers/ario-server.h" #include "shell/ario-shell-coverdownloader.h" #include "shell/ario-shell-coverselect.h" #include "shell/ario-shell-lyrics.h" #include "shell/ario-shell-preferences.h" #include "shell/ario-shell-similarartists.h" #include "sources/ario-source-manager.h" #include "widgets/ario-firstlaunch.h" #include "widgets/ario-header.h" #include "widgets/ario-playlist.h" #include "widgets/ario-status-bar.h" static void ario_shell_finalize (GObject *object); static void ario_shell_show (ArioShell *shell, gboolean minimized); static void ario_shell_cmd_quit (GSimpleAction *action, GVariant *parameter, gpointer data); static void ario_shell_cmd_connect (GSimpleAction *action, GVariant *parameter, gpointer data); static void ario_shell_cmd_disconnect (GSimpleAction *action, GVariant *parameter, gpointer data); static void ario_shell_cmd_update (GSimpleAction *action, GVariant *parameter, gpointer data); static void ario_shell_cmd_plugins (GSimpleAction *action, GVariant *parameter, gpointer data); static void ario_shell_cmd_preferences (GSimpleAction *action, GVariant *parameter, gpointer data); static void ario_shell_cmd_lyrics (GSimpleAction *action, GVariant *parameter, gpointer data); static void ario_shell_cmd_cover_select (GSimpleAction *action, GVariant *parameter, gpointer data); static void ario_shell_cmd_covers (GSimpleAction *action, GVariant *parameter, gpointer data); static void ario_shell_cmd_similar_artists (GSimpleAction *action, GVariant *parameter, gpointer data); static void ario_shell_cmd_add_similar (GSimpleAction *action, GVariant *parameter, gpointer data); static void ario_shell_cmd_about (GSimpleAction *action, GVariant *parameter, gpointer data); static void ario_shell_server_state_changed_cb (ArioServer *server, ArioShell *shell); static void ario_shell_server_song_changed_cb (ArioServer *server, ArioShell *shell); static gboolean ario_shell_window_state_cb (GtkWidget *widget, GdkEvent *event, ArioShell *shell); static void ario_shell_sync_window_state (ArioShell *shell); static void ario_shell_sync_paned (ArioShell *shell); static void ario_shell_sync_server (ArioShell *shell); static void ario_shell_sync_playlist_position (ArioShell *shell); static void ario_shell_firstlaunch_delete_cb (ArioFirstlaunch *firstlaunch, ArioShell *shell); static void ario_shell_view_statusbar_changed_cb (GSimpleAction *action, GVariant *parameter, gpointer data); static void ario_shell_view_upperpart_changed_cb (GSimpleAction *action, GVariant *parameter, gpointer data); static void ario_shell_view_playlist_changed_cb (GSimpleAction *action, GVariant *parameter, gpointer data); static void ario_shell_sync_statusbar_visibility (ArioShell *shell); static void ario_shell_sync_upperpart_visibility (ArioShell *shell); static void ario_shell_sync_playlist_visibility (ArioShell *shell); static void ario_shell_playlist_position_changed_cb (guint notification_id, ArioShell *shell); struct ArioShellPrivate { GtkApplication * app; ArioCoverHandler *cover_handler; ArioPlaylistManager *playlist_manager; ArioNotificationManager *notification_manager; GtkWidget *header; GtkWidget *paned; GtkWidget *sourcemanager; GtkWidget *playlist; GtkWidget *status_bar; GtkWidget *vbox; GtkWidget *hbox; gboolean statusbar_hidden; gboolean upperpart_hidden; gboolean playlist_hidden; gboolean connected; gboolean shown; gboolean maximized; gboolean visible; int window_x; int window_y; int window_w; int window_h; }; enum { PROP_0, }; static const GActionEntry shell_actions[] = { { "connect", ario_shell_cmd_connect}, { "disconnect", ario_shell_cmd_disconnect}, { "update", ario_shell_cmd_update}, { "view-upperpart", ario_shell_view_upperpart_changed_cb, NULL, "false" }, { "view-playlist", ario_shell_view_playlist_changed_cb, NULL, "false" }, { "view-statusbar", ario_shell_view_statusbar_changed_cb, NULL, "false" }, { "view-lyrics", ario_shell_cmd_lyrics}, { "cover-select", ario_shell_cmd_cover_select}, { "dlcovers", ario_shell_cmd_covers}, { "similar-artists", ario_shell_cmd_similar_artists}, { "add-similar", ario_shell_cmd_add_similar}, { "preferences", ario_shell_cmd_preferences}, { "plugins", ario_shell_cmd_plugins}, { "about", ario_shell_cmd_about}, { "quit", ario_shell_cmd_quit}, }; #define ARIO_SHELL_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), ARIO_TYPE_SHELL, ArioShellPrivate)) G_DEFINE_TYPE (ArioShell, ario_shell, GTK_TYPE_APPLICATION_WINDOW) static void ario_shell_class_init (ArioShellClass *klass) { ARIO_LOG_FUNCTION_START; GObjectClass *object_class = (GObjectClass *) klass; /* Virtual methods */ object_class->finalize = ario_shell_finalize; /* Private attributes */ g_type_class_add_private (klass, sizeof (ArioShellPrivate)); } static void ario_shell_init (ArioShell *shell) { ARIO_LOG_FUNCTION_START; shell->priv = ARIO_SHELL_GET_PRIVATE (shell); shell->priv->connected = FALSE; shell->priv->shown = FALSE; shell->priv->visible = TRUE; shell->priv->window_x = -1; shell->priv->window_y = -1; shell->priv->window_w = -1; shell->priv->window_h = -1; } static void ario_shell_finalize (GObject *object) { ARIO_LOG_FUNCTION_START; ArioShell *shell = ARIO_SHELL (object); gtk_widget_hide (GTK_WIDGET(shell)); g_object_unref (shell->priv->playlist); g_object_unref (shell->priv->sourcemanager); g_object_unref (shell->priv->cover_handler); g_object_unref (shell->priv->playlist_manager); g_object_unref (shell->priv->notification_manager); g_object_unref (ario_server_get_instance ()); G_OBJECT_CLASS (ario_shell_parent_class)->finalize (object); } ArioShell * ario_shell_new (GtkApplication * app) { ARIO_LOG_FUNCTION_START; ArioShell *shell; shell = g_object_new (ARIO_TYPE_SHELL, NULL); shell->priv->app = app; return shell; } static void ario_shell_quit (ArioShell *shell) { ARIO_LOG_FUNCTION_START; /* Stop music on exit if needed */ if (ario_conf_get_boolean (PREF_STOP_EXIT, PREF_STOP_EXIT_DEFAULT)) ario_server_do_stop (); /* Stop main loop */ g_application_quit (G_APPLICATION (shell->priv->app)); } static gboolean ario_shell_window_delete_cb (GtkWidget *win, GdkEventAny *event, ArioShell *shell) { ARIO_LOG_FUNCTION_START; if (ario_conf_get_boolean (PREF_HIDE_ON_CLOSE, PREF_HIDE_ON_CLOSE_DEFAULT)) { ario_shell_set_visibility (shell, VISIBILITY_TOGGLE); } else { ario_shell_quit (shell); } return TRUE; }; void ario_shell_construct (ArioShell *shell, gboolean minimized) { ARIO_LOG_FUNCTION_START; GtkWidget *separator; GAction *action; ArioFirstlaunch *firstlaunch; GtkBuilder *builder; GMenuModel *menu; g_return_if_fail (IS_ARIO_SHELL (shell)); /* Set main window properties */ gtk_window_set_title (GTK_WINDOW (shell), "Ario"); gtk_window_set_position (GTK_WINDOW (shell), GTK_WIN_POS_CENTER); /* Create program icon */ gtk_window_set_default_icon_name ("ario"); /* Connect window destruction signal to exit program */ g_signal_connect (shell, "delete_event", G_CALLBACK (ario_shell_window_delete_cb), shell); /* Initialize UI */ builder = gtk_builder_new_from_file (UI_PATH "ario-shell-menu.ui"); menu = G_MENU_MODEL (gtk_builder_get_object (builder, "menu")); if (!g_application_get_is_remote (G_APPLICATION (shell->priv->app))) { gtk_application_set_app_menu (shell->priv->app, menu); } g_object_unref (builder); /* Main window actions */ g_action_map_add_action_entries (G_ACTION_MAP (g_application_get_default ()), shell_actions, G_N_ELEMENTS (shell_actions), shell); /* Initialize server object (MPD, XMMS, ....) */ ario_server_get_instance (); /* Initialize cover art handler */ shell->priv->cover_handler = ario_cover_handler_new (); /* Initialize playlist manager */ shell->priv->playlist_manager = ario_playlist_manager_get_instance (); /* Initialize notification manager */ shell->priv->notification_manager = ario_notification_manager_get_instance (); /* Add widgets to main window. * Structure is: * vbox * ---header * ---separator * ---hbox * -----hpaned/vpaned * -------sourcemanager * -------playlist * ---status_bar */ /* Create main vbox */ shell->priv->vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); /* Create header */ shell->priv->header = ario_header_new (); /* Create separator */ separator = gtk_separator_new (GTK_ORIENTATION_HORIZONTAL); /* Create playlist */ shell->priv->playlist = ario_playlist_new (); g_object_ref (shell->priv->playlist); /* Create source manager */ shell->priv->sourcemanager = ario_source_manager_get_instance (); g_object_ref (shell->priv->sourcemanager); /* Create the hbox(for tabs and playlist) */ shell->priv->hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); /* Create status bar */ shell->priv->status_bar = ario_status_bar_new (); /* Synchronize status bar checkbox in menu with preferences */ shell->priv->statusbar_hidden = ario_conf_get_boolean (PREF_STATUSBAR_HIDDEN, PREF_STATUSBAR_HIDDEN_DEFAULT); action = g_action_map_lookup_action (G_ACTION_MAP (g_application_get_default ()), "view-statusbar"); g_simple_action_set_state (G_SIMPLE_ACTION (action), g_variant_new_boolean (!shell->priv->statusbar_hidden)); /* Synchronize upper part checkbox in menu with preferences */ shell->priv->upperpart_hidden = ario_conf_get_boolean (PREF_UPPERPART_HIDDEN, PREF_UPPERPART_HIDDEN_DEFAULT); action = g_action_map_lookup_action (G_ACTION_MAP (g_application_get_default ()), "view-upperpart"); g_simple_action_set_state (G_SIMPLE_ACTION (action), g_variant_new_boolean (!shell->priv->upperpart_hidden)); /* Synchronize playlist checkbox in menu with preferences */ shell->priv->playlist_hidden = ario_conf_get_boolean (PREF_PLAYLIST_HIDDEN, PREF_PLAYLIST_HIDDEN_DEFAULT); action = g_action_map_lookup_action (G_ACTION_MAP (g_application_get_default ()), "view-playlist"); g_simple_action_set_state (G_SIMPLE_ACTION (action), g_variant_new_boolean (!shell->priv->playlist_hidden)); /* Add widgets to vbox */ gtk_box_pack_start (GTK_BOX (shell->priv->vbox), shell->priv->header, FALSE, FALSE, 0); gtk_box_pack_start (GTK_BOX (shell->priv->vbox), separator, FALSE, FALSE, 0); gtk_box_pack_start (GTK_BOX (shell->priv->vbox), shell->priv->hbox, TRUE, TRUE, 0); gtk_box_pack_start (GTK_BOX (shell->priv->vbox), shell->priv->status_bar, FALSE, FALSE, 0); /* Add vbox to main window */ gtk_container_add (GTK_CONTAINER (shell), shell->priv->vbox); /* First launch assistant */ if (!ario_conf_get_boolean (PREF_FIRST_TIME, PREF_FIRST_TIME_DEFAULT)) { firstlaunch = ario_firstlaunch_new (shell->priv->app); g_signal_connect (firstlaunch, "destroy", G_CALLBACK (ario_shell_firstlaunch_delete_cb), shell); gtk_widget_show_all (GTK_WIDGET (firstlaunch)); } else { ario_shell_show (shell, minimized); } /* Synchronize main window state with preferences */ ario_shell_sync_window_state (shell); /* Synchronize status bar visibility with preferences */ ario_shell_sync_statusbar_visibility (shell); /* Synchronize upper part visibility with preferences */ ario_shell_sync_upperpart_visibility (shell); /* Synchronize playlist visibility with preferences */ ario_shell_sync_playlist_visibility (shell); } void ario_shell_shutdown (ArioShell *shell) { ARIO_LOG_FUNCTION_START; int width, height; /* If the main window is visible, we save a few preferences */ if (shell->priv->shown) { if (shell->priv->paned) { /* Save paned position */ ario_conf_set_integer (PREF_VPANED_POSITION, gtk_paned_get_position (GTK_PANED (shell->priv->paned))); } /* Save window size */ if (!ario_conf_get_boolean (PREF_WINDOW_MAXIMIZED, PREF_WINDOW_MAXIMIZED_DEFAULT)) { gtk_window_get_size (GTK_WINDOW (shell), &width, &height); ario_conf_set_integer (PREF_WINDOW_WIDTH, width); ario_conf_set_integer (PREF_WINDOW_HEIGHT, height); } } /* Shutdown the playlist */ ario_playlist_shutdown (); /* Shutdown the source manager */ ario_source_manager_shutdown (); /* Shutdown the cover_manager */ ario_cover_manager_shutdown (ario_cover_manager_get_instance ()); /* Shutdown the lyrics_manager */ ario_lyrics_manager_shutdown (ario_lyrics_manager_get_instance ()); /* Shutdown the server object */ ario_server_shutdown (); } static void ario_shell_show (ArioShell *shell, gboolean minimized) { ARIO_LOG_FUNCTION_START; ArioServer *server = ario_server_get_instance (); /* Connect signals for server state changes */ g_signal_connect (server, "state_changed", G_CALLBACK (ario_shell_server_state_changed_cb), shell); g_signal_connect (server, "song_changed", G_CALLBACK (ario_shell_server_song_changed_cb), shell); /* Autoconnect on startup if needed */ if (ario_conf_get_boolean (PREF_AUTOCONNECT, PREF_AUTOCONNECT_DEFAULT)) ario_server_connect (); /* Show main window */ gtk_widget_show_all (GTK_WIDGET(shell)); shell->priv->shown = TRUE; /* Synchonize the main window with server state */ ario_shell_sync_server (shell); /* Synchronize playlist position with preferences */ ario_shell_sync_playlist_position (shell); /* Synchronize paned with preferences */ ario_shell_sync_paned (shell); /* Minimize window if needed */ if (minimized) ario_shell_set_visibility (shell, VISIBILITY_HIDDEN); /* Connect signal for window state changes */ g_signal_connect_object (shell, "window-state-event", G_CALLBACK (ario_shell_window_state_cb), shell, G_CONNECT_AFTER); /* Update server db on startup if needed */ if (ario_conf_get_boolean (PREF_UPDATE_STARTUP, PREF_UPDATE_STARTUP_DEFAULT)) ario_server_update_db (NULL); /* Notification for trees configuration changes */ ario_conf_notification_add (PREF_PLAYLIST_POSITION, (ArioNotifyFunc) ario_shell_playlist_position_changed_cb, shell); } void ario_shell_present (ArioShell *shell) { ARIO_LOG_FUNCTION_START; if (ario_conf_get_boolean (PREF_FIRST_TIME, PREF_FIRST_TIME_DEFAULT)) { ario_shell_set_visibility(shell, VISIBILITY_VISIBLE); gtk_window_present (GTK_WINDOW (shell)); } } void ario_shell_set_visibility (ArioShell *shell, ArioVisibility state) { ARIO_LOG_FUNCTION_START; switch (state) { case VISIBILITY_HIDDEN: if (shell->priv->visible) ario_shell_set_visibility (shell, VISIBILITY_TOGGLE); break; case VISIBILITY_VISIBLE: if (!shell->priv->visible) ario_shell_set_visibility (shell, VISIBILITY_TOGGLE); break; case VISIBILITY_TOGGLE: shell->priv->visible = !shell->priv->visible; if (shell->priv->visible == TRUE) { /* Restore window state, size and position */ if (shell->priv->window_x >= 0 && shell->priv->window_y >= 0) { gtk_window_move (GTK_WINDOW (shell), shell->priv->window_x, shell->priv->window_y); } if (!shell->priv->maximized && (shell->priv->window_w >= 0 && shell->priv->window_y >=0)) { gtk_window_resize (GTK_WINDOW (shell), shell->priv->window_w, shell->priv->window_h); } if (shell->priv->maximized) gtk_window_maximize (GTK_WINDOW (shell)); gtk_widget_show (GTK_WIDGET(shell)); /* Restore paned position * This is in a g_timeout_add because there seems to have a bug (#2798748) if I call * ario_shell_sync_paned directly. I really don't understand why but this seems to work...*/ g_timeout_add (100, (GSourceFunc) ario_shell_sync_paned, shell); } else { /* Save window state, size and position */ shell->priv->maximized = ario_conf_get_boolean (PREF_WINDOW_MAXIMIZED, PREF_WINDOW_MAXIMIZED_DEFAULT); gtk_window_get_position (GTK_WINDOW (shell), &shell->priv->window_x, &shell->priv->window_y); gtk_window_get_size (GTK_WINDOW (shell), &shell->priv->window_w, &shell->priv->window_h); /* Save paned position */ ario_conf_set_integer (PREF_VPANED_POSITION, gtk_paned_get_position (GTK_PANED (shell->priv->paned))); gtk_widget_hide (GTK_WIDGET(shell)); } } } static void ario_shell_cmd_quit (GSimpleAction *action, GVariant *parameter, gpointer data) { ARIO_LOG_FUNCTION_START; ArioShell *shell = ARIO_SHELL (data); ario_shell_quit (shell); } static void ario_shell_cmd_connect (GSimpleAction *action, GVariant *parameter, gpointer data) { ARIO_LOG_FUNCTION_START; ario_server_connect (); } static void ario_shell_cmd_disconnect (GSimpleAction *action, GVariant *parameter, gpointer data) { ARIO_LOG_FUNCTION_START; ario_server_disconnect (); } static void ario_shell_cmd_update (GSimpleAction *action, GVariant *parameter, gpointer data) { ARIO_LOG_FUNCTION_START; ario_server_update_db (NULL); } static void ario_shell_cmd_preferences (GSimpleAction *action, GVariant *parameter, gpointer data) { ARIO_LOG_FUNCTION_START; GtkWidget *prefs; ArioShell *shell = ARIO_SHELL (data); /* Create preferences dialog window */ prefs = ario_shell_preferences_new (); gtk_window_set_transient_for (GTK_WINDOW (prefs), GTK_WINDOW (shell)); gtk_widget_show_all (prefs); } static void ario_shell_cmd_lyrics (GSimpleAction *action, GVariant *parameter, gpointer data) { ARIO_LOG_FUNCTION_START; GtkWidget *lyrics; /* Create lyrics dialog window */ lyrics = ario_shell_lyrics_new (); if (lyrics) gtk_widget_show_all (lyrics); } static void ario_shell_cmd_about (GSimpleAction *action, GVariant *parameter, gpointer data) { ARIO_LOG_FUNCTION_START; ArioShell *shell = ARIO_SHELL (data); /* Create about dialog window */ const char *authors[] = { #include "AUTHORS.tab" "", NULL }; const char *artists[] = { "Luc Pavot", NULL }; GdkPixbuf *logo_pixbuf = gdk_pixbuf_new_from_file (PIXMAP_PATH "logo.png", NULL); gtk_show_about_dialog (GTK_WINDOW (shell), "name", "Ario", "program-name", "Ario", "version", PACKAGE_VERSION, "copyright", "Copyright \xc2\xa9 2005-" CURRENT_DATE " Marc Pavot", "comments", _("GTK client for MPD"), "translator-credits", _("translator-credits"), "authors", (const char **) authors, "artists", (const char **) artists, "logo", logo_pixbuf, NULL); if (logo_pixbuf) g_object_unref (logo_pixbuf); } static void ario_shell_server_song_set_title (ArioShell *shell) { ARIO_LOG_FUNCTION_START; gchar *window_title; gchar *tmp; switch (ario_server_get_current_state ()) { case ARIO_STATE_PLAY: case ARIO_STATE_PAUSE: /* Window title containing song name */ tmp = ario_util_format_title (ario_server_get_current_song ()); window_title = g_strdup_printf ("Ario - %s", tmp); gtk_window_set_title (GTK_WINDOW (shell), window_title); g_free (window_title); break; default: /* Default window title */ gtk_window_set_title (GTK_WINDOW (shell), "Ario"); break; } } static void ario_shell_server_song_changed_cb (ArioServer *server, ArioShell *shell) { ARIO_LOG_FUNCTION_START; /* Change window title on song change */ ario_shell_server_song_set_title (shell); } static void ario_shell_server_state_changed_cb (ArioServer *server, ArioShell *shell) { ARIO_LOG_FUNCTION_START; shell->priv->connected = ario_server_is_connected (); /* Synchronize main window with server state */ ario_shell_sync_server (shell); /* Change window title on song change */ ario_shell_server_song_set_title (shell); } static void ario_shell_cmd_cover_select (GSimpleAction *action, GVariant *parameter, gpointer data) { ARIO_LOG_FUNCTION_START; GtkWidget *coverselect; ArioServerAlbum server_album; /* Launch cover selection dialog for current album */ server_album.artist = ario_server_get_current_artist (); server_album.album = ario_server_get_current_album (); server_album.path = g_path_get_dirname ((ario_server_get_current_song ())->file); if (!server_album.album) server_album.album = ARIO_SERVER_UNKNOWN; if (!server_album.artist) server_album.artist = ARIO_SERVER_UNKNOWN; coverselect = ario_shell_coverselect_new (&server_album); gtk_dialog_run (GTK_DIALOG (coverselect)); gtk_widget_destroy (coverselect); g_free (server_album.path); } static void ario_shell_cmd_covers (GSimpleAction *action, GVariant *parameter, gpointer data) { ARIO_LOG_FUNCTION_START; GtkWidget *coverdownloader; /* Launch cover art download dialog */ coverdownloader = ario_shell_coverdownloader_new (); if (coverdownloader) { ario_shell_coverdownloader_get_covers (ARIO_SHELL_COVERDOWNLOADER (coverdownloader), GET_COVERS); } } static void ario_shell_cmd_similar_artists (GSimpleAction *action, GVariant *parameter, gpointer data) { ARIO_LOG_FUNCTION_START; GtkWidget *similarartists; /* Launch similar artist dialog */ similarartists = ario_shell_similarartists_new (); if (similarartists) gtk_widget_show_all (similarartists); } static void ario_shell_cmd_add_similar (GSimpleAction *action, GVariant *parameter, gpointer data) { ARIO_LOG_FUNCTION_START; /* Add similar artists (from last.fm) to current playlist */ ario_shell_similarartists_add_similar_to_playlist (ario_server_get_current_artist (), -1); } static void ario_shell_sync_paned (ArioShell *shell) { ARIO_LOG_FUNCTION_START; int pos; /* Set paned position */ pos = ario_conf_get_integer (PREF_VPANED_POSITION, PREF_VPANED_POSITION_DEFAULT); if (pos > 0 && shell->priv->paned) gtk_paned_set_position (GTK_PANED (shell->priv->paned), pos); } static gboolean ario_shell_window_state_cb (GtkWidget *widget, GdkEvent *event, ArioShell *shell) { ARIO_LOG_FUNCTION_START; int width, height; g_return_val_if_fail (widget != NULL, FALSE); if ((event->type == GDK_WINDOW_STATE) && !(event->window_state.new_window_state & GDK_WINDOW_STATE_WITHDRAWN)) { /* Save window maximization state */ ario_conf_set_boolean (PREF_WINDOW_MAXIMIZED, event->window_state.new_window_state & GDK_WINDOW_STATE_MAXIMIZED); if (event->window_state.changed_mask & GDK_WINDOW_STATE_MAXIMIZED) { /* Save previous window size on maximization */ gtk_window_get_size (GTK_WINDOW (shell), &width, &height); ario_conf_set_integer (PREF_WINDOW_WIDTH, width); ario_conf_set_integer (PREF_WINDOW_HEIGHT, height); } } return FALSE; } static void ario_shell_sync_window_state (ArioShell *shell) { ARIO_LOG_FUNCTION_START; int width = ario_conf_get_integer (PREF_WINDOW_WIDTH, PREF_WINDOW_WIDTH_DEFAULT); int height = ario_conf_get_integer (PREF_WINDOW_HEIGHT, PREF_WINDOW_HEIGHT_DEFAULT); gboolean maximized = ario_conf_get_boolean (PREF_WINDOW_MAXIMIZED, PREF_WINDOW_MAXIMIZED_DEFAULT); /* Set main window size */ gtk_window_set_default_size (GTK_WINDOW (shell), width, height); gtk_window_resize (GTK_WINDOW (shell), width, height); /* Maximize main window if needed */ if (maximized) gtk_window_maximize (GTK_WINDOW (shell)); else gtk_window_unmaximize (GTK_WINDOW (shell)); } static void ario_shell_sync_server (ArioShell *shell) { ARIO_LOG_FUNCTION_START; GAction *connect_action; GAction *disconnect_action; gboolean is_playing; GAction *action; /* Set connect entry visibility */ connect_action = g_action_map_lookup_action (G_ACTION_MAP (g_application_get_default ()), "connect"); g_simple_action_set_enabled (G_SIMPLE_ACTION (connect_action), !shell->priv->connected); /* Set disconnect entry visibility */ disconnect_action = g_action_map_lookup_action (G_ACTION_MAP (g_application_get_default ()), "disconnect"); g_simple_action_set_enabled (G_SIMPLE_ACTION (disconnect_action), shell->priv->connected); is_playing = ((shell->priv->connected) && ((ario_server_get_current_state () == ARIO_STATE_PLAY) || (ario_server_get_current_state () == ARIO_STATE_PAUSE))); /* Set lyrics entry sensitivty */ action = g_action_map_lookup_action (G_ACTION_MAP (g_application_get_default ()), "view-lyrics"); g_simple_action_set_enabled (G_SIMPLE_ACTION (action), is_playing); /* Set cover selection entry sensitivty */ action = g_action_map_lookup_action (G_ACTION_MAP (g_application_get_default ()), "cover-select"); g_simple_action_set_enabled (G_SIMPLE_ACTION (action), is_playing); /* Set similar artists entry sensitivty */ action = g_action_map_lookup_action (G_ACTION_MAP (g_application_get_default ()), "similar-artists"); g_simple_action_set_enabled (G_SIMPLE_ACTION (action), is_playing); /* Set similar artists addition entry sensitivty */ action = g_action_map_lookup_action (G_ACTION_MAP (g_application_get_default ()), "add-similar"); g_simple_action_set_enabled (G_SIMPLE_ACTION (action), is_playing); } static void ario_shell_sync_playlist_position (ArioShell *shell) { if (!shell->priv->playlist) return; /* Remove all widgets if playlist is in tabs */ int page_num = gtk_notebook_page_num (GTK_NOTEBOOK (shell->priv->sourcemanager), shell->priv->playlist); if (page_num >= 0) { ario_source_manager_remove (ARIO_SOURCE (shell->priv->playlist)); gtk_container_remove (GTK_CONTAINER (shell->priv->hbox), shell->priv->sourcemanager); } /* Remove all widgets if playlist is in a paned */ if (shell->priv->paned) { /* Save paned position */ ario_conf_set_integer (PREF_VPANED_POSITION, gtk_paned_get_position (GTK_PANED (shell->priv->paned))); gtk_container_remove (GTK_CONTAINER (shell->priv->paned), shell->priv->playlist); gtk_container_remove (GTK_CONTAINER (shell->priv->paned), shell->priv->sourcemanager); gtk_container_remove (GTK_CONTAINER (shell->priv->hbox), shell->priv->paned); shell->priv->paned = NULL; } switch (ario_conf_get_integer (PREF_PLAYLIST_POSITION, PREF_PLAYLIST_POSITION_DEFAULT)) { case PLAYLIST_POSITION_BELOW: /* Create paned (separation between upper part and playlist) */ shell->priv->paned = gtk_paned_new (GTK_ORIENTATION_VERTICAL); /* Add widgets to paned */ gtk_paned_pack1 (GTK_PANED (shell->priv->paned), shell->priv->sourcemanager, FALSE, FALSE); gtk_paned_pack2 (GTK_PANED (shell->priv->paned), shell->priv->playlist, TRUE, FALSE); gtk_box_pack_start (GTK_BOX (shell->priv->hbox), shell->priv->paned, TRUE, TRUE, 0); gtk_widget_show_all (shell->priv->paned); /* Synchronize paned with preferences */ ario_shell_sync_paned (shell); break; case PLAYLIST_POSITION_RIGHT: /* Create paned (separation between left part and playlist) */ shell->priv->paned = gtk_paned_new (GTK_ORIENTATION_HORIZONTAL); /* Add widgets to paned */ gtk_paned_pack1 (GTK_PANED (shell->priv->paned), shell->priv->sourcemanager, FALSE, FALSE); gtk_paned_pack2 (GTK_PANED (shell->priv->paned), shell->priv->playlist, TRUE, FALSE); gtk_box_pack_start (GTK_BOX (shell->priv->hbox), shell->priv->paned, TRUE, TRUE, 0); gtk_widget_show_all (shell->priv->paned); /* Synchronize paned with preferences */ ario_shell_sync_paned (shell); break; case PLAYLIST_POSITION_INSIDE: default: /* Add playlist to tabs */ ario_source_manager_append (ARIO_SOURCE (shell->priv->playlist)); gtk_box_pack_start (GTK_BOX (shell->priv->hbox), shell->priv->sourcemanager, TRUE, TRUE, 0); gtk_widget_show_all (shell->priv->sourcemanager); break; } } static void ario_shell_firstlaunch_delete_cb (ArioFirstlaunch *firstlaunch, ArioShell *shell) { ARIO_LOG_FUNCTION_START; /* Show main window when first launch assistant is deleted */ ario_shell_show (shell, FALSE); } static void ario_shell_view_statusbar_changed_cb (GSimpleAction *action, GVariant *parameter, gpointer data) { ARIO_LOG_FUNCTION_START; GVariant *old_state, *new_state; ArioShell *shell = ARIO_SHELL (data); old_state = g_action_get_state (G_ACTION (action)); new_state = g_variant_new_boolean (!g_variant_get_boolean (old_state)); g_simple_action_set_state (action, new_state); g_variant_unref (old_state); shell->priv->statusbar_hidden = !g_variant_get_boolean (new_state); ario_conf_set_boolean (PREF_STATUSBAR_HIDDEN, shell->priv->statusbar_hidden); /* Synchronize status bar visibility */ ario_shell_sync_statusbar_visibility (shell); } static void ario_shell_view_upperpart_changed_cb (GSimpleAction *action, GVariant *parameter, gpointer data) { ARIO_LOG_FUNCTION_START; GVariant *old_state, *new_state; ArioShell *shell = ARIO_SHELL (data); old_state = g_action_get_state (G_ACTION (action)); new_state = g_variant_new_boolean (!g_variant_get_boolean (old_state)); g_simple_action_set_state (action, new_state); g_variant_unref (old_state); shell->priv->upperpart_hidden = !g_variant_get_boolean (new_state); ario_conf_set_boolean (PREF_UPPERPART_HIDDEN, shell->priv->upperpart_hidden); /* Synchronize upper part visibility */ ario_shell_sync_upperpart_visibility (shell); } static void ario_shell_view_playlist_changed_cb (GSimpleAction *action, GVariant *parameter, gpointer data) { ARIO_LOG_FUNCTION_START; GVariant *old_state, *new_state; ArioShell *shell = ARIO_SHELL (data); old_state = g_action_get_state (G_ACTION (action)); new_state = g_variant_new_boolean (!g_variant_get_boolean (old_state)); g_simple_action_set_state (action, new_state); g_variant_unref (old_state); shell->priv->playlist_hidden = !g_variant_get_boolean (new_state); ario_conf_set_boolean (PREF_PLAYLIST_HIDDEN, shell->priv->playlist_hidden); /* Synchronize playlist visibility */ ario_shell_sync_playlist_visibility (shell); } static void ario_shell_sync_statusbar_visibility (ArioShell *shell) { ARIO_LOG_FUNCTION_START; if (shell->priv->statusbar_hidden) gtk_widget_hide (GTK_WIDGET (shell->priv->status_bar)); else gtk_widget_show (GTK_WIDGET (shell->priv->status_bar)); } static void ario_shell_sync_upperpart_visibility (ArioShell *shell) { ARIO_LOG_FUNCTION_START; if (shell->priv->upperpart_hidden) gtk_widget_hide (GTK_WIDGET (shell->priv->sourcemanager)); else gtk_widget_show (GTK_WIDGET (shell->priv->sourcemanager)); } static void ario_shell_sync_playlist_visibility (ArioShell *shell) { ARIO_LOG_FUNCTION_START; if (shell->priv->playlist_hidden) gtk_widget_hide (GTK_WIDGET (shell->priv->playlist)); else gtk_widget_show (GTK_WIDGET (shell->priv->playlist)); } static gboolean ario_shell_plugins_window_delete_cb (GtkWidget *window, GdkEventAny *event, gpointer data) { ARIO_LOG_FUNCTION_START; gtk_widget_destroy (GTK_WIDGET (window)); return TRUE; } static void ario_shell_plugins_response_cb (GtkDialog *dialog, int response_id, gpointer data) { ARIO_LOG_FUNCTION_START; gtk_widget_destroy (GTK_WIDGET (dialog)); } static void ario_shell_cmd_plugins (GSimpleAction *action, GVariant *parameter, gpointer data) { ARIO_LOG_FUNCTION_START; GtkWidget *window; GtkWidget *manager; ArioShell *shell = ARIO_SHELL (data); /* Create plugins configuration dialog window */ window = gtk_dialog_new_with_buttons (_("Configure Plugins"), GTK_WINDOW (shell), GTK_DIALOG_DESTROY_WITH_PARENT, _("_Close"), GTK_RESPONSE_CLOSE, NULL); gtk_container_set_border_width (GTK_CONTAINER (window), 5); gtk_box_set_spacing (GTK_BOX (gtk_dialog_get_content_area (GTK_DIALOG (window))), 2); /* Connect signals for window destruction */ g_signal_connect (window, "delete_event", G_CALLBACK (ario_shell_plugins_window_delete_cb), NULL); g_signal_connect (window, "response", G_CALLBACK (ario_shell_plugins_response_cb), NULL); manager = ario_plugin_manager_new (); gtk_widget_show_all (GTK_WIDGET (manager)); gtk_container_add (GTK_CONTAINER (gtk_dialog_get_content_area (GTK_DIALOG (window))), manager); gtk_window_set_default_size (GTK_WINDOW (window), 300, 350); gtk_window_present (GTK_WINDOW (window)); } static void ario_shell_playlist_position_changed_cb (guint notification_id, ArioShell *shell) { ario_shell_sync_playlist_position(shell); } ario-1.6/src/shell/ario-shell-lyrics.h0000644000175000017500000000360513226723432014654 00000000000000/* * Copyright (C) 2005 Marc Pavot * * 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, 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * */ #include #ifndef __ARIO_SHELL_LYRICS_H #define __ARIO_SHELL_LYRICS_H G_BEGIN_DECLS #define TYPE_ARIO_SHELL_LYRICS (ario_shell_lyrics_get_type ()) #define ARIO_SHELL_LYRICS(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), TYPE_ARIO_SHELL_LYRICS, ArioShellLyrics)) #define ARIO_SHELL_LYRICS_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), TYPE_ARIO_SHELL_LYRICS, ArioShellLyricsClass)) #define IS_ARIO_SHELL_LYRICS(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), TYPE_ARIO_SHELL_LYRICS)) #define IS_ARIO_SHELL_LYRICS_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), TYPE_ARIO_SHELL_LYRICS)) #define ARIO_SHELL_LYRICS_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), TYPE_ARIO_SHELL_LYRICS, ArioShellLyricsClass)) typedef struct ArioShellLyricsPrivate ArioShellLyricsPrivate; typedef struct { GtkWindow parent; ArioShellLyricsPrivate *priv; } ArioShellLyrics; typedef struct { GtkWindowClass parent_class; } ArioShellLyricsClass; GType ario_shell_lyrics_get_type (void) G_GNUC_CONST; GtkWidget * ario_shell_lyrics_new (void); G_END_DECLS #endif /* __ARIO_SHELL_LYRICS_H */ ario-1.6/src/shell/ario-shell-lyricsselect.h0000644000175000017500000000453713226723431016060 00000000000000/* * Copyright (C) 2004,2005 Marc Pavot * * 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * */ #ifndef __ARIO_SHELL_LYRICSSELECT_H #define __ARIO_SHELL_LYRICSSELECT_H #include #include #include "lyrics/ario-lyrics.h" G_BEGIN_DECLS #define TYPE_ARIO_SHELL_LYRICSSELECT (ario_shell_lyricsselect_get_type ()) #define ARIO_SHELL_LYRICSSELECT(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), TYPE_ARIO_SHELL_LYRICSSELECT, ArioShellLyricsselect)) #define ARIO_SHELL_LYRICSSELECT_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), TYPE_ARIO_SHELL_LYRICSSELECT, ArioShellLyricsselectClass)) #define IS_ARIO_SHELL_LYRICSSELECT(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), TYPE_ARIO_SHELL_LYRICSSELECT)) #define IS_ARIO_SHELL_LYRICSSELECT_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), TYPE_ARIO_SHELL_LYRICSSELECT)) #define ARIO_SHELL_LYRICSSELECT_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), TYPE_ARIO_SHELL_LYRICSSELECT, ArioShellLyricsselectClass)) typedef struct ArioShellLyricsselectPrivate ArioShellLyricsselectPrivate; typedef struct { GtkDialog parent; ArioShellLyricsselectPrivate *priv; } ArioShellLyricsselect; typedef struct { GtkDialogClass parent_class; } ArioShellLyricsselectClass; GType ario_shell_lyricsselect_get_type (void) G_GNUC_CONST; GtkWidget * ario_shell_lyricsselect_new (const char *artist, const char *album); ArioLyricsCandidate * ario_shell_lyricsselect_get_lyrics_candidate (ArioShellLyricsselect *ario_shell_lyricsselect); G_END_DECLS #endif /* __ARIO_SHELL_LYRICSSELECT_H */ ario-1.6/src/shell/ario-shell-coverdownloader.h0000644000175000017500000000570313226723432016545 00000000000000/* * Copyright (C) 2004,2005 Marc Pavot * * 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * */ #ifndef __ARIO_SHELL_COVERDOWNLOADER_H #define __ARIO_SHELL_COVERDOWNLOADER_H #include #include G_BEGIN_DECLS #define TYPE_ARIO_SHELL_COVERDOWNLOADER (ario_shell_coverdownloader_get_type ()) #define ARIO_SHELL_COVERDOWNLOADER(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), TYPE_ARIO_SHELL_COVERDOWNLOADER, ArioShellCoverdownloader)) #define ARIO_SHELL_COVERDOWNLOADER_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), TYPE_ARIO_SHELL_COVERDOWNLOADER, ArioShellCoverdownloaderClass)) #define IS_ARIO_SHELL_COVERDOWNLOADER(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), TYPE_ARIO_SHELL_COVERDOWNLOADER)) #define IS_ARIO_SHELL_COVERDOWNLOADER_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), TYPE_ARIO_SHELL_COVERDOWNLOADER)) #define ARIO_SHELL_COVERDOWNLOADER_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), TYPE_ARIO_SHELL_COVERDOWNLOADER, ArioShellCoverdownloaderClass)) typedef struct ArioShellCoverdownloaderPrivate ArioShellCoverdownloaderPrivate; /** * ArioShellCoverdownloader is a dialog window used to see the * progress of cover arts downloading. */ typedef struct { GtkWindow parent; ArioShellCoverdownloaderPrivate *priv; } ArioShellCoverdownloader; typedef struct { GtkWindowClass parent_class; } ArioShellCoverdownloaderClass; typedef enum { GET_COVERS, REMOVE_COVERS } ArioShellCoverdownloaderOperation; GType ario_shell_coverdownloader_get_type (void) G_GNUC_CONST; GtkWidget * ario_shell_coverdownloader_new (void); void ario_shell_coverdownloader_get_covers (ArioShellCoverdownloader *ario_shell_coverdownloader, const ArioShellCoverdownloaderOperation operation); void ario_shell_coverdownloader_get_covers_from_albums (ArioShellCoverdownloader *ario_shell_coverdownloader, const GSList *albums, const ArioShellCoverdownloaderOperation operation); G_END_DECLS #endif /* __ARIO_SHELL_COVERDOWNLOADER_H */ ario-1.6/src/shell/ario-shell-coverselect.h0000644000175000017500000000426513226723432015670 00000000000000/* * Copyright (C) 2004,2005 Marc Pavot * * 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * */ #ifndef __ARIO_SHELL_COVERSELECT_H #define __ARIO_SHELL_COVERSELECT_H #include #include #include "servers/ario-server.h" G_BEGIN_DECLS #define TYPE_ARIO_SHELL_COVERSELECT (ario_shell_coverselect_get_type ()) #define ARIO_SHELL_COVERSELECT(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), TYPE_ARIO_SHELL_COVERSELECT, ArioShellCoverselect)) #define ARIO_SHELL_COVERSELECT_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), TYPE_ARIO_SHELL_COVERSELECT, ArioShellCoverselectClass)) #define IS_ARIO_SHELL_COVERSELECT(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), TYPE_ARIO_SHELL_COVERSELECT)) #define IS_ARIO_SHELL_COVERSELECT_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), TYPE_ARIO_SHELL_COVERSELECT)) #define ARIO_SHELL_COVERSELECT_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), TYPE_ARIO_SHELL_COVERSELECT, ArioShellCoverselectClass)) typedef struct ArioShellCoverselectPrivate ArioShellCoverselectPrivate; /** * ArioShellCoverselect is a dialog window that can be used * to change the cover of an album. */ typedef struct { GtkDialog parent; ArioShellCoverselectPrivate *priv; } ArioShellCoverselect; typedef struct { GtkDialogClass parent_class; } ArioShellCoverselectClass; GType ario_shell_coverselect_get_type (void) G_GNUC_CONST; GtkWidget * ario_shell_coverselect_new (ArioServerAlbum *server_album); G_END_DECLS #endif /* __ARIO_SHELL_COVERSELECT_H */ ario-1.6/src/shell/ario-shell-coverselect.c0000644000175000017500000006354613226723431015671 00000000000000/* * Copyright (C) 2004,2005 Marc Pavot * * 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * */ #include "shell/ario-shell-coverselect.h" #include #include #include #include "ario-debug.h" #include "ario-profiles.h" #include "ario-util.h" #include "covers/ario-cover.h" #include "covers/ario-cover-handler.h" #include "covers/ario-cover-manager.h" #include "lib/ario-conf.h" #include "lib/gtk-builder-helpers.h" #include "preferences/ario-preferences.h" #define CURRENT_COVER_SIZE 130 #define MAX_COVER_SIZE 300 static void ario_shell_coverselect_finalize (GObject *object); static GObject * ario_shell_coverselect_constructor (GType type, guint n_construct_properties, GObjectConstructParam *construct_properties); static gboolean ario_shell_coverselect_window_delete_cb (GtkWidget *window, GdkEventAny *event, ArioShellCoverselect *shell_coverselect); static void ario_shell_coverselect_response_cb (GtkDialog *dialog, int response_id, ArioShellCoverselect *shell_coverselect); G_MODULE_EXPORT void ario_shell_coverselect_local_open_button_cb (GtkWidget *widget, ArioShellCoverselect *shell_coverselect); G_MODULE_EXPORT void ario_shell_coverselect_get_covers_cb (GtkWidget *widget, ArioShellCoverselect *shell_coverselect); static void ario_shell_coverselect_show_covers (ArioShellCoverselect *shell_coverselect); static void ario_shell_coverselect_save_cover (ArioShellCoverselect *shell_coverselect); static void ario_shell_coverselect_set_current_cover (ArioShellCoverselect *shell_coverselect); /* Tree columns */ enum { BMP_COLUMN, N_COLUMN }; /* Notebook pages */ enum { GLOBAL_PAGE, LOCAL_PAGE }; struct ArioShellCoverselectPrivate { GtkWidget *artist_entry; GtkWidget *album_entry; GtkWidget *notebook; GtkWidget *artist_label; GtkWidget *album_label; GtkWidget *get_covers_button; GtkWidget *current_cover; GtkWidget *listview; GtkListStore *liststore; GtkWidget *local_file_entry; const gchar *file_artist; const gchar *file_album; gchar *path; GArray *file_size; GSList *file_contents; }; #define ARIO_SHELL_COVERSELECT_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_ARIO_SHELL_COVERSELECT, ArioShellCoverselectPrivate)) G_DEFINE_TYPE (ArioShellCoverselect, ario_shell_coverselect, GTK_TYPE_DIALOG) static void ario_shell_coverselect_class_init (ArioShellCoverselectClass *klass) { ARIO_LOG_FUNCTION_START; GObjectClass *object_class = G_OBJECT_CLASS (klass); /* Virtual methods */ object_class->finalize = ario_shell_coverselect_finalize; object_class->constructor = ario_shell_coverselect_constructor; /* Private attributes */ g_type_class_add_private (klass, sizeof (ArioShellCoverselectPrivate)); } static void ario_shell_coverselect_init (ArioShellCoverselect *shell_coverselect) { ARIO_LOG_FUNCTION_START; shell_coverselect->priv = ARIO_SHELL_COVERSELECT_GET_PRIVATE (shell_coverselect); shell_coverselect->priv->liststore = gtk_list_store_new (N_COLUMN, GDK_TYPE_PIXBUF); shell_coverselect->priv->file_contents = NULL; } static void ario_shell_coverselect_finalize (GObject *object) { ARIO_LOG_FUNCTION_START; ArioShellCoverselect *shell_coverselect; g_return_if_fail (object != NULL); g_return_if_fail (IS_ARIO_SHELL_COVERSELECT (object)); shell_coverselect = ARIO_SHELL_COVERSELECT (object); g_return_if_fail (shell_coverselect->priv != NULL); if (shell_coverselect->priv->file_size) g_array_free (shell_coverselect->priv->file_size, TRUE); g_slist_foreach (shell_coverselect->priv->file_contents, (GFunc) g_free, NULL); g_slist_free (shell_coverselect->priv->file_contents); g_free (shell_coverselect->priv->path); G_OBJECT_CLASS (ario_shell_coverselect_parent_class)->finalize (object); } static void ario_shell_coverselect_drag_leave_cb (GtkWidget *widget, GdkDragContext *context, gint x, gint y, GtkSelectionData *data, guint info, guint time, ArioShellCoverselect *shell_coverselect) { ARIO_LOG_FUNCTION_START; gchar *url; gchar *contents; gsize length; if (info == 1) { /* Drag of image */ printf ("image DND : TODO\n"); } else if (info == 2) { const guchar *udata = gtk_selection_data_get_data (data); /* Remove 'file://' */ url = g_strndup ((gchar *) udata + 7, gtk_selection_data_get_length (data) - 2 - 7); if (ario_util_uri_exists (url)) { /* Get file content */ if (ario_file_get_contents (url, &contents, &length, NULL)) { /* Save cover */ ario_cover_save_cover (shell_coverselect->priv->file_artist, shell_coverselect->priv->file_album, contents, length, OVERWRITE_MODE_REPLACE); g_free (contents); ario_cover_handler_force_reload (); /* Change cover in dialog */ ario_shell_coverselect_set_current_cover (shell_coverselect); } } g_free (url); } /* Finish the drag */ gtk_drag_finish (context, TRUE, FALSE, time); } static GObject * ario_shell_coverselect_constructor (GType type, guint n_construct_properties, GObjectConstructParam *construct_properties) { ARIO_LOG_FUNCTION_START; ArioShellCoverselect *shell_coverselect; ArioShellCoverselectClass *klass; GObjectClass *parent_class; GtkBuilder *builder; GtkWidget *vbox; GtkTargetList *targets; GtkTargetEntry *target_entry; gint n_elem; /* Call parent constructor */ klass = ARIO_SHELL_COVERSELECT_CLASS (g_type_class_peek (TYPE_ARIO_SHELL_COVERSELECT)); parent_class = G_OBJECT_CLASS (g_type_class_peek_parent (klass)); shell_coverselect = ARIO_SHELL_COVERSELECT (parent_class->constructor (type, n_construct_properties, construct_properties)); /* Create UI using GtkBuilder */ builder = gtk_builder_helpers_new (UI_PATH "cover-select.ui", shell_coverselect); /* Get pointers to various widgets */ vbox = GTK_WIDGET (gtk_builder_get_object (builder, "vbox")); shell_coverselect->priv->artist_label = GTK_WIDGET (gtk_builder_get_object (builder, "artist_label")); shell_coverselect->priv->album_label = GTK_WIDGET (gtk_builder_get_object (builder, "album_label")); shell_coverselect->priv->notebook = GTK_WIDGET (gtk_builder_get_object (builder, "notebook")); shell_coverselect->priv->artist_entry = GTK_WIDGET (gtk_builder_get_object (builder, "artist_entry")); shell_coverselect->priv->album_entry = GTK_WIDGET (gtk_builder_get_object (builder, "album_entry")); shell_coverselect->priv->get_covers_button = GTK_WIDGET (gtk_builder_get_object (builder, "search_button")); shell_coverselect->priv->current_cover = GTK_WIDGET (gtk_builder_get_object (builder, "current_cover")); shell_coverselect->priv->listview = GTK_WIDGET (gtk_builder_get_object (builder, "listview")); shell_coverselect->priv->local_file_entry = GTK_WIDGET (gtk_builder_get_object (builder, "local_file_entry")); shell_coverselect->priv->liststore = GTK_LIST_STORE (gtk_builder_get_object (builder, "liststore")); gtk_builder_helpers_boldify_label (builder, "static_artist_label"); gtk_builder_helpers_boldify_label (builder, "static_album_label"); gtk_container_add (GTK_CONTAINER (gtk_dialog_get_content_area (GTK_DIALOG (shell_coverselect))), vbox); /* Set window properties */ gtk_window_set_title (GTK_WINDOW (shell_coverselect), _("Cover Download")); gtk_window_set_default_size (GTK_WINDOW (shell_coverselect), 520, 620); gtk_dialog_add_button (GTK_DIALOG (shell_coverselect), _("_Cancel"), GTK_RESPONSE_CANCEL); gtk_dialog_add_button (GTK_DIALOG (shell_coverselect), _("_OK"), GTK_RESPONSE_OK); gtk_dialog_set_default_response (GTK_DIALOG (shell_coverselect), GTK_RESPONSE_OK); /* Connect signals for user actions */ g_signal_connect (shell_coverselect, "delete_event", G_CALLBACK (ario_shell_coverselect_window_delete_cb), shell_coverselect); g_signal_connect (shell_coverselect, "response", G_CALLBACK (ario_shell_coverselect_response_cb), shell_coverselect); /* Set drag and drop target */ targets = gtk_target_list_new (NULL, 0); gtk_target_list_add_image_targets (targets, 1, TRUE); gtk_target_list_add_uri_targets (targets, 2); target_entry = gtk_target_table_new_from_list (targets, &n_elem); gtk_target_list_unref (targets); gtk_drag_dest_set (shell_coverselect->priv->current_cover, GTK_DEST_DEFAULT_MOTION | GTK_DEST_DEFAULT_HIGHLIGHT | GTK_DEST_DEFAULT_DROP, target_entry, n_elem, GDK_ACTION_COPY); gtk_target_table_free (target_entry, n_elem); g_signal_connect (shell_coverselect->priv->current_cover, "drag_data_received", G_CALLBACK (ario_shell_coverselect_drag_leave_cb), shell_coverselect); g_object_unref (builder); return G_OBJECT (shell_coverselect); } GtkWidget * ario_shell_coverselect_new (ArioServerAlbum *server_album) { ARIO_LOG_FUNCTION_START; ArioShellCoverselect *shell_coverselect; shell_coverselect = g_object_new (TYPE_ARIO_SHELL_COVERSELECT, NULL); /* Remember info about album */ shell_coverselect->priv->file_artist = server_album->artist; shell_coverselect->priv->file_album = server_album->album; shell_coverselect->priv->path = g_path_get_dirname (server_album->path); /* Fill widgets with album data */ ario_shell_coverselect_set_current_cover (shell_coverselect); gtk_entry_set_text (GTK_ENTRY (shell_coverselect->priv->artist_entry), shell_coverselect->priv->file_artist); gtk_entry_set_text (GTK_ENTRY (shell_coverselect->priv->album_entry), shell_coverselect->priv->file_album); gtk_label_set_label (GTK_LABEL (shell_coverselect->priv->artist_label), shell_coverselect->priv->file_artist); gtk_label_set_label (GTK_LABEL (shell_coverselect->priv->album_label), shell_coverselect->priv->file_album); g_return_val_if_fail (shell_coverselect->priv != NULL, NULL); return GTK_WIDGET (shell_coverselect); } static gboolean ario_shell_coverselect_window_delete_cb (GtkWidget *window, GdkEventAny *event, ArioShellCoverselect *shell_coverselect) { ARIO_LOG_FUNCTION_START; gtk_widget_hide (GTK_WIDGET (shell_coverselect)); return FALSE; } static void ario_shell_coverselect_response_cb (GtkDialog *dialog, int response_id, ArioShellCoverselect *shell_coverselect) { ARIO_LOG_FUNCTION_START; if (response_id == GTK_RESPONSE_OK) { /* Save cover */ ario_shell_coverselect_save_cover (shell_coverselect); gtk_widget_hide (GTK_WIDGET (shell_coverselect)); } if (response_id == GTK_RESPONSE_CANCEL) gtk_widget_hide (GTK_WIDGET (shell_coverselect)); } void ario_shell_coverselect_local_open_button_cb (GtkWidget *widget, ArioShellCoverselect *shell_coverselect) { ARIO_LOG_FUNCTION_START; GtkWidget *dialog; gchar *musicdir; gchar *path; /* Create dialog to choose file on disk */ dialog = gtk_file_chooser_dialog_new (NULL, NULL, GTK_FILE_CHOOSER_ACTION_OPEN, _("_Cancel"), GTK_RESPONSE_CANCEL, _("_Open"), GTK_RESPONSE_ACCEPT, NULL); /* Set folder to the album folder if possible */ musicdir = ario_profiles_get_current (ario_profiles_get ())->musicdir; if (musicdir) { path = g_build_filename (musicdir, shell_coverselect->priv->path, NULL); if (ario_util_uri_exists (path)) gtk_file_chooser_set_current_folder (GTK_FILE_CHOOSER (dialog), path); g_free (path); } /* Launch dialog */ if (gtk_dialog_run (GTK_DIALOG (dialog)) == GTK_RESPONSE_ACCEPT) { char *filename; filename = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (dialog)); if (filename) { /* Fill text entry with selected file */ gtk_entry_set_text (GTK_ENTRY (shell_coverselect->priv->local_file_entry), filename); g_free (filename); } } gtk_widget_destroy (dialog); } static void ario_shell_coverselect_set_sensitive (ArioShellCoverselect *shell_coverselect, gboolean sensitive) { ARIO_LOG_FUNCTION_START; /* Change widgets sensitivity */ gtk_dialog_set_response_sensitive (GTK_DIALOG (shell_coverselect), GTK_RESPONSE_CLOSE, sensitive); gtk_widget_set_sensitive (GTK_WIDGET (shell_coverselect->priv->artist_entry), sensitive); gtk_widget_set_sensitive (GTK_WIDGET (shell_coverselect->priv->album_entry), sensitive); gtk_widget_set_sensitive (GTK_WIDGET (shell_coverselect->priv->get_covers_button), sensitive); gtk_widget_set_sensitive (GTK_WIDGET (shell_coverselect->priv->listview), sensitive); /* Wait for UI to refresh */ while (gtk_events_pending ()) gtk_main_iteration (); } void ario_shell_coverselect_get_covers_cb (GtkWidget *widget, ArioShellCoverselect *shell_coverselect) { ARIO_LOG_FUNCTION_START; const gchar *artist; const gchar *album; /* Set widgets insensitive during cover download */ ario_shell_coverselect_set_sensitive (shell_coverselect, FALSE); artist = gtk_entry_get_text (GTK_ENTRY (shell_coverselect->priv->artist_entry)); album = gtk_entry_get_text (GTK_ENTRY (shell_coverselect->priv->album_entry)); /* Free previous data */ if (shell_coverselect->priv->file_size) g_array_free (shell_coverselect->priv->file_size, TRUE); g_slist_foreach (shell_coverselect->priv->file_contents, (GFunc) g_free, NULL); g_slist_free (shell_coverselect->priv->file_contents); shell_coverselect->priv->file_contents = NULL; /* Get covers */ shell_coverselect->priv->file_size = g_array_new (TRUE, TRUE, sizeof (int)); ario_cover_manager_get_covers (ario_cover_manager_get_instance (), artist, album, shell_coverselect->priv->path, &shell_coverselect->priv->file_size, &shell_coverselect->priv->file_contents, GET_ALL_COVERS); /* Show downloaded covers */ ario_shell_coverselect_show_covers (shell_coverselect); /* Reset widgets sensitive */ ario_shell_coverselect_set_sensitive (shell_coverselect, TRUE); } static void ario_shell_coverselect_show_covers (ArioShellCoverselect *shell_coverselect) { ARIO_LOG_FUNCTION_START; GtkTreeIter iter; int i = 0; GSList *temp; GdkPixbuf *pixbuf, *tmp_pixbuf; GdkPixbufLoader *loader; int height, width; /* Empty list */ gtk_list_store_clear (shell_coverselect->priv->liststore); if (!shell_coverselect->priv->file_contents) return; /* For each downloaded cover */ temp = shell_coverselect->priv->file_contents; while (g_array_index (shell_coverselect->priv->file_size, int, i) != 0) { /* Get a pixbuf from downloaded data */ loader = gdk_pixbuf_loader_new (); if (gdk_pixbuf_loader_write (loader, temp->data, g_array_index (shell_coverselect->priv->file_size, int, i), NULL)) { gdk_pixbuf_loader_close (loader, NULL); pixbuf = gdk_pixbuf_loader_get_pixbuf (loader); /* Resize cover */ height = gdk_pixbuf_get_height (pixbuf); width = gdk_pixbuf_get_width (pixbuf); if (height > MAX_COVER_SIZE || width > MAX_COVER_SIZE) { tmp_pixbuf = gdk_pixbuf_scale_simple (pixbuf, MAX_COVER_SIZE, height * MAX_COVER_SIZE / width, GDK_INTERP_BILINEAR); g_object_unref (G_OBJECT (pixbuf)); pixbuf = tmp_pixbuf; } /* Append cover so list */ gtk_list_store_append(shell_coverselect->priv->liststore, &iter); gtk_list_store_set (shell_coverselect->priv->liststore, &iter, BMP_COLUMN, pixbuf, -1); g_object_unref (G_OBJECT (pixbuf)); } temp = g_slist_next (temp); ++i; } /* Select first item in list */ if (gtk_tree_model_get_iter_first (GTK_TREE_MODEL (shell_coverselect->priv->liststore), &iter)) gtk_tree_selection_select_iter (gtk_tree_view_get_selection (GTK_TREE_VIEW (shell_coverselect->priv->listview)), &iter); } static void ario_shell_coverselect_save_cover (ArioShellCoverselect *shell_coverselect) { ARIO_LOG_FUNCTION_START; GtkWidget *dialog; GtkTreeSelection *selection; GtkTreeIter iter; GtkTreePath *tree_path; gint *indice; gchar *data; const gchar *local_file; gsize size; gboolean ret; switch (gtk_notebook_get_current_page (GTK_NOTEBOOK (shell_coverselect->priv->notebook))) { case GLOBAL_PAGE: /* Get selected cover */ selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (shell_coverselect->priv->listview)); if (!gtk_tree_selection_get_selected (selection, NULL, &iter)) return; tree_path = gtk_tree_model_get_path (GTK_TREE_MODEL (shell_coverselect->priv->liststore), &iter); indice = gtk_tree_path_get_indices (tree_path); /* Save cover */ ret = ario_cover_save_cover (shell_coverselect->priv->file_artist, shell_coverselect->priv->file_album, g_slist_nth_data (shell_coverselect->priv->file_contents, indice[0]), g_array_index (shell_coverselect->priv->file_size, int, indice[0]), OVERWRITE_MODE_ASK); gtk_tree_path_free (tree_path); break; case LOCAL_PAGE: /* Cover file on disk */ local_file = gtk_entry_get_text (GTK_ENTRY (shell_coverselect->priv->local_file_entry)); if (!local_file || !strcmp (local_file, "")) return; /* Get cover file content */ ret = ario_file_get_contents (local_file, &data, &size, NULL); if (!ret) { /* Error */ dialog = gtk_message_dialog_new(NULL, GTK_DIALOG_MODAL, GTK_MESSAGE_ERROR, GTK_BUTTONS_OK, _("Error reading file")); gtk_dialog_run (GTK_DIALOG (dialog)); gtk_widget_destroy (dialog); return; } /* Save cover */ ret = ario_cover_save_cover (shell_coverselect->priv->file_artist, shell_coverselect->priv->file_album, data, size, OVERWRITE_MODE_ASK); g_free (data); break; default: return; break; } if (!ret) { /* Error */ dialog = gtk_message_dialog_new(NULL, GTK_DIALOG_MODAL, GTK_MESSAGE_ERROR, GTK_BUTTONS_OK, _("Error saving file")); gtk_dialog_run(GTK_DIALOG(dialog)); gtk_widget_destroy(dialog); } /* Reload current cover */ ario_cover_handler_force_reload(); } static void ario_shell_coverselect_set_current_cover (ArioShellCoverselect *shell_coverselect) { ARIO_LOG_FUNCTION_START; GdkPixbuf *pixbuf; gchar *ario_cover_path; if (ario_cover_cover_exists (shell_coverselect->priv->file_artist, shell_coverselect->priv->file_album)) { /* Get cover path */ ario_cover_path = ario_cover_make_cover_path (shell_coverselect->priv->file_artist, shell_coverselect->priv->file_album, NORMAL_COVER); /* Display cover in cover widget */ gtk_widget_show_all (shell_coverselect->priv->current_cover); pixbuf = gdk_pixbuf_new_from_file_at_size (ario_cover_path, CURRENT_COVER_SIZE, CURRENT_COVER_SIZE, NULL); g_free (ario_cover_path); gtk_image_set_from_pixbuf (GTK_IMAGE (shell_coverselect->priv->current_cover), pixbuf); g_object_unref (pixbuf); } else { /* No cover, hide cover widget */ gtk_widget_hide (shell_coverselect->priv->current_cover); } } ario-1.6/src/shell/ario-shell-lyricsselect.c0000644000175000017500000003125513226723432016051 00000000000000/* * Copyright (C) 2004,2005 Marc Pavot * * 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * */ #include "shell/ario-shell-lyricsselect.h" #include #include #include #include "lyrics/ario-lyrics-manager.h" #include "lib/gtk-builder-helpers.h" #include "ario-debug.h" #define CURRENT_LYRICS_SIZE 130 static void ario_shell_lyricsselect_finalize (GObject *object); static GObject * ario_shell_lyricsselect_constructor (GType type, guint n_construct_properties, GObjectConstructParam *construct_properties); static gboolean ario_shell_lyricsselect_window_delete_cb (GtkWidget *window, GdkEventAny *event, ArioShellLyricsselect *shell_lyricsselect); static void ario_shell_lyricsselect_search_cb (GtkWidget *widget, ArioShellLyricsselect *shell_lyricsselect); static void ario_shell_lyricsselect_show_lyrics (ArioShellLyricsselect *shell_lyricsselect); enum { ARTIST_COLUMN, TITLE_COLUMN, PROVIDER_COLUMN, CANDIDATE_COLUMN, N_COLUMN }; struct ArioShellLyricsselectPrivate { GtkWidget *artist_entry; GtkWidget *title_entry; GtkWidget *artist_label; GtkWidget *title_label; GtkWidget *search_button; GtkWidget *treeview; GtkListStore *liststore; const gchar *file_artist; const gchar *file_title; GSList *lyrics; }; #define ARIO_SHELL_LYRICSSELECT_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_ARIO_SHELL_LYRICSSELECT, ArioShellLyricsselectPrivate)) G_DEFINE_TYPE (ArioShellLyricsselect, ario_shell_lyricsselect, GTK_TYPE_DIALOG) static void ario_shell_lyricsselect_class_init (ArioShellLyricsselectClass *klass) { ARIO_LOG_FUNCTION_START; GObjectClass *object_class = G_OBJECT_CLASS (klass); object_class->finalize = ario_shell_lyricsselect_finalize; object_class->constructor = ario_shell_lyricsselect_constructor; g_type_class_add_private (klass, sizeof (ArioShellLyricsselectPrivate)); } static void ario_shell_lyricsselect_init (ArioShellLyricsselect *shell_lyricsselect) { ARIO_LOG_FUNCTION_START; shell_lyricsselect->priv = ARIO_SHELL_LYRICSSELECT_GET_PRIVATE (shell_lyricsselect); shell_lyricsselect->priv->lyrics = NULL; } static void ario_shell_lyricsselect_finalize (GObject *object) { ARIO_LOG_FUNCTION_START; ArioShellLyricsselect *shell_lyricsselect; g_return_if_fail (object != NULL); g_return_if_fail (IS_ARIO_SHELL_LYRICSSELECT (object)); shell_lyricsselect = ARIO_SHELL_LYRICSSELECT (object); g_return_if_fail (shell_lyricsselect->priv != NULL); g_slist_foreach (shell_lyricsselect->priv->lyrics, (GFunc) ario_lyrics_candidate_free, NULL); g_slist_free (shell_lyricsselect->priv->lyrics); G_OBJECT_CLASS (ario_shell_lyricsselect_parent_class)->finalize (object); } static GObject * ario_shell_lyricsselect_constructor (GType type, guint n_construct_properties, GObjectConstructParam *construct_properties) { ARIO_LOG_FUNCTION_START; ArioShellLyricsselect *shell_lyricsselect; ArioShellLyricsselectClass *klass; GObjectClass *parent_class; GtkBuilder *builder; GtkWidget *vbox; klass = ARIO_SHELL_LYRICSSELECT_CLASS (g_type_class_peek (TYPE_ARIO_SHELL_LYRICSSELECT)); parent_class = G_OBJECT_CLASS (g_type_class_peek_parent (klass)); shell_lyricsselect = ARIO_SHELL_LYRICSSELECT (parent_class->constructor (type, n_construct_properties, construct_properties)); builder = gtk_builder_helpers_new (UI_PATH "lyrics-select.ui", NULL); vbox = GTK_WIDGET (gtk_builder_get_object (builder, "vbox")); shell_lyricsselect->priv->artist_label = GTK_WIDGET (gtk_builder_get_object (builder, "artist_label")); shell_lyricsselect->priv->title_label = GTK_WIDGET (gtk_builder_get_object (builder, "title_label")); shell_lyricsselect->priv->artist_entry = GTK_WIDGET (gtk_builder_get_object (builder, "artist_entry")); shell_lyricsselect->priv->title_entry = GTK_WIDGET (gtk_builder_get_object (builder, "title_entry")); shell_lyricsselect->priv->search_button = GTK_WIDGET (gtk_builder_get_object (builder, "search_button")); shell_lyricsselect->priv->treeview = GTK_WIDGET (gtk_builder_get_object (builder, "treeview")); shell_lyricsselect->priv->liststore = GTK_LIST_STORE (gtk_builder_get_object (builder, "liststore")); gtk_builder_helpers_boldify_label (builder, "static_artist_label"); gtk_builder_helpers_boldify_label (builder, "static_title_label"); gtk_container_add (GTK_CONTAINER (gtk_dialog_get_content_area (GTK_DIALOG (shell_lyricsselect))), vbox); gtk_window_set_title (GTK_WINDOW (shell_lyricsselect), _("Lyrics Download")); gtk_window_set_default_size (GTK_WINDOW (shell_lyricsselect), 520, 350); gtk_dialog_add_button (GTK_DIALOG (shell_lyricsselect), _("_Cancel"), GTK_RESPONSE_CANCEL); gtk_dialog_add_button (GTK_DIALOG (shell_lyricsselect), _("_OK"), GTK_RESPONSE_OK); gtk_dialog_set_default_response (GTK_DIALOG (shell_lyricsselect), GTK_RESPONSE_OK); g_signal_connect (shell_lyricsselect, "delete_event", G_CALLBACK (ario_shell_lyricsselect_window_delete_cb), shell_lyricsselect); g_signal_connect (shell_lyricsselect->priv->search_button, "clicked", G_CALLBACK (ario_shell_lyricsselect_search_cb), shell_lyricsselect); g_object_unref (builder); return G_OBJECT (shell_lyricsselect); } GtkWidget * ario_shell_lyricsselect_new (const char *artist, const char *title) { ARIO_LOG_FUNCTION_START; ArioShellLyricsselect *shell_lyricsselect; shell_lyricsselect = g_object_new (TYPE_ARIO_SHELL_LYRICSSELECT, NULL); shell_lyricsselect->priv->file_artist = artist; shell_lyricsselect->priv->file_title = title; gtk_entry_set_text (GTK_ENTRY (shell_lyricsselect->priv->artist_entry), shell_lyricsselect->priv->file_artist); gtk_entry_set_text (GTK_ENTRY (shell_lyricsselect->priv->title_entry), shell_lyricsselect->priv->file_title); gtk_label_set_label (GTK_LABEL (shell_lyricsselect->priv->artist_label), shell_lyricsselect->priv->file_artist); gtk_label_set_label (GTK_LABEL (shell_lyricsselect->priv->title_label), shell_lyricsselect->priv->file_title); g_return_val_if_fail (shell_lyricsselect->priv != NULL, NULL); return GTK_WIDGET (shell_lyricsselect); } static gboolean ario_shell_lyricsselect_window_delete_cb (GtkWidget *window, GdkEventAny *event, ArioShellLyricsselect *shell_lyricsselect) { ARIO_LOG_FUNCTION_START; gtk_widget_hide (GTK_WIDGET (shell_lyricsselect)); return FALSE; } static void ario_shell_lyricsselect_set_sensitive (ArioShellLyricsselect *shell_lyricsselect, gboolean sensitive) { ARIO_LOG_FUNCTION_START; gtk_dialog_set_response_sensitive (GTK_DIALOG (shell_lyricsselect), GTK_RESPONSE_CLOSE, sensitive); gtk_widget_set_sensitive (GTK_WIDGET (shell_lyricsselect->priv->artist_entry), sensitive); gtk_widget_set_sensitive (GTK_WIDGET (shell_lyricsselect->priv->title_entry), sensitive); gtk_widget_set_sensitive (GTK_WIDGET (shell_lyricsselect->priv->search_button), sensitive); gtk_widget_set_sensitive (GTK_WIDGET (shell_lyricsselect->priv->treeview), sensitive); while (gtk_events_pending ()) gtk_main_iteration (); } static void ario_shell_lyricsselect_search_cb (GtkWidget *widget, ArioShellLyricsselect *shell_lyricsselect) { ARIO_LOG_FUNCTION_START; const gchar *artist; const gchar *title; ario_shell_lyricsselect_set_sensitive (shell_lyricsselect, FALSE); artist = gtk_entry_get_text (GTK_ENTRY (shell_lyricsselect->priv->artist_entry)); title = gtk_entry_get_text (GTK_ENTRY (shell_lyricsselect->priv->title_entry)); g_slist_foreach (shell_lyricsselect->priv->lyrics, (GFunc) ario_lyrics_candidate_free, NULL); g_slist_free (shell_lyricsselect->priv->lyrics); shell_lyricsselect->priv->lyrics = NULL; ario_lyrics_manager_get_lyrics_candidates (ario_lyrics_manager_get_instance(), artist, title, &shell_lyricsselect->priv->lyrics); ario_shell_lyricsselect_show_lyrics (shell_lyricsselect); ario_shell_lyricsselect_set_sensitive (shell_lyricsselect, TRUE); } static void ario_shell_lyricsselect_show_lyrics (ArioShellLyricsselect *shell_lyricsselect) { ARIO_LOG_FUNCTION_START; GtkTreeIter iter; GSList *tmp; ArioLyricsCandidate *candidate; gtk_list_store_clear (shell_lyricsselect->priv->liststore); for (tmp = shell_lyricsselect->priv->lyrics; tmp; tmp = g_slist_next (tmp)) { candidate = (ArioLyricsCandidate *) tmp->data; gtk_list_store_append(shell_lyricsselect->priv->liststore, &iter); gtk_list_store_set (shell_lyricsselect->priv->liststore, &iter, ARTIST_COLUMN, candidate->artist, TITLE_COLUMN, candidate->title, PROVIDER_COLUMN, ario_lyrics_provider_get_name (candidate->lyrics_provider), CANDIDATE_COLUMN, candidate, -1); } /* Select first item in list */ if (gtk_tree_model_get_iter_first (GTK_TREE_MODEL (shell_lyricsselect->priv->liststore), &iter)) gtk_tree_selection_select_iter (gtk_tree_view_get_selection (GTK_TREE_VIEW (shell_lyricsselect->priv->treeview)), &iter); } ArioLyricsCandidate * ario_shell_lyricsselect_get_lyrics_candidate (ArioShellLyricsselect *shell_lyricsselect) { ARIO_LOG_FUNCTION_START; GList* paths; GtkTreeIter iter; ArioLyricsCandidate *candidate; GtkTreeModel *tree_model = GTK_TREE_MODEL (shell_lyricsselect->priv->liststore); GtkTreePath *path; GtkTreeSelection *selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (shell_lyricsselect->priv->treeview)); paths = gtk_tree_selection_get_selected_rows (selection, &tree_model); if (!paths) return NULL; path = g_list_first(paths)->data; if (!path) return NULL; gtk_tree_model_get_iter (tree_model, &iter, path); gtk_tree_model_get (tree_model, &iter, CANDIDATE_COLUMN, &candidate, -1); return ario_lyrics_candidate_copy (candidate); } ario-1.6/src/shell/ario-shell-similarartists.h0000644000175000017500000000512613226723431016420 00000000000000/* * Copyright (C) 2005 Marc Pavot * * 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, 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * */ #include #ifndef __ARIO_SHELL_SIMILARARTISTS_H #define __ARIO_SHELL_SIMILARARTISTS_H G_BEGIN_DECLS #define TYPE_ARIO_SHELL_SIMILARARTISTS (ario_shell_similarartists_get_type ()) #define ARIO_SHELL_SIMILARARTISTS(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), TYPE_ARIO_SHELL_SIMILARARTISTS, ArioShellSimilarartists)) #define ARIO_SHELL_SIMILARARTISTS_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), TYPE_ARIO_SHELL_SIMILARARTISTS, ArioShellSimilarartistsClass)) #define IS_ARIO_SHELL_SIMILARARTISTS(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), TYPE_ARIO_SHELL_SIMILARARTISTS)) #define IS_ARIO_SHELL_SIMILARARTISTS_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), TYPE_ARIO_SHELL_SIMILARARTISTS)) #define ARIO_SHELL_SIMILARARTISTS_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), TYPE_ARIO_SHELL_SIMILARARTISTS, ArioShellSimilarartistsClass)) typedef struct ArioShellSimilarartistsPrivate ArioShellSimilarartistsPrivate; typedef struct { GtkWindow parent; ArioShellSimilarartistsPrivate *priv; } ArioShellSimilarartists; typedef struct { GtkWindowClass parent_class; } ArioShellSimilarartistsClass; typedef struct { guchar *name; guchar *image; guchar *url; } ArioSimilarArtist; GType ario_shell_similarartists_get_type (void) G_GNUC_CONST; GtkWidget * ario_shell_similarartists_new (void); GSList * ario_shell_similarartists_get_similar_artists (const gchar *artist); void ario_shell_similarartists_add_similar_to_playlist (const gchar *artist, const int nb_entries); void ario_shell_similarartists_free_similarartist (ArioSimilarArtist *similar_artist); G_END_DECLS #endif /* __ARIO_SHELL_SIMILARARTISTS_H */ ario-1.6/src/shell/ario-shell-lyrics.c0000644000175000017500000001727113226723432014653 00000000000000/* * Copyright (C) 2005 Marc Pavot * * 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, 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * */ #include "shell/ario-shell-lyrics.h" #include #include #include #include #include #include #include "ario-debug.h" #include "widgets/ario-lyrics-editor.h" #include "ario-util.h" static void ario_shell_lyrics_finalize (GObject *object); static gboolean ario_shell_lyrics_window_delete_cb (GtkWidget *window, GdkEventAny *event, ArioShellLyrics *shell_lyrics); static void ario_shell_lyrics_close_cb (GtkButton *button, ArioShellLyrics *shell_lyrics); static void ario_shell_lyrics_add_to_queue (ArioShellLyrics *shell_lyrics); static void ario_shell_lyrics_song_changed_cb (ArioServer *server, ArioShellLyrics *shell_lyrics); static void ario_shell_lyrics_state_changed_cb (ArioServer *server, ArioShellLyrics *shell_lyrics); #define BASE_TITLE _("Lyrics") struct ArioShellLyricsPrivate { GtkWidget *lyrics_editor; }; static gboolean is_instantiated = FALSE; #define ARIO_SHELL_LYRICS_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_ARIO_SHELL_LYRICS, ArioShellLyricsPrivate)) G_DEFINE_TYPE (ArioShellLyrics, ario_shell_lyrics, GTK_TYPE_WINDOW) static void ario_shell_lyrics_class_init (ArioShellLyricsClass *klass) { ARIO_LOG_FUNCTION_START; GObjectClass *object_class = G_OBJECT_CLASS (klass); object_class->finalize = ario_shell_lyrics_finalize; g_type_class_add_private (klass, sizeof (ArioShellLyricsPrivate)); } static void ario_shell_lyrics_init (ArioShellLyrics *shell_lyrics) { ARIO_LOG_FUNCTION_START; shell_lyrics->priv = ARIO_SHELL_LYRICS_GET_PRIVATE (shell_lyrics); g_signal_connect(shell_lyrics, "delete_event", G_CALLBACK (ario_shell_lyrics_window_delete_cb), shell_lyrics); gtk_window_set_title (GTK_WINDOW (shell_lyrics), BASE_TITLE); gtk_window_set_resizable (GTK_WINDOW (shell_lyrics), FALSE); gtk_container_set_border_width (GTK_CONTAINER (shell_lyrics), 5); } GtkWidget * ario_shell_lyrics_new (void) { ARIO_LOG_FUNCTION_START; ArioShellLyrics *shell_lyrics; GtkWidget *close_button; GList *childs_list; GtkWidget *hbox; ArioServer *server = ario_server_get_instance (); if (is_instantiated) return NULL; else is_instantiated = TRUE; shell_lyrics = g_object_new (TYPE_ARIO_SHELL_LYRICS, NULL); g_return_val_if_fail (shell_lyrics->priv != NULL, NULL); g_signal_connect_object (server, "song_changed", G_CALLBACK (ario_shell_lyrics_song_changed_cb), shell_lyrics, 0); g_signal_connect_object (server, "state_changed", G_CALLBACK (ario_shell_lyrics_state_changed_cb), shell_lyrics, 0); close_button = gtk_button_new_from_icon_name ("window-close", GTK_ICON_SIZE_BUTTON); shell_lyrics->priv->lyrics_editor = ario_lyrics_editor_new (); childs_list = gtk_container_get_children (GTK_CONTAINER (shell_lyrics->priv->lyrics_editor)); g_return_val_if_fail (childs_list, NULL); hbox = g_list_last (childs_list)->data; g_list_free (childs_list); gtk_box_pack_end (GTK_BOX (hbox), close_button, FALSE, FALSE, 0); gtk_box_reorder_child (GTK_BOX (hbox), close_button, 0); gtk_container_add (GTK_CONTAINER (shell_lyrics), shell_lyrics->priv->lyrics_editor); gtk_window_set_resizable (GTK_WINDOW (shell_lyrics), TRUE); gtk_window_set_default_size (GTK_WINDOW (shell_lyrics), 350, 500); gtk_window_set_position (GTK_WINDOW (shell_lyrics), GTK_WIN_POS_CENTER); g_signal_connect (close_button, "clicked", G_CALLBACK (ario_shell_lyrics_close_cb), shell_lyrics); ario_shell_lyrics_add_to_queue (shell_lyrics); return GTK_WIDGET (shell_lyrics); } static void ario_shell_lyrics_finalize (GObject *object) { ARIO_LOG_FUNCTION_START; ArioShellLyrics *shell_lyrics; g_return_if_fail (object != NULL); g_return_if_fail (IS_ARIO_SHELL_LYRICS (object)); shell_lyrics = ARIO_SHELL_LYRICS (object); g_return_if_fail (shell_lyrics->priv != NULL); is_instantiated = FALSE; G_OBJECT_CLASS (ario_shell_lyrics_parent_class)->finalize (object); } static gboolean ario_shell_lyrics_window_delete_cb (GtkWidget *window, GdkEventAny *event, ArioShellLyrics *shell_lyrics) { ARIO_LOG_FUNCTION_START; gtk_widget_hide (GTK_WIDGET (shell_lyrics)); gtk_widget_destroy (GTK_WIDGET (shell_lyrics)); return TRUE; } static void ario_shell_lyrics_close_cb (GtkButton *button, ArioShellLyrics *shell_lyrics) { ARIO_LOG_FUNCTION_START; gtk_widget_hide (GTK_WIDGET (shell_lyrics)); gtk_widget_destroy (GTK_WIDGET (shell_lyrics)); } static void ario_shell_lyrics_add_to_queue (ArioShellLyrics *shell_lyrics) { ARIO_LOG_FUNCTION_START; ArioLyricsEditorData *data; gchar *window_title; data = (ArioLyricsEditorData *) g_malloc0 (sizeof (ArioLyricsEditorData)); if (!ario_server_is_connected () || ario_server_get_current_state () == ARIO_STATE_STOP || ario_server_get_current_state () == ARIO_STATE_UNKNOWN) { data->artist = NULL; data->title = NULL; window_title = g_strdup (BASE_TITLE); } else { data->artist = g_strdup (ario_server_get_current_artist ()); data->title = g_strdup (ario_util_format_title (ario_server_get_current_song ())); window_title = g_strdup_printf ("%s - %s", BASE_TITLE, data->title); } ario_lyrics_editor_push (ARIO_LYRICS_EDITOR (shell_lyrics->priv->lyrics_editor), data); gtk_window_set_title (GTK_WINDOW (shell_lyrics), window_title); g_free (window_title); } static void ario_shell_lyrics_song_changed_cb (ArioServer *server, ArioShellLyrics *shell_lyrics) { ARIO_LOG_FUNCTION_START; ario_shell_lyrics_add_to_queue (shell_lyrics); } static void ario_shell_lyrics_state_changed_cb (ArioServer *server, ArioShellLyrics *shell_lyrics) { ARIO_LOG_FUNCTION_START; ario_shell_lyrics_add_to_queue (shell_lyrics); } ario-1.6/src/ario-avahi.h0000644000175000017500000000411413226723433012220 00000000000000/* * Copyright (C) 2005 Marc Pavot * * 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, 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * */ #ifndef __ARIO_AVAHI_H #define __ARIO_AVAHI_H #include #include G_BEGIN_DECLS /* ArioAvahi objects look on the network for MPD servers using avahi * and can be used to retrieved the list of available MPD servers */ #define TYPE_ARIO_AVAHI (ario_avahi_get_type ()) #define ARIO_AVAHI(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), TYPE_ARIO_AVAHI, ArioAvahi)) #define ARIO_AVAHI_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), TYPE_ARIO_AVAHI, ArioAvahiClass)) #define IS_ARIO_AVAHI(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), TYPE_ARIO_AVAHI)) #define IS_ARIO_AVAHI_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), TYPE_ARIO_AVAHI)) #define ARIO_AVAHI_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), TYPE_ARIO_AVAHI, ArioAvahiClass)) typedef struct ArioAvahiPrivate ArioAvahiPrivate; typedef struct { GObject parent; ArioAvahiPrivate *priv; } ArioAvahi; typedef struct { GObjectClass parent_class; void (*hosts_changed) (ArioAvahi *avahi); } ArioAvahiClass; typedef struct ArioHost { gchar *name; gchar *host; int port; } ArioHost; GType ario_avahi_get_type (void) G_GNUC_CONST; ArioAvahi * ario_avahi_new (void); GSList * ario_avahi_get_hosts (ArioAvahi *avahi); G_END_DECLS #endif /* __ARIO_AVAHI_H */ ario-1.6/src/sources/0000755000175000017500000000000013226745613011576 500000000000000ario-1.6/src/sources/ario-source.c0000644000175000017500000000531413226723432014110 00000000000000/* * Copyright (C) 2008 Marc Pavot * * 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, 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * */ #include "sources/ario-source.h" #include G_DEFINE_TYPE (ArioSource, ario_source, GTK_TYPE_BOX) static void dummy (ArioSource *source) { /* Empty */ } static gchar * dummy_char (ArioSource *source) { return NULL; } static void ario_source_class_init (ArioSourceClass *klass) { /* Default values for virtual methods */ klass->get_name = dummy_char; klass->get_icon = dummy_char; klass->get_id = dummy_char; klass->shutdown = dummy; klass->select = dummy; klass->unselect = dummy; klass->goto_playling_song = dummy; } static void ario_source_init (ArioSource *source) { gtk_orientable_set_orientation (GTK_ORIENTABLE (source), GTK_ORIENTATION_HORIZONTAL); } gchar * ario_source_get_id (ArioSource *source) { g_return_val_if_fail (ARIO_IS_SOURCE (source), FALSE); return ARIO_SOURCE_GET_CLASS (source)->get_id (source); } gchar * ario_source_get_name (ArioSource *source) { g_return_val_if_fail (ARIO_IS_SOURCE (source), FALSE); return ARIO_SOURCE_GET_CLASS (source)->get_name (source); } gchar * ario_source_get_icon (ArioSource *source) { g_return_val_if_fail (ARIO_IS_SOURCE (source), FALSE); return ARIO_SOURCE_GET_CLASS (source)->get_icon (source); } void ario_source_shutdown (ArioSource *source) { g_return_if_fail (ARIO_IS_SOURCE (source)); ARIO_SOURCE_GET_CLASS (source)->shutdown (source); } void ario_source_select (ArioSource *source) { g_return_if_fail (ARIO_IS_SOURCE (source)); ARIO_SOURCE_GET_CLASS (source)->select (source); } void ario_source_unselect (ArioSource *source) { g_return_if_fail (ARIO_IS_SOURCE (source)); ARIO_SOURCE_GET_CLASS (source)->unselect (source); } void ario_source_goto_playling_song (ArioSource *source) { g_return_if_fail (ARIO_IS_SOURCE (source)); ARIO_SOURCE_GET_CLASS (source)->goto_playling_song (source); } ario-1.6/src/sources/ario-search.c0000644000175000017500000002657613226723432014072 00000000000000/* * Copyright (C) 2005 Marc Pavot * * 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, 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * */ #include "sources/ario-search.h" #include #include #include #include #include "widgets/ario-songlist.h" #include "widgets/ario-playlist.h" #include "shell/ario-shell-songinfos.h" #include "ario-util.h" #include "ario-debug.h" #include "servers/ario-server.h" #ifdef ENABLE_SEARCH #define SEARCH_DELAY 250 static void ario_search_connectivity_changed_cb (ArioServer *server, ArioSearch *search); static void ario_search_entry_changed (GtkEntry *entry, ArioSearch *search); static void ario_search_entry_clear (GtkEntry *entry, GtkEntryIconPosition icon_pos, GdkEvent *event, ArioSearch *search); static gboolean ario_search_do_search (ArioSearch *search); struct ArioSearchPrivate { GtkWidget *searchs; GtkWidget *entry; GtkWidget *vbox; gboolean connected; guint event_id; }; /* Actions */ static const GActionEntry ario_search_actions[] = { { "search-add-to-pl", ario_songlist_cmd_add_songlists }, { "search-add-play", ario_songlist_cmd_add_play_songlists }, { "search-replace-in-pl", ario_songlist_cmd_clear_add_play_songlists }, { "search-properties", ario_songlist_cmd_songs_properties }, }; static guint ario_search_n_actions = G_N_ELEMENTS (ario_search_actions); /* Object properties */ enum { PROP_0, }; #define ARIO_SEARCH_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_ARIO_SEARCH, ArioSearchPrivate)) G_DEFINE_TYPE (ArioSearch, ario_search, ARIO_TYPE_SOURCE) static gchar * ario_search_get_id (ArioSource *source) { return "search"; } static gchar * ario_search_get_name (ArioSource *source) { return _("Search"); } static gchar * ario_search_get_icon (ArioSource *source) { return "edit-find"; } static void ario_search_class_init (ArioSearchClass *klass) { ARIO_LOG_FUNCTION_START; ArioSourceClass *source_class = ARIO_SOURCE_CLASS (klass); /* Virtual ArioSource methods */ source_class->get_id = ario_search_get_id; source_class->get_name = ario_search_get_name; source_class->get_icon = ario_search_get_icon; /* Private attributes */ g_type_class_add_private (klass, sizeof (ArioSearchPrivate)); } static void ario_search_init (ArioSearch *search) { ARIO_LOG_FUNCTION_START; search->priv = ARIO_SEARCH_GET_PRIVATE (search); search->priv->connected = FALSE; /* Main vbox */ search->priv->vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 5); gtk_container_set_border_width (GTK_CONTAINER (search->priv->vbox), 10); /* Search entry */ search->priv->entry = gtk_entry_new (); gtk_entry_set_icon_from_icon_name (GTK_ENTRY (search->priv->entry), GTK_ENTRY_ICON_PRIMARY, "edit-clear"); g_signal_connect (search->priv->entry, "changed", G_CALLBACK (ario_search_entry_changed), search); g_signal_connect (search->priv->entry, "icon-press", G_CALLBACK (ario_search_entry_clear), search); gtk_box_pack_start (GTK_BOX (search->priv->vbox), search->priv->entry, FALSE, FALSE, 0); gtk_box_pack_start (GTK_BOX (search), search->priv->vbox, TRUE, TRUE, 0); } GtkWidget * ario_search_new (void) { ARIO_LOG_FUNCTION_START; ArioSearch *search; search = g_object_new (TYPE_ARIO_SEARCH, NULL); g_return_val_if_fail (search->priv != NULL, NULL); /* Signals to synchronize the search with server */ g_signal_connect_object (ario_server_get_instance (), "state_changed", G_CALLBACK (ario_search_connectivity_changed_cb), search, 0); /* Search songs list */ search->priv->searchs = ario_songlist_new (UI_PATH "ario-songlist-menu.ui", "search-menu", TRUE); /* Songs list widget */ gtk_box_pack_start (GTK_BOX (search->priv->vbox), search->priv->searchs, TRUE, TRUE, 0); /* Add actions */ g_action_map_add_action_entries (G_ACTION_MAP (g_application_get_default ()), ario_search_actions, ario_search_n_actions, search->priv->searchs); return GTK_WIDGET (search); } static void ario_search_connectivity_changed_cb (ArioServer *server, ArioSearch *search) { ARIO_LOG_FUNCTION_START; search->priv->connected = ario_server_is_connected (); } static void ario_search_entry_changed (GtkEntry *entry, ArioSearch *search) { ARIO_LOG_FUNCTION_START; if (search->priv->event_id > 0) g_source_remove (search->priv->event_id); search->priv->event_id = g_timeout_add (SEARCH_DELAY, (GSourceFunc) ario_search_do_search, search); } static void ario_search_entry_clear (GtkEntry *entry, GtkEntryIconPosition icon_pos, GdkEvent *event, ArioSearch *search) { ARIO_LOG_FUNCTION_START; /* Clear search entry */ gtk_entry_set_text (GTK_ENTRY (search->priv->entry), ""); } static gboolean ario_search_do_search (ArioSearch *search) { ARIO_LOG_FUNCTION_START; ArioServerAtomicCriteria *atomic_criteria; GSList *criteria = NULL; GSList *tmp; GSList *songs; ArioServerSong *song; GtkTreeIter iter; gchar *title; GtkListStore *liststore; int i, j; gchar **cmp_str; gboolean tagged_search; gchar *sep, *tag, *value; gchar **items; gint len; /* Split on spaces to have multiple filters */ cmp_str = g_strsplit (gtk_entry_get_text (GTK_ENTRY (search->priv->entry)), " ", -1); if (!cmp_str) return FALSE; /* Loop on every filter */ for (i = 0; cmp_str[i]; ++i) { len = strlen(cmp_str[i]); /* Only keep words of at least 3 chars for performance reasons */ if (g_utf8_collate (cmp_str[i], "") && len > 2) { /* Check if we are in the case of a search by tag (like title:foo or artist:bar) */ tagged_search = FALSE; sep = g_strstr_len (cmp_str[i], len, ":"); if (sep) { if (sep - cmp_str[i] == len - 1) { /* separator is the last character (for example: 'title:') * We don't take this string into account */ tagged_search = TRUE; } else { tag = g_strndup (cmp_str[i], sep - cmp_str[i]); value = g_strdup (sep + 1); items = ario_server_get_items_names (); for (j = 0; j < ARIO_TAG_COUNT; ++j) { if (items[j] && tag && (! g_ascii_strcasecmp (tag, items[j]) || ! g_ascii_strcasecmp (tag, gettext (items[j])))) { atomic_criteria = (ArioServerAtomicCriteria *) g_malloc (sizeof (ArioServerAtomicCriteria)); atomic_criteria->tag = j; atomic_criteria->value = g_strdup (value); criteria = g_slist_append (criteria, atomic_criteria); tagged_search = TRUE; break; } } } } /* Not a search by tag: search in any tag */ if (!tagged_search) { atomic_criteria = (ArioServerAtomicCriteria *) g_malloc (sizeof (ArioServerAtomicCriteria)); atomic_criteria->tag = ARIO_TAG_ANY; atomic_criteria->value = g_strdup (cmp_str[i]); criteria = g_slist_append (criteria, atomic_criteria); } } } g_strfreev (cmp_str); /* Clear song list */ liststore = ario_songlist_get_liststore (ARIO_SONGLIST (search->priv->searchs)); gtk_list_store_clear (liststore); if (!criteria) return FALSE; /* Get songs corresponding to criteria */ songs = ario_server_get_songs (criteria, FALSE); g_slist_foreach (criteria, (GFunc) g_free, NULL); g_slist_free (criteria); /* For each retrieved song */ for (tmp = songs; tmp; tmp = g_slist_next (tmp)) { song = tmp->data; /* Add song to song list */ gtk_list_store_append (liststore, &iter); title = ario_util_format_title (song); gtk_list_store_set (liststore, &iter, SONGS_TITLE_COLUMN, title, SONGS_ARTIST_COLUMN, song->artist, SONGS_ALBUM_COLUMN, song->album, SONGS_FILENAME_COLUMN, song->file, -1); } g_slist_foreach (songs, (GFunc) ario_server_free_song, NULL); g_slist_free (songs); return FALSE; } #endif /* ENABLE_SEARCH */ ario-1.6/src/sources/ario-tree-songs.h0000644000175000017500000000361513226723432014705 00000000000000/* * Copyright (C) 2009 Marc Pavot * * 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, 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * */ #ifndef __ARIO_TREE_SONGS_H #define __ARIO_TREE_SONGS_H #include "sources/ario-tree.h" G_BEGIN_DECLS #define TYPE_ARIO_TREE_SONGS (ario_tree_songs_get_type ()) #define ARIO_TREE_SONGS(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), TYPE_ARIO_TREE_SONGS, ArioTreeSongs)) #define ARIO_TREE_SONGS_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), TYPE_ARIO_TREE_SONGS, ArioTreeSongsClass)) #define IS_ARIO_TREE_SONGS(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), TYPE_ARIO_TREE_SONGS)) #define IS_ARIO_TREE_SONGS_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), TYPE_ARIO_TREE_SONGS)) #define ARIO_TREE_SONGS_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), TYPE_ARIO_TREE_SONGS, ArioTreeSongsClass)) /** * ArioTreeSongs is a specialization of ArioTree to have a nicer * display of songs arts and special menus. */ typedef struct { ArioTree parent; } ArioTreeSongs; typedef struct { ArioTreeClass parent; } ArioTreeSongsClass; GType ario_tree_songs_get_type (void) G_GNUC_CONST; void ario_tree_songs_cmd_songs_properties (ArioTreeSongs *tree); G_END_DECLS #endif /* __ARIO_TREE_SONGS_H */ ario-1.6/src/sources/ario-source-manager.c0000644000175000017500000003365713226723432015533 00000000000000/* * Copyright (C) 2005 Marc Pavot * * 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, 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * */ #include "sources/ario-source-manager.h" #include #include #include #include #include "ario-debug.h" #include "lib/ario-conf.h" #include "preferences/ario-preferences.h" #include "sources/ario-browser.h" #include "sources/ario-search.h" #include "sources/ario-storedplaylists.h" #include "widgets/ario-playlist.h" static void ario_source_manager_sync (ArioSourceManager *sourcemanager); static void ario_source_manager_showtabs_changed_cb (guint notification_id, ArioSourceManager *sourcemanager); static gboolean ario_source_manager_button_press_cb (GtkWidget *widget, GdkEventButton *event, ArioSourceManager *sourcemanager); static gboolean ario_source_manager_switch_page_cb (GtkNotebook *notebook, gpointer notebook_page, guint page, ArioSourceManager *sourcemanager); struct ArioSourceManagerPrivate { GSList *sources; ArioSource *source; }; static ArioSourceManager *instance = NULL; typedef struct ArioSourceData { ArioSource *source; } ArioSourceData; #define ARIO_SOURCE_MANAGER_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), ARIO_TYPE_SOURCE_MANAGER, ArioSourceManagerPrivate)) G_DEFINE_TYPE (ArioSourceManager, ario_source_manager, GTK_TYPE_NOTEBOOK) static void ario_source_manager_class_init (ArioSourceManagerClass *klass) { ARIO_LOG_FUNCTION_START; /* Private attributes */ g_type_class_add_private (klass, sizeof (ArioSourceManagerPrivate)); } static void ario_source_manager_init (ArioSourceManager *sourcemanager) { ARIO_LOG_FUNCTION_START; sourcemanager->priv = ARIO_SOURCE_MANAGER_GET_PRIVATE (sourcemanager); } GtkWidget * ario_source_manager_get_instance (void) { ARIO_LOG_FUNCTION_START; GtkWidget *source; /* Returns singleton if already instantiated */ if (instance) return GTK_WIDGET (instance); instance = g_object_new (ARIO_TYPE_SOURCE_MANAGER, NULL); g_return_val_if_fail (instance->priv != NULL, NULL); /* Create browser */ source = ario_browser_new (); ario_source_manager_append (ARIO_SOURCE (source)); #ifdef ENABLE_SEARCH /* Create search */ source = ario_search_new (); ario_source_manager_append (ARIO_SOURCE (source)); #endif /* ENABLE_SEARCH */ #ifdef ENABLE_STOREDPLAYLISTS /* Create stored playlists source */ source = ario_storedplaylists_new (); ario_source_manager_append (ARIO_SOURCE (source)); #endif /* ENABLE_STOREDPLAYLISTS */ /* Connect signlas for actions on notebook */ g_signal_connect (instance, "button_press_event", G_CALLBACK (ario_source_manager_button_press_cb), instance); g_signal_connect_after (instance, "switch-page", G_CALLBACK (ario_source_manager_switch_page_cb), instance); /* Reorder sources according to preferences */ ario_source_manager_reorder (); /* Notification for preference changes */ ario_conf_notification_add (PREF_SHOW_TABS, (ArioNotifyFunc) ario_source_manager_showtabs_changed_cb, instance); /* Set tabs visibility according to preferences */ gtk_notebook_set_show_tabs (GTK_NOTEBOOK (instance), ario_conf_get_boolean (PREF_SHOW_TABS, PREF_SHOW_TABS_DEFAULT)); return GTK_WIDGET (instance); } static void ario_source_manager_shutdown_foreach (ArioSource *source, GSList **ordered_sources) { ARIO_LOG_FUNCTION_START; /* Shutdown source */ ario_source_shutdown (source); /* Add source to ordered list */ *ordered_sources = g_slist_append (*ordered_sources, ario_source_get_id (source)); } void ario_source_manager_shutdown (void) { ARIO_LOG_FUNCTION_START; GSList *ordered_sources = NULL; /* Save current active page */ ario_conf_set_integer (PREF_SOURCE, gtk_notebook_get_current_page (GTK_NOTEBOOK (instance))); /* Shutdown each source and get an ordered list of sources */ gtk_container_foreach (GTK_CONTAINER (instance), (GtkCallback) ario_source_manager_shutdown_foreach, &ordered_sources); /* Save ordered list of sources */ ario_conf_set_string_slist (PREF_SOURCE_LIST, ordered_sources); g_slist_free (ordered_sources); } void ario_source_manager_goto_playling_song (void) { ARIO_LOG_FUNCTION_START; /* Go to playing song on active source */ if (instance->priv->source) { ario_source_goto_playling_song (instance->priv->source); } } void ario_source_manager_reorder (void) { ARIO_LOG_FUNCTION_START; int i = 0; ArioSourceData *data; GSList *ordered_tmp; GSList *sources_tmp; GSList *ordered_sources = ario_conf_get_string_slist (PREF_SOURCE_LIST, PREF_SOURCE_LIST_DEFAULT); /* For each source in preferences */ for (ordered_tmp = ordered_sources; ordered_tmp; ordered_tmp = g_slist_next (ordered_tmp)) { /* For each registered source */ for (sources_tmp = instance->priv->sources; sources_tmp; sources_tmp = g_slist_next (sources_tmp)) { data = sources_tmp->data; if (!strcmp (ario_source_get_id (data->source), ordered_tmp->data)) { /* Move source tab according to preferences */ gtk_notebook_reorder_child (GTK_NOTEBOOK (instance), GTK_WIDGET (data->source), i); break; } } ++i; } g_slist_foreach (ordered_sources, (GFunc) g_free, NULL); g_slist_free (ordered_sources); ario_source_manager_sync (instance); } static void ario_source_manager_sync (ArioSourceManager *sourcemanager) { ARIO_LOG_FUNCTION_START; gint page; /* Select active page according to preferences */ page = ario_conf_get_integer (PREF_SOURCE, PREF_SOURCE_DEFAULT); gtk_notebook_set_current_page (GTK_NOTEBOOK (sourcemanager), page); } static void ario_source_manager_showtabs_changed_cb (guint notification_id, ArioSourceManager *sourcemanager) { ARIO_LOG_FUNCTION_START; /* Set tabs visibility */ gtk_notebook_set_show_tabs (GTK_NOTEBOOK (sourcemanager), ario_conf_get_boolean (PREF_SHOW_TABS, PREF_SHOW_TABS_DEFAULT)); } static void ario_source_manager_set_source_active (ArioSource *source, gboolean active) { ARIO_LOG_FUNCTION_START; gchar *conf_name; /* Set source activity in preferences */ conf_name = g_strconcat (ario_source_get_id (source), "-active", NULL); ario_conf_set_boolean (conf_name, active); g_free (conf_name); if (active) { /* Show source */ gtk_widget_set_no_show_all (GTK_WIDGET (source), FALSE); gtk_widget_show_all (GTK_WIDGET (source)); gtk_widget_set_no_show_all (GTK_WIDGET (source), TRUE); } else { /* Hide source */ gtk_widget_hide (GTK_WIDGET (source)); } } static void ario_source_manager_menu_cb (GtkCheckMenuItem *checkmenuitem, ArioSource *source) { ARIO_LOG_FUNCTION_START; /* Select source as in menu */ ario_source_manager_set_source_active (source, gtk_check_menu_item_get_active (checkmenuitem)); } void ario_source_manager_append (ArioSource *source) { ARIO_LOG_FUNCTION_START; GtkWidget *hbox; gchar *conf_name; ArioSourceData *data; /* Create hbox for tab header */ hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 4); /* Add source icon to hbox */ gtk_box_pack_start (GTK_BOX (hbox), gtk_image_new_from_icon_name (ario_source_get_icon (source), GTK_ICON_SIZE_MENU), TRUE, TRUE, 0); /* Add source name to hbox */ gtk_box_pack_start (GTK_BOX (hbox), gtk_label_new (ario_source_get_name (source)), TRUE, TRUE, 0); /* Append source to source-manager */ gtk_widget_show_all (hbox); gtk_notebook_append_page (GTK_NOTEBOOK (instance), GTK_WIDGET (source), hbox); gtk_notebook_set_tab_reorderable (GTK_NOTEBOOK (instance), GTK_WIDGET (source), TRUE); /* Show/hide source depending on preferences */ conf_name = g_strconcat (ario_source_get_id (source), "-active", NULL); if (ario_conf_get_boolean (conf_name, TRUE)) gtk_widget_show_all (GTK_WIDGET (source)); else gtk_widget_hide (GTK_WIDGET (source)); gtk_widget_set_no_show_all (GTK_WIDGET (source), TRUE); g_free (conf_name); /* Add source data to list */ data = (ArioSourceData *) g_malloc (sizeof (ArioSourceData)); data->source = source; instance->priv->sources = g_slist_append (instance->priv->sources, data); } void ario_source_manager_remove (ArioSource *source) { ARIO_LOG_FUNCTION_START; GSList *tmp; ArioSourceData *data; /* Shutdown source */ ario_source_shutdown (source); if (instance->priv->source == source) instance->priv->source = NULL; /* For each source */ for (tmp = instance->priv->sources; tmp; tmp = g_slist_next (tmp)) { data = tmp->data; /* Get source to remove */ if (data->source == source) { /* Remove the source from the list */ instance->priv->sources = g_slist_remove (instance->priv->sources, data); g_free (data); break; } } /* Remove source from notebook */ gtk_container_remove (GTK_CONTAINER (instance), GTK_WIDGET (source)); } static gboolean ario_source_manager_button_press_cb (GtkWidget *widget, GdkEventButton *event, ArioSourceManager *sourcemanager) { ARIO_LOG_FUNCTION_START; GtkWidget *menu; GtkWidget *item; GSList *tmp; ArioSourceData *data; gchar *conf_name; if (event->button == 3) { /* Third button: Show popup menu */ menu = gtk_menu_new (); for (tmp = sourcemanager->priv->sources; tmp; tmp = g_slist_next (tmp)) { /* Build menu with each source */ data = tmp->data; item = gtk_check_menu_item_new_with_label (ario_source_get_name (data->source)); conf_name = g_strconcat (ario_source_get_id (data->source), "-active", NULL); gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (item), ario_conf_get_boolean (conf_name, TRUE)); g_free (conf_name); /* Connect signal for activation/deactivation of sources in popup menu */ g_signal_connect (item, "toggled", G_CALLBACK (ario_source_manager_menu_cb), data->source); gtk_menu_shell_append (GTK_MENU_SHELL (menu), item); } /* Show popup menu */ gtk_widget_show_all (menu); gtk_menu_popup_at_pointer (GTK_MENU (menu), NULL); } return FALSE; } static gboolean ario_source_manager_switch_page_cb (GtkNotebook *notebook, gpointer notebook_page, guint page, ArioSourceManager *sourcemanager) { ARIO_LOG_FUNCTION_START; ArioSource *new_source; /* Call unselect on previous source */ if (sourcemanager->priv->source) { ario_source_unselect (sourcemanager->priv->source); } /* Call select on new source */ new_source = ARIO_SOURCE (gtk_notebook_get_nth_page (notebook, page)); if (new_source) ario_source_select (new_source); sourcemanager->priv->source = new_source; return FALSE; } ario-1.6/src/sources/ario-storedplaylists.c0000644000175000017500000006317213226723435016066 00000000000000/* * Copyright (C) 2005 Marc Pavot * * 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, 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * */ #include "sources/ario-storedplaylists.h" #include #include #include #include #include "ario-debug.h" #include "ario-util.h" #include "lib/ario-conf.h" #include "preferences/ario-preferences.h" #include "servers/ario-server.h" #include "shell/ario-shell-songinfos.h" #include "widgets/ario-dnd-tree.h" #include "widgets/ario-playlist.h" #include "widgets/ario-songlist.h" #ifdef ENABLE_STOREDPLAYLISTS static void ario_storedplaylists_shutdown (ArioSource *source); static void ario_storedplaylists_connectivity_changed_cb (ArioServer *server, ArioStoredplaylists *storedplaylists); static void ario_storedplaylists_storedplaylists_changed_cb (ArioServer *server, ArioStoredplaylists *storedplaylists); static void ario_storedplaylists_cmd_add_storedplaylists (GSimpleAction *action, GVariant *parameter, gpointer data); static void ario_storedplaylists_cmd_add_play_storedplaylists (GSimpleAction *action, GVariant *parameter, gpointer data); static void ario_storedplaylists_cmd_clear_add_play_storedplaylists (GSimpleAction *action, GVariant *parameter, gpointer data); static void ario_storedplaylists_cmd_delete_storedplaylists (GSimpleAction *action, GVariant *parameter, gpointer data); static void ario_storedplaylists_popup_menu_cb (ArioDndTree* tree, ArioStoredplaylists *storedplaylists); static void ario_storedplaylists_playlists_activate_cb (ArioDndTree* tree, ArioStoredplaylists *storedplaylists); static void ario_storedplaylists_playlists_drag_data_get_cb (GtkWidget * widget, GdkDragContext * context, GtkSelectionData * selection_data, guint info, guint time, gpointer data); static void ario_storedplaylists_playlists_selection_changed_cb (GtkTreeSelection *selection, ArioStoredplaylists *storedplaylists); static void ario_storedplaylists_fill_storedplaylists (ArioStoredplaylists *storedplaylists); struct ArioStoredplaylistsPrivate { GtkListStore *model; GtkTreeSelection *selection; GtkWidget *songs; GtkWidget *paned; gboolean connected; gboolean empty; GtkWidget *popup; }; /* Actions on playlists list */ static const GActionEntry ario_storedplaylists_actions [] = { { "storedpl-add-to-pl", ario_storedplaylists_cmd_add_storedplaylists }, { "storedpl-add-play", ario_storedplaylists_cmd_add_play_storedplaylists }, { "storedpl-clear-add-play", ario_storedplaylists_cmd_clear_add_play_storedplaylists }, { "storedpl-delete", ario_storedplaylists_cmd_delete_storedplaylists }, }; static guint ario_storedplaylists_n_actions = G_N_ELEMENTS (ario_storedplaylists_actions); static const GActionEntry ario_storedplaylists_songs_actions [] = { { "storedpl-add-to-pl-songs", ario_songlist_cmd_add_songlists }, { "storedpl-add-play-songs", ario_songlist_cmd_add_play_songlists }, { "storedpl-clear-add-play-songs", ario_songlist_cmd_clear_add_play_songlists }, { "storedpl-songs-properties", ario_songlist_cmd_songs_properties }, }; static guint ario_storedplaylists_n_songs_actions = G_N_ELEMENTS (ario_storedplaylists_songs_actions); /* Object properties */ enum { PROP_0, }; enum { PLAYLISTS_NAME_COLUMN, PLAYLISTS_N_COLUMN }; /* Drag and drop targets */ static const GtkTargetEntry songs_targets [] = { { "text/songs-list", 0, 0 }, }; #define ARIO_STOREDPLAYLISTS_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_ARIO_STOREDPLAYLISTS, ArioStoredplaylistsPrivate)) G_DEFINE_TYPE (ArioStoredplaylists, ario_storedplaylists, ARIO_TYPE_SOURCE) static gchar * ario_storedplaylists_get_id (ArioSource *source) { return "storedplaylists"; } static gchar * ario_storedplaylists_get_name (ArioSource *source) { return _("Playlists"); } static gchar * ario_storedplaylists_get_icon (ArioSource *source) { return "multimedia-player"; } static void ario_storedplaylists_select (ArioSource *source) { ArioStoredplaylists *storedplaylists = ARIO_STOREDPLAYLISTS (source); /* Fill playlists list if it's empty */ if (storedplaylists->priv->empty) ario_storedplaylists_fill_storedplaylists (storedplaylists); } static void ario_storedplaylists_class_init (ArioStoredplaylistsClass *klass) { ARIO_LOG_FUNCTION_START; ArioSourceClass *source_class = ARIO_SOURCE_CLASS (klass); /* ArioSource virtual methods */ source_class->get_id = ario_storedplaylists_get_id; source_class->get_name = ario_storedplaylists_get_name; source_class->get_icon = ario_storedplaylists_get_icon; source_class->shutdown = ario_storedplaylists_shutdown; source_class->select = ario_storedplaylists_select; /* Private attributes */ g_type_class_add_private (klass, sizeof (ArioStoredplaylistsPrivate)); } static void ario_storedplaylists_init (ArioStoredplaylists *storedplaylists) { ARIO_LOG_FUNCTION_START; GtkTreeViewColumn *column; GtkCellRenderer *renderer; GtkWidget *scrolledwindow_storedplaylists; GtkWidget *tree; GtkBuilder *builder; GMenuModel *menu; int pos; storedplaylists->priv = ARIO_STOREDPLAYLISTS_GET_PRIVATE (storedplaylists); storedplaylists->priv->connected = FALSE; storedplaylists->priv->empty = TRUE; /* Create scrolled window for playlists list */ scrolledwindow_storedplaylists = gtk_scrolled_window_new (NULL, NULL); gtk_widget_show (scrolledwindow_storedplaylists); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolledwindow_storedplaylists), GTK_POLICY_NEVER, GTK_POLICY_ALWAYS); gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (scrolledwindow_storedplaylists), GTK_SHADOW_IN); /* Drag and drop tree for playlists list */ tree = ario_dnd_tree_new (songs_targets, G_N_ELEMENTS (songs_targets), FALSE); /* Add column for playlists list */ renderer = gtk_cell_renderer_text_new (); column = gtk_tree_view_column_new_with_attributes (_("Playlist"), renderer, "text", 0, NULL); gtk_tree_view_column_set_sizing (column, GTK_TREE_VIEW_COLUMN_FIXED); gtk_tree_view_column_set_fixed_width (column, 50); gtk_tree_view_append_column (GTK_TREE_VIEW (tree), column); /* Create model for playlists list */ storedplaylists->priv->model = gtk_list_store_new (PLAYLISTS_N_COLUMN, G_TYPE_STRING); gtk_tree_sortable_set_sort_column_id (GTK_TREE_SORTABLE (storedplaylists->priv->model), 0, GTK_SORT_ASCENDING); gtk_tree_view_set_model (GTK_TREE_VIEW (tree), GTK_TREE_MODEL (storedplaylists->priv->model)); /* Get selection for playlists list */ storedplaylists->priv->selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (tree)); gtk_tree_selection_set_mode (storedplaylists->priv->selection, GTK_SELECTION_MULTIPLE); gtk_container_add (GTK_CONTAINER (scrolledwindow_storedplaylists), tree); /* Signals for actions on playlists list */ g_signal_connect (GTK_TREE_VIEW (tree), "drag_data_get", G_CALLBACK (ario_storedplaylists_playlists_drag_data_get_cb), storedplaylists); g_signal_connect (GTK_TREE_VIEW (tree), "popup", G_CALLBACK (ario_storedplaylists_popup_menu_cb), storedplaylists); g_signal_connect (GTK_TREE_VIEW (tree), "activate", G_CALLBACK (ario_storedplaylists_playlists_activate_cb), storedplaylists); g_signal_connect (storedplaylists->priv->selection, "changed", G_CALLBACK (ario_storedplaylists_playlists_selection_changed_cb), storedplaylists); /* Hpaned properties */ storedplaylists->priv->paned = gtk_paned_new (GTK_ORIENTATION_HORIZONTAL); gtk_paned_pack1 (GTK_PANED (storedplaylists->priv->paned), scrolledwindow_storedplaylists, FALSE, FALSE); pos = ario_conf_get_integer (PREF_PLAYLISTS_HPANED_SIZE, PREF_PLAYLISTS_HPANED_SIZE_DEFAULT); if (pos > 0) gtk_paned_set_position (GTK_PANED (storedplaylists->priv->paned), pos); gtk_box_pack_start (GTK_BOX (storedplaylists), storedplaylists->priv->paned, TRUE, TRUE, 0); /* Popup menu */ builder = gtk_builder_new_from_file (UI_PATH "ario-songlist-menu.ui"); menu = G_MENU_MODEL (gtk_builder_get_object (builder, "storedpl-menu")); storedplaylists->priv->popup = gtk_menu_new_from_model (menu); gtk_menu_attach_to_widget (GTK_MENU (storedplaylists->priv->popup), GTK_WIDGET (storedplaylists), NULL); g_object_unref (builder); } void ario_storedplaylists_shutdown (ArioSource *source) { ArioStoredplaylists *storedplaylists = ARIO_STOREDPLAYLISTS (source); int pos; /* Save hpaned position */ pos = gtk_paned_get_position (GTK_PANED (storedplaylists->priv->paned)); if (pos > 0) ario_conf_set_integer (PREF_PLAYLISTS_HPANED_SIZE, pos); } GtkWidget * ario_storedplaylists_new (void) { ARIO_LOG_FUNCTION_START; ArioStoredplaylists *storedplaylists; ArioServer *server = ario_server_get_instance (); storedplaylists = g_object_new (TYPE_ARIO_STOREDPLAYLISTS, NULL); g_return_val_if_fail (storedplaylists->priv != NULL, NULL); /* Signals to synchronize the storedplaylists with server */ g_signal_connect_object (server, "connectivity_changed", G_CALLBACK (ario_storedplaylists_connectivity_changed_cb), storedplaylists, 0); g_signal_connect_object (server, "storedplaylists_changed", G_CALLBACK (ario_storedplaylists_storedplaylists_changed_cb), storedplaylists, 0); /* Create songs list */ storedplaylists->priv->songs = ario_songlist_new (UI_PATH "ario-songlist-menu.ui", "storedpl-songs-menu", FALSE); gtk_paned_pack2 (GTK_PANED (storedplaylists->priv->paned), storedplaylists->priv->songs, TRUE, FALSE); /* Register actions */ g_action_map_add_action_entries (G_ACTION_MAP (g_application_get_default ()), ario_storedplaylists_actions, ario_storedplaylists_n_actions, storedplaylists); g_action_map_add_action_entries (G_ACTION_MAP (g_application_get_default ()), ario_storedplaylists_songs_actions, ario_storedplaylists_n_songs_actions, storedplaylists->priv->songs); return GTK_WIDGET (storedplaylists); } static void ario_storedplaylists_fill_storedplaylists (ArioStoredplaylists *storedplaylists) { ARIO_LOG_FUNCTION_START; GtkTreeIter storedplaylists_iter; GSList *playlists; GSList *tmp; storedplaylists->priv->empty = FALSE; /* Empty playlists list */ gtk_list_store_clear (storedplaylists->priv->model); if (!storedplaylists->priv->connected) return; /* Get playlists list on server */ playlists = ario_server_get_playlists (); for (tmp = playlists; tmp; tmp = g_slist_next (tmp)) { /* Add playlist to list */ gtk_list_store_append (storedplaylists->priv->model, &storedplaylists_iter); gtk_list_store_set (storedplaylists->priv->model, &storedplaylists_iter, 0, tmp->data, -1); } g_slist_foreach (playlists, (GFunc) g_free, NULL); g_slist_free (playlists); /* Select first playlist */ gtk_tree_selection_unselect_all (storedplaylists->priv->selection); if (gtk_tree_model_get_iter_first (GTK_TREE_MODEL (storedplaylists->priv->model), &storedplaylists_iter)) gtk_tree_selection_select_iter (storedplaylists->priv->selection, &storedplaylists_iter); } static void ario_storedplaylists_playlists_selection_foreach (GtkTreeModel *model, GtkTreePath *path, GtkTreeIter *iter, gpointer userdata) { ARIO_LOG_FUNCTION_START; ArioStoredplaylists *storedplaylists = ARIO_STOREDPLAYLISTS (userdata); gchar* playlist = NULL; GSList *songs = NULL, *temp; ArioServerSong *song; GtkTreeIter song_iter; gchar *title; GtkListStore *liststore; g_return_if_fail (IS_ARIO_STOREDPLAYLISTS (storedplaylists)); gtk_tree_model_get (model, iter, PLAYLISTS_NAME_COLUMN, &playlist, -1); if (!playlist) return; /* Get list of songs of selected playlist */ songs = ario_server_get_songs_from_playlist (playlist); g_free (playlist); liststore = ario_songlist_get_liststore (ARIO_SONGLIST (storedplaylists->priv->songs)); for (temp = songs; temp; temp = g_slist_next (temp)) { /* Append each song to the list */ song = temp->data; gtk_list_store_append (liststore, &song_iter); title = ario_util_format_title (song); gtk_list_store_set (liststore, &song_iter, SONGS_TITLE_COLUMN, title, SONGS_ARTIST_COLUMN, song->artist, SONGS_ALBUM_COLUMN, song->album, SONGS_FILENAME_COLUMN, song->file, -1); } g_slist_foreach (songs, (GFunc) ario_server_free_song, NULL); g_slist_free (songs); } static void ario_storedplaylists_playlists_selection_update (ArioStoredplaylists *storedplaylists) { ARIO_LOG_FUNCTION_START; GtkTreeIter song_iter; ArioSonglist *songlist = ARIO_SONGLIST (storedplaylists->priv->songs); GtkListStore *liststore = ario_songlist_get_liststore (songlist); GtkTreeSelection *selection = ario_songlist_get_selection (songlist); /* Empty songs list */ gtk_list_store_clear (liststore); /* Add songs of each selected playlist */ gtk_tree_selection_selected_foreach (storedplaylists->priv->selection, ario_storedplaylists_playlists_selection_foreach, storedplaylists); /* Select first song */ gtk_tree_selection_unselect_all (selection); if (gtk_tree_model_get_iter_first (GTK_TREE_MODEL (liststore), &song_iter)) gtk_tree_selection_select_iter (selection, &song_iter); } static void ario_storedplaylists_playlists_selection_changed_cb (GtkTreeSelection *selection, ArioStoredplaylists *storedplaylists) { ARIO_LOG_FUNCTION_START; ario_storedplaylists_playlists_selection_update (storedplaylists); } static void ario_storedplaylists_connectivity_changed_cb (ArioServer *server, ArioStoredplaylists *storedplaylists) { ARIO_LOG_FUNCTION_START; storedplaylists->priv->connected = ario_server_is_connected (); /* Fill playlists list */ if (!storedplaylists->priv->empty) ario_storedplaylists_fill_storedplaylists (storedplaylists); } static void ario_storedplaylists_storedplaylists_changed_cb (ArioServer *server, ArioStoredplaylists *storedplaylists) { ARIO_LOG_FUNCTION_START; /* Fill playlists list */ ario_storedplaylists_fill_storedplaylists (storedplaylists); } static void storedplaylists_foreach (GtkTreeModel *model, GtkTreePath *path, GtkTreeIter *iter, gpointer userdata) { ARIO_LOG_FUNCTION_START; GSList **storedplaylists = (GSList **) userdata; gchar *val = NULL; /* Append playlist name to the list */ gtk_tree_model_get (model, iter, PLAYLISTS_NAME_COLUMN, &val, -1); *storedplaylists = g_slist_append (*storedplaylists, val); } static void ario_storedplaylists_add_playlists (ArioStoredplaylists *storedplaylists, PlaylistAction action) { ARIO_LOG_FUNCTION_START; GSList *playlists = NULL; GSList *songs = NULL; GSList *tmp; /* Get a list of playlists names */ gtk_tree_selection_selected_foreach (storedplaylists->priv->selection, storedplaylists_foreach, &playlists); for (tmp = playlists; tmp; tmp = g_slist_next (tmp)) { /* Get songs from playlist */ songs = ario_server_get_songs_from_playlist (tmp->data); /* Append songs to main playlist */ ario_server_playlist_append_server_songs (songs, action); g_slist_foreach (songs, (GFunc) ario_server_free_song, NULL); g_slist_free (songs); } g_slist_foreach (playlists, (GFunc) g_free, NULL); g_slist_free (playlists); } static void ario_storedplaylists_clear_add_play_playlists (ArioStoredplaylists *storedplaylists) { /* Empty playlist, add songs to playlist and play */ ario_storedplaylists_add_playlists (storedplaylists, PLAYLIST_REPLACE); } static void ario_storedplaylists_cmd_add_storedplaylists (GSimpleAction *action, GVariant *parameter, gpointer data) { ARIO_LOG_FUNCTION_START; ArioStoredplaylists *storedplaylists = ARIO_STOREDPLAYLISTS (data); /* Add songs to playlist */ ario_storedplaylists_add_playlists (storedplaylists, PLAYLIST_ADD); } static void ario_storedplaylists_cmd_add_play_storedplaylists (GSimpleAction *action, GVariant *parameter, gpointer data) { ARIO_LOG_FUNCTION_START; ArioStoredplaylists *storedplaylists = ARIO_STOREDPLAYLISTS (data); /* Add songs to playlist and play */ ario_storedplaylists_add_playlists (storedplaylists, PLAYLIST_ADD_PLAY); } static void ario_storedplaylists_cmd_clear_add_play_storedplaylists (GSimpleAction *action, GVariant *parameter, gpointer data) { ARIO_LOG_FUNCTION_START; ArioStoredplaylists *storedplaylists = ARIO_STOREDPLAYLISTS (data); ario_storedplaylists_clear_add_play_playlists (storedplaylists); } static void ario_storedplaylists_cmd_delete_storedplaylists (GSimpleAction *action, GVariant *parameter, gpointer data) { ARIO_LOG_FUNCTION_START; GtkWidget *dialog; gint retval = GTK_RESPONSE_NO; GSList *playlists = NULL; GSList *tmp; ArioStoredplaylists *storedplaylists = ARIO_STOREDPLAYLISTS (data); /* Create confirmation dialog for playlist deletion */ dialog = gtk_message_dialog_new (NULL, GTK_DIALOG_MODAL, GTK_MESSAGE_QUESTION, GTK_BUTTONS_YES_NO, _("Are you sure that you want to delete all the selected playlists?")); /* Run dialog */ retval = gtk_dialog_run (GTK_DIALOG(dialog)); gtk_widget_destroy (dialog); if (retval != GTK_RESPONSE_YES) return; /* Get list of selected playlists */ gtk_tree_selection_selected_foreach (storedplaylists->priv->selection, storedplaylists_foreach, &playlists); /* Delete each selected playlist */ for (tmp = playlists; tmp; tmp = g_slist_next (tmp)) { ario_server_delete_playlist (tmp->data); } g_slist_foreach (playlists, (GFunc) g_free, NULL); g_slist_free (playlists); } static void ario_storedplaylists_popup_menu_cb (ArioDndTree* tree, ArioStoredplaylists *storedplaylists) { ARIO_LOG_FUNCTION_START; if (gtk_tree_selection_count_selected_rows (storedplaylists->priv->selection) > 0) { /* Show popup menu */ gtk_menu_popup_at_pointer (GTK_MENU (storedplaylists->priv->popup), NULL); } } static void ario_storedplaylists_playlists_activate_cb (ArioDndTree* tree, ArioStoredplaylists *storedplaylists) { ARIO_LOG_FUNCTION_START; ario_storedplaylists_add_playlists (storedplaylists, ario_conf_get_integer (PREF_DOUBLECLICK_BEHAVIOR, PREF_DOUBLECLICK_BEHAVIOR_DEFAULT)); } static void ario_storedplaylists_playlists_drag_data_get_cb (GtkWidget * widget, GdkDragContext * context, GtkSelectionData * selection_data, guint info, guint time, gpointer data) { ARIO_LOG_FUNCTION_START; ArioStoredplaylists *storedplaylists; ArioServerSong *song; GSList *playlists = NULL; GSList *songs; GSList *tmp, *tmp2; GString *str_playlists; storedplaylists = ARIO_STOREDPLAYLISTS (data); g_return_if_fail (IS_ARIO_STOREDPLAYLISTS (storedplaylists)); g_return_if_fail (widget != NULL); g_return_if_fail (selection_data != NULL); /* Get list of selected playlists */ gtk_tree_selection_selected_foreach (storedplaylists->priv->selection, storedplaylists_foreach, &playlists); /* Get string of playlist names concatenation */ str_playlists = g_string_new(""); for (tmp = playlists; tmp; tmp = g_slist_next (tmp)) { songs = ario_server_get_songs_from_playlist (tmp->data); for (tmp2 = songs; tmp2; tmp2 = g_slist_next (tmp2)) { song = tmp2->data; g_string_append (str_playlists, song->file); g_string_append (str_playlists, "\n"); } g_slist_foreach (songs, (GFunc) ario_server_free_song, NULL); g_slist_free (songs); } g_slist_foreach (playlists, (GFunc) g_free, NULL); g_slist_free (playlists); /* Set drag data */ gtk_selection_data_set (selection_data, gtk_selection_data_get_target (selection_data), 8, (const guchar *) str_playlists->str, strlen (str_playlists->str) * sizeof(guchar)); g_string_free (str_playlists, TRUE); } #endif /* ENABLE_STOREDPLAYLISTS */ ario-1.6/src/sources/ario-source-manager.h0000644000175000017500000000515313226723432015526 00000000000000/* * Copyright (C) 2005 Marc Pavot * * 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, 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * */ #ifndef __ARIO_SOURCE_MANAGER_H #define __ARIO_SOURCE_MANAGER_H #include #include "sources/ario-source.h" G_BEGIN_DECLS typedef enum { ARIO_SOURCE_BROWSER, ARIO_SOURCE_RADIO, ARIO_SOURCE_SEARCH, ARIO_SOURCE_PLAYLISTS, ARIO_SOURCE_FILESYSTEM }ArioSourceType; #define ARIO_TYPE_SOURCE_MANAGER (ario_source_manager_get_type ()) #define ARIO_SOURCE_MANAGER(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), ARIO_TYPE_SOURCE_MANAGER, ArioSourceManager)) #define ARIO_SOURCE_MANAGER_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), ARIO_TYPE_SOURCE_MANAGER, ArioSourceManagerClass)) #define ARIO_IS_SOURCE_MANAGER(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), ARIO_TYPE_SOURCE_MANAGER)) #define ARIO_IS_SOURCE_MANAGER_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), ARIO_TYPE_SOURCE_MANAGER)) #define ARIO_SOURCE_MANAGER_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), ARIO_TYPE_SOURCE_MANAGER, ArioSourceManagerClass)) typedef struct ArioSourceManagerPrivate ArioSourceManagerPrivate; /** * ArioSourceManager is a widget used to display, * reorder, activate, deactivate the different * ArioSource */ typedef struct { GtkNotebook parent; ArioSourceManagerPrivate *priv; } ArioSourceManager; typedef struct { GtkNotebookClass parent; } ArioSourceManagerClass; GType ario_source_manager_get_type (void) G_GNUC_CONST; GtkWidget* ario_source_manager_get_instance (void); void ario_source_manager_append (ArioSource *source); void ario_source_manager_remove (ArioSource *source); void ario_source_manager_reorder (void); void ario_source_manager_shutdown (void); void ario_source_manager_goto_playling_song (void); G_END_DECLS #endif /* __ARIO_SOURCE_MANAGER_H */ ario-1.6/src/sources/ario-source.h0000644000175000017500000000574713226723432014127 00000000000000/* * Copyright (C) 2008 Marc Pavot * * 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, 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * */ #ifndef __ARIO_SOURCE_H__ #define __ARIO_SOURCE_H__ #include #include G_BEGIN_DECLS /* * Type checking and casting macros */ #define ARIO_TYPE_SOURCE (ario_source_get_type()) #define ARIO_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), ARIO_TYPE_SOURCE, ArioSource)) #define ARIO_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), ARIO_TYPE_SOURCE, ArioSourceClass)) #define ARIO_IS_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), ARIO_TYPE_SOURCE)) #define ARIO_IS_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), ARIO_TYPE_SOURCE)) #define ARIO_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), ARIO_TYPE_SOURCE, ArioSourceClass)) /** * ArioSource is an abstract object that can be used to interact * with playlist. All ArioSource objects are managed by * ArioSourceManager. */ typedef struct _ArioSource { GtkBox parent; } ArioSource; /* * Class definition */ typedef struct { GtkBoxClass parent; /* Virtual public methods */ gchar* (*get_id) (ArioSource *source); gchar* (*get_name) (ArioSource *source); gchar* (*get_icon) (ArioSource *source); void (*shutdown) (ArioSource *source); void (*select) (ArioSource *source); void (*unselect) (ArioSource *source); void (*goto_playling_song) (ArioSource *source); } ArioSourceClass; /* * Public methods */ GType ario_source_get_type (void) G_GNUC_CONST; gchar* ario_source_get_id (ArioSource *source); gchar* ario_source_get_name (ArioSource *source); gchar* ario_source_get_icon (ArioSource *source); void ario_source_shutdown (ArioSource *source); void ario_source_select (ArioSource *source); void ario_source_unselect (ArioSource *source); void ario_source_goto_playling_song (ArioSource *source); G_END_DECLS #endif /* __ARIO_SOURCE_H__ */ ario-1.6/src/sources/ario-tree.h0000644000175000017500000001073213226723432013554 00000000000000/* * Copyright (C) 2005 Marc Pavot * * 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, 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * */ #ifndef __ARIO_TREE_H #define __ARIO_TREE_H #include #include "servers/ario-server.h" #include "sources/ario-source.h" #include "shell/ario-shell-coverdownloader.h" G_BEGIN_DECLS #define TYPE_ARIO_TREE (ario_tree_get_type ()) #define ARIO_TREE(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), TYPE_ARIO_TREE, ArioTree)) #define ARIO_TREE_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), TYPE_ARIO_TREE, ArioTreeClass)) #define IS_ARIO_TREE(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), TYPE_ARIO_TREE)) #define IS_ARIO_TREE_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), TYPE_ARIO_TREE)) #define ARIO_TREE_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), TYPE_ARIO_TREE, ArioTreeClass)) typedef struct ArioTreePrivate ArioTreePrivate; /** * ArioTree is used by ArioBrowser to list one kind of tag on * music server. Criteria are associated to ArioTree to filter * items in the list. */ typedef struct { GtkScrolledWindow parent; ArioTreePrivate *priv; GtkWidget *tree; GtkListStore *model; GtkTreeSelection *selection; ArioServerTag tag; gboolean is_first; /* List of ArioServerCriteria */ GSList *criterias; } ArioTree; typedef struct { GString *string; ArioTree *tree; } ArioTreeStringData; typedef struct { GtkScrolledWindowClass parent; /* Virtual methods */ void (*build_tree) (ArioTree *tree, GtkTreeView *treeview); void (*fill_tree) (ArioTree *tree); GdkPixbuf* (*get_dnd_pixbuf) (ArioTree *tree); void (*get_drag_source) (const GtkTargetEntry** targets, int* n_targets); void (*append_drag_data) (ArioTree *tree, GtkTreeModel *model, GtkTreeIter *iter, ArioTreeStringData *data); void (*add_to_playlist) (ArioTree *tree, const PlaylistAction action); /* Signals */ void (*selection_changed) (ArioTree *tree); void (*menu_popup) (ArioTree *tree); } ArioTreeClass; GType ario_tree_get_type (void) G_GNUC_CONST; GtkWidget* ario_tree_new (ArioServerTag tag, gboolean is_first); void ario_tree_fill (ArioTree *tree); void ario_tree_clear_criterias (ArioTree *tree); void ario_tree_add_criteria (ArioTree *tree, ArioServerCriteria *criteria); GSList* ario_tree_get_criterias (ArioTree *tree); void ario_tree_cmd_add (ArioTree *tree, const PlaylistAction action); void ario_tree_goto_playling_song (ArioTree *tree, const ArioServerSong *song); void ario_tree_add_tags (ArioTree *tree, ArioServerCriteria *criteria, GSList *tags); void ario_tree_get_cover (ArioTree *tree, const ArioShellCoverdownloaderOperation operation); G_END_DECLS #endif /* __ARIO_TREE_H */ ario-1.6/src/sources/ario-storedplaylists.h0000644000175000017500000000432213226723435016063 00000000000000/* * Copyright (C) 2005 Marc Pavot * * 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, 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * */ #ifndef __ARIO_STOREDPLAYLISTS_H #define __ARIO_STOREDPLAYLISTS_H #include #include #include "sources/ario-source.h" #ifdef ENABLE_STOREDPLAYLISTS G_BEGIN_DECLS #define TYPE_ARIO_STOREDPLAYLISTS (ario_storedplaylists_get_type ()) #define ARIO_STOREDPLAYLISTS(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), TYPE_ARIO_STOREDPLAYLISTS, ArioStoredplaylists)) #define ARIO_STOREDPLAYLISTS_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), TYPE_ARIO_STOREDPLAYLISTS, ArioStoredplaylistsClass)) #define IS_ARIO_STOREDPLAYLISTS(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), TYPE_ARIO_STOREDPLAYLISTS)) #define IS_ARIO_STOREDPLAYLISTS_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), TYPE_ARIO_STOREDPLAYLISTS)) #define ARIO_STOREDPLAYLISTS_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), TYPE_ARIO_STOREDPLAYLISTS, ArioStoredplaylistsClass)) typedef struct ArioStoredplaylistsPrivate ArioStoredplaylistsPrivate; /** * ArioStoredplaylists is a ArioSource used to browse playlists * saved on music server. It can interact with main playlist. */ typedef struct { ArioSource parent; ArioStoredplaylistsPrivate *priv; } ArioStoredplaylists; typedef struct { ArioSourceClass parent; } ArioStoredplaylistsClass; GType ario_storedplaylists_get_type (void) G_GNUC_CONST; GtkWidget* ario_storedplaylists_new (void); G_END_DECLS #endif /* ENABLE_STOREDPLAYLISTS */ #endif /* __ARIO_STOREDPLAYLISTS_H */ ario-1.6/src/sources/ario-browser.h0000644000175000017500000000374613226723432014307 00000000000000/* * Copyright (C) 2005 Marc Pavot * * 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, 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * */ #ifndef __ARIO_BROWSER_H #define __ARIO_BROWSER_H #include #include "sources/ario-source.h" #define MAX_TREE_NB 5 G_BEGIN_DECLS #define TYPE_ARIO_BROWSER (ario_browser_get_type ()) #define ARIO_BROWSER(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), TYPE_ARIO_BROWSER, ArioBrowser)) #define ARIO_BROWSER_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), TYPE_ARIO_BROWSER, ArioBrowserClass)) #define IS_ARIO_BROWSER(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), TYPE_ARIO_BROWSER)) #define IS_ARIO_BROWSER_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), TYPE_ARIO_BROWSER)) #define ARIO_BROWSER_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), TYPE_ARIO_BROWSER, ArioBrowserClass)) typedef struct ArioBrowserPrivate ArioBrowserPrivate; /** * ArioBrowser is a ArioSource reprensenting music library. * It contains a configurable number of ArioTree and the type * of ArioTrees can be configured */ typedef struct { ArioSource parent; ArioBrowserPrivate *priv; } ArioBrowser; typedef struct { ArioSourceClass parent; } ArioBrowserClass; GType ario_browser_get_type (void) G_GNUC_CONST; GtkWidget* ario_browser_new (void); G_END_DECLS #endif /* __ARIO_BROWSER_H */ ario-1.6/src/sources/ario-tree-albums.h0000644000175000017500000000402413226723432015032 00000000000000/* * Copyright (C) 2009 Marc Pavot * * 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, 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * */ #ifndef __ARIO_TREE_ALBUMS_H #define __ARIO_TREE_ALBUMS_H #include "sources/ario-tree.h" G_BEGIN_DECLS #define TYPE_ARIO_TREE_ALBUMS (ario_tree_albums_get_type ()) #define ARIO_TREE_ALBUMS(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), TYPE_ARIO_TREE_ALBUMS, ArioTreeAlbums)) #define ARIO_TREE_ALBUMS_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), TYPE_ARIO_TREE_ALBUMS, ArioTreeAlbumsClass)) #define IS_ARIO_TREE_ALBUMS(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), TYPE_ARIO_TREE_ALBUMS)) #define IS_ARIO_TREE_ALBUMS_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), TYPE_ARIO_TREE_ALBUMS)) #define ARIO_TREE_ALBUMS_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), TYPE_ARIO_TREE_ALBUMS, ArioTreeAlbumsClass)) typedef struct ArioTreeAlbumsPrivate ArioTreeAlbumsPrivate; /** * ArioTreeAlbums is a specialization of ArioTree to have a nicer * display of albums with cover arts and special menus. */ typedef struct { ArioTree parent; ArioTreeAlbumsPrivate *priv; } ArioTreeAlbums; typedef struct { ArioTreeClass parent; } ArioTreeAlbumsClass; GType ario_tree_albums_get_type (void) G_GNUC_CONST; void ario_tree_albums_cmd_albums_properties (ArioTreeAlbums *tree); G_END_DECLS #endif /* __ARIO_TREE_ALBUMS_H */ ario-1.6/src/sources/ario-search.h0000644000175000017500000000377513226723432014073 00000000000000/* * Copyright (C) 2005 Marc Pavot * * 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, 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * */ #ifndef __ARIO_SEARCH_H #define __ARIO_SEARCH_H #include #include #include "sources/ario-source.h" #ifdef ENABLE_SEARCH G_BEGIN_DECLS #define TYPE_ARIO_SEARCH (ario_search_get_type ()) #define ARIO_SEARCH(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), TYPE_ARIO_SEARCH, ArioSearch)) #define ARIO_SEARCH_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), TYPE_ARIO_SEARCH, ArioSearchClass)) #define IS_ARIO_SEARCH(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), TYPE_ARIO_SEARCH)) #define IS_ARIO_SEARCH_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), TYPE_ARIO_SEARCH)) #define ARIO_SEARCH_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), TYPE_ARIO_SEARCH, ArioSearchClass)) typedef struct ArioSearchPrivate ArioSearchPrivate; /** * ArioSearch is a ArioSource that enable user to search * for songs in music library by defining several search * criteria and to interact with playlist */ typedef struct { ArioSource parent; ArioSearchPrivate *priv; } ArioSearch; typedef struct { ArioSourceClass parent; } ArioSearchClass; GType ario_search_get_type (void) G_GNUC_CONST; GtkWidget* ario_search_new (void); G_END_DECLS #endif /* ENABLE_SEARCH */ #endif /* __ARIO_SEARCH_H */ ario-1.6/src/sources/ario-tree-songs.c0000644000175000017500000002661713226723435014712 00000000000000/* * Copyright (C) 2009 Marc Pavot * * 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, 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * */ #include "sources/ario-tree-songs.h" #include #include #include #include "ario-debug.h" #include "ario-util.h" #include "covers/ario-cover.h" #include "lib/ario-conf.h" #include "preferences/ario-preferences.h" #include "shell/ario-shell-songinfos.h" static void ario_tree_songs_build_tree (ArioTree *parent_tree, GtkTreeView *treeview); static void ario_tree_songs_fill_tree (ArioTree *parent_tree); static void ario_tree_songs_get_drag_source (const GtkTargetEntry** targets, int* n_targets); static void ario_tree_songs_append_drag_data (ArioTree *tree, GtkTreeModel *model, GtkTreeIter *iter, ArioTreeStringData *data); static void ario_tree_songs_add_to_playlist (ArioTree *tree, const PlaylistAction action); /* Tree columns */ enum { SONG_VALUE_COLUMN, SONG_CRITERIA_COLUMN, SONG_TRACK_COLUMN, SONG_FILENAME_COLUMN, SONG_CD_COLUMN, SONG_N_COLUMN }; /* Drag and drop targets */ static const GtkTargetEntry songs_targets [] = { { "text/songs-list", 0, 0 }, }; G_DEFINE_TYPE (ArioTreeSongs, ario_tree_songs, TYPE_ARIO_TREE) static void ario_tree_songs_class_init (ArioTreeSongsClass *klass) { ARIO_LOG_FUNCTION_START; ArioTreeClass *tree_class = ARIO_TREE_CLASS (klass); /* ArioTree virtual methods */ tree_class->build_tree = ario_tree_songs_build_tree; tree_class->fill_tree = ario_tree_songs_fill_tree; tree_class->get_drag_source = ario_tree_songs_get_drag_source; tree_class->append_drag_data = ario_tree_songs_append_drag_data; tree_class->add_to_playlist = ario_tree_songs_add_to_playlist; } static void ario_tree_songs_init (ArioTreeSongs *tree) { ARIO_LOG_FUNCTION_START; } static gint ario_tree_songs_try_numeric_compare(gchar *a_char, gchar *b_char) { gint a, b; gchar *end_a, *end_b; /* Try to convert to int */ a = g_ascii_strtoll(a_char, &end_a, 10); b = g_ascii_strtoll(b_char, &end_b, 10); if (a_char != end_a && b_char != end_b) { return a == b? 0: (a < b? -1: 1); } return ario_util_strcmp (a_char, b_char); } static gint ario_tree_songs_sort_func (GtkTreeModel *model, GtkTreeIter *a, GtkTreeIter *b, ArioTreeSongs *tree) { gchar *atrack, *btrack; gchar *adisc, *bdisc; int ret; /* Get info about frist song */ gtk_tree_model_get (model, a, SONG_TRACK_COLUMN, &atrack, SONG_CD_COLUMN, &adisc, -1); /* Get info about second song */ gtk_tree_model_get (model, b, SONG_TRACK_COLUMN, &btrack, SONG_CD_COLUMN, &bdisc, -1); /* Songs with no disc set are at the end */ if (adisc && !bdisc) ret = -1; else if (bdisc && !adisc) ret = 1; else if (adisc && bdisc) { /* Compare disc of the two albums */ ret = ario_tree_songs_try_numeric_compare (adisc, bdisc); if (ret == 0) { /* Disc is the same, sort songs by track */ ret = ario_tree_songs_try_numeric_compare (atrack, btrack); } } else { /* No disc is set, sort songs by track */ ret = ario_tree_songs_try_numeric_compare (atrack, btrack); } return ret; } static void ario_tree_songs_build_tree (ArioTree *parent_tree, GtkTreeView *treeview) { ARIO_LOG_FUNCTION_START; ArioTreeSongs *tree; GtkTreeViewColumn *column; GtkCellRenderer *renderer; g_return_if_fail (IS_ARIO_TREE_SONGS (parent_tree)); tree = ARIO_TREE_SONGS (parent_tree); /* Create track column */ renderer = gtk_cell_renderer_text_new (); column = gtk_tree_view_column_new_with_attributes (_("Track"), renderer, "text", SONG_TRACK_COLUMN, NULL); gtk_tree_view_append_column (GTK_TREE_VIEW (tree->parent.tree), column); /* Create title column */ renderer = gtk_cell_renderer_text_new (); column = gtk_tree_view_column_new_with_attributes (_("Title"), renderer, "text", SONG_VALUE_COLUMN, NULL); gtk_tree_view_column_set_sizing (column, GTK_TREE_VIEW_COLUMN_FIXED); gtk_tree_view_append_column (GTK_TREE_VIEW (tree->parent.tree), column); /* Create model */ tree->parent.model = gtk_list_store_new (SONG_N_COLUMN, G_TYPE_STRING, G_TYPE_POINTER, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING); gtk_tree_sortable_set_sort_column_id (GTK_TREE_SORTABLE (tree->parent.model), SONG_TRACK_COLUMN, GTK_SORT_ASCENDING); gtk_tree_sortable_set_sort_func (GTK_TREE_SORTABLE (tree->parent.model), SONG_TRACK_COLUMN, (GtkTreeIterCompareFunc) ario_tree_songs_sort_func, tree, NULL); } static void ario_tree_songs_add_next_songs (ArioTreeSongs *tree, const GSList *songs, ArioServerCriteria *criteria) { ARIO_LOG_FUNCTION_START; const GSList *tmp; ArioServerSong *song; GtkTreeIter iter; gchar track[ARIO_MAX_TRACK_SIZE]; gchar *title; /* For each song */ for (tmp = songs; tmp; tmp = g_slist_next (tmp)) { song = tmp->data; /* Append song to tree */ gtk_list_store_append (tree->parent.model, &iter); ario_util_format_track_buf (song->track, track, ARIO_MAX_TRACK_SIZE); title = ario_util_format_title (song); gtk_list_store_set (tree->parent.model, &iter, SONG_VALUE_COLUMN, title, SONG_CRITERIA_COLUMN, criteria, SONG_TRACK_COLUMN, track, SONG_FILENAME_COLUMN, song->file, SONG_CD_COLUMN, song->disc, -1); } } static void ario_tree_songs_fill_tree (ArioTree *parent_tree) { ARIO_LOG_FUNCTION_START; ArioTreeSongs *tree; GSList *songs, *tmp; g_return_if_fail (IS_ARIO_TREE_SONGS (parent_tree)); tree = ARIO_TREE_SONGS (parent_tree); /* Empty tree */ gtk_list_store_clear (tree->parent.model); /* For each criteria */ for (tmp = tree->parent.criterias; tmp; tmp = g_slist_next (tmp)) { /* Get songs corresponding to criteria */ songs = ario_server_get_songs (tmp->data, TRUE); /* Add songs to playlist */ ario_tree_songs_add_next_songs (tree, songs, tmp->data); g_slist_foreach (songs, (GFunc) ario_server_free_song, NULL); g_slist_free (songs); } } static void ario_tree_songs_get_drag_source (const GtkTargetEntry** targets, int* n_targets) { ARIO_LOG_FUNCTION_START; *targets = songs_targets; *n_targets = G_N_ELEMENTS (songs_targets); } static void ario_tree_songs_append_drag_data (ArioTree *tree, GtkTreeModel *model, GtkTreeIter *iter, ArioTreeStringData *data) { ARIO_LOG_FUNCTION_START; gchar *val; /* Append filename to drag data */ gtk_tree_model_get (model, iter, SONG_FILENAME_COLUMN, &val, -1); g_string_append (data->string, val); g_string_append (data->string, "\n"); g_free (val); } static void get_selected_songs_foreach (GtkTreeModel *model, GtkTreePath *path, GtkTreeIter *iter, gpointer userdata) { ARIO_LOG_FUNCTION_START; GSList **songs = (GSList **) userdata; gchar *val = NULL; /* Append filename to list */ gtk_tree_model_get (model, iter, SONG_FILENAME_COLUMN, &val, -1); *songs = g_slist_append (*songs, val); } void ario_tree_songs_cmd_songs_properties (ArioTreeSongs *tree) { ARIO_LOG_FUNCTION_START; GSList *paths = NULL; GtkWidget *songinfos; /* Get filenames of each selected songs */ gtk_tree_selection_selected_foreach (tree->parent.selection, get_selected_songs_foreach, &paths); if (paths) { /* Launch songinfos dialog on slected songs */ songinfos = ario_shell_songinfos_new (paths); if (songinfos) gtk_widget_show_all (songinfos); g_slist_foreach (paths, (GFunc) g_free, NULL); g_slist_free (paths); } } static void ario_tree_songs_add_to_playlist (ArioTree *tree, const PlaylistAction action) { ARIO_LOG_FUNCTION_START; GSList *songs = NULL; /* Get filenames of each selected songs */ gtk_tree_selection_selected_foreach (tree->selection, get_selected_songs_foreach, &songs); if (songs) { /* Append songs to playlist */ ario_server_playlist_append_songs (songs, action); g_slist_foreach (songs, (GFunc) g_free, NULL); g_slist_free (songs); } } ario-1.6/src/sources/ario-browser.c0000644000175000017500000003562013226723432014276 00000000000000/* * Copyright (C) 2005 Marc Pavot * * 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, 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * */ #include "sources/ario-browser.h" #include #include #include #include "lib/ario-conf.h" #include #include "sources/ario-tree.h" #include "sources/ario-tree-albums.h" #include "sources/ario-tree-songs.h" #include "widgets/ario-playlist.h" #include "ario-util.h" #include "preferences/ario-preferences.h" #include "ario-debug.h" static void ario_browser_finalize (GObject *object); static void ario_browser_reload_trees (ArioBrowser *browser); static void ario_browser_trees_changed_cb (guint notification_id, ArioBrowser *browser); static void ario_browser_connectivity_changed_cb (ArioServer *server, ArioBrowser *browser); static void ario_browser_dbtime_changed_cb (ArioServer *server, ArioBrowser *browser); static void ario_browser_fill_first (ArioBrowser *browser); static void ario_browser_tree_selection_changed_cb (ArioTree *tree, ArioBrowser *browser); static void ario_browser_menu_popup_cb (ArioTree *tree, ArioBrowser *browser); static void ario_browser_cmd_add (GSimpleAction *action, GVariant *parameter, gpointer data); static void ario_browser_cmd_add_play (GSimpleAction *action, GVariant *parameter, gpointer data); static void ario_browser_cmd_clear_add_play (GSimpleAction *action, GVariant *parameter, gpointer data); static void ario_browser_cmd_get_cover (GSimpleAction *action, GVariant *parameter, gpointer data); static void ario_browser_cmd_remove_cover (GSimpleAction *action, GVariant *parameter, gpointer data); static void ario_browser_cmd_albums_properties (GSimpleAction *action, GVariant *parameter, gpointer data); static void ario_browser_cmd_songs_properties (GSimpleAction *action, GVariant *parameter, gpointer data); struct ArioBrowserPrivate { GSList *trees; ArioTree *popup_tree; }; /* Actions */ static const GActionEntry ario_browser_actions[] = { { "add-to-pl", ario_browser_cmd_add }, { "add-play", ario_browser_cmd_add_play }, { "clear-add-play", ario_browser_cmd_clear_add_play }, { "get-covers", ario_browser_cmd_get_cover }, { "remove-covers", ario_browser_cmd_remove_cover }, { "albums-properties", ario_browser_cmd_albums_properties }, { "songs-properties", ario_browser_cmd_songs_properties }, }; static guint ario_browser_n_actions = G_N_ELEMENTS (ario_browser_actions); /* Object properties */ enum { PROP_0, }; #define ARIO_BROWSER_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_ARIO_BROWSER, ArioBrowserPrivate)) G_DEFINE_TYPE (ArioBrowser, ario_browser, ARIO_TYPE_SOURCE) static gchar * ario_browser_get_id (ArioSource *source) { return "library"; } static gchar * ario_browser_get_name (ArioSource *source) { return _("Library"); } static gchar * ario_browser_get_icon (ArioSource *source) { return "go-home"; } static void ario_browser_goto_playling_song (ArioSource *source) { ARIO_LOG_FUNCTION_START; ArioBrowser *browser = ARIO_BROWSER (source); GSList *tmp; ArioServerSong *song = ario_server_get_current_song (); /* Not playing, do nothing */ if (!song) return; /* Go to playing song in each tree */ for (tmp = browser->priv->trees; tmp; tmp = g_slist_next (tmp)) { ario_tree_goto_playling_song (ARIO_TREE (tmp->data), song); } } static void ario_browser_class_init (ArioBrowserClass *klass) { ARIO_LOG_FUNCTION_START; GObjectClass *object_class = G_OBJECT_CLASS (klass); ArioSourceClass *source_class = ARIO_SOURCE_CLASS (klass); /* Virtual GObject methods */ object_class->finalize = ario_browser_finalize; /* Virtual ArioSource methods */ source_class->get_id = ario_browser_get_id; source_class->get_name = ario_browser_get_name; source_class->get_icon = ario_browser_get_icon; source_class->goto_playling_song = ario_browser_goto_playling_song; /* Private attributes */ g_type_class_add_private (klass, sizeof (ArioBrowserPrivate)); } static void ario_browser_init (ArioBrowser *browser) { ARIO_LOG_FUNCTION_START; browser->priv = ARIO_BROWSER_GET_PRIVATE (browser); browser->priv->trees = NULL; } static void ario_browser_finalize (GObject *object) { ARIO_LOG_FUNCTION_START; ArioBrowser *browser; g_return_if_fail (object != NULL); g_return_if_fail (IS_ARIO_BROWSER (object)); browser = ARIO_BROWSER (object); g_return_if_fail (browser->priv != NULL); g_slist_free (browser->priv->trees); G_OBJECT_CLASS (ario_browser_parent_class)->finalize (object); } GtkWidget * ario_browser_new (void) { ARIO_LOG_FUNCTION_START; ArioBrowser *browser; ArioServer *server = ario_server_get_instance (); browser = ARIO_BROWSER (g_object_new (TYPE_ARIO_BROWSER, NULL)); g_return_val_if_fail (browser->priv != NULL, NULL); /* Signals to synchronize the browser with server */ g_signal_connect_object (server, "connectivity_changed", G_CALLBACK (ario_browser_connectivity_changed_cb), browser, 0); g_signal_connect_object (server, "updatingdb_changed", G_CALLBACK (ario_browser_dbtime_changed_cb), browser, 0); g_action_map_add_action_entries (G_ACTION_MAP (g_application_get_default ()), ario_browser_actions, ario_browser_n_actions, browser); /* Hbox properties */ gtk_box_set_homogeneous (GTK_BOX (browser), TRUE); gtk_box_set_spacing (GTK_BOX (browser), 4); /* Load all trees */ ario_browser_reload_trees (browser); /* Notification for trees configuration changes */ ario_conf_notification_add (PREF_BROWSER_TREES, (ArioNotifyFunc) ario_browser_trees_changed_cb, browser); return GTK_WIDGET (browser); } static void ario_browser_reload_trees (ArioBrowser *browser) { ARIO_LOG_FUNCTION_START; GtkWidget *tree; gboolean is_first = TRUE; int i; gchar **splited_conf; const gchar *conf; GSList *tmp; gint tag; /* Remove all trees */ for (tmp = browser->priv->trees; tmp; tmp = g_slist_next (tmp)) { gtk_container_remove (GTK_CONTAINER (browser), GTK_WIDGET (tmp->data)); } g_slist_free (browser->priv->trees); browser->priv->trees = NULL; /* Get trees configuration */ conf = ario_conf_get_string (PREF_BROWSER_TREES, PREF_BROWSER_TREES_DEFAULT); splited_conf = g_strsplit (conf, ",", MAX_TREE_NB); /* For each configured tree */ for (i = 0; splited_conf[i]; ++i) { /* Create new tree */ tag = atoi (splited_conf[i]); tree = ario_tree_new (tag, is_first); /* Append tree to the list */ browser->priv->trees = g_slist_append (browser->priv->trees, tree); is_first = FALSE; /* Connect signal for tree selection changes */ if (splited_conf[i+1]) { /* No signal for the last tree */ g_signal_connect (tree, "selection_changed", G_CALLBACK (ario_browser_tree_selection_changed_cb), browser); } /* Connect signal for popup menu */ g_signal_connect (tree, "menu_popup", G_CALLBACK (ario_browser_menu_popup_cb), browser); /* Add tree to browser */ gtk_box_pack_start (GTK_BOX (browser), tree, TRUE, TRUE, 0); gtk_widget_show_all (GTK_WIDGET (tree)); } g_strfreev (splited_conf); } static void ario_browser_trees_changed_cb (guint notification_id, ArioBrowser *browser) { ARIO_LOG_FUNCTION_START; /* Reload all trees */ ario_browser_reload_trees (browser); /* Fill first tree */ ario_browser_fill_first (browser); } static void ario_browser_connectivity_changed_cb (ArioServer *server, ArioBrowser *browser) { ARIO_LOG_FUNCTION_START; /* Fill first tree */ ario_browser_fill_first (browser); } static void ario_browser_dbtime_changed_cb (ArioServer *server, ArioBrowser *browser) { ARIO_LOG_FUNCTION_START; /* Fill first tree at end of update */ if (!ario_server_get_updating ()) ario_browser_fill_first (browser); } static void ario_browser_fill_first (ArioBrowser *browser) { ARIO_LOG_FUNCTION_START; /* Fill first tree */ if (browser->priv->trees && browser->priv->trees->data) ario_tree_fill (ARIO_TREE (browser->priv->trees->data)); } static void ario_browser_tree_selection_changed_cb (ArioTree *tree, ArioBrowser *browser) { ARIO_LOG_FUNCTION_START; ArioTree *next_tree = NULL; GSList *tmp, *criterias; /* Get next tree in the list */ for (tmp = browser->priv->trees; tmp; tmp = g_slist_next (tmp)) { if (tmp->data == tree && g_list_next (tmp)) { next_tree = g_slist_next (tmp)->data; } } g_return_if_fail (next_tree); /* Clear criteria of next tree */ ario_tree_clear_criterias (next_tree); /* Add criteria of current tree to next tree */ criterias = ario_tree_get_criterias (tree); for (tmp = criterias; tmp; tmp = g_slist_next (tmp)) { ario_tree_add_criteria (next_tree, tmp->data); } /* Fill next tree */ ario_tree_fill (next_tree); } static void ario_browser_menu_popup_cb (ArioTree *tree, ArioBrowser *browser) { ARIO_LOG_FUNCTION_START; /* Remember on which tree popup menu must be shown */ browser->priv->popup_tree = tree; } static void ario_browser_cmd_add (GSimpleAction *action, GVariant *parameter, gpointer data) { ARIO_LOG_FUNCTION_START; ArioBrowser *browser = ARIO_BROWSER (data); /* Add songs to playlist */ if (browser->priv->popup_tree) ario_tree_cmd_add (browser->priv->popup_tree, PLAYLIST_ADD); } static void ario_browser_cmd_add_play (GSimpleAction *action, GVariant *parameter, gpointer data) { ARIO_LOG_FUNCTION_START; ArioBrowser *browser = ARIO_BROWSER (data); /* Add songs to playlist and play */ if (browser->priv->popup_tree) ario_tree_cmd_add (browser->priv->popup_tree, PLAYLIST_ADD_PLAY); } static void ario_browser_cmd_clear_add_play (GSimpleAction *action, GVariant *parameter, gpointer data) { ARIO_LOG_FUNCTION_START; ArioBrowser *browser = ARIO_BROWSER (data); if (browser->priv->popup_tree) { /* Add songs to playlist and play */ ario_tree_cmd_add (browser->priv->popup_tree, PLAYLIST_REPLACE); } } static void ario_browser_cmd_get_cover (GSimpleAction *action, GVariant *parameter, gpointer data) { ARIO_LOG_FUNCTION_START; ArioBrowser *browser = ARIO_BROWSER (data); /* Get cover arts for selected entries */ if (browser->priv->popup_tree) ario_tree_get_cover (browser->priv->popup_tree, GET_COVERS); } static void ario_browser_cmd_remove_cover (GSimpleAction *action, GVariant *parameter, gpointer data) { ARIO_LOG_FUNCTION_START; /* Remove cover arts for selected entries */ ArioBrowser *browser = ARIO_BROWSER (data); if (browser->priv->popup_tree) ario_tree_get_cover (browser->priv->popup_tree, REMOVE_COVERS); } static void ario_browser_cmd_albums_properties (GSimpleAction *action, GVariant *parameter, gpointer data) { ARIO_LOG_FUNCTION_START; ArioBrowser *browser = ARIO_BROWSER (data); g_return_if_fail (IS_ARIO_TREE_ALBUMS (browser->priv->popup_tree)); /* Show album properties */ if (browser->priv->popup_tree) ario_tree_albums_cmd_albums_properties (ARIO_TREE_ALBUMS (browser->priv->popup_tree)); } static void ario_browser_cmd_songs_properties (GSimpleAction *action, GVariant *parameter, gpointer data) { ARIO_LOG_FUNCTION_START; ArioBrowser *browser = ARIO_BROWSER (data); g_return_if_fail (IS_ARIO_TREE_SONGS (browser->priv->popup_tree)); /* Show songs properties */ if (browser->priv->popup_tree) ario_tree_songs_cmd_songs_properties (ARIO_TREE_SONGS (browser->priv->popup_tree)); } ario-1.6/src/sources/ario-tree-albums.c0000644000175000017500000004300013226723432015022 00000000000000/* * Copyright (C) 2009 Marc Pavot * * 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, 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * */ #include "sources/ario-tree-albums.h" #include #include #include "lib/ario-conf.h" #include #include "ario-debug.h" #include "ario-util.h" #include "covers/ario-cover.h" #include "covers/ario-cover-handler.h" #include "preferences/ario-preferences.h" #include "shell/ario-shell-coverselect.h" static void ario_tree_albums_finalize (GObject *object); static void ario_tree_albums_build_tree (ArioTree *parent_tree, GtkTreeView *treeview); static void ario_tree_albums_fill_tree (ArioTree *parent_tree); static GdkPixbuf* ario_tree_albums_get_dnd_pixbuf (ArioTree *tree); static void ario_tree_albums_cover_changed_cb (ArioCoverHandler *cover_handler, ArioTreeAlbums *tree); static void ario_tree_albums_album_sort_changed_cb (guint notification_id, ArioTreeAlbums *tree); static void ario_tree_albums_covertree_visible_changed_cb (guint notification_id, ArioTree *tree); struct ArioTreeAlbumsPrivate { int album_sort; guint covertree_notif; guint sort_notif; }; /* Tree view columns */ enum { ALBUM_VALUE_COLUMN, ALBUM_CRITERIA_COLUMN, ALBUM_TEXT_COLUMN, ALBUM_ALBUM_COLUMN, ALBUM_COVER_COLUMN, ALBUM_N_COLUMN }; #define ARIO_TREE_ALBUMS_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_ARIO_TREE_ALBUMS, ArioTreeAlbumsPrivate)) G_DEFINE_TYPE (ArioTreeAlbums, ario_tree_albums, TYPE_ARIO_TREE) static void ario_tree_albums_class_init (ArioTreeAlbumsClass *klass) { ARIO_LOG_FUNCTION_START; GObjectClass *object_class = G_OBJECT_CLASS (klass); ArioTreeClass *tree_class = ARIO_TREE_CLASS (klass); /* GObject virtual methods */ object_class->finalize = ario_tree_albums_finalize; /* ArioTree virtual methods */ tree_class->build_tree = ario_tree_albums_build_tree; tree_class->fill_tree = ario_tree_albums_fill_tree; tree_class->get_dnd_pixbuf = ario_tree_albums_get_dnd_pixbuf; /* Private attributes */ g_type_class_add_private (klass, sizeof (ArioTreeAlbumsPrivate)); } static gint ario_tree_albums_sort_func (GtkTreeModel *model, GtkTreeIter *a, GtkTreeIter *b, ArioTreeAlbums *tree) { ArioServerAlbum *aalbum; ArioServerAlbum *balbum; int ret; /* Get info about frist album */ gtk_tree_model_get (model, a, ALBUM_ALBUM_COLUMN, &aalbum, -1); /* Get info about second album */ gtk_tree_model_get (model, b, ALBUM_ALBUM_COLUMN, &balbum, -1); if (tree->priv->album_sort == SORT_YEAR) { /* Albums with no year set are at the end */ if (aalbum->date && !balbum->date) ret = -1; else if (balbum->date && !aalbum->date) ret = 1; else if (aalbum->date && balbum->date) { /* Compare date of the two albums */ ret = g_utf8_collate (aalbum->date, balbum->date); if (ret == 0) { /* Date is the same, sort albums alphabetically */ ret = g_utf8_collate (aalbum->album, balbum->album); } } else { /* No date is set, sort albums alphabetically */ ret = g_utf8_collate (aalbum->album, balbum->album); } } else { /* Sort albums alphabetically */ ret = g_utf8_collate (aalbum->album, balbum->album); } return ret; } static void ario_tree_albums_init (ArioTreeAlbums *tree) { ARIO_LOG_FUNCTION_START; tree->priv = ARIO_TREE_ALBUMS_GET_PRIVATE (tree); } static gboolean ario_tree_albums_album_free (GtkTreeModel *model, GtkTreePath *path, GtkTreeIter *iter, gpointer userdata) { ARIO_LOG_FUNCTION_START; ArioServerAlbum *album; g_return_val_if_fail (IS_ARIO_TREE_ALBUMS (userdata), FALSE); gtk_tree_model_get (model, iter, ALBUM_ALBUM_COLUMN, &album, -1); ario_server_free_album (album); return FALSE; } static void ario_tree_albums_finalize (GObject *object) { ARIO_LOG_FUNCTION_START; ArioTreeAlbums *tree; g_return_if_fail (object != NULL); g_return_if_fail (IS_ARIO_TREE_ALBUMS (object)); tree = ARIO_TREE_ALBUMS (object); g_return_if_fail (tree->priv != NULL); /* Remove notificqtions */ if (tree->priv->covertree_notif) ario_conf_notification_remove (tree->priv->covertree_notif); if (tree->priv->sort_notif) ario_conf_notification_remove (tree->priv->sort_notif); /* Free tree data */ gtk_tree_model_foreach (GTK_TREE_MODEL (tree->parent.model), (GtkTreeModelForeachFunc) ario_tree_albums_album_free, tree); G_OBJECT_CLASS (ario_tree_albums_parent_class)->finalize (object); } static void ario_tree_albums_build_tree (ArioTree *parent_tree, GtkTreeView *treeview) { ARIO_LOG_FUNCTION_START; ArioTreeAlbums *tree; GtkTreeViewColumn *column; GtkCellRenderer *renderer; g_return_if_fail (IS_ARIO_TREE_ALBUMS (parent_tree)); tree = ARIO_TREE_ALBUMS (parent_tree); /* Create cover column */ renderer = gtk_cell_renderer_pixbuf_new (); /* Translators - This "Cover" refers to an album cover art */ column = gtk_tree_view_column_new_with_attributes (_("Cover"), renderer, "pixbuf", ALBUM_COVER_COLUMN, NULL); gtk_tree_view_column_set_sizing (column, GTK_TREE_VIEW_COLUMN_FIXED); gtk_tree_view_column_set_fixed_width (column, COVER_SIZE + 30); gtk_tree_view_column_set_spacing (column, 0); gtk_tree_view_append_column (GTK_TREE_VIEW (tree->parent.tree), column); gtk_tree_view_column_set_visible (column, !ario_conf_get_boolean (PREF_COVER_TREE_HIDDEN, PREF_COVER_TREE_HIDDEN_DEFAULT)); /* Create text column */ renderer = gtk_cell_renderer_text_new (); column = gtk_tree_view_column_new_with_attributes (_("Album"), renderer, "text", ALBUM_TEXT_COLUMN, NULL); gtk_tree_view_column_set_sizing (column, GTK_TREE_VIEW_COLUMN_FIXED); gtk_tree_view_column_set_expand (column, TRUE); gtk_tree_view_append_column (GTK_TREE_VIEW (tree->parent.tree), column); /* Create model */ tree->parent.model = gtk_list_store_new (ALBUM_N_COLUMN, G_TYPE_STRING, G_TYPE_POINTER, G_TYPE_STRING, G_TYPE_POINTER, GDK_TYPE_PIXBUF); gtk_tree_sortable_set_sort_column_id (GTK_TREE_SORTABLE (tree->parent.model), ALBUM_TEXT_COLUMN, GTK_SORT_ASCENDING); gtk_tree_sortable_set_sort_func (GTK_TREE_SORTABLE (tree->parent.model), ALBUM_TEXT_COLUMN, (GtkTreeIterCompareFunc) ario_tree_albums_sort_func, tree, NULL); /* Connect signal to update covers when they change */ g_signal_connect_object (ario_cover_handler_get_instance (), "cover_changed", G_CALLBACK (ario_tree_albums_cover_changed_cb), tree, 0); tree->priv->covertree_notif = ario_conf_notification_add (PREF_COVER_TREE_HIDDEN, (ArioNotifyFunc) ario_tree_albums_covertree_visible_changed_cb, tree); tree->priv->album_sort = ario_conf_get_integer (PREF_ALBUM_SORT, PREF_ALBUM_SORT_DEFAULT); tree->priv->sort_notif = ario_conf_notification_add (PREF_ALBUM_SORT, (ArioNotifyFunc) ario_tree_albums_album_sort_changed_cb, tree); } static void get_selected_albums_foreach (GtkTreeModel *model, GtkTreePath *path, GtkTreeIter *iter, gpointer userdata) { ARIO_LOG_FUNCTION_START; GSList **albums = (GSList **) userdata; ArioServerAlbum *server_album; /* Append album to the list */ gtk_tree_model_get (model, iter, ALBUM_ALBUM_COLUMN, &server_album, -1); *albums = g_slist_append (*albums, server_album); } static gboolean ario_tree_albums_covers_update (GtkTreeModel *model, GtkTreePath *path, GtkTreeIter *iter, gpointer userdata) { ARIO_LOG_FUNCTION_START; ArioTreeAlbums *tree = ARIO_TREE_ALBUMS (userdata); ArioServerAlbum *album; gchar *cover_path; GdkPixbuf *cover; g_return_val_if_fail (IS_ARIO_TREE_ALBUMS (tree), FALSE); gtk_tree_model_get (model, iter, ALBUM_ALBUM_COLUMN, &album, -1); /* Get cover path */ cover_path = ario_cover_make_cover_path (album->artist, album->album, SMALL_COVER); /* The small cover exists, we show it */ cover = gdk_pixbuf_new_from_file_at_size (cover_path, COVER_SIZE, COVER_SIZE, NULL); g_free (cover_path); if (!GDK_IS_PIXBUF (cover)) { /* There is no cover, we show a transparent picture */ cover = gdk_pixbuf_new (GDK_COLORSPACE_RGB, TRUE, 8, COVER_SIZE, COVER_SIZE); gdk_pixbuf_fill (cover, 0); } /* Set cover in tree */ gtk_list_store_set (tree->parent.model, iter, ALBUM_COVER_COLUMN, cover, -1); g_object_unref (G_OBJECT (cover)); return FALSE; } static void ario_tree_albums_cover_changed_cb (ArioCoverHandler *cover_handler, ArioTreeAlbums *tree) { ARIO_LOG_FUNCTION_START; /* Update all covers */ gtk_tree_model_foreach (GTK_TREE_MODEL (tree->parent.model), (GtkTreeModelForeachFunc) ario_tree_albums_covers_update, tree); } static void ario_tree_albums_album_sort_changed_cb (guint notification_id, ArioTreeAlbums *tree) { /* Change albums sort order */ tree->priv->album_sort = ario_conf_get_integer (PREF_ALBUM_SORT, PREF_ALBUM_SORT_DEFAULT); gtk_tree_sortable_set_sort_func (GTK_TREE_SORTABLE (tree->parent.model), ALBUM_TEXT_COLUMN, (GtkTreeIterCompareFunc) ario_tree_albums_sort_func, tree, NULL); } static void ario_tree_albums_add_next_albums (ArioTreeAlbums *tree, const GSList *albums, ArioServerCriteria *criteria) { ARIO_LOG_FUNCTION_START; const GSList *tmp; ArioServerAlbum *server_album; GtkTreeIter album_iter; gchar *cover_path; gchar *album; gchar *album_date; GdkPixbuf *cover; /* For each album */ for (tmp = albums; tmp; tmp = g_slist_next (tmp)) { server_album = tmp->data; album_date = NULL; /* Get cover path */ cover_path = ario_cover_make_cover_path (server_album->artist, server_album->album, SMALL_COVER); /* The small cover exists, we show it */ cover = gdk_pixbuf_new_from_file_at_size (cover_path, COVER_SIZE, COVER_SIZE, NULL); g_free (cover_path); if (!GDK_IS_PIXBUF (cover)) { /* There is no cover, we show a transparent picture */ cover = gdk_pixbuf_new (GDK_COLORSPACE_RGB, TRUE, 8, COVER_SIZE, COVER_SIZE); gdk_pixbuf_fill (cover, 0); } /* Display date if any */ if (server_album->date) { album_date = g_strdup_printf ("%s (%s)", server_album->album, server_album->date); album = album_date; } else { album = server_album->album; } /* Append album to tree */ gtk_list_store_append (tree->parent.model, &album_iter); gtk_list_store_set (tree->parent.model, &album_iter, ALBUM_VALUE_COLUMN, server_album->album, ALBUM_CRITERIA_COLUMN, criteria, ALBUM_TEXT_COLUMN, album, ALBUM_ALBUM_COLUMN, server_album, ALBUM_COVER_COLUMN, cover, -1); g_object_unref (cover); g_free (album_date); } } static void ario_tree_albums_fill_tree (ArioTree *parent_tree) { ARIO_LOG_FUNCTION_START; ArioTreeAlbums *tree; GSList *albums, *tmp; g_return_if_fail (IS_ARIO_TREE_ALBUMS (parent_tree)); tree = ARIO_TREE_ALBUMS (parent_tree); /* Free tree data */ gtk_tree_model_foreach (GTK_TREE_MODEL (tree->parent.model), (GtkTreeModelForeachFunc) ario_tree_albums_album_free, tree); /* Empty tree */ gtk_list_store_clear (tree->parent.model); /* For each criteria */ for (tmp = tree->parent.criterias; tmp; tmp = g_slist_next (tmp)) { /* Append albums corresponding to criteria */ albums = ario_server_get_albums (tmp->data); ario_tree_albums_add_next_albums (tree, albums, tmp->data); g_slist_free (albums); } } static GdkPixbuf* ario_tree_albums_get_dnd_pixbuf (ArioTree *tree) { ARIO_LOG_FUNCTION_START; GSList *albums = NULL; GdkPixbuf *pixbuf; /* Get list of selected albums */ gtk_tree_selection_selected_foreach (tree->selection, get_selected_albums_foreach, &albums); /* Get dnd pixbuf using list of albums */ pixbuf = ario_util_get_dnd_pixbuf_from_albums (albums); g_slist_free (albums); return pixbuf; } void ario_tree_albums_cmd_albums_properties (ArioTreeAlbums *tree) { ARIO_LOG_FUNCTION_START; GtkWidget *coverselect; GSList *albums = NULL; ArioServerAlbum *ario_server_album; /* Get list of selected albums */ gtk_tree_selection_selected_foreach (tree->parent.selection, get_selected_albums_foreach, &albums); /* Launch coverselect dialog using first album */ ario_server_album = albums->data; coverselect = ario_shell_coverselect_new (ario_server_album); gtk_dialog_run (GTK_DIALOG (coverselect)); gtk_widget_destroy (coverselect); g_slist_free (albums); } static void ario_tree_albums_covertree_visible_changed_cb (guint notification_id, ArioTree *tree) { ARIO_LOG_FUNCTION_START; /* Change cover column visibility */ gtk_tree_view_column_set_visible (gtk_tree_view_get_column (GTK_TREE_VIEW (tree->tree), 0), !ario_conf_get_boolean (PREF_COVER_TREE_HIDDEN, PREF_COVER_TREE_HIDDEN_DEFAULT)); /* Update display */ ario_tree_fill (tree); } ario-1.6/src/sources/ario-tree.c0000644000175000017500000010206413226723435013552 00000000000000/* * Copyright (C) 2005 Marc Pavot * * 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, 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * */ #include "sources/ario-tree.h" #include #include #include #include "ario-debug.h" #include "ario-util.h" #include "covers/ario-cover.h" #include "lib/ario-conf.h" #include "preferences/ario-preferences.h" #include "shell/ario-shell-coverdownloader.h" #include "sources/ario-tree-albums.h" #include "sources/ario-tree-songs.h" #include "widgets/ario-dnd-tree.h" /* Minimum number of items to fill tree asynchonously */ #define LIMIT_FOR_IDLE 800 typedef struct ArioTreeAddData { ArioServerCriteria *criteria; GSList *tags; GSList *tmp; }ArioTreeAddData; static GObject *ario_tree_constructor (GType type, guint n_construct_properties, GObjectConstructParam *construct_properties); static void ario_tree_finalize (GObject *object); static void ario_tree_set_property (GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec); static void ario_tree_get_property (GObject *object, guint prop_id, GValue *value, GParamSpec *pspec); static void ario_tree_selection_changed_cb (GtkTreeSelection * selection, ArioTree *tree); static void ario_tree_popup_menu_cb (ArioDndTree* dnd_tree, ArioTree *tree); static void ario_tree_activate_cb (ArioDndTree* dnd_tree, ArioTree *tree); static void ario_tree_selection_drag_foreach (GtkTreeModel *model, GtkTreePath *path, GtkTreeIter *iter, gpointer userdata); static void ario_tree_drag_data_get_cb (GtkWidget *widget, GdkDragContext *context, GtkSelectionData *selection_data, guint info, guint time, gpointer userdata); static void ario_tree_drag_begin_cb (GtkWidget *widget, GdkDragContext *context, ArioTree *tree); static void ario_tree_build_tree (ArioTree *tree, GtkTreeView *treeview); static void ario_tree_fill_tree (ArioTree *tree); static GdkPixbuf* ario_tree_get_dnd_pixbuf (ArioTree *tree); static void ario_tree_get_drag_source (const GtkTargetEntry** targets, int* n_targets); static void ario_tree_append_drag_data (ArioTree *tree, GtkTreeModel *model, GtkTreeIter *iter, ArioTreeStringData *data); static void ario_tree_add_to_playlist (ArioTree *tree, const PlaylistAction action); static void ario_tree_add_data_free (ArioTreeAddData *data); struct ArioTreePrivate { gboolean idle_fill_running; ArioTreeAddData *data; GtkWidget *popup; GtkWidget *album_popup; GtkWidget *song_popup; }; typedef struct { GSList **criterias; ArioServerTag tag; } ArioServerCriteriaData; /* Object properties */ enum { PROP_0, PROP_TAG }; /* Object signals */ enum { SELECTION_CHANGED, MENU_POPUP, LAST_SIGNAL }; static guint ario_tree_signals[LAST_SIGNAL] = { 0 }; /* Tree columns */ enum { VALUE_COLUMN, CRITERIA_COLUMN, N_COLUMN }; /* Drag and drop targets */ static const GtkTargetEntry criterias_targets [] = { { "text/criterias-list", 0, 0 }, }; #define ARIO_TREE_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_ARIO_TREE, ArioTreePrivate)) G_DEFINE_TYPE (ArioTree, ario_tree, GTK_TYPE_SCROLLED_WINDOW) static void ario_tree_class_init (ArioTreeClass *klass) { ARIO_LOG_FUNCTION_START; GObjectClass *object_class = G_OBJECT_CLASS (klass); /* GObject virtual methods */ object_class->finalize = ario_tree_finalize; object_class->constructor = ario_tree_constructor; object_class->set_property = ario_tree_set_property; object_class->get_property = ario_tree_get_property; /* ArioSource virtual methods */ klass->build_tree = ario_tree_build_tree; klass->fill_tree = ario_tree_fill_tree; klass->get_dnd_pixbuf = ario_tree_get_dnd_pixbuf; klass->get_drag_source = ario_tree_get_drag_source; klass->append_drag_data = ario_tree_append_drag_data; klass->add_to_playlist = ario_tree_add_to_playlist; /* Object properties */ g_object_class_install_property (object_class, PROP_TAG, g_param_spec_uint ("tag", "Tag", "Tag ID", 0, G_MAXUINT, 0, G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY)); /* Object signals */ ario_tree_signals[SELECTION_CHANGED] = g_signal_new ("selection_changed", G_OBJECT_CLASS_TYPE (object_class), G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (ArioTreeClass, selection_changed), NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0); ario_tree_signals[MENU_POPUP] = g_signal_new ("menu_popup", G_OBJECT_CLASS_TYPE (object_class), G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (ArioTreeClass, menu_popup), NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0); /* Private attributes */ g_type_class_add_private (klass, sizeof (ArioTreePrivate)); } static void ario_tree_init (ArioTree *tree) { ARIO_LOG_FUNCTION_START; tree->priv = ARIO_TREE_GET_PRIVATE (tree); } static void ario_tree_finalize (GObject *object) { ARIO_LOG_FUNCTION_START; ArioTree *tree; g_return_if_fail (object != NULL); g_return_if_fail (IS_ARIO_TREE (object)); tree = ARIO_TREE (object); g_return_if_fail (tree->priv != NULL); gtk_list_store_clear (tree->model); g_slist_foreach (tree->criterias, (GFunc) ario_server_criteria_free, NULL); g_slist_free (tree->criterias); ario_tree_add_data_free (tree->priv->data); tree->priv->data = NULL; G_OBJECT_CLASS (ario_tree_parent_class)->finalize (object); } static void ario_tree_set_property (GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec) { ARIO_LOG_FUNCTION_START; ArioTree *tree = ARIO_TREE (object); switch (prop_id) { case PROP_TAG: tree->tag = g_value_get_uint (value); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); break; } } static void ario_tree_get_property (GObject *object, guint prop_id, GValue *value, GParamSpec *pspec) { ARIO_LOG_FUNCTION_START; ArioTree *tree = ARIO_TREE (object); switch (prop_id) { case PROP_TAG: g_value_set_uint (value, tree->tag); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); break; } } static GObject * ario_tree_constructor (GType type, guint n_construct_properties, GObjectConstructParam *construct_properties) { ARIO_LOG_FUNCTION_START; ArioTree *tree; ArioTreeClass *klass; GObjectClass *parent_class; const GtkTargetEntry* targets; int n_targets; GtkBuilder *builder; GMenuModel *menu; /* Call parent constructor */ klass = ARIO_TREE_CLASS (g_type_class_peek (TYPE_ARIO_TREE)); parent_class = G_OBJECT_CLASS (g_type_class_peek_parent (klass)); tree = ARIO_TREE (parent_class->constructor (type, n_construct_properties, construct_properties)); /* Scrolled window property */ gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (tree), GTK_POLICY_NEVER, GTK_POLICY_ALWAYS); gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (tree), GTK_SHADOW_IN); /* Get drag and drop targets */ ARIO_TREE_GET_CLASS (tree)->get_drag_source (&targets, &n_targets); /* Create drag and drop tree */ tree->tree = ario_dnd_tree_new (targets, n_targets, FALSE); ARIO_TREE_GET_CLASS (tree)->build_tree (tree, GTK_TREE_VIEW (tree->tree)); /* Set tree model */ gtk_tree_view_set_model (GTK_TREE_VIEW (tree->tree), GTK_TREE_MODEL (tree->model)); /* Get tree selection */ tree->selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (tree->tree)); gtk_tree_selection_set_mode (tree->selection, GTK_SELECTION_MULTIPLE); gtk_container_add (GTK_CONTAINER (tree), tree->tree); /* Create menu */ builder = gtk_builder_new_from_file (UI_PATH "ario-browser-menu.ui"); menu = G_MENU_MODEL (gtk_builder_get_object (builder, "menu")); tree->priv->popup = gtk_menu_new_from_model (menu); menu = G_MENU_MODEL (gtk_builder_get_object (builder, "album-menu")); tree->priv->album_popup = gtk_menu_new_from_model (menu); menu = G_MENU_MODEL (gtk_builder_get_object (builder, "song-menu")); tree->priv->song_popup = gtk_menu_new_from_model (menu); g_object_unref (builder); gtk_menu_attach_to_widget (GTK_MENU (tree->priv->popup), GTK_WIDGET (tree), NULL); gtk_menu_attach_to_widget (GTK_MENU (tree->priv->album_popup), GTK_WIDGET (tree), NULL); gtk_menu_attach_to_widget (GTK_MENU (tree->priv->song_popup), GTK_WIDGET (tree), NULL); /* Connect signals for actions on dnd tree */ g_signal_connect (tree->selection, "changed", G_CALLBACK (ario_tree_selection_changed_cb), tree); g_signal_connect (tree->tree, "drag_data_get", G_CALLBACK (ario_tree_drag_data_get_cb), tree); g_signal_connect (tree->tree, "drag_begin", G_CALLBACK (ario_tree_drag_begin_cb), tree); g_signal_connect (GTK_TREE_VIEW (tree->tree), "popup", G_CALLBACK (ario_tree_popup_menu_cb), tree); g_signal_connect (GTK_TREE_VIEW (tree->tree), "activate", G_CALLBACK (ario_tree_activate_cb), tree); return G_OBJECT (tree); } static void ario_tree_get_drag_source (const GtkTargetEntry** targets, int* n_targets) { ARIO_LOG_FUNCTION_START; *targets = criterias_targets; *n_targets = G_N_ELEMENTS (criterias_targets); } static void ario_tree_build_tree (ArioTree *tree, GtkTreeView *treeview) { ARIO_LOG_FUNCTION_START; GtkTreeViewColumn *column; GtkCellRenderer *renderer; gtk_tree_view_set_fixed_height_mode (GTK_TREE_VIEW (treeview), TRUE); /* Create the only column */ renderer = gtk_cell_renderer_text_new (); column = gtk_tree_view_column_new_with_attributes (ario_server_get_items_names ()[tree->tag], renderer, "text", 0, NULL); gtk_tree_view_column_set_sizing (column, GTK_TREE_VIEW_COLUMN_FIXED); gtk_tree_view_append_column (GTK_TREE_VIEW (treeview), column); /* Create tree model */ tree->model = gtk_list_store_new (N_COLUMN, G_TYPE_STRING, G_TYPE_POINTER); gtk_tree_sortable_set_sort_column_id (GTK_TREE_SORTABLE (tree->model), 0, GTK_SORT_ASCENDING); } GtkWidget * ario_tree_new (ArioServerTag tag, gboolean is_first) { ARIO_LOG_FUNCTION_START; ArioTree *tree; GType type; /* Tree factory: Create a tree of the appropriate type */ if (tag == ARIO_TAG_ALBUM && !is_first) { type = TYPE_ARIO_TREE_ALBUMS; } else if (tag == ARIO_TAG_TITLE && !is_first) { type = TYPE_ARIO_TREE_SONGS; } else { type = TYPE_ARIO_TREE; } tree = ARIO_TREE (g_object_new (type, "tag", tag, NULL)); g_return_val_if_fail (tree->priv != NULL, NULL); tree->is_first = is_first; return GTK_WIDGET (tree); } static void ario_tree_popup_menu_cb (ArioDndTree* dnd_tree, ArioTree *tree) { ARIO_LOG_FUNCTION_START; GtkWidget *menu; /* Get the most appropriate menu */ if ((tree->tag == ARIO_TAG_ALBUM) && (gtk_tree_selection_count_selected_rows (tree->selection) == 1)) { menu = tree->priv->album_popup; } else if (tree->tag == ARIO_TAG_TITLE) { menu = tree->priv->song_popup; } else { menu = tree->priv->popup; } /* Emit popup signal */ g_signal_emit (G_OBJECT (tree), ario_tree_signals[MENU_POPUP], 0); /* Show popup menu */ gtk_menu_popup_at_pointer (GTK_MENU (menu), NULL); } static void ario_tree_activate_cb (ArioDndTree* dnd_tree, ArioTree *tree) { ARIO_LOG_FUNCTION_START; /* Add songs to main playlist */ ario_tree_cmd_add (tree, ario_conf_get_integer (PREF_DOUBLECLICK_BEHAVIOR, PREF_DOUBLECLICK_BEHAVIOR_DEFAULT)); } static void ario_tree_append_drag_data (ArioTree *tree, GtkTreeModel *model, GtkTreeIter *iter, ArioTreeStringData *data) { ARIO_LOG_FUNCTION_START; gchar *val; gchar buf[INTLEN]; ArioServerCriteria *criteria, *tmp; ArioServerAtomicCriteria *atomic_criteria; /* Get data of selected row */ gtk_tree_model_get (model, iter, CRITERIA_COLUMN, &criteria, VALUE_COLUMN, &val, -1); /* Append number of criteria */ g_snprintf (buf, INTLEN, "%d", g_slist_length (criteria) + 1); g_string_append (data->string, buf); g_string_append (data->string, "\n"); /* Append each criteria with its type */ for (tmp = criteria; tmp; tmp = g_slist_next (tmp)) { atomic_criteria = tmp->data; g_snprintf (buf, INTLEN, "%d", atomic_criteria->tag); g_string_append (data->string, buf); g_string_append (data->string, "\n"); g_string_append (data->string, atomic_criteria->value); g_string_append (data->string, "\n"); } /* Append current tree type and value */ g_snprintf (buf, INTLEN, "%d", data->tree->tag); g_string_append (data->string, buf); g_string_append (data->string, "\n"); g_string_append (data->string, val); g_string_append (data->string, "\n"); g_free (val); } static void ario_tree_selection_drag_foreach (GtkTreeModel *model, GtkTreePath *path, GtkTreeIter *iter, gpointer userdata) { ARIO_LOG_FUNCTION_START; ArioTreeStringData *data = (ArioTreeStringData *) userdata; /* Call virtual method to append drag data */ ARIO_TREE_GET_CLASS (data->tree)->append_drag_data (data->tree, model, iter, data); } static void ario_tree_drag_data_get_cb (GtkWidget *widget, GdkDragContext *context, GtkSelectionData *selection_data, guint info, guint time, gpointer userdata) { ARIO_LOG_FUNCTION_START; ArioTree *tree; GString* string = NULL; ArioTreeStringData data; tree = ARIO_TREE (userdata); g_return_if_fail (IS_ARIO_TREE (tree)); g_return_if_fail (widget != NULL); g_return_if_fail (selection_data != NULL); /* Create string for drag data */ string = g_string_new (""); data.string = string; data.tree = tree; /* Append criteria of each selected row */ gtk_tree_selection_selected_foreach (tree->selection, ario_tree_selection_drag_foreach, &data); /* Set drag data */ gtk_selection_data_set (selection_data, gtk_selection_data_get_target (selection_data), 8, (const guchar *) string->str, strlen (string->str) * sizeof(guchar)); g_string_free (string, TRUE); } static GdkPixbuf* ario_tree_get_dnd_pixbuf (ArioTree *tree) { ARIO_LOG_FUNCTION_START; GSList *criterias = NULL; GdkPixbuf *pixbuf; /* Get drag and drop icon depending on criteria */ criterias = ario_tree_get_criterias (tree); pixbuf = ario_util_get_dnd_pixbuf (criterias); g_slist_foreach (criterias, (GFunc) ario_server_criteria_free, NULL); g_slist_free (criterias); return pixbuf; } static void ario_tree_drag_begin_cb (GtkWidget *widget, GdkDragContext *context, ArioTree *tree) { ARIO_LOG_FUNCTION_START; GdkPixbuf *pixbuf; /* Call virtual method to get drag and drop pixbuf */ pixbuf = ARIO_TREE_GET_CLASS (tree)->get_dnd_pixbuf (tree); if (pixbuf) { /* Set icon */ gtk_drag_source_set_icon_pixbuf (widget, pixbuf); g_object_unref (pixbuf); } } static void ario_tree_selection_changed_cb (GtkTreeSelection *selection, ArioTree *tree) { ARIO_LOG_FUNCTION_START; /* Emit signal for action by ArioBrowser */ g_signal_emit (G_OBJECT (tree), ario_tree_signals[SELECTION_CHANGED], 0); } static void ario_tree_add_data_free (ArioTreeAddData *data) { ARIO_LOG_FUNCTION_START; if (data) { g_slist_foreach (data->tags, (GFunc) g_free, NULL); g_slist_free (data->tags); ario_server_criteria_free (data->criteria); g_free (data); } } static gboolean ario_tree_add_tags_idle (ArioTree *tree) { ARIO_LOG_FUNCTION_START; GtkTreeIter iter; ArioTreeAddData *data = tree->priv->data; if (!data) { /* Stop iterations */ tree->priv->idle_fill_running = FALSE; return FALSE; } if (!data->tmp) { /* Last element reached, we free all data */ ario_tree_add_data_free (tree->priv->data); tree->priv->data = NULL; /* Stop iterations */ tree->priv->idle_fill_running = FALSE; return FALSE; } /* Append row */ gtk_list_store_append (tree->model, &iter); gtk_list_store_set (tree->model, &iter, VALUE_COLUMN, data->tmp->data, CRITERIA_COLUMN, data->criteria, -1); /* Select first item in row when we add it */ if (data->tmp == data->tags) { if (gtk_tree_model_get_iter_first (GTK_TREE_MODEL (tree->model), &iter)) gtk_tree_selection_select_iter (tree->selection, &iter); } data->tmp = g_slist_next (data->tmp); /* Continue iterations */ tree->priv->idle_fill_running = TRUE; return TRUE; } void ario_tree_add_tags (ArioTree *tree, ArioServerCriteria *criteria, GSList *tags) { ARIO_LOG_FUNCTION_START; ArioTreeAddData *data; GSList *tmp; GtkTreeIter iter; /* Free previous async data */ ario_tree_add_data_free (tree->priv->data); tree->priv->data = NULL; if (g_slist_length (tags) > LIMIT_FOR_IDLE) { /* Asynchronous fill of tree */ data = (ArioTreeAddData *) g_malloc0 (sizeof (ArioTreeAddData)); data->tags = tags; data->tmp = tags; /* Copy criteria as they could be destroyed before the end */ data->criteria = ario_server_criteria_copy (criteria); /*Replace previous data with new ones */ tree->priv->data = data; /* Launch asynchronous fill if needed */ if (!tree->priv->idle_fill_running) g_idle_add ((GSourceFunc) ario_tree_add_tags_idle, tree); } else { /* Synchronous fill of tree */ for (tmp = tags; tmp; tmp = g_slist_next (tmp)) { /* Append row */ gtk_list_store_append (tree->model, &iter); gtk_list_store_set (tree->model, &iter, VALUE_COLUMN, tmp->data, CRITERIA_COLUMN, criteria, -1); } g_slist_foreach (tags, (GFunc) g_free, NULL); g_slist_free (tags); } } static void ario_tree_fill_tree (ArioTree *tree) { ARIO_LOG_FUNCTION_START; GSList *tmp, *tags; ArioServerCriteria *criteria; gtk_list_store_clear (tree->model); if (tree->is_first) { /* First tree has not criteria */ tags = ario_server_list_tags (tree->tag, NULL); /* Fill tree */ ario_tree_add_tags (tree, NULL, tags); } else { for (tmp = tree->criterias; tmp; tmp = g_slist_next (tmp)) { /* Add critreria to filter iems in tree */ criteria = tmp->data; tags = ario_server_list_tags (tree->tag, criteria); /* Fill tree */ ario_tree_add_tags (tree, criteria, tags); } } } void ario_tree_fill (ArioTree *tree) { ARIO_LOG_FUNCTION_START; GtkTreeIter iter; GList *paths = NULL; GtkTreePath *path; GtkTreeModel *model = GTK_TREE_MODEL (tree->model); /* Block signal handler to avoid useless actions */ g_signal_handlers_block_by_func (G_OBJECT (tree->selection), G_CALLBACK (ario_tree_selection_changed_cb), tree); /* Remember the selected row in first tree */ if (tree->is_first) paths = gtk_tree_selection_get_selected_rows (tree->selection, &model); /* Call virtual method to fill tree */ ARIO_TREE_GET_CLASS (tree)->fill_tree (tree); gtk_tree_selection_unselect_all (tree->selection); if (paths) { /* First tree : select previously selected row */ path = paths->data; if (path) { gtk_tree_selection_select_path (tree->selection, path); } } else { /* Select first row and move to it */ if (gtk_tree_model_get_iter_first (GTK_TREE_MODEL (tree->model), &iter)) { gtk_tree_selection_select_iter (tree->selection, &iter); path = gtk_tree_model_get_path (GTK_TREE_MODEL (tree->model), &iter); gtk_tree_view_scroll_to_cell (GTK_TREE_VIEW (tree->tree), path, NULL, TRUE, 0, 0); gtk_tree_path_free (path); } } g_list_foreach (paths, (GFunc) gtk_tree_path_free, NULL); g_list_free (paths); /* Unblock signal handler */ g_signal_handlers_unblock_by_func (G_OBJECT (tree->selection), G_CALLBACK (ario_tree_selection_changed_cb), tree); /* Emit selection change signal */ g_signal_emit_by_name (G_OBJECT (tree->selection), "changed", 0); } void ario_tree_clear_criterias (ArioTree *tree) { ARIO_LOG_FUNCTION_START; g_slist_foreach (tree->criterias, (GFunc) ario_server_criteria_free, NULL); g_slist_free (tree->criterias); tree->criterias = NULL; } void ario_tree_add_criteria (ArioTree *tree, ArioServerCriteria *criteria) { ARIO_LOG_FUNCTION_START; /* Add a criteria to the list */ tree->criterias = g_slist_append (tree->criterias, criteria); } static void ario_tree_selection_foreach (GtkTreeModel *model, GtkTreePath *path, GtkTreeIter *iter, ArioServerCriteriaData *data) { ARIO_LOG_FUNCTION_START; gchar *value; ArioServerCriteria *criteria; ArioServerCriteria *ret; ArioServerAtomicCriteria *atomic_criteria; /* Get values */ gtk_tree_model_get (model, iter, VALUE_COLUMN, &value, CRITERIA_COLUMN, &criteria, -1); /* Append copy of criteria to the list */ ret = ario_server_criteria_copy (criteria); atomic_criteria = (ArioServerAtomicCriteria *) g_malloc0 (sizeof (ArioServerAtomicCriteria)); atomic_criteria->tag = data->tag; atomic_criteria->value = value; ret = g_slist_append (ret, atomic_criteria); *data->criterias = g_slist_append (*data->criterias, ret); } GSList * ario_tree_get_criterias (ArioTree *tree) { ARIO_LOG_FUNCTION_START; ArioServerCriteriaData data; GSList *criterias = NULL; data.criterias = &criterias; data.tag = tree->tag; /* Append criteria for each selected song */ gtk_tree_selection_selected_foreach (tree->selection, (GtkTreeSelectionForeachFunc) ario_tree_selection_foreach, &data); return criterias; } static void ario_tree_add_to_playlist (ArioTree *tree, const PlaylistAction action) { ARIO_LOG_FUNCTION_START; GSList *criterias = NULL; criterias = ario_tree_get_criterias (tree); /* Append songs corresponfind to current criteria to main playlist */ ario_server_playlist_append_criterias (criterias, action, -1); g_slist_foreach (criterias, (GFunc) ario_server_criteria_free, NULL); g_slist_free (criterias); } void ario_tree_cmd_add (ArioTree *tree, const PlaylistAction action) { ARIO_LOG_FUNCTION_START; /* Call virtual method for songs addition in main playlist */ ARIO_TREE_GET_CLASS (tree)->add_to_playlist (tree, action); } void ario_tree_get_cover (ArioTree *tree, const ArioShellCoverdownloaderOperation operation) { ARIO_LOG_FUNCTION_START; GSList *criterias = NULL, *tmp; GtkWidget *coverdownloader; GSList *albums = NULL; GtkWidget *dialog; gint retval; /* Ask for confirmation before cover removal */ if (operation == REMOVE_COVERS) { dialog = gtk_message_dialog_new (NULL, GTK_DIALOG_MODAL, GTK_MESSAGE_QUESTION, GTK_BUTTONS_YES_NO, _("Are you sure that you want to remove all the selected covers?")); retval = gtk_dialog_run (GTK_DIALOG(dialog)); gtk_widget_destroy (dialog); if (retval != GTK_RESPONSE_YES) return; } /* Get criteria of current selection */ criterias = ario_tree_get_criterias (tree); /* Create coverdownloader dialog */ coverdownloader = ario_shell_coverdownloader_new (); if (coverdownloader) { /* Get albums corresponding to criteria */ for (tmp = criterias; tmp; tmp = g_slist_next (tmp)) { albums = g_slist_concat (albums, ario_server_get_albums (tmp->data)); } /* Get covers corresponding to albums */ ario_shell_coverdownloader_get_covers_from_albums (ARIO_SHELL_COVERDOWNLOADER (coverdownloader), albums, operation); g_slist_foreach (albums, (GFunc) ario_server_free_album, NULL); g_slist_free (albums); } g_slist_foreach (criterias, (GFunc) ario_server_criteria_free, NULL); g_slist_free (criterias); } typedef struct { const char *tag; ArioTree *tree; } ArioTreeForeachData; static gboolean ario_tree_model_foreach (GtkTreeModel *model, GtkTreePath *path, GtkTreeIter *iter, ArioTreeForeachData *data) { gchar *value; gtk_tree_model_get (model, iter, VALUE_COLUMN, &value, -1); /* Look for row corresponding to current song*/ if (ario_util_strcmp (data->tag, value) == 0) { /* Scroll to the right row */ gtk_tree_view_scroll_to_cell (GTK_TREE_VIEW (data->tree->tree), path, NULL, TRUE, 0.5, 0); gtk_tree_view_set_cursor (GTK_TREE_VIEW (data->tree->tree), path, NULL, FALSE); g_free (value); /* Stop iterations */ return TRUE; } g_free (value); /* Continue iterations */ return FALSE; } void ario_tree_goto_playling_song (ArioTree *tree, const ArioServerSong *song) { ARIO_LOG_FUNCTION_START; ArioTreeForeachData data; data.tree = tree; data.tag = ario_server_song_get_tag (song, tree->tag); if (!data.tag) data.tag = ARIO_SERVER_UNKNOWN; /* Loop on each row of the model */ gtk_tree_model_foreach (GTK_TREE_MODEL (tree->model), (GtkTreeModelForeachFunc) ario_tree_model_foreach, &data); } ario-1.6/src/ario-enum-types.c0000644000175000017500000000505213226723433013233 00000000000000 /* Generated data (by glib-mkenums) */ #include "ario-enum-types.h" /* enumerations from "servers/ario-server.h" */ #include "servers/ario-server.h" GType ario_server_type_get_type (void) { static GType the_type = 0; if (the_type == 0) { static const GEnumValue values[] = { { ArioServerMpd, "ArioServerMpd", "mpd" }, { ArioServerXmms, "ArioServerXmms", "xmms" }, { 0, NULL, NULL } }; the_type = g_enum_register_static ( g_intern_static_string ("ArioServerType"), values); } return the_type; } GType ario_server_action_type_get_type (void) { static GType the_type = 0; if (the_type == 0) { static const GEnumValue values[] = { { ARIO_SERVER_ACTION_ADD, "ARIO_SERVER_ACTION_ADD", "add" }, { ARIO_SERVER_ACTION_DELETE_ID, "ARIO_SERVER_ACTION_DELETE_ID", "delete-id" }, { ARIO_SERVER_ACTION_DELETE_POS, "ARIO_SERVER_ACTION_DELETE_POS", "delete-pos" }, { ARIO_SERVER_ACTION_MOVE, "ARIO_SERVER_ACTION_MOVE", "move" }, { ARIO_SERVER_ACTION_MOVEID, "ARIO_SERVER_ACTION_MOVEID", "moveid" }, { 0, NULL, NULL } }; the_type = g_enum_register_static ( g_intern_static_string ("ArioServerActionType"), values); } return the_type; } /* enumerations from "sources/ario-source-manager.h" */ #include "sources/ario-source-manager.h" GType ario_source_type_get_type (void) { static GType the_type = 0; if (the_type == 0) { static const GEnumValue values[] = { { ARIO_SOURCE_BROWSER, "ARIO_SOURCE_BROWSER", "browser" }, { ARIO_SOURCE_RADIO, "ARIO_SOURCE_RADIO", "radio" }, { ARIO_SOURCE_SEARCH, "ARIO_SOURCE_SEARCH", "search" }, { ARIO_SOURCE_PLAYLISTS, "ARIO_SOURCE_PLAYLISTS", "playlists" }, { ARIO_SOURCE_FILESYSTEM, "ARIO_SOURCE_FILESYSTEM", "filesystem" }, { 0, NULL, NULL } }; the_type = g_enum_register_static ( g_intern_static_string ("ArioSourceType"), values); } return the_type; } /* enumerations from "shell/ario-shell.h" */ #include "shell/ario-shell.h" GType ario_visibility_get_type (void) { static GType the_type = 0; if (the_type == 0) { static const GEnumValue values[] = { { VISIBILITY_HIDDEN, "VISIBILITY_HIDDEN", "hidden" }, { VISIBILITY_VISIBLE, "VISIBILITY_VISIBLE", "visible" }, { VISIBILITY_TOGGLE, "VISIBILITY_TOGGLE", "toggle" }, { 0, NULL, NULL } }; the_type = g_enum_register_static ( g_intern_static_string ("ArioVisibility"), values); } return the_type; } /* Generated data ends here */ ario-1.6/src/ario-util.h0000644000175000017500000002542013226734545012116 00000000000000/* * Copyright (C) 2005 Marc Pavot * * 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, 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * */ #include "servers/ario-server.h" #include #include /* Number of covers used to generate the drag & drop image */ #define MAX_COVERS_IN_DRAG 3 /* Maximum length of the string representing a int */ #define INTLEN (sizeof(int) * CHAR_BIT + 1) / 3 + 1 /* Maximum size of a time like 1:23:45 */ #define ARIO_MAX_TIME_SIZE 3*INTLEN+2 /* Maximum size of a track */ #define ARIO_MAX_TRACK_SIZE INTLEN struct curl_slist; /** * Format a track time to the form 1:23:45. * * @param time The time to format, in seconds * * @return A newly allocated string with the formated time */ char* ario_util_format_time (const int time) G_GNUC_CONST G_GNUC_MALLOC; /** * Format a track time to the form 1:23:45 in a buffer * * @param time The time to format, in seconds * @param buf The buffer to fill * @param buf_len The len of the buffer */ void ario_util_format_time_buf (const int time, char *buf, int buf_len); /** * Format a time to the form : x days, y hours, z minutes, n secondes * * @param time The time to format, in seconds * * @return A newly allocated string with the formated time */ char* ario_util_format_total_time (const int time) G_GNUC_CONST G_GNUC_MALLOC; /** * Format a track number to be displayed * * @param track The track number * @param buf The buffer to fill * @param buf_len The len of the buffer */ void ario_util_format_track_buf (const gchar *track, char *buf, int buf_len); /** * Try to get the best title to display from an ArioServerSong * * @param server_song The server song * * @return A pointer to the title (should not be freed) */ gchar* ario_util_format_title (ArioServerSong *server_song); /** * Initialise default icon factory with a few icons */ void ario_util_init_icons (void); /** * Get the path of Ario configuration * * @return The path of the directory. It should not be freed. */ const char* ario_util_config_dir (void); /** * Check whether a file exists or not * * @param uri The uri of the file * * @return True if the file exists, FALSE otherwise */ gboolean ario_util_uri_exists (const char *uri); /** * Delete a file on the disk * * @param uri The uri of the file to delete */ void ario_util_unlink_uri (const char *uri); /** * Create a new directory * * @param uri The uri of the directory to create */ void ario_util_mkdir (const char *uri); /** * Copy a file on disk * * @param src_uri The source file to copy * @param dest_uri The destination place to copy the file */ void ario_util_copy_file (const char *src_uri, const char *dest_uri); /** * Download a file on internet * * @param uri The uri of the file to download * @param post_data Post data to use for POST requests or NULL * @param post_size The size of post data (no used if post_data is NULL) * @param headers Http headers to use or NULL * @param size A pointer to a int that will contain the size of the downloaded data * @param data Newly allocated data containing the downloaded file */ void ario_util_download_file (const char *uri, const char *post_data, const int post_size, const struct curl_slist *headers, int* size, char** data); /** * Replace string 'old' by string 'new' in 'string' * * @param string The string where the replacement will be done * @param old The string to replace * @param new The string that will replace 'old' */ void ario_util_string_replace (char **string, const char *old, const char *new); /** * Load a URL in user's web browser * * @param uri The URL to load */ void ario_util_load_uri (const char *uri); /** * Format a keyword to be used for example in an online search * * @param keyword The keyword to format * * @return A newly allocated formated keyword */ char * ario_util_format_keyword (const char *keyword) G_GNUC_MALLOC; /** * Format a keyword to be used for a search on last.fm * * @param keyword The keyword to format * * @return A newly allocated formated keyword */ char * ario_util_format_keyword_for_lastfm (const char *keyword) G_GNUC_MALLOC; /** * Generate an icon to use for Drag & Drop from a list of albums * * @param albums The list of albums * * @return A newly allocated pixbuf */ GdkPixbuf * ario_util_get_dnd_pixbuf_from_albums (const GSList *albums) G_GNUC_MALLOC; /** * Generate an icon to use for Drag & Drop from a list of criteria * * @param criterias The list of ArioServerCriteria * * @return A newly allocated pixbuf */ GdkPixbuf * ario_util_get_dnd_pixbuf (const GSList *criterias) G_GNUC_MALLOC; /** * Convert a string from iso8859 to locale * * @param string The string to convert * * @return A newly allocated string */ gchar * ario_util_convert_from_iso8859 (const char *string) G_GNUC_MALLOC; /** * Remove bad caracters from a filename * * @param filename The filename to convert */ void ario_util_sanitize_filename (char *filename); /** * Get the content of a file from disk * * @param filename The filename * @param contents A pointer to a newly allocated file content * @param length A pointer to the size of file content * @param error return location for a GError, or NULL * * @return TRUE on success, FALSE if an error occurred */ gboolean ario_file_get_contents (const gchar *filename, gchar **contents, gsize *length, GError **error); /** * Writes all of contents to a file named filename * * @param filename name of a file to write contents * @param contents string to write to the file * @param length length of contents, or -1 if contents is a nul-terminated string * @param error return location for a GError, or NULL * * @return TRUE on success, FALSE if an error occurred */ gboolean ario_file_set_contents (const gchar *filename, const gchar *contents, gsize length, GError **error); /** * Returns TRUE if any of the tests in the bitfield test are TRUE. * * @param filename a filename to test * @param test bitfield of GFileTest flags * * @return whether a test was TRUE */ gboolean ario_file_test (const gchar *filename, GFileTest test); /** * Case insensitive strstr (locate a substring in a string) * * @param haystack The string to do the location * @param needle String to locate * * @return */ const char * ario_util_stristr (const char *haystack, const char *needle); /** * Randomize a GSList * * @param The GSList to randomize. This list should not be used anymore after * this function has been called. Elements of the list should be freed if * needed and the list should be freed in addition to the one returned by * ario_util_gslist_randomize. * @param max The number of items to randomize in the list * * @return A pointer to the GSList to use instead of 'list' */ GSList * ario_util_gslist_randomize (GSList **list, const int max); /** * Format a string so that it can be used in an HTTP requests * * @param text The string to format * * @return A newly allocated string formated for HTTP requests */ gchar * ario_util_format_for_http (const gchar *text); /** * Computes the absolute value of a int * * @param a An integer * * @return a if a is positive, -a if a is negative */ static inline gint ario_util_abs (const gint a) { return (a > 0 ? a : -a); } /** * Returns the min of two values * * @param a First value * @param b Second value * * @return Minimum of a and b */ static inline gint ario_util_min (const gint a, const gint b) { return (a > b ? b : a); } /** * Returns the max of two values * * @param a First value * @param b Second value * * @return Maximum of a and b */ static inline gint ario_util_max (const gint a, const gint b) { return (a > b ? a : b); } /** * Compare two strings. These two strings can be NULL * * @param a First string or NULL * @param b Second string or NULL * * @return < 0 if a compares before b, 0 if they compare equal, > 0 if a compares after b */ static inline gint ario_util_strcmp (const gchar *a, const gchar* b) { if (!a && !b) return 0; if (!a && b) return 1; if (a && !b) return -1; return g_utf8_collate (a, b); } ario-1.6/src/notification/0000755000175000017500000000000013226745613012601 500000000000000ario-1.6/src/notification/ario-notification-manager.h0000644000175000017500000000571313226723431017720 00000000000000/* * Copyright (C) 2005 Marc Pavot * * 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, 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * */ #ifndef __ARIO_NOTIFICATION_MANAGER_H #define __ARIO_NOTIFICATION_MANAGER_H #include #include "notification/ario-notifier.h" G_BEGIN_DECLS #define TYPE_ARIO_NOTIFICATION_MANAGER (ario_notification_manager_get_type ()) #define ARIO_NOTIFICATION_MANAGER(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), TYPE_ARIO_NOTIFICATION_MANAGER, ArioNotificationManager)) #define ARIO_NOTIFICATION_MANAGER_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), TYPE_ARIO_NOTIFICATION_MANAGER, ArioNotificationManagerClass)) #define IS_ARIO_NOTIFICATION_MANAGER(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), TYPE_ARIO_NOTIFICATION_MANAGER)) #define IS_ARIO_NOTIFICATION_MANAGER_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), TYPE_ARIO_NOTIFICATION_MANAGER)) #define ARIO_NOTIFICATION_MANAGER_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), TYPE_ARIO_NOTIFICATION_MANAGER, ArioNotificationManagerClass)) typedef struct ArioNotificationManagerPrivate ArioNotificationManagerPrivate; typedef struct { GObject parent; ArioNotificationManagerPrivate *priv; } ArioNotificationManager; typedef struct { GObjectClass parent; } ArioNotificationManagerClass; GType ario_notification_manager_get_type (void) G_GNUC_CONST; ArioNotificationManager* ario_notification_manager_get_instance (void); void ario_notification_manager_add_notifier (ArioNotificationManager *notification_manager, ArioNotifier *notifier); void ario_notification_manager_remove_notifier (ArioNotificationManager *notification_manager, ArioNotifier *notifier); GSList* ario_notification_manager_get_notifiers (ArioNotificationManager *notification_manager); ArioNotifier* ario_notification_manager_get_notifier_from_id (ArioNotificationManager *notification_manager, const gchar *id); G_END_DECLS #endif /* __ARIO_NOTIFICATION_MANAGER_H */ ario-1.6/src/notification/ario-notifier-gnotif.h0000644000175000017500000000377413226723431016732 00000000000000/* * Copyright (C) 2004,2005 Marc Pavot * * 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * */ #ifndef __ARIO_NOTIFIER_GNOTIF_H #define __ARIO_NOTIFIER_GNOTIF_H #include "notification/ario-notifier.h" G_BEGIN_DECLS #define TYPE_ARIO_NOTIFIER_GNOTIF (ario_notifier_gnotif_get_type ()) #define ARIO_NOTIFIER_GNOTIF(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), TYPE_ARIO_NOTIFIER_GNOTIF, ArioNotifierGnotif)) #define ARIO_NOTIFIER_GNOTIF_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), TYPE_ARIO_NOTIFIER_GNOTIF, ArioNotifierGnotifClass)) #define IS_ARIO_NOTIFIER_GNOTIF(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), TYPE_ARIO_NOTIFIER_GNOTIF)) #define IS_ARIO_NOTIFIER_GNOTIF_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), TYPE_ARIO_NOTIFIER_GNOTIF)) #define ARIO_NOTIFIER_GNOTIF_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), TYPE_ARIO_NOTIFIER_GNOTIF, ArioNotifierGnotifClass)) typedef struct ArioNotifierGnotifPrivate ArioNotifierGnotifPrivate; typedef struct { ArioNotifier parent; ArioNotifierGnotifPrivate *priv; } ArioNotifierGnotif; typedef struct { ArioNotifierClass parent; } ArioNotifierGnotifClass; GType ario_notifier_gnotif_get_type (void) G_GNUC_CONST; ArioNotifier* ario_notifier_gnotif_new (void); G_END_DECLS #endif /* __ARIO_NOTIFIER_GNOTIF_H */ ario-1.6/src/notification/ario-notifier-gnotif.c0000644000175000017500000001041013226723432016707 00000000000000/* * Copyright (C) 2018 Marc Pavot * * 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * */ #include "notification/ario-notifier-gnotif.h" #include #include #include #include #include "ario-debug.h" #include "lib/ario-conf.h" #include "servers/ario-server.h" #include "ario-util.h" #include "covers/ario-cover-handler.h" #include "preferences/ario-preferences.h" struct ArioNotifierGnotifPrivate { gint dummy; }; #define ARIO_NOTIFIER_GNOTIF_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_ARIO_NOTIFIER_GNOTIF, ArioNotifierGnotifPrivate)) G_DEFINE_TYPE (ArioNotifierGnotif, ario_notifier_gnotif, ARIO_TYPE_NOTIFIER) static gchar * ario_notifier_gnotif_get_id (ArioNotifier *notifier) { return "gnotif"; } static gchar * ario_notifier_gnotif_get_name (ArioNotifier *notifier) { return "GNotification"; } static void ario_notifier_gnotif_notify (ArioNotifier *notifier_parent) { GNotification *notification; gchar *title = NULL; gchar *body = NULL; gchar *artist; gchar *album; GFile *file; GIcon *icon; gchar *cover_path; switch (ario_server_get_current_state ()) { case ARIO_STATE_PLAY: case ARIO_STATE_PAUSE: /* Title */ title = ario_util_format_title (ario_server_get_current_song ()); /* Artist - Album */ artist = ario_server_get_current_artist (); album = ario_server_get_current_album (); if (!artist) artist = ARIO_SERVER_UNKNOWN; if (!album) album = ARIO_SERVER_UNKNOWN; body = g_markup_printf_escaped (_("from %s by %s"), album, artist); break; default: break; } if (!title) return; notification = g_notification_new (title); if (body) { g_notification_set_body (notification, body); g_free(body); } cover_path = ario_cover_handler_get_cover_path (); if (cover_path) { file = g_file_new_for_path (cover_path); if (file) { icon = g_file_icon_new (file); if (icon) { g_notification_set_icon (notification, icon); g_object_unref (icon); } g_object_unref (file); } } g_application_send_notification (g_application_get_default (), "ario-song", notification); g_object_unref (notification); } static void ario_notifier_gnotif_class_init (ArioNotifierGnotifClass *klass) { ARIO_LOG_FUNCTION_START; ArioNotifierClass *notifier_class = ARIO_NOTIFIER_CLASS (klass); notifier_class->get_id = ario_notifier_gnotif_get_id; notifier_class->get_name = ario_notifier_gnotif_get_name; notifier_class->notify = ario_notifier_gnotif_notify; /* Private attributes */ g_type_class_add_private (klass, sizeof (ArioNotifierGnotifPrivate)); } static void ario_notifier_gnotif_init (ArioNotifierGnotif *notifier_gnotif) { ARIO_LOG_FUNCTION_START; notifier_gnotif->priv = ARIO_NOTIFIER_GNOTIF_GET_PRIVATE (notifier_gnotif); } ArioNotifier* ario_notifier_gnotif_new (void) { ARIO_LOG_FUNCTION_START; ArioNotifierGnotif *local; local = g_object_new (TYPE_ARIO_NOTIFIER_GNOTIF, NULL); return ARIO_NOTIFIER (local); } ario-1.6/src/notification/ario-notifier.c0000644000175000017500000000351513226723433015434 00000000000000/* * Copyright (C) 2008 Marc Pavot * * 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, 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * */ #include "notification/ario-notifier.h" #include #include "ario-debug.h" G_DEFINE_TYPE (ArioNotifier, ario_notifier, G_TYPE_OBJECT) static void dummy (ArioNotifier *notifier) { } static gchar * dummy_char (ArioNotifier *notifier) { return NULL; } static void ario_notifier_class_init (ArioNotifierClass *klass) { klass->get_id = dummy_char; klass->get_name = dummy_char; klass->notify = dummy; } static void ario_notifier_init (ArioNotifier *notifier) { } gchar * ario_notifier_get_id (ArioNotifier *notifier) { g_return_val_if_fail (ARIO_IS_NOTIFIER (notifier), FALSE); return ARIO_NOTIFIER_GET_CLASS (notifier)->get_id (notifier); } gchar * ario_notifier_get_name (ArioNotifier *notifier) { g_return_val_if_fail (ARIO_IS_NOTIFIER (notifier), FALSE); return ARIO_NOTIFIER_GET_CLASS (notifier)->get_name (notifier); } void ario_notifier_notify (ArioNotifier *notifier) { g_return_if_fail (ARIO_IS_NOTIFIER (notifier)); return ARIO_NOTIFIER_GET_CLASS (notifier)->notify (notifier); } ario-1.6/src/notification/ario-notifier.h0000644000175000017500000000452713226723432015444 00000000000000/* * Copyright (C) 2008 Marc Pavot * * 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, 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * */ #ifndef __ARIO_NOTIFIER_H__ #define __ARIO_NOTIFIER_H__ #include G_BEGIN_DECLS /* * Type checking and casting macros */ #define ARIO_TYPE_NOTIFIER (ario_notifier_get_type()) #define ARIO_NOTIFIER(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), ARIO_TYPE_NOTIFIER, ArioNotifier)) #define ARIO_NOTIFIER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), ARIO_TYPE_NOTIFIER, ArioNotifierClass)) #define ARIO_IS_NOTIFIER(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), ARIO_TYPE_NOTIFIER)) #define ARIO_IS_NOTIFIER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), ARIO_TYPE_NOTIFIER)) #define ARIO_NOTIFIER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), ARIO_TYPE_NOTIFIER, ArioNotifierClass)) /* * Main object structure */ typedef struct _ArioNotifier { GObject parent; } ArioNotifier; /* * Class definition */ typedef struct { GObjectClass parent_class; /* Virtual public methods */ gchar* (*get_id) (ArioNotifier *notifier); gchar* (*get_name) (ArioNotifier *notifier); void (*notify) (ArioNotifier *notifier); } ArioNotifierClass; /* * Public methods */ GType ario_notifier_get_type (void) G_GNUC_CONST; gchar* ario_notifier_get_id (ArioNotifier *notifier); gchar* ario_notifier_get_name (ArioNotifier *notifier); void ario_notifier_notify (ArioNotifier *notifier); G_END_DECLS #endif /* __ARIO_NOTIFIER_H__ */ ario-1.6/src/notification/ario-notification-manager.c0000644000175000017500000001275713226723431017721 00000000000000/* * Copyright (C) 2005 Marc Pavot * * 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, 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * */ #include "notification/ario-notification-manager.h" #include #include #include #include #include "lib/ario-conf.h" #include "servers/ario-server.h" #include "notification/ario-notifier-gnotif.h" #include "preferences/ario-preferences.h" #include "ario-debug.h" static void ario_notification_manager_song_changed_cb (ArioServer *server, ArioNotificationManager *notification_manager); struct ArioNotificationManagerPrivate { GSList *notifiers; }; #define ARIO_NOTIFICATION_MANAGER_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_ARIO_NOTIFICATION_MANAGER, ArioNotificationManagerPrivate)) G_DEFINE_TYPE (ArioNotificationManager, ario_notification_manager, G_TYPE_OBJECT) static void ario_notification_manager_class_init (ArioNotificationManagerClass *klass) { ARIO_LOG_FUNCTION_START; g_type_class_add_private (klass, sizeof (ArioNotificationManagerPrivate)); } static void ario_notification_manager_init (ArioNotificationManager *notification_manager) { ARIO_LOG_FUNCTION_START; notification_manager->priv = ARIO_NOTIFICATION_MANAGER_GET_PRIVATE (notification_manager); } ArioNotificationManager * ario_notification_manager_get_instance (void) { ARIO_LOG_FUNCTION_START; static ArioNotificationManager *notification_manager = NULL; ArioServer *server; if (!notification_manager) { ArioNotifier *notifier; notification_manager = g_object_new (TYPE_ARIO_NOTIFICATION_MANAGER, NULL); g_return_val_if_fail (notification_manager->priv != NULL, NULL); notifier = ario_notifier_gnotif_new (); ario_notification_manager_add_notifier (notification_manager, ARIO_NOTIFIER (notifier)); server = ario_server_get_instance (); g_signal_connect_object (server, "song_changed", G_CALLBACK (ario_notification_manager_song_changed_cb), notification_manager, G_CONNECT_AFTER); g_signal_connect_object (server, "state_changed", G_CALLBACK (ario_notification_manager_song_changed_cb), notification_manager, G_CONNECT_AFTER); } return notification_manager; } static gint ario_notification_manager_compare_notifiers (ArioNotifier *notifier, const gchar *id) { return strcmp (ario_notifier_get_id (notifier), id); } GSList* ario_notification_manager_get_notifiers (ArioNotificationManager *notification_manager) { ARIO_LOG_FUNCTION_START; return notification_manager->priv->notifiers; } ArioNotifier* ario_notification_manager_get_notifier_from_id (ArioNotificationManager *notification_manager, const gchar *id) { ARIO_LOG_FUNCTION_START; GSList *found; found = g_slist_find_custom (notification_manager->priv->notifiers, id, (GCompareFunc) ario_notification_manager_compare_notifiers); if (!found) return NULL; return ARIO_NOTIFIER (found->data); } void ario_notification_manager_add_notifier (ArioNotificationManager *notification_manager, ArioNotifier *notifier) { ARIO_LOG_FUNCTION_START; notification_manager->priv->notifiers = g_slist_append (notification_manager->priv->notifiers, notifier); } void ario_notification_manager_remove_notifier (ArioNotificationManager *notification_manager, ArioNotifier *notifier) { ARIO_LOG_FUNCTION_START; notification_manager->priv->notifiers = g_slist_remove (notification_manager->priv->notifiers, notifier); } static void ario_notification_manager_song_changed_cb (ArioServer *server, ArioNotificationManager *notification_manager) { ARIO_LOG_FUNCTION_START; const gchar *id; ArioNotifier *notifier; if (ario_conf_get_boolean (PREF_HAVE_NOTIFICATION, PREF_HAVE_NOTIFICATION_DEFAULT)) { id = ario_conf_get_string (PREF_NOTIFIER, PREF_NOTIFIER_DEFAULT); notifier = ario_notification_manager_get_notifier_from_id (notification_manager, id); if (notifier) ario_notifier_notify (notifier); } } ario-1.6/src/ario-profiles.c0000644000175000017500000002715713226723434012763 00000000000000/* * Copyright (C) 2007 Marc Pavot * * 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, 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * */ #include "ario-profiles.h" #include #include #include #include #include #include "ario-util.h" #include "ario-debug.h" #define XML_ROOT_NAME (const unsigned char *)"ario-profiles" #define XML_VERSION (const unsigned char *)"1.0" static void ario_profiles_create_xml_file (char *xml_filename); static char* ario_profiles_get_xml_filename (void); static void ario_profiles_create_xml_file (char *xml_filename) { gchar *profiles_dir; /* if the file exists, we do nothing */ if (ario_util_uri_exists (xml_filename)) return; profiles_dir = g_build_filename (ario_util_config_dir (), "profiles", NULL); /* If the profiles directory doesn't exist, we create it */ if (!ario_util_uri_exists (profiles_dir)) ario_util_mkdir (profiles_dir); /* Copy the default file */ ario_util_copy_file (DATA_PATH "profiles.xml.default", xml_filename); } static char* ario_profiles_get_xml_filename (void) { char *xml_filename; xml_filename = g_build_filename (ario_util_config_dir (), "profiles" , "profiles.xml", NULL); return xml_filename; } void ario_profiles_free (ArioProfile* profile) { ARIO_LOG_FUNCTION_START; if (profile) { g_free (profile->name); g_free (profile->host); g_free (profile->password); g_free (profile->musicdir); g_free (profile); } } GSList* ario_profiles_get (void) { ARIO_LOG_FUNCTION_START; static GSList *profiles = NULL; ArioProfile *profile; xmlDocPtr doc; xmlNodePtr cur; char *xml_filename; xmlChar *xml_name; xmlChar *xml_host; xmlChar *xml_port; xmlChar *xml_timeout; xmlChar *xml_password; xmlChar *xml_musicdir; xmlChar *xml_local; xmlChar *xml_current; xmlChar *xml_type; if (profiles) return profiles; xml_filename = ario_profiles_get_xml_filename(); /* If profiles.xml file doesn't exist, we create it */ ario_profiles_create_xml_file (xml_filename); /* This option is necessary to save a well formated xml file */ xmlKeepBlanksDefault (0); /* Parse the XML file */ doc = xmlParseFile (xml_filename); g_free (xml_filename); if (doc == NULL ) return profiles; cur = xmlDocGetRootElement(doc); if (cur == NULL) { xmlFreeDoc (doc); return profiles; } /* We check that the root node has the right name */ if (xmlStrcmp(cur->name, (const xmlChar *) XML_ROOT_NAME)) { xmlFreeDoc (doc); return profiles; } for (cur = cur->children; cur; cur = cur->next) { /* For each "profile" entry */ if (!xmlStrcmp (cur->name, (const xmlChar *)"profile")){ profile = (ArioProfile *) g_malloc0 (sizeof (ArioProfile)); /* Get profile name */ xml_name = xmlNodeGetContent (cur); profile->name = g_strdup ((char *) xml_name); xmlFree(xml_name); /* Get host */ xml_host = xmlGetProp (cur, (const unsigned char *)"host"); profile->host = g_strdup ((char *) xml_host); xmlFree(xml_host); /* Get port */ xml_port = xmlGetProp (cur, (const unsigned char *)"port"); profile->port = atoi ((char *) xml_port); xmlFree(xml_port); /* Get timeout */ xml_timeout = xmlGetProp (cur, (const unsigned char *)"timeout"); if (xml_timeout) { profile->timeout = atoi ((char *) xml_timeout); } else { profile->timeout = 5000; } xmlFree(xml_timeout); /* Get password */ xml_password = xmlGetProp (cur, (const unsigned char *)"password"); if (xml_password) { profile->password = g_strdup ((char *) xml_password); xmlFree(xml_password); } /* Get music directory */ xml_musicdir = xmlGetProp (cur, (const unsigned char *)"musicdir"); if (xml_musicdir) { profile->musicdir = g_strdup ((char *) xml_musicdir); xmlFree(xml_musicdir); } /* Get 'local' boolean */ xml_local = xmlGetProp (cur, (const unsigned char *)"local"); if (xml_local) { profile->local = TRUE; xmlFree(xml_local); } else { profile->local = FALSE; } /* Get 'current' boolean */ xml_current = xmlGetProp (cur, (const unsigned char *)"current"); if (xml_current) { profile->current = TRUE; xmlFree(xml_current); } else { profile->current = FALSE; } /* Get server type */ xml_type = xmlGetProp (cur, (const unsigned char *)"type"); if (xml_type) { profile->type = atoi ((char *) xml_type); if (profile->type != ArioServerMpd && profile->type != ArioServerXmms) profile->type = ArioServerMpd; xmlFree(xml_type); } else { profile->type = ArioServerMpd; } /* Append the profile to the list of profiles */ profiles = g_slist_append (profiles, profile); } } xmlFreeDoc (doc); return profiles; } void ario_profiles_save (GSList* profiles) { ARIO_LOG_FUNCTION_START; xmlDocPtr doc; xmlNodePtr cur, cur2; char *xml_filename; ArioProfile *profile; GSList *tmp; gchar *port_char; gchar *timeout_char; gchar *type_char; xml_filename = ario_profiles_get_xml_filename(); /* If profiles.xml file doesn't exist, we create it */ ario_profiles_create_xml_file (xml_filename); /* This option is necessary to save a well formated xml file */ xmlKeepBlanksDefault (0); doc = xmlNewDoc (XML_VERSION); if (doc == NULL ) { g_free (xml_filename); return; } /* Create the root node */ cur = xmlNewNode (NULL, (const xmlChar *) XML_ROOT_NAME); if (cur == NULL) { g_free (xml_filename); xmlFreeDoc (doc); return; } xmlDocSetRootElement (doc, cur); for (tmp = profiles; tmp; tmp = g_slist_next (tmp)) { profile = (ArioProfile *) tmp->data; port_char = g_strdup_printf ("%d", profile->port); timeout_char = g_strdup_printf ("%d", profile->timeout); type_char = g_strdup_printf ("%d", profile->type); /* We add a new "profiles" entry */ cur2 = xmlNewChild (cur, NULL, (const xmlChar *)"profile", NULL); xmlNodeAddContent (cur2, (const xmlChar *) profile->name); xmlSetProp (cur2, (const xmlChar *)"host", (const xmlChar *) profile->host); xmlSetProp (cur2, (const xmlChar *)"port", (const xmlChar *) port_char); xmlSetProp (cur2, (const xmlChar *)"timeout", (const xmlChar *) timeout_char); if (profile->password) { xmlSetProp (cur2, (const xmlChar *)"password", (const xmlChar *) profile->password); } if (profile->musicdir) { xmlSetProp (cur2, (const xmlChar *)"musicdir", (const xmlChar *) profile->musicdir); } if (profile->local) { xmlSetProp (cur2, (const xmlChar *)"local", (const xmlChar *) "true"); } if (profile->current) { xmlSetProp (cur2, (const xmlChar *)"current", (const xmlChar *) "true"); } xmlSetProp (cur2, (const xmlChar *)"type", (const xmlChar *) type_char); g_free (port_char); g_free (timeout_char); g_free (type_char); } /* We save the xml file */ xmlSaveFormatFile (xml_filename, doc, TRUE); g_free (xml_filename); xmlFreeDoc (doc); } ArioProfile* ario_profiles_get_current (GSList* profiles) { ARIO_LOG_FUNCTION_START; GSList *tmp; ArioProfile *profile; for (tmp = profiles; tmp; tmp = g_slist_next (tmp)) { profile = (ArioProfile *) tmp->data; if (profile->current) return profile; } return NULL; } void ario_profiles_set_current (GSList* profiles, ArioProfile* profile) { ARIO_LOG_FUNCTION_START; GSList *tmp; ArioProfile *tmp_profile; if (g_slist_find (profiles, profile)) { for (tmp = profiles; tmp; tmp = g_slist_next (tmp)) { tmp_profile = (ArioProfile *) tmp->data; if (tmp_profile == profile) { tmp_profile->current = TRUE; } else { tmp_profile->current = FALSE; } } } } void ario_profiles_set_current_by_name (const gchar * profile) { ARIO_LOG_FUNCTION_START; GSList *profiles, *tmp; ArioProfile *tmp_profile; profiles = ario_profiles_get (); for (tmp = profiles; tmp; tmp = g_slist_next (tmp)) { tmp_profile = (ArioProfile *) tmp->data; if (!ario_util_strcmp (tmp_profile->name, profile)) { ario_profiles_set_current (profiles, tmp_profile); ario_profiles_save (profiles); break; } } if (!tmp) g_warning ("Profile %s not found", profile); } ario-1.6/src/preferences/0000755000175000017500000000000013226745613012414 500000000000000ario-1.6/src/preferences/ario-stats-preferences.c0000644000175000017500000001655113226723431017067 00000000000000/* * Copyright (C) 2005 Marc Pavot * * 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, 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * */ #include "preferences/ario-stats-preferences.h" #include #include #include #include #include #include #include "lib/gtk-builder-helpers.h" #include "ario-debug.h" #include "ario-util.h" #include "servers/ario-server.h" static void ario_stats_preferences_sync_stats (ArioStatsPreferences *stats_preferences); static void ario_stats_preferences_stats_changed_cb (ArioServer *server, ArioStatsPreferences *stats_preferences); struct ArioStatsPreferencesPrivate { GtkWidget *nbartists_label; GtkWidget *nbalbums_label; GtkWidget *nbsongs_label; GtkWidget *uptime_label; GtkWidget *playtime_label; GtkWidget *dbplay_time_label; }; #define ARIO_STATS_PREFERENCES_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_ARIO_STATS_PREFERENCES, ArioStatsPreferencesPrivate)) G_DEFINE_TYPE (ArioStatsPreferences, ario_stats_preferences, GTK_TYPE_BOX) static void ario_stats_preferences_class_init (ArioStatsPreferencesClass *klass) { ARIO_LOG_FUNCTION_START; g_type_class_add_private (klass, sizeof (ArioStatsPreferencesPrivate)); } static void ario_stats_preferences_init (ArioStatsPreferences *stats_preferences) { ARIO_LOG_FUNCTION_START; stats_preferences->priv = ARIO_STATS_PREFERENCES_GET_PRIVATE (stats_preferences); } GtkWidget * ario_stats_preferences_new (void) { ARIO_LOG_FUNCTION_START; GtkBuilder *builder; ArioStatsPreferences *stats_preferences; stats_preferences = g_object_new (TYPE_ARIO_STATS_PREFERENCES, NULL); g_return_val_if_fail (stats_preferences->priv != NULL, NULL); g_signal_connect_object (ario_server_get_instance (), "state_changed", G_CALLBACK (ario_stats_preferences_stats_changed_cb), stats_preferences, 0); gtk_orientable_set_orientation (GTK_ORIENTABLE (stats_preferences), GTK_ORIENTATION_VERTICAL); builder = gtk_builder_helpers_new (UI_PATH "stats-prefs.ui", stats_preferences); stats_preferences->priv->nbartists_label = GTK_WIDGET (gtk_builder_get_object (builder, "nbartists_label")); stats_preferences->priv->nbalbums_label = GTK_WIDGET (gtk_builder_get_object (builder, "nbalbums_label")); stats_preferences->priv->nbsongs_label = GTK_WIDGET (gtk_builder_get_object (builder, "nbsongs_label")); stats_preferences->priv->uptime_label = GTK_WIDGET (gtk_builder_get_object (builder, "uptime_label")); stats_preferences->priv->playtime_label = GTK_WIDGET (gtk_builder_get_object (builder, "playtime_label")); stats_preferences->priv->dbplay_time_label = GTK_WIDGET (gtk_builder_get_object (builder, "dbplay_time_label")); gtk_widget_set_size_request(stats_preferences->priv->nbartists_label, 250, -1); gtk_widget_set_size_request(stats_preferences->priv->nbalbums_label, 250, -1); gtk_widget_set_size_request(stats_preferences->priv->nbsongs_label, 250, -1); gtk_widget_set_size_request(stats_preferences->priv->uptime_label, 250, -1); gtk_widget_set_size_request(stats_preferences->priv->playtime_label, 250, -1); gtk_widget_set_size_request(stats_preferences->priv->dbplay_time_label, 250, -1); gtk_builder_helpers_boldify_label (builder, "statistics_frame_label"); gtk_builder_helpers_boldify_label (builder, "nbartists_const_label"); gtk_builder_helpers_boldify_label (builder, "nbalbums_const_label"); gtk_builder_helpers_boldify_label (builder, "nbsongs_const_label"); gtk_builder_helpers_boldify_label (builder, "uptime_const_label"); gtk_builder_helpers_boldify_label (builder, "playtime_const_label"); gtk_builder_helpers_boldify_label (builder, "dbplay_time_const_label"); ario_stats_preferences_sync_stats (stats_preferences); gtk_box_pack_start (GTK_BOX (stats_preferences), GTK_WIDGET (gtk_builder_get_object (builder, "vbox")), TRUE, TRUE, 0); g_object_unref (builder); return GTK_WIDGET (stats_preferences); } static void ario_stats_preferences_sync_stats (ArioStatsPreferences *stats_preferences) { ARIO_LOG_FUNCTION_START; ArioServerStats *stats = ario_server_get_stats (); gchar *tmp; if (stats) { tmp = g_strdup_printf ("%d", stats->numberOfArtists); gtk_label_set_text (GTK_LABEL (stats_preferences->priv->nbartists_label), tmp); g_free (tmp); tmp = g_strdup_printf ("%d", stats->numberOfAlbums); gtk_label_set_text (GTK_LABEL (stats_preferences->priv->nbalbums_label), tmp); g_free (tmp); tmp = g_strdup_printf ("%d", stats->numberOfSongs); gtk_label_set_text (GTK_LABEL (stats_preferences->priv->nbsongs_label), tmp); g_free (tmp); tmp = ario_util_format_total_time (stats->uptime); gtk_label_set_text (GTK_LABEL (stats_preferences->priv->uptime_label), tmp); g_free (tmp); tmp = ario_util_format_total_time (stats->playTime); gtk_label_set_text (GTK_LABEL (stats_preferences->priv->playtime_label), tmp); g_free (tmp); tmp = ario_util_format_total_time (stats->dbPlayTime); gtk_label_set_text (GTK_LABEL (stats_preferences->priv->dbplay_time_label), tmp); g_free (tmp); } else { gtk_label_set_text (GTK_LABEL (stats_preferences->priv->nbartists_label), _("Not connected")); gtk_label_set_text (GTK_LABEL (stats_preferences->priv->nbalbums_label), _("Not connected")); gtk_label_set_text (GTK_LABEL (stats_preferences->priv->nbsongs_label), _("Not connected")); gtk_label_set_text (GTK_LABEL (stats_preferences->priv->uptime_label), _("Not connected")); gtk_label_set_text (GTK_LABEL (stats_preferences->priv->playtime_label), _("Not connected")); gtk_label_set_text (GTK_LABEL (stats_preferences->priv->dbplay_time_label), _("Not connected")); } } static void ario_stats_preferences_stats_changed_cb (ArioServer *server, ArioStatsPreferences *stats_preferences) { ARIO_LOG_FUNCTION_START; ario_stats_preferences_sync_stats (stats_preferences); } ario-1.6/src/preferences/ario-cover-preferences.c0000644000175000017500000004060613226723431017045 00000000000000/* * Copyright (C) 2005 Marc Pavot * * 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, 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * */ #include "preferences/ario-cover-preferences.h" #include #include #include #include "ario-debug.h" #include "covers/ario-cover-manager.h" #include "lib/ario-conf.h" #include "lib/gtk-builder-helpers.h" #include "preferences/ario-preferences.h" static void ario_cover_preferences_sync_cover (ArioCoverPreferences *cover_preferences); G_MODULE_EXPORT void ario_cover_preferences_covertree_check_changed_cb (GtkCheckButton *butt, ArioCoverPreferences *cover_preferences); G_MODULE_EXPORT void ario_cover_preferences_automatic_check_changed_cb (GtkCheckButton *butt, ArioCoverPreferences *cover_preferences); G_MODULE_EXPORT void ario_cover_preferences_top_button_cb (GtkWidget *widget, ArioCoverPreferences *cover_preferences); G_MODULE_EXPORT void ario_cover_preferences_up_button_cb (GtkWidget *widget, ArioCoverPreferences *cover_preferences); G_MODULE_EXPORT void ario_cover_preferences_down_button_cb (GtkWidget *widget, ArioCoverPreferences *cover_preferences); G_MODULE_EXPORT void ario_cover_preferences_bottom_button_cb (GtkWidget *widget, ArioCoverPreferences *cover_preferences); G_MODULE_EXPORT void ario_cover_preferences_cover_toggled_cb (GtkCellRendererToggle *cell, gchar *path_str, ArioCoverPreferences *cover_preferences); /* Private attributes */ struct ArioCoverPreferencesPrivate { GtkWidget *covertree_check; GtkWidget *automatic_check; GtkListStore *covers_model; GtkTreeSelection *covers_selection; }; /* Tree model columns */ enum { ENABLED_COLUMN, NAME_COLUMN, ID_COLUMN, N_COLUMN }; #define ARIO_COVER_PREFERENCES_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_ARIO_COVER_PREFERENCES, ArioCoverPreferencesPrivate)) G_DEFINE_TYPE (ArioCoverPreferences, ario_cover_preferences, GTK_TYPE_BOX) static void ario_cover_preferences_class_init (ArioCoverPreferencesClass *klass) { ARIO_LOG_FUNCTION_START; /* Private attributes */ g_type_class_add_private (klass, sizeof (ArioCoverPreferencesPrivate)); } static void ario_cover_preferences_init (ArioCoverPreferences *cover_preferences) { ARIO_LOG_FUNCTION_START; cover_preferences->priv = ARIO_COVER_PREFERENCES_GET_PRIVATE (cover_preferences); } GtkWidget * ario_cover_preferences_new (void) { ARIO_LOG_FUNCTION_START; GtkBuilder *builder; ArioCoverPreferences *cover_preferences; GtkWidget *covers_treeview; cover_preferences = g_object_new (TYPE_ARIO_COVER_PREFERENCES, NULL); g_return_val_if_fail (cover_preferences->priv != NULL, NULL); gtk_orientable_set_orientation (GTK_ORIENTABLE (cover_preferences), GTK_ORIENTATION_VERTICAL); /* Generate UI using GtkBuilder */ builder = gtk_builder_helpers_new (UI_PATH "cover-prefs.ui", cover_preferences); /* Get pointers to various widgets */ cover_preferences->priv->covertree_check = GTK_WIDGET (gtk_builder_get_object (builder, "covertree_checkbutton")); cover_preferences->priv->automatic_check = GTK_WIDGET (gtk_builder_get_object (builder, "automatic_checkbutton")); cover_preferences->priv->covers_model = GTK_LIST_STORE (gtk_builder_get_object (builder, "covers_model")); covers_treeview = GTK_WIDGET (gtk_builder_get_object (builder, "covers_treeview")); /* Set style for labels */ gtk_builder_helpers_boldify_label (builder, "cover_frame_label"); gtk_builder_helpers_boldify_label (builder, "cover_sources_frame_label"); /* Get model selection */ cover_preferences->priv->covers_selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (covers_treeview)); gtk_tree_selection_set_mode (cover_preferences->priv->covers_selection, GTK_SELECTION_BROWSE); /* Synchronize widgets with configuration */ ario_cover_preferences_sync_cover (cover_preferences); gtk_box_pack_start (GTK_BOX (cover_preferences), GTK_WIDGET (gtk_builder_get_object (builder, "covers_vbox")), TRUE, TRUE, 0); g_object_unref (builder); return GTK_WIDGET (cover_preferences); } static void ario_cover_preferences_sync_cover_providers (ArioCoverPreferences *cover_preferences) { ARIO_LOG_FUNCTION_START; ArioCoverProvider *cover_provider; GSList *providers; GSList *tmp; GtkTreeIter iter; gchar *id = NULL; gchar *tmp_id; GtkTreeModel *model = GTK_TREE_MODEL (cover_preferences->priv->covers_model); /* Remember id of currently selected row */ if (gtk_tree_selection_get_selected (cover_preferences->priv->covers_selection, &model, &iter)) { gtk_tree_model_get (model, &iter, ID_COLUMN, &id, -1); } /* Empty list */ gtk_list_store_clear (cover_preferences->priv->covers_model); /* Get all covers providers */ providers = ario_cover_manager_get_providers (ario_cover_manager_get_instance ()); /* For each covers provider */ for (tmp = providers; tmp; tmp = g_slist_next (tmp)) { cover_provider = (ArioCoverProvider *) tmp->data; /* Append cover provider to tree */ gtk_list_store_append (cover_preferences->priv->covers_model, &iter); gtk_list_store_set (cover_preferences->priv->covers_model, &iter, ENABLED_COLUMN, ario_cover_provider_is_active (cover_provider), NAME_COLUMN, ario_cover_provider_get_name (cover_provider), ID_COLUMN, ario_cover_provider_get_id (cover_provider), -1); } /* Select again previously selected row */ if (id) { if (gtk_tree_model_get_iter_first (model, &iter)) { do { gtk_tree_model_get (model, &iter, ID_COLUMN, &tmp_id, -1); if (!strcmp (id, tmp_id)) gtk_tree_selection_select_iter (cover_preferences->priv->covers_selection, &iter); g_free (tmp_id); } while (gtk_tree_model_iter_next (model, &iter)); } g_free (id); } } static void ario_cover_preferences_sync_cover (ArioCoverPreferences *cover_preferences) { ARIO_LOG_FUNCTION_START; /* Activate covertre_check */ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (cover_preferences->priv->covertree_check), !ario_conf_get_boolean (PREF_COVER_TREE_HIDDEN, PREF_COVER_TREE_HIDDEN_DEFAULT)); /* Activate automatic_check */ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (cover_preferences->priv->automatic_check), ario_conf_get_boolean (PREF_AUTOMATIC_GET_COVER, PREF_AUTOMATIC_GET_COVER_DEFAULT)); /* Synchonize covers providers */ ario_cover_preferences_sync_cover_providers (cover_preferences); } void ario_cover_preferences_covertree_check_changed_cb (GtkCheckButton *butt, ArioCoverPreferences *cover_preferences) { ARIO_LOG_FUNCTION_START; /* Update configuration */ ario_conf_set_boolean (PREF_COVER_TREE_HIDDEN, !gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (cover_preferences->priv->covertree_check))); } void ario_cover_preferences_automatic_check_changed_cb (GtkCheckButton *butt, ArioCoverPreferences *cover_preferences) { ARIO_LOG_FUNCTION_START; /* Update configuration */ ario_conf_set_boolean (PREF_AUTOMATIC_GET_COVER, gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (cover_preferences->priv->automatic_check))); } void ario_cover_preferences_top_button_cb (GtkWidget *widget, ArioCoverPreferences *cover_preferences) { ARIO_LOG_FUNCTION_START; GtkTreeIter iter; GtkTreeModel *model; gchar *id; ArioCoverProvider *cover_provider; GSList *providers; /* Stop here if no row is selected */ if (!gtk_tree_selection_get_selected (cover_preferences->priv->covers_selection, &model, &iter)) return; /* Get ID of selected provider */ gtk_tree_model_get (model, &iter, ID_COLUMN, &id, -1); /* Get selected covers provider */ cover_provider = ario_cover_manager_get_provider_from_id (ario_cover_manager_get_instance (), id); g_free (id); /* Get list of covers providers */ providers = ario_cover_manager_get_providers (ario_cover_manager_get_instance ()); /* Remove provider from list */ providers = g_slist_remove (providers, cover_provider); /* Add provider to head of list */ providers = g_slist_prepend (providers, cover_provider); ario_cover_manager_set_providers (ario_cover_manager_get_instance (), providers); /* Synchronize tree */ ario_cover_preferences_sync_cover_providers (cover_preferences); } void ario_cover_preferences_up_button_cb (GtkWidget *widget, ArioCoverPreferences *cover_preferences) { ARIO_LOG_FUNCTION_START; GtkTreeIter iter; GtkTreeModel *model; gchar *id; ArioCoverProvider *cover_provider; GSList *providers; gint index; /* Stop here if no row is selected */ if (!gtk_tree_selection_get_selected (cover_preferences->priv->covers_selection, &model, &iter)) return; /* Get ID of selected provider */ gtk_tree_model_get (model, &iter, ID_COLUMN, &id, -1); /* Get selected covers provider */ cover_provider = ario_cover_manager_get_provider_from_id (ario_cover_manager_get_instance (), id); g_free (id); /* Get list of covers providers */ providers = ario_cover_manager_get_providers (ario_cover_manager_get_instance ()); /* Get index of selected provider */ index = g_slist_index (providers, cover_provider); if (index > 0) { /* Remove provider from list */ providers = g_slist_remove (providers, cover_provider); /* Insert provider at previous position */ providers = g_slist_insert (providers, cover_provider, index - 1); ario_cover_manager_set_providers (ario_cover_manager_get_instance (), providers); /* Synchronize tree */ ario_cover_preferences_sync_cover_providers (cover_preferences); } } void ario_cover_preferences_down_button_cb (GtkWidget *widget, ArioCoverPreferences *cover_preferences) { ARIO_LOG_FUNCTION_START; GtkTreeIter iter; GtkTreeModel *model; gchar *id; ArioCoverProvider *cover_provider; GSList *providers; gint index; /* Stop here if no row is selected */ if (!gtk_tree_selection_get_selected (cover_preferences->priv->covers_selection, &model, &iter)) return; /* Get ID of selected provider */ gtk_tree_model_get (model, &iter, ID_COLUMN, &id, -1); /* Get selected covers provider */ cover_provider = ario_cover_manager_get_provider_from_id (ario_cover_manager_get_instance (), id); g_free (id); /* Get list of covers providers */ providers = ario_cover_manager_get_providers (ario_cover_manager_get_instance ()); /* Get index of selected provider */ index = g_slist_index (providers, cover_provider); /* Remove provider from list */ providers = g_slist_remove (providers, cover_provider); /* Insert provider at next position */ providers = g_slist_insert (providers, cover_provider, index + 1); ario_cover_manager_set_providers (ario_cover_manager_get_instance (), providers); /* Synchronize tree */ ario_cover_preferences_sync_cover_providers (cover_preferences); } void ario_cover_preferences_bottom_button_cb (GtkWidget *widget, ArioCoverPreferences *cover_preferences) { ARIO_LOG_FUNCTION_START; GtkTreeIter iter; GtkTreeModel *model; gchar *id; ArioCoverProvider *cover_provider; GSList *providers; /* Stop here if no row is selected */ if (!gtk_tree_selection_get_selected (cover_preferences->priv->covers_selection, &model, &iter)) return; /* Get ID of selected provider */ gtk_tree_model_get (model, &iter, ID_COLUMN, &id, -1); /* Get selected covers provider */ cover_provider = ario_cover_manager_get_provider_from_id (ario_cover_manager_get_instance (), id); g_free (id); /* Get list of covers providers */ providers = ario_cover_manager_get_providers (ario_cover_manager_get_instance ()); /* Remove provider from list */ providers = g_slist_remove (providers, cover_provider); /* Add provider to end of list */ providers = g_slist_append (providers, cover_provider); ario_cover_manager_set_providers (ario_cover_manager_get_instance (), providers); /* Synchronize tree */ ario_cover_preferences_sync_cover_providers (cover_preferences); } void ario_cover_preferences_cover_toggled_cb (GtkCellRendererToggle *cell, gchar *path_str, ArioCoverPreferences *cover_preferences) { ARIO_LOG_FUNCTION_START; gboolean state; gchar *id; GtkTreeIter iter; GtkTreeModel *model = GTK_TREE_MODEL (cover_preferences->priv->covers_model); GtkTreePath *path = gtk_tree_path_new_from_string (path_str); ArioCoverProvider *cover_provider; if (gtk_tree_model_get_iter (model, &iter, path)) { /* Get info from toggled row */ gtk_tree_model_get (model, &iter, ENABLED_COLUMN, &state, ID_COLUMN, &id, -1); state = !state; /* Get covers provider corresponding to toggled row */ cover_provider = ario_cover_manager_get_provider_from_id (ario_cover_manager_get_instance (), id); /* (De)activate cover provider */ ario_cover_provider_set_active (cover_provider, state); g_free (id); /* Update tree */ gtk_list_store_set (GTK_LIST_STORE (model), &iter, ENABLED_COLUMN, state, -1); } gtk_tree_path_free (path); } ario-1.6/src/preferences/ario-browser-preferences.h0000644000175000017500000000405613226723431017416 00000000000000/* * Copyright (C) 2005 Marc Pavot * * 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, 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * */ #ifndef __ARIO_BROWSER_PREFERENCES_H #define __ARIO_BROWSER_PREFERENCES_H #include G_BEGIN_DECLS #define TYPE_ARIO_BROWSER_PREFERENCES (ario_browser_preferences_get_type ()) #define ARIO_BROWSER_PREFERENCES(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), TYPE_ARIO_BROWSER_PREFERENCES, ArioBrowserPreferences)) #define ARIO_BROWSER_PREFERENCES_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), TYPE_ARIO_BROWSER_PREFERENCES, ArioBrowserPreferencesClass)) #define IS_ARIO_BROWSER_PREFERENCES(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), TYPE_ARIO_BROWSER_PREFERENCES)) #define IS_ARIO_BROWSER_PREFERENCES_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), TYPE_ARIO_BROWSER_PREFERENCES)) #define ARIO_BROWSER_PREFERENCES_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), TYPE_ARIO_BROWSER_PREFERENCES, ArioBrowserPreferencesClass)) typedef struct ArioBrowserPreferencesPrivate ArioBrowserPreferencesPrivate; typedef struct { GtkBox parent; ArioBrowserPreferencesPrivate *priv; } ArioBrowserPreferences; typedef struct { GtkBoxClass parent_class; } ArioBrowserPreferencesClass; GType ario_browser_preferences_get_type (void) G_GNUC_CONST; GtkWidget * ario_browser_preferences_new (void); G_END_DECLS #endif /* __ARIO_BROWSER_PREFERENCES_H */ ario-1.6/src/preferences/ario-stats-preferences.h0000644000175000017500000000401613226723431017065 00000000000000/* * Copyright (C) 2005 Marc Pavot * * 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, 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * */ #ifndef __ARIO_STATS_PREFERENCES_H #define __ARIO_STATS_PREFERENCES_H #include #include G_BEGIN_DECLS #define TYPE_ARIO_STATS_PREFERENCES (ario_stats_preferences_get_type ()) #define ARIO_STATS_PREFERENCES(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), TYPE_ARIO_STATS_PREFERENCES, ArioStatsPreferences)) #define ARIO_STATS_PREFERENCES_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), TYPE_ARIO_STATS_PREFERENCES, ArioStatsPreferencesClass)) #define IS_ARIO_STATS_PREFERENCES(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), TYPE_ARIO_STATS_PREFERENCES)) #define IS_ARIO_STATS_PREFERENCES_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), TYPE_ARIO_STATS_PREFERENCES)) #define ARIO_STATS_PREFERENCES_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), TYPE_ARIO_STATS_PREFERENCES, ArioStatsPreferencesClass)) typedef struct ArioStatsPreferencesPrivate ArioStatsPreferencesPrivate; typedef struct { GtkBox parent; ArioStatsPreferencesPrivate *priv; } ArioStatsPreferences; typedef struct { GtkBoxClass parent_class; } ArioStatsPreferencesClass; GType ario_stats_preferences_get_type (void) G_GNUC_CONST; GtkWidget * ario_stats_preferences_new (void); G_END_DECLS #endif /* __ARIO_STATS_PREFERENCES_H */ ario-1.6/src/preferences/ario-cover-preferences.h0000644000175000017500000000401613226723431017045 00000000000000/* * Copyright (C) 2005 Marc Pavot * * 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, 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * */ #ifndef __ARIO_COVER_PREFERENCES_H #define __ARIO_COVER_PREFERENCES_H #include #include G_BEGIN_DECLS #define TYPE_ARIO_COVER_PREFERENCES (ario_cover_preferences_get_type ()) #define ARIO_COVER_PREFERENCES(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), TYPE_ARIO_COVER_PREFERENCES, ArioCoverPreferences)) #define ARIO_COVER_PREFERENCES_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), TYPE_ARIO_COVER_PREFERENCES, ArioCoverPreferencesClass)) #define IS_ARIO_COVER_PREFERENCES(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), TYPE_ARIO_COVER_PREFERENCES)) #define IS_ARIO_COVER_PREFERENCES_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), TYPE_ARIO_COVER_PREFERENCES)) #define ARIO_COVER_PREFERENCES_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), TYPE_ARIO_COVER_PREFERENCES, ArioCoverPreferencesClass)) typedef struct ArioCoverPreferencesPrivate ArioCoverPreferencesPrivate; typedef struct { GtkBox parent; ArioCoverPreferencesPrivate *priv; } ArioCoverPreferences; typedef struct { GtkBoxClass parent_class; } ArioCoverPreferencesClass; GType ario_cover_preferences_get_type (void) G_GNUC_CONST; GtkWidget * ario_cover_preferences_new (void); G_END_DECLS #endif /* __ARIO_COVER_PREFERENCES_H */ ario-1.6/src/preferences/ario-playlist-preferences.c0000644000175000017500000004172113226723432017570 00000000000000/* * Copyright (C) 2009 Marc Pavot * * 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, 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * */ #include "preferences/ario-playlist-preferences.h" #include #include #include #include #include #include #include "preferences/ario-preferences.h" #include "lib/gtk-builder-helpers.h" #include "lib/ario-conf.h" #include "ario-debug.h" #include "playlist/ario-playlist-manager.h" static void ario_playlist_preferences_sync_playlist (ArioPlaylistPreferences *playlist_preferences); G_MODULE_EXPORT void ario_playlist_preferences_track_toogled_cb (GtkCheckButton *butt, ArioPlaylistPreferences *playlist_preferences); G_MODULE_EXPORT void ario_playlist_preferences_title_toogled_cb (GtkCheckButton *butt, ArioPlaylistPreferences *playlist_preferences); G_MODULE_EXPORT void ario_playlist_preferences_artist_toogled_cb (GtkCheckButton *butt, ArioPlaylistPreferences *playlist_preferences); G_MODULE_EXPORT void ario_playlist_preferences_album_toogled_cb (GtkCheckButton *butt, ArioPlaylistPreferences *playlist_preferences); G_MODULE_EXPORT void ario_playlist_preferences_genre_toogled_cb (GtkCheckButton *butt, ArioPlaylistPreferences *playlist_preferences); G_MODULE_EXPORT void ario_playlist_preferences_duration_toogled_cb (GtkCheckButton *butt, ArioPlaylistPreferences *playlist_preferences); G_MODULE_EXPORT void ario_playlist_preferences_file_toogled_cb (GtkCheckButton *butt, ArioPlaylistPreferences *playlist_preferences); G_MODULE_EXPORT void ario_playlist_preferences_date_toogled_cb (GtkCheckButton *butt, ArioPlaylistPreferences *playlist_preferences); G_MODULE_EXPORT void ario_playlist_preferences_disc_toogled_cb (GtkCheckButton *butt, ArioPlaylistPreferences *playlist_preferences); G_MODULE_EXPORT void ario_playlist_preferences_autoscroll_toogled_cb (GtkCheckButton *butt, ArioPlaylistPreferences *playlist_preferences); G_MODULE_EXPORT void ario_playlist_preferences_playlist_mode_changed_cb (GtkComboBox *combobox, ArioPlaylistPreferences *playlist_preferences); G_MODULE_EXPORT void ario_playlist_preferences_doubleclick_changed_cb (GtkComboBox *combobox, ArioPlaylistPreferences *playlist_preferences); struct ArioPlaylistPreferencesPrivate { GtkWidget *track_checkbutton; GtkWidget *title_checkbutton; GtkWidget *artist_checkbutton; GtkWidget *album_checkbutton; GtkWidget *genre_checkbutton; GtkWidget *duration_checkbutton; GtkWidget *file_checkbutton; GtkWidget *date_checkbutton; GtkWidget *disc_checkbutton; GtkWidget *autoscroll_checkbutton; GtkWidget *playlist_combobox; GtkWidget *doubleclick_combobox; GtkWidget *vbox; GtkWidget *config; }; #define ARIO_PLAYLIST_PREFERENCES_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_ARIO_PLAYLIST_PREFERENCES, ArioPlaylistPreferencesPrivate)) G_DEFINE_TYPE (ArioPlaylistPreferences, ario_playlist_preferences, GTK_TYPE_BOX) static void ario_playlist_preferences_class_init (ArioPlaylistPreferencesClass *klass) { ARIO_LOG_FUNCTION_START; g_type_class_add_private (klass, sizeof (ArioPlaylistPreferencesPrivate)); } static void ario_playlist_preferences_init (ArioPlaylistPreferences *playlist_preferences) { ARIO_LOG_FUNCTION_START; playlist_preferences->priv = ARIO_PLAYLIST_PREFERENCES_GET_PRIVATE (playlist_preferences); } GtkWidget * ario_playlist_preferences_new (void) { ARIO_LOG_FUNCTION_START; ArioPlaylistPreferences *playlist_preferences; GtkBuilder *builder; GtkListStore *list_store; GtkTreeIter iter; GSList *playlist_modes; ArioPlaylistMode *playlist_mode; playlist_preferences = g_object_new (TYPE_ARIO_PLAYLIST_PREFERENCES, NULL); g_return_val_if_fail (playlist_preferences->priv != NULL, NULL); gtk_orientable_set_orientation (GTK_ORIENTABLE (playlist_preferences), GTK_ORIENTATION_VERTICAL); builder = gtk_builder_helpers_new (UI_PATH "playlist-prefs.ui", playlist_preferences); playlist_preferences->priv->track_checkbutton = GTK_WIDGET (gtk_builder_get_object (builder, "track_checkbutton")); playlist_preferences->priv->title_checkbutton = GTK_WIDGET (gtk_builder_get_object (builder, "title_checkbutton")); playlist_preferences->priv->artist_checkbutton = GTK_WIDGET (gtk_builder_get_object (builder, "artist_checkbutton")); playlist_preferences->priv->album_checkbutton = GTK_WIDGET (gtk_builder_get_object (builder, "album_checkbutton")); playlist_preferences->priv->genre_checkbutton = GTK_WIDGET (gtk_builder_get_object (builder, "genre_checkbutton")); playlist_preferences->priv->duration_checkbutton = GTK_WIDGET (gtk_builder_get_object (builder, "duration_checkbutton")); playlist_preferences->priv->file_checkbutton = GTK_WIDGET (gtk_builder_get_object (builder, "file_checkbutton")); playlist_preferences->priv->date_checkbutton = GTK_WIDGET (gtk_builder_get_object (builder, "date_checkbutton")); playlist_preferences->priv->disc_checkbutton = GTK_WIDGET (gtk_builder_get_object (builder, "disc_checkbutton")); playlist_preferences->priv->autoscroll_checkbutton = GTK_WIDGET (gtk_builder_get_object (builder, "autoscroll_checkbutton")); playlist_preferences->priv->playlist_combobox = GTK_WIDGET (gtk_builder_get_object (builder, "playlist_combobox")); playlist_preferences->priv->doubleclick_combobox = GTK_WIDGET (gtk_builder_get_object (builder, "doubleclick_combobox")); playlist_preferences->priv->vbox = GTK_WIDGET (gtk_builder_get_object (builder, "vbox")); list_store = GTK_LIST_STORE (gtk_builder_get_object (builder, "liststore")); gtk_builder_helpers_boldify_label (builder, "playlist_label"); gtk_builder_helpers_boldify_label (builder, "mode_label"); gtk_builder_helpers_boldify_label (builder, "doubleclick_label"); playlist_modes = ario_playlist_manager_get_modes (ario_playlist_manager_get_instance ()); for (; playlist_modes; playlist_modes = g_slist_next (playlist_modes)) { playlist_mode = playlist_modes->data; gtk_list_store_append (list_store, &iter); gtk_list_store_set (list_store, &iter, 0, ario_playlist_mode_get_name (playlist_mode), 1, ario_playlist_mode_get_id (playlist_mode), -1); } ario_playlist_preferences_sync_playlist (playlist_preferences); gtk_box_pack_start (GTK_BOX (playlist_preferences), GTK_WIDGET (gtk_builder_get_object (builder, "playlist_vbox")), TRUE, TRUE, 0); g_object_unref (builder); return GTK_WIDGET (playlist_preferences); } static void ario_playlist_preferences_sync_playlist (ArioPlaylistPreferences *playlist_preferences) { ARIO_LOG_FUNCTION_START; const gchar *id; int i = 0; GSList *playlist_modes; ArioPlaylistMode *playlist_mode; gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (playlist_preferences->priv->track_checkbutton), ario_conf_get_boolean (PREF_TRACK_COLUMN_VISIBLE, PREF_TRACK_COLUMN_VISIBLE_DEFAULT)); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (playlist_preferences->priv->title_checkbutton), ario_conf_get_boolean (PREF_TITLE_COLUMN_VISIBLE, PREF_TITLE_COLUMN_VISIBLE_DEFAULT)); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (playlist_preferences->priv->artist_checkbutton), ario_conf_get_boolean (PREF_ARTIST_COLUMN_VISIBLE, PREF_ARTIST_COLUMN_VISIBLE_DEFAULT)); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (playlist_preferences->priv->album_checkbutton), ario_conf_get_boolean (PREF_ALBUM_COLUMN_VISIBLE, PREF_ALBUM_COLUMN_VISIBLE_DEFAULT)); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (playlist_preferences->priv->genre_checkbutton), ario_conf_get_boolean (PREF_GENRE_COLUMN_VISIBLE, PREF_GENRE_COLUMN_VISIBLE_DEFAULT)); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (playlist_preferences->priv->duration_checkbutton), ario_conf_get_boolean (PREF_DURATION_COLUMN_VISIBLE, PREF_DURATION_COLUMN_VISIBLE_DEFAULT)); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (playlist_preferences->priv->file_checkbutton), ario_conf_get_boolean (PREF_FILE_COLUMN_VISIBLE, PREF_FILE_COLUMN_VISIBLE_DEFAULT)); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (playlist_preferences->priv->date_checkbutton), ario_conf_get_boolean (PREF_DATE_COLUMN_VISIBLE, PREF_DATE_COLUMN_VISIBLE_DEFAULT)); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (playlist_preferences->priv->disc_checkbutton), ario_conf_get_boolean (PREF_DISC_COLUMN_VISIBLE, PREF_DISC_COLUMN_VISIBLE_DEFAULT)); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (playlist_preferences->priv->autoscroll_checkbutton), ario_conf_get_boolean (PREF_PLAYLIST_AUTOSCROLL, PREF_PLAYLIST_AUTOSCROLL_DEFAULT)); id = ario_conf_get_string (PREF_PLAYLIST_MODE, PREF_PLAYLIST_MODE_DEFAULT); playlist_modes = ario_playlist_manager_get_modes (ario_playlist_manager_get_instance ()); for (; playlist_modes; playlist_modes = g_slist_next (playlist_modes)) { playlist_mode = playlist_modes->data; if (!strcmp (ario_playlist_mode_get_id (playlist_mode), id)) { gtk_combo_box_set_active (GTK_COMBO_BOX (playlist_preferences->priv->playlist_combobox), i); break; } ++i; } gtk_combo_box_set_active (GTK_COMBO_BOX (playlist_preferences->priv->doubleclick_combobox), ario_conf_get_integer (PREF_DOUBLECLICK_BEHAVIOR, PREF_DOUBLECLICK_BEHAVIOR_DEFAULT)); } void ario_playlist_preferences_playlist_mode_changed_cb (GtkComboBox *combobox, ArioPlaylistPreferences *playlist_preferences) { ARIO_LOG_FUNCTION_START; GtkTreeIter iter; gchar *id; ArioPlaylistMode *playlist_mode; gtk_combo_box_get_active_iter (combobox, &iter); gtk_tree_model_get (gtk_combo_box_get_model (combobox), &iter, 1, &id, -1); ario_conf_set_string (PREF_PLAYLIST_MODE, id); if (playlist_preferences->priv->config) { gtk_container_remove (GTK_CONTAINER (playlist_preferences->priv->vbox), playlist_preferences->priv->config); playlist_preferences->priv->config = NULL; } playlist_mode = ario_playlist_manager_get_mode_from_id (ario_playlist_manager_get_instance (), id); if (playlist_mode) { playlist_preferences->priv->config = ario_playlist_mode_get_config (playlist_mode); if (playlist_preferences->priv->config) { gtk_box_pack_end (GTK_BOX (playlist_preferences->priv->vbox), playlist_preferences->priv->config, TRUE, TRUE, 0); gtk_widget_show_all (playlist_preferences->priv->config); } } g_free (id); } void ario_playlist_preferences_doubleclick_changed_cb (GtkComboBox *combobox, ArioPlaylistPreferences *playlist_preferences) { ARIO_LOG_FUNCTION_START; int i; i = gtk_combo_box_get_active (GTK_COMBO_BOX (combobox)); ario_conf_set_integer (PREF_DOUBLECLICK_BEHAVIOR, i); } void ario_playlist_preferences_track_toogled_cb (GtkCheckButton *butt, ArioPlaylistPreferences *playlist_preferences) { ARIO_LOG_FUNCTION_START; ario_conf_set_boolean (PREF_TRACK_COLUMN_VISIBLE, gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (butt))); } void ario_playlist_preferences_title_toogled_cb (GtkCheckButton *butt, ArioPlaylistPreferences *playlist_preferences) { ARIO_LOG_FUNCTION_START; ario_conf_set_boolean (PREF_TITLE_COLUMN_VISIBLE, gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (butt))); } void ario_playlist_preferences_artist_toogled_cb (GtkCheckButton *butt, ArioPlaylistPreferences *playlist_preferences) { ARIO_LOG_FUNCTION_START; ario_conf_set_boolean (PREF_ARTIST_COLUMN_VISIBLE, gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (butt))); } void ario_playlist_preferences_album_toogled_cb (GtkCheckButton *butt, ArioPlaylistPreferences *playlist_preferences) { ARIO_LOG_FUNCTION_START; ario_conf_set_boolean (PREF_ALBUM_COLUMN_VISIBLE, gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (butt))); } void ario_playlist_preferences_genre_toogled_cb (GtkCheckButton *butt, ArioPlaylistPreferences *playlist_preferences) { ARIO_LOG_FUNCTION_START; ario_conf_set_boolean (PREF_GENRE_COLUMN_VISIBLE, gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (butt))); } void ario_playlist_preferences_duration_toogled_cb (GtkCheckButton *butt, ArioPlaylistPreferences *playlist_preferences) { ARIO_LOG_FUNCTION_START; ario_conf_set_boolean (PREF_DURATION_COLUMN_VISIBLE, gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (butt))); } void ario_playlist_preferences_file_toogled_cb (GtkCheckButton *butt, ArioPlaylistPreferences *playlist_preferences) { ARIO_LOG_FUNCTION_START; ario_conf_set_boolean (PREF_FILE_COLUMN_VISIBLE, gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (butt))); } void ario_playlist_preferences_date_toogled_cb (GtkCheckButton *butt, ArioPlaylistPreferences *playlist_preferences) { ARIO_LOG_FUNCTION_START; ario_conf_set_boolean (PREF_DATE_COLUMN_VISIBLE, gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (butt))); } void ario_playlist_preferences_disc_toogled_cb (GtkCheckButton *butt, ArioPlaylistPreferences *playlist_preferences) { ARIO_LOG_FUNCTION_START; ario_conf_set_boolean (PREF_DISC_COLUMN_VISIBLE, gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (butt))); } void ario_playlist_preferences_autoscroll_toogled_cb (GtkCheckButton *butt, ArioPlaylistPreferences *playlist_preferences) { ARIO_LOG_FUNCTION_START; ario_conf_set_boolean (PREF_PLAYLIST_AUTOSCROLL, gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (butt))); } ario-1.6/src/preferences/ario-lyrics-preferences.c0000644000175000017500000003035613226723432017236 00000000000000/* * Copyright (C) 2005 Marc Pavot * * 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, 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * */ #include "preferences/ario-lyrics-preferences.h" #include #include #include #include #include #include #include "preferences/ario-preferences.h" #include "lyrics/ario-lyrics-manager.h" #include "lib/gtk-builder-helpers.h" #include "lib/ario-conf.h" #include "ario-debug.h" static void ario_lyrics_preferences_sync_lyrics_providers (ArioLyricsPreferences *lyrics_preferences); G_MODULE_EXPORT void ario_lyrics_preferences_top_button_cb (GtkWidget *widget, ArioLyricsPreferences *lyrics_preferences); G_MODULE_EXPORT void ario_lyrics_preferences_up_button_cb (GtkWidget *widget, ArioLyricsPreferences *lyrics_preferences); G_MODULE_EXPORT void ario_lyrics_preferences_down_button_cb (GtkWidget *widget, ArioLyricsPreferences *lyrics_preferences); G_MODULE_EXPORT void ario_lyrics_preferences_bottom_button_cb (GtkWidget *widget, ArioLyricsPreferences *lyrics_preferences); G_MODULE_EXPORT void ario_lyrics_preferences_lyrics_toggled_cb (GtkCellRendererToggle *cell, gchar *path_str, ArioLyricsPreferences *lyrics_preferences); struct ArioLyricsPreferencesPrivate { GtkListStore *lyrics_model; GtkTreeSelection *lyrics_selection; }; enum { ENABLED_COLUMN, NAME_COLUMN, ID_COLUMN, N_COLUMN }; #define ARIO_LYRICS_PREFERENCES_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_ARIO_LYRICS_PREFERENCES, ArioLyricsPreferencesPrivate)) G_DEFINE_TYPE (ArioLyricsPreferences, ario_lyrics_preferences, GTK_TYPE_BOX) static void ario_lyrics_preferences_class_init (ArioLyricsPreferencesClass *klass) { ARIO_LOG_FUNCTION_START; g_type_class_add_private (klass, sizeof (ArioLyricsPreferencesPrivate)); } static void ario_lyrics_preferences_init (ArioLyricsPreferences *lyrics_preferences) { ARIO_LOG_FUNCTION_START; lyrics_preferences->priv = ARIO_LYRICS_PREFERENCES_GET_PRIVATE (lyrics_preferences); } GtkWidget * ario_lyrics_preferences_new (void) { ARIO_LOG_FUNCTION_START; GtkBuilder *builder; ArioLyricsPreferences *lyrics_preferences; GtkWidget *lyrics_treeview; lyrics_preferences = g_object_new (TYPE_ARIO_LYRICS_PREFERENCES, NULL); g_return_val_if_fail (lyrics_preferences->priv != NULL, NULL); gtk_orientable_set_orientation (GTK_ORIENTABLE (lyrics_preferences), GTK_ORIENTATION_VERTICAL); builder = gtk_builder_helpers_new (UI_PATH "lyrics-prefs.ui", lyrics_preferences); lyrics_treeview = GTK_WIDGET (gtk_builder_get_object (builder, "lyrics_treeview")); lyrics_preferences->priv->lyrics_model = GTK_LIST_STORE (gtk_builder_get_object (builder, "lyrics_model")); gtk_builder_helpers_boldify_label (builder, "lyrics_sources_frame_label"); lyrics_preferences->priv->lyrics_selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (lyrics_treeview)); gtk_tree_selection_set_mode (lyrics_preferences->priv->lyrics_selection, GTK_SELECTION_BROWSE); ario_lyrics_preferences_sync_lyrics_providers (lyrics_preferences); gtk_box_pack_start (GTK_BOX (lyrics_preferences), GTK_WIDGET (gtk_builder_get_object (builder, "lyrics_vbox")), TRUE, TRUE, 0); g_object_unref (builder); return GTK_WIDGET (lyrics_preferences); } static void ario_lyrics_preferences_sync_lyrics_providers (ArioLyricsPreferences *lyrics_preferences) { ARIO_LOG_FUNCTION_START; ArioLyricsProvider *lyrics_provider; GSList *providers; GSList *tmp; GtkTreeIter iter; gchar *id = NULL; gchar *tmp_id; GtkTreeModel *model = GTK_TREE_MODEL (lyrics_preferences->priv->lyrics_model); if (gtk_tree_selection_get_selected (lyrics_preferences->priv->lyrics_selection, &model, &iter)) { gtk_tree_model_get (model, &iter, ID_COLUMN, &id, -1); } gtk_list_store_clear (lyrics_preferences->priv->lyrics_model); providers = ario_lyrics_manager_get_providers (ario_lyrics_manager_get_instance ()); for (tmp = providers; tmp; tmp = g_slist_next (tmp)) { lyrics_provider = (ArioLyricsProvider *) tmp->data; gtk_list_store_append (lyrics_preferences->priv->lyrics_model, &iter); gtk_list_store_set (lyrics_preferences->priv->lyrics_model, &iter, ENABLED_COLUMN, ario_lyrics_provider_is_active (lyrics_provider), NAME_COLUMN, ario_lyrics_provider_get_name (lyrics_provider), ID_COLUMN, ario_lyrics_provider_get_id (lyrics_provider), -1); } if (id) { if (gtk_tree_model_get_iter_first (model, &iter)) { do { gtk_tree_model_get (model, &iter, ID_COLUMN, &tmp_id, -1); if (!strcmp (id, tmp_id)) gtk_tree_selection_select_iter (lyrics_preferences->priv->lyrics_selection, &iter); g_free (tmp_id); } while (gtk_tree_model_iter_next (model, &iter)); } g_free (id); } } void ario_lyrics_preferences_top_button_cb (GtkWidget *widget, ArioLyricsPreferences *lyrics_preferences) { ARIO_LOG_FUNCTION_START; GtkTreeIter iter; GtkTreeModel *model; gchar *id; ArioLyricsProvider *lyrics_provider; GSList *providers; if (!gtk_tree_selection_get_selected (lyrics_preferences->priv->lyrics_selection, &model, &iter)) return; gtk_tree_model_get (model, &iter, ID_COLUMN, &id, -1); lyrics_provider = ario_lyrics_manager_get_provider_from_id (ario_lyrics_manager_get_instance (), id); g_free (id); providers = ario_lyrics_manager_get_providers (ario_lyrics_manager_get_instance ()); providers = g_slist_remove (providers, lyrics_provider); providers = g_slist_prepend (providers, lyrics_provider); ario_lyrics_manager_set_providers (ario_lyrics_manager_get_instance (), providers); ario_lyrics_preferences_sync_lyrics_providers (lyrics_preferences); } void ario_lyrics_preferences_up_button_cb (GtkWidget *widget, ArioLyricsPreferences *lyrics_preferences) { ARIO_LOG_FUNCTION_START; GtkTreeIter iter; GtkTreeModel *model; gchar *id; ArioLyricsProvider *lyrics_provider; GSList *providers; gint index; if (!gtk_tree_selection_get_selected (lyrics_preferences->priv->lyrics_selection, &model, &iter)) return; gtk_tree_model_get (model, &iter, ID_COLUMN, &id, -1); lyrics_provider = ario_lyrics_manager_get_provider_from_id (ario_lyrics_manager_get_instance (), id); g_free (id); providers = ario_lyrics_manager_get_providers (ario_lyrics_manager_get_instance ()); index = g_slist_index (providers, lyrics_provider); if (index > 0) { providers = g_slist_remove (providers, lyrics_provider); providers = g_slist_insert (providers, lyrics_provider, index - 1); ario_lyrics_manager_set_providers (ario_lyrics_manager_get_instance (), providers); ario_lyrics_preferences_sync_lyrics_providers (lyrics_preferences); } } void ario_lyrics_preferences_down_button_cb (GtkWidget *widget, ArioLyricsPreferences *lyrics_preferences) { ARIO_LOG_FUNCTION_START; GtkTreeIter iter; GtkTreeModel *model; gchar *id; ArioLyricsProvider *lyrics_provider; GSList *providers; gint index; if (!gtk_tree_selection_get_selected (lyrics_preferences->priv->lyrics_selection, &model, &iter)) return; gtk_tree_model_get (model, &iter, ID_COLUMN, &id, -1); lyrics_provider = ario_lyrics_manager_get_provider_from_id (ario_lyrics_manager_get_instance (), id); g_free (id); providers = ario_lyrics_manager_get_providers (ario_lyrics_manager_get_instance ()); index = g_slist_index (providers, lyrics_provider); providers = g_slist_remove (providers, lyrics_provider); providers = g_slist_insert (providers, lyrics_provider, index + 1); ario_lyrics_manager_set_providers (ario_lyrics_manager_get_instance (), providers); ario_lyrics_preferences_sync_lyrics_providers (lyrics_preferences); } void ario_lyrics_preferences_bottom_button_cb (GtkWidget *widget, ArioLyricsPreferences *lyrics_preferences) { ARIO_LOG_FUNCTION_START; GtkTreeIter iter; GtkTreeModel *model; gchar *id; ArioLyricsProvider *lyrics_provider; GSList *providers; if (!gtk_tree_selection_get_selected (lyrics_preferences->priv->lyrics_selection, &model, &iter)) return; gtk_tree_model_get (model, &iter, ID_COLUMN, &id, -1); lyrics_provider = ario_lyrics_manager_get_provider_from_id (ario_lyrics_manager_get_instance (), id); g_free (id); providers = ario_lyrics_manager_get_providers (ario_lyrics_manager_get_instance ()); providers = g_slist_remove (providers, lyrics_provider); providers = g_slist_append (providers, lyrics_provider); ario_lyrics_manager_set_providers (ario_lyrics_manager_get_instance (), providers); ario_lyrics_preferences_sync_lyrics_providers (lyrics_preferences); } void ario_lyrics_preferences_lyrics_toggled_cb (GtkCellRendererToggle *cell, gchar *path_str, ArioLyricsPreferences *lyrics_preferences) { ARIO_LOG_FUNCTION_START; gboolean state; gchar *id; GtkTreeIter iter; GtkTreeModel *model = GTK_TREE_MODEL (lyrics_preferences->priv->lyrics_model); GtkTreePath *path = gtk_tree_path_new_from_string (path_str); ArioLyricsProvider *lyrics_provider; if (gtk_tree_model_get_iter (model, &iter, path)) { gtk_tree_model_get (model, &iter, ENABLED_COLUMN, &state, ID_COLUMN, &id, -1); state = !state; lyrics_provider = ario_lyrics_manager_get_provider_from_id (ario_lyrics_manager_get_instance (), id); ario_lyrics_provider_set_active (lyrics_provider, state); g_free (id); gtk_list_store_set (GTK_LIST_STORE (model), &iter, ENABLED_COLUMN, state, -1); } gtk_tree_path_free (path); } ario-1.6/src/preferences/ario-connection-preferences.c0000644000175000017500000001605513226723431020067 00000000000000/* * Copyright (C) 2005 Marc Pavot * * 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, 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * */ #include "preferences/ario-connection-preferences.h" #include #include #include #include #include #include #include "preferences/ario-preferences.h" #include "lib/gtk-builder-helpers.h" #include "lib/ario-conf.h" #include "ario-debug.h" #include "ario-profiles.h" #include "servers/ario-server.h" #include "widgets/ario-connection-widget.h" static void ario_connection_preferences_sync_connection (ArioConnectionPreferences *connection_preferences); G_MODULE_EXPORT void ario_connection_preferences_autoconnect_changed_cb (GtkWidget *widget, ArioConnectionPreferences *connection_preferences); G_MODULE_EXPORT void ario_connection_preferences_connect_cb (GtkWidget *widget, ArioConnectionPreferences *connection_preferences); G_MODULE_EXPORT void ario_connection_preferences_disconnect_cb (GtkWidget *widget, ArioConnectionPreferences *connection_preferences); struct ArioConnectionPreferencesPrivate { GtkWidget *autoconnect_checkbutton; GtkWidget *disconnect_button; GtkWidget *connect_button; gboolean loading; }; #define ARIO_CONNECTION_PREFERENCES_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_ARIO_CONNECTION_PREFERENCES, ArioConnectionPreferencesPrivate)) G_DEFINE_TYPE (ArioConnectionPreferences, ario_connection_preferences, GTK_TYPE_BOX) static void ario_connection_preferences_class_init (ArioConnectionPreferencesClass *klass) { ARIO_LOG_FUNCTION_START; g_type_class_add_private (klass, sizeof (ArioConnectionPreferencesPrivate)); } static void ario_connection_preferences_init (ArioConnectionPreferences *connection_preferences) { ARIO_LOG_FUNCTION_START; connection_preferences->priv = ARIO_CONNECTION_PREFERENCES_GET_PRIVATE (connection_preferences); connection_preferences->priv->loading = FALSE; } static void ario_connection_preferences_profile_changed_cb (ArioConnectionWidget *connection_widget, ArioConnectionPreferences *connection_preferences) { ARIO_LOG_FUNCTION_START; ario_server_reconnect (); ario_connection_preferences_sync_connection (connection_preferences); } GtkWidget * ario_connection_preferences_new (void) { ARIO_LOG_FUNCTION_START; GtkBuilder *builder; ArioConnectionPreferences *connection_preferences; GtkWidget *alignment, *connection_widget; connection_preferences = g_object_new (TYPE_ARIO_CONNECTION_PREFERENCES, NULL); g_return_val_if_fail (connection_preferences->priv != NULL, NULL); gtk_orientable_set_orientation (GTK_ORIENTABLE (connection_preferences), GTK_ORIENTATION_VERTICAL); builder = gtk_builder_helpers_new (UI_PATH "connection-prefs.ui", connection_preferences); alignment = GTK_WIDGET (gtk_builder_get_object (builder, "alignment")); connection_preferences->priv->autoconnect_checkbutton = GTK_WIDGET (gtk_builder_get_object (builder, "autoconnect_checkbutton")); connection_preferences->priv->disconnect_button = GTK_WIDGET (gtk_builder_get_object (builder, "disconnect_button")); connection_preferences->priv->connect_button = GTK_WIDGET (gtk_builder_get_object (builder, "connect_button")); gtk_builder_helpers_boldify_label (builder, "connection_label"); connection_widget = ario_connection_widget_new (); gtk_container_add (GTK_CONTAINER (alignment), connection_widget); g_signal_connect (connection_widget, "profile_changed", G_CALLBACK (ario_connection_preferences_profile_changed_cb), connection_preferences); ario_connection_preferences_sync_connection (connection_preferences); gtk_box_pack_start (GTK_BOX (connection_preferences), GTK_WIDGET (gtk_builder_get_object (builder, "vbox")), TRUE, TRUE, 0); g_object_unref (builder); return GTK_WIDGET (connection_preferences); } static void ario_connection_preferences_sync_connection (ArioConnectionPreferences *connection_preferences) { ARIO_LOG_FUNCTION_START; gboolean autoconnect; connection_preferences->priv->loading = TRUE; autoconnect = ario_conf_get_boolean (PREF_AUTOCONNECT, PREF_AUTOCONNECT_DEFAULT); if (ario_server_is_connected ()) { gtk_widget_set_sensitive (connection_preferences->priv->connect_button, FALSE); gtk_widget_set_sensitive (connection_preferences->priv->disconnect_button, TRUE); } else { gtk_widget_set_sensitive (connection_preferences->priv->connect_button, TRUE); gtk_widget_set_sensitive (connection_preferences->priv->disconnect_button, FALSE); } gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (connection_preferences->priv->autoconnect_checkbutton), autoconnect); connection_preferences->priv->loading = FALSE; } void ario_connection_preferences_autoconnect_changed_cb (GtkWidget *widget, ArioConnectionPreferences *connection_preferences) { ARIO_LOG_FUNCTION_START; if (!connection_preferences->priv->loading) ario_conf_set_boolean (PREF_AUTOCONNECT, gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (connection_preferences->priv->autoconnect_checkbutton))); } void ario_connection_preferences_connect_cb (GtkWidget *widget, ArioConnectionPreferences *connection_preferences) { ARIO_LOG_FUNCTION_START; ario_server_connect (); ario_connection_preferences_sync_connection (connection_preferences); } void ario_connection_preferences_disconnect_cb (GtkWidget *widget, ArioConnectionPreferences *connection_preferences) { ARIO_LOG_FUNCTION_START; ario_server_disconnect (); ario_connection_preferences_sync_connection (connection_preferences); } ario-1.6/src/preferences/ario-server-preferences.h0000644000175000017500000000404713226723432017242 00000000000000/* * Copyright (C) 2005 Marc Pavot * * 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, 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * */ #ifndef __ARIO_SERVER_PREFERENCES_H #define __ARIO_SERVER_PREFERENCES_H #include #include G_BEGIN_DECLS #define TYPE_ARIO_SERVER_PREFERENCES (ario_server_preferences_get_type ()) #define ARIO_SERVER_PREFERENCES(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), TYPE_ARIO_SERVER_PREFERENCES, ArioServerPreferences)) #define ARIO_SERVER_PREFERENCES_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), TYPE_ARIO_SERVER_PREFERENCES, ArioServerPreferencesClass)) #define IS_ARIO_SERVER_PREFERENCES(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), TYPE_ARIO_SERVER_PREFERENCES)) #define IS_ARIO_SERVER_PREFERENCES_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), TYPE_ARIO_SERVER_PREFERENCES)) #define ARIO_SERVER_PREFERENCES_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), TYPE_ARIO_SERVER_PREFERENCES, ArioServerPreferencesClass)) typedef struct ArioServerPreferencesPrivate ArioServerPreferencesPrivate; typedef struct { GtkBox parent; ArioServerPreferencesPrivate *priv; } ArioServerPreferences; typedef struct { GtkBoxClass parent_class; } ArioServerPreferencesClass; GType ario_server_preferences_get_type (void) G_GNUC_CONST; GtkWidget * ario_server_preferences_new (void); G_END_DECLS #endif /* __ARIO_SERVER_PREFERENCES_H */ ario-1.6/src/preferences/ario-browser-preferences.c0000644000175000017500000002464513226723432017420 00000000000000/* * Copyright (C) 2005 Marc Pavot * * 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, 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * */ #include "preferences/ario-browser-preferences.h" #include #include #include #include #include #include #include "preferences/ario-preferences.h" #include "lib/gtk-builder-helpers.h" #include "lib/ario-conf.h" #include "sources/ario-browser.h" #include "sources/ario-tree.h" #include "ario-debug.h" static void ario_browser_preferences_sync_browser (ArioBrowserPreferences *browser_preferences); G_MODULE_EXPORT void ario_browser_preferences_sort_changed_cb (GtkComboBox *combobox, ArioBrowserPreferences *browser_preferences); G_MODULE_EXPORT void ario_browser_preferences_treesnb_changed_cb (GtkWidget *widget, ArioBrowserPreferences *browser_preferences); static void ario_browser_preferences_tree_combobox_changed_cb (GtkComboBox *widget, ArioBrowserPreferences *browser_preferences); struct ArioBrowserPreferencesPrivate { GtkWidget *sort_combobox; GtkWidget *treesnb_spinbutton; GtkWidget *hbox; GSList *tree_comboboxs; }; #define ARIO_BROWSER_PREFERENCES_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_ARIO_BROWSER_PREFERENCES, ArioBrowserPreferencesPrivate)) G_DEFINE_TYPE (ArioBrowserPreferences, ario_browser_preferences, GTK_TYPE_BOX) static void ario_browser_preferences_class_init (ArioBrowserPreferencesClass *klass) { ARIO_LOG_FUNCTION_START; g_type_class_add_private (klass, sizeof (ArioBrowserPreferencesPrivate)); } static void ario_browser_preferences_init (ArioBrowserPreferences *browser_preferences) { ARIO_LOG_FUNCTION_START; browser_preferences->priv = ARIO_BROWSER_PREFERENCES_GET_PRIVATE (browser_preferences); } GtkWidget * ario_browser_preferences_new (void) { ARIO_LOG_FUNCTION_START; ArioBrowserPreferences *browser_preferences; GtkBuilder *builder; browser_preferences = g_object_new (TYPE_ARIO_BROWSER_PREFERENCES, NULL); g_return_val_if_fail (browser_preferences->priv != NULL, NULL); gtk_orientable_set_orientation (GTK_ORIENTABLE (browser_preferences), GTK_ORIENTATION_VERTICAL); builder = gtk_builder_helpers_new (UI_PATH "browser-prefs.ui", browser_preferences); browser_preferences->priv->sort_combobox = GTK_WIDGET (gtk_builder_get_object (builder, "sort_combobox")); browser_preferences->priv->hbox = GTK_WIDGET (gtk_builder_get_object (builder, "trees_hbox")); browser_preferences->priv->treesnb_spinbutton = GTK_WIDGET (gtk_builder_get_object (builder, "treesnb_spinbutton")); gtk_builder_helpers_boldify_label (builder, "options_label"); gtk_builder_helpers_boldify_label (builder, "organisation_label"); ario_browser_preferences_sync_browser (browser_preferences); gtk_box_pack_start (GTK_BOX (browser_preferences), GTK_WIDGET (gtk_builder_get_object (builder, "browser_vbox")), TRUE, TRUE, 0); g_object_unref (builder); return GTK_WIDGET (browser_preferences); } static void ario_browser_preferences_sync_browser (ArioBrowserPreferences *browser_preferences) { ARIO_LOG_FUNCTION_START; GtkWidget *tree_combobox; int i, j; gchar **splited_conf; const gchar *conf; GSList *tmp; GtkListStore *list_store; GtkCellRenderer *renderer; GtkTreeIter iter; int a, b; gchar **items; gtk_combo_box_set_active (GTK_COMBO_BOX (browser_preferences->priv->sort_combobox), ario_conf_get_integer (PREF_ALBUM_SORT, PREF_ALBUM_SORT_DEFAULT)); /* Remove all trees */ for (tmp = browser_preferences->priv->tree_comboboxs; tmp; tmp = g_slist_next (tmp)) { gtk_container_remove (GTK_CONTAINER (browser_preferences->priv->hbox), GTK_WIDGET (tmp->data)); } g_slist_free (browser_preferences->priv->tree_comboboxs); browser_preferences->priv->tree_comboboxs = NULL; conf = ario_conf_get_string (PREF_BROWSER_TREES, PREF_BROWSER_TREES_DEFAULT); splited_conf = g_strsplit (conf, ",", MAX_TREE_NB); items = ario_server_get_items_names (); for (i = 0; splited_conf[i]; ++i) { tree_combobox = gtk_combo_box_new (); browser_preferences->priv->tree_comboboxs = g_slist_append (browser_preferences->priv->tree_comboboxs, tree_combobox); list_store = gtk_list_store_new (2, G_TYPE_STRING, G_TYPE_INT); for (j = 0; j < ARIO_TAG_COUNT - 1; ++j) { if (items[j]) { gtk_list_store_append (list_store, &iter); gtk_list_store_set (list_store, &iter, 0, gettext (items[j]), 1, j, -1); } } gtk_combo_box_set_model (GTK_COMBO_BOX (tree_combobox), GTK_TREE_MODEL (list_store)); g_object_unref (list_store); renderer = gtk_cell_renderer_text_new (); gtk_cell_layout_clear (GTK_CELL_LAYOUT (tree_combobox)); gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (tree_combobox), renderer, TRUE); gtk_cell_layout_set_attributes (GTK_CELL_LAYOUT (tree_combobox), renderer, "text", 0, NULL); a = atoi (splited_conf[i]); b = 0; for (j = 0; j < ARIO_TAG_COUNT - 1 && j < a; ++j) { if (items[j]) ++b; } gtk_combo_box_set_active (GTK_COMBO_BOX (tree_combobox), b); g_signal_connect (G_OBJECT (tree_combobox), "changed", G_CALLBACK (ario_browser_preferences_tree_combobox_changed_cb), browser_preferences); gtk_box_pack_start (GTK_BOX (browser_preferences->priv->hbox), tree_combobox, TRUE, TRUE, 0); } gtk_widget_show_all (browser_preferences->priv->hbox); g_strfreev (splited_conf); gtk_spin_button_set_value (GTK_SPIN_BUTTON (browser_preferences->priv->treesnb_spinbutton), (gdouble) i); } void ario_browser_preferences_sort_changed_cb (GtkComboBox *combobox, ArioBrowserPreferences *browser_preferences) { ARIO_LOG_FUNCTION_START; int i; i = gtk_combo_box_get_active (combobox); ario_conf_set_integer (PREF_ALBUM_SORT, i); } static gboolean ario_browser_preferences_treesnb_changed_idle (ArioBrowserPreferences *browser_preferences) { ARIO_LOG_FUNCTION_START; gchar **splited_conf; const gchar *conf; gchar *new_conf, *tmp; int old_nb, new_nb, i; gdouble new_nb_double; conf = ario_conf_get_string (PREF_BROWSER_TREES, PREF_BROWSER_TREES_DEFAULT); splited_conf = g_strsplit (conf, ",", MAX_TREE_NB); for (old_nb = 0; splited_conf[old_nb]; ++old_nb) {} new_nb_double = gtk_spin_button_get_value (GTK_SPIN_BUTTON (browser_preferences->priv->treesnb_spinbutton)); new_nb = (int) new_nb_double; if (new_nb > old_nb) { new_conf = g_strdup_printf ("%s,0", conf); ario_conf_set_string (PREF_BROWSER_TREES, new_conf); g_free (new_conf); ario_browser_preferences_sync_browser (browser_preferences); } else if (new_nb < old_nb) { new_conf = g_strdup (splited_conf[0]); for (i = 1; i < new_nb; ++i) { tmp = g_strdup_printf ("%s,%s", new_conf, splited_conf[i]); g_free (new_conf); new_conf = tmp; } ario_conf_set_string (PREF_BROWSER_TREES, new_conf); g_free (new_conf); ario_browser_preferences_sync_browser (browser_preferences); } g_strfreev (splited_conf); return FALSE; } void ario_browser_preferences_treesnb_changed_cb (GtkWidget *widget, ArioBrowserPreferences *browser_preferences) { ARIO_LOG_FUNCTION_START; g_idle_add ((GSourceFunc) ario_browser_preferences_treesnb_changed_idle, browser_preferences); } static void ario_browser_preferences_tree_combobox_changed_cb (GtkComboBox *widget, ArioBrowserPreferences *browser_preferences) { ARIO_LOG_FUNCTION_START; GSList *temp; GtkComboBox *combobox; gchar *conf = NULL, *tmp; int value; GtkTreeIter iter; for (temp = browser_preferences->priv->tree_comboboxs; temp; temp = g_slist_next (temp)) { combobox = temp->data; gtk_combo_box_get_active_iter (combobox, &iter); gtk_tree_model_get (gtk_combo_box_get_model (combobox), &iter, 1, &value, -1); if (!conf) { conf = g_strdup_printf ("%d", value); } else { tmp = g_strdup_printf ("%s,%d", conf, value); g_free (conf); conf = tmp; } } ario_conf_set_string (PREF_BROWSER_TREES, conf); g_free (conf); } ario-1.6/src/preferences/ario-others-preferences.h0000644000175000017500000000404713226723431017237 00000000000000/* * Copyright (C) 2005 Marc Pavot * * 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, 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * */ #ifndef __ARIO_OTHERS_PREFERENCES_H #define __ARIO_OTHERS_PREFERENCES_H #include #include G_BEGIN_DECLS #define TYPE_ARIO_OTHERS_PREFERENCES (ario_others_preferences_get_type ()) #define ARIO_OTHERS_PREFERENCES(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), TYPE_ARIO_OTHERS_PREFERENCES, ArioOthersPreferences)) #define ARIO_OTHERS_PREFERENCES_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), TYPE_ARIO_OTHERS_PREFERENCES, ArioOthersPreferencesClass)) #define IS_ARIO_OTHERS_PREFERENCES(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), TYPE_ARIO_OTHERS_PREFERENCES)) #define IS_ARIO_OTHERS_PREFERENCES_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), TYPE_ARIO_OTHERS_PREFERENCES)) #define ARIO_OTHERS_PREFERENCES_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), TYPE_ARIO_OTHERS_PREFERENCES, ArioOthersPreferencesClass)) typedef struct ArioOthersPreferencesPrivate ArioOthersPreferencesPrivate; typedef struct { GtkBox parent; ArioOthersPreferencesPrivate *priv; } ArioOthersPreferences; typedef struct { GtkBoxClass parent_class; } ArioOthersPreferencesClass; GType ario_others_preferences_get_type (void) G_GNUC_CONST; GtkWidget * ario_others_preferences_new (void); G_END_DECLS #endif /* __ARIO_OTHERS_PREFERENCES_H */ ario-1.6/src/preferences/ario-lyrics-preferences.h0000644000175000017500000000404713226723431017240 00000000000000/* * Copyright (C) 2005 Marc Pavot * * 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, 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * */ #ifndef __ARIO_LYRICS_PREFERENCES_H #define __ARIO_LYRICS_PREFERENCES_H #include #include G_BEGIN_DECLS #define TYPE_ARIO_LYRICS_PREFERENCES (ario_lyrics_preferences_get_type ()) #define ARIO_LYRICS_PREFERENCES(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), TYPE_ARIO_LYRICS_PREFERENCES, ArioLyricsPreferences)) #define ARIO_LYRICS_PREFERENCES_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), TYPE_ARIO_LYRICS_PREFERENCES, ArioLyricsPreferencesClass)) #define IS_ARIO_LYRICS_PREFERENCES(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), TYPE_ARIO_LYRICS_PREFERENCES)) #define IS_ARIO_LYRICS_PREFERENCES_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), TYPE_ARIO_LYRICS_PREFERENCES)) #define ARIO_LYRICS_PREFERENCES_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), TYPE_ARIO_LYRICS_PREFERENCES, ArioLyricsPreferencesClass)) typedef struct ArioLyricsPreferencesPrivate ArioLyricsPreferencesPrivate; typedef struct { GtkBox parent; ArioLyricsPreferencesPrivate *priv; } ArioLyricsPreferences; typedef struct { GtkBoxClass parent_class; } ArioLyricsPreferencesClass; GType ario_lyrics_preferences_get_type (void) G_GNUC_CONST; GtkWidget * ario_lyrics_preferences_new (void); G_END_DECLS #endif /* __ARIO_LYRICS_PREFERENCES_H */ ario-1.6/src/preferences/ario-server-preferences.c0000644000175000017500000003251513226723431017235 00000000000000/* * Copyright (C) 2005 Marc Pavot * * 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, 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * */ #include "preferences/ario-server-preferences.h" #include #include #include #include #include #include #include "preferences/ario-preferences.h" #include "lib/ario-conf.h" #include "lib/gtk-builder-helpers.h" #include "ario-debug.h" #include "servers/ario-server.h" static void ario_server_preferences_sync_server (ArioServerPreferences *server_preferences); static void ario_server_preferences_server_changed_cb(ArioServer *server, ArioServerPreferences *server_preferences); G_MODULE_EXPORT void ario_server_preferences_crossfadetime_changed_cb (GtkWidget *widget, ArioServerPreferences *server_preferences); G_MODULE_EXPORT void ario_server_preferences_crossfade_changed_cb (GtkWidget *widget, ArioServerPreferences *server_preferences); G_MODULE_EXPORT void ario_server_preferences_updatedb_button_cb (GtkWidget *widget, ArioServerPreferences *server_preferences); G_MODULE_EXPORT void ario_server_preferences_update_changed_cb (GtkWidget *widget, ArioServerPreferences *server_preferences); G_MODULE_EXPORT void ario_server_preferences_stopexit_changed_cb (GtkWidget *widget, ArioServerPreferences *server_preferences); G_MODULE_EXPORT void ario_server_preferences_output_toggled_cb (GtkCellRendererToggle *cell, gchar *path_str, ArioServerPreferences *server_preferences); struct ArioServerPreferencesPrivate { GtkWidget *crossfade_checkbutton; GtkWidget *crossfadetime_spinbutton; GtkWidget *updatedb_label; GtkWidget *updatedb_button; GtkListStore *outputs_model; GtkWidget *update_checkbutton; GtkWidget *stopexit_checkbutton; gboolean sync_server; }; enum { ENABLED_COLUMN, NAME_COLUMN, ID_COLUMN, N_COLUMN }; #define ARIO_SERVER_PREFERENCES_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_ARIO_SERVER_PREFERENCES, ArioServerPreferencesPrivate)) G_DEFINE_TYPE (ArioServerPreferences, ario_server_preferences, GTK_TYPE_BOX) static void ario_server_preferences_class_init (ArioServerPreferencesClass *klass) { ARIO_LOG_FUNCTION_START; g_type_class_add_private (klass, sizeof (ArioServerPreferencesPrivate)); } static void ario_server_preferences_init (ArioServerPreferences *server_preferences) { ARIO_LOG_FUNCTION_START; server_preferences->priv = ARIO_SERVER_PREFERENCES_GET_PRIVATE (server_preferences); } void ario_server_preferences_output_toggled_cb (GtkCellRendererToggle *cell, gchar *path_str, ArioServerPreferences *server_preferences) { ARIO_LOG_FUNCTION_START; gboolean state; gint id; GtkTreeIter iter; GtkTreeModel *model = GTK_TREE_MODEL (server_preferences->priv->outputs_model); GtkTreePath *path = gtk_tree_path_new_from_string (path_str); if (gtk_tree_model_get_iter (model, &iter, path)) { gtk_tree_model_get (model, &iter, ENABLED_COLUMN, &state, ID_COLUMN, &id, -1); state = !state; ario_server_enable_output (id, state); gtk_list_store_set (GTK_LIST_STORE (model), &iter, ENABLED_COLUMN, state, -1); } gtk_tree_path_free (path); } GtkWidget * ario_server_preferences_new (void) { ARIO_LOG_FUNCTION_START; ArioServerPreferences *server_preferences; GtkBuilder *builder; ArioServer *server = ario_server_get_instance (); server_preferences = g_object_new (TYPE_ARIO_SERVER_PREFERENCES, NULL); g_return_val_if_fail (server_preferences->priv != NULL, NULL); g_signal_connect_object (server, "state_changed", G_CALLBACK (ario_server_preferences_server_changed_cb), server_preferences, 0); g_signal_connect_object (server, "updatingdb_changed", G_CALLBACK (ario_server_preferences_server_changed_cb), server_preferences, 0); gtk_orientable_set_orientation (GTK_ORIENTABLE (server_preferences), GTK_ORIENTATION_VERTICAL); builder = gtk_builder_helpers_new (UI_PATH "server-prefs.ui", server_preferences); server_preferences->priv->crossfade_checkbutton = GTK_WIDGET (gtk_builder_get_object (builder, "crossfade_checkbutton")); server_preferences->priv->crossfadetime_spinbutton = GTK_WIDGET (gtk_builder_get_object (builder, "crossfadetime_spinbutton")); server_preferences->priv->updatedb_label = GTK_WIDGET (gtk_builder_get_object (builder, "updatedb_label")); server_preferences->priv->updatedb_button = GTK_WIDGET (gtk_builder_get_object (builder, "updatedb_button")); server_preferences->priv->update_checkbutton = GTK_WIDGET (gtk_builder_get_object (builder, "update_checkbutton")); server_preferences->priv->stopexit_checkbutton = GTK_WIDGET (gtk_builder_get_object (builder, "stopexit_checkbutton")); server_preferences->priv->outputs_model = GTK_LIST_STORE (gtk_builder_get_object (builder, "outputs_model")); gtk_builder_helpers_boldify_label (builder, "crossfade_frame_label"); gtk_builder_helpers_boldify_label (builder, "database_frame_label"); gtk_builder_helpers_boldify_label (builder, "ouputs_frame_label"); ario_server_preferences_sync_server (server_preferences); gtk_box_pack_start (GTK_BOX (server_preferences), GTK_WIDGET (gtk_builder_get_object (builder, "vbox")), TRUE, TRUE, 0); g_object_unref (builder); return GTK_WIDGET (server_preferences); } static void ario_server_preferences_sync_server (ArioServerPreferences *server_preferences) { ARIO_LOG_FUNCTION_START; int crossfadetime; int state; gboolean updating; long last_update; gchar *last_update_char; GtkTreeIter iter; GSList *tmp; ArioServerOutput *output; GSList *outputs; state = ario_server_get_current_state (); updating = ario_server_get_updating (); if (state == ARIO_STATE_UNKNOWN) { crossfadetime = 0; last_update_char = _("Not connected"); } else { crossfadetime = ario_server_get_crossfadetime (); if (updating) { last_update_char = _("Updating..."); } else { last_update = (long) ario_server_get_last_update (); last_update_char = ctime (&last_update); /* Remove the new line */ if (last_update_char && strlen(last_update_char)) last_update_char[strlen (last_update_char)-1] = '\0'; } } server_preferences->priv->sync_server = TRUE; gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (server_preferences->priv->crossfade_checkbutton), (crossfadetime != 0) && (state != ARIO_STATE_UNKNOWN)); gtk_widget_set_sensitive (server_preferences->priv->crossfade_checkbutton, state != ARIO_STATE_UNKNOWN); gtk_widget_set_sensitive (server_preferences->priv->crossfadetime_spinbutton, (crossfadetime != 0) && (state != ARIO_STATE_UNKNOWN)); gtk_spin_button_set_value (GTK_SPIN_BUTTON (server_preferences->priv->crossfadetime_spinbutton), (gdouble) crossfadetime); gtk_widget_set_sensitive (server_preferences->priv->updatedb_button, (!updating && state != ARIO_STATE_UNKNOWN)); gtk_label_set_label (GTK_LABEL (server_preferences->priv->updatedb_label), last_update_char); outputs = ario_server_get_outputs (); gtk_list_store_clear (server_preferences->priv->outputs_model); for (tmp = outputs; tmp; tmp = g_slist_next (tmp)) { output = (ArioServerOutput *) tmp->data; gtk_list_store_append (server_preferences->priv->outputs_model, &iter); gtk_list_store_set (server_preferences->priv->outputs_model, &iter, ENABLED_COLUMN, output->enabled, NAME_COLUMN, output->name, ID_COLUMN, output->id, -1); } g_slist_foreach (outputs, (GFunc) ario_server_free_output, NULL); g_slist_free (outputs); server_preferences->priv->sync_server = FALSE; gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (server_preferences->priv->update_checkbutton), ario_conf_get_boolean (PREF_UPDATE_STARTUP, PREF_UPDATE_STARTUP_DEFAULT)); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (server_preferences->priv->stopexit_checkbutton), ario_conf_get_boolean (PREF_STOP_EXIT, PREF_STOP_EXIT_DEFAULT)); } static void ario_server_preferences_server_changed_cb (ArioServer *server, ArioServerPreferences *server_preferences) { ARIO_LOG_FUNCTION_START; ario_server_preferences_sync_server (server_preferences); } void ario_server_preferences_crossfadetime_changed_cb (GtkWidget *widget, ArioServerPreferences *server_preferences) { ARIO_LOG_FUNCTION_START; int crossfadetime; if (!server_preferences->priv->sync_server) { crossfadetime = gtk_spin_button_get_value (GTK_SPIN_BUTTON (server_preferences->priv->crossfadetime_spinbutton)); ario_server_set_crossfadetime (crossfadetime); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (server_preferences->priv->crossfade_checkbutton), (crossfadetime != 0)); gtk_widget_set_sensitive (server_preferences->priv->crossfadetime_spinbutton, (crossfadetime != 0)); } } void ario_server_preferences_crossfade_changed_cb (GtkWidget *widget, ArioServerPreferences *server_preferences) { ARIO_LOG_FUNCTION_START; gboolean is_active; if (!server_preferences->priv->sync_server) { is_active = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (server_preferences->priv->crossfade_checkbutton)); if (is_active) { ario_server_set_crossfadetime (1); gtk_spin_button_set_value (GTK_SPIN_BUTTON (server_preferences->priv->crossfadetime_spinbutton), 1); } else { ario_server_set_crossfadetime (0); gtk_spin_button_set_value (GTK_SPIN_BUTTON (server_preferences->priv->crossfadetime_spinbutton), 0); } gtk_widget_set_sensitive (server_preferences->priv->crossfadetime_spinbutton, is_active); } } void ario_server_preferences_updatedb_button_cb (GtkWidget *widget, ArioServerPreferences *server_preferences) { ARIO_LOG_FUNCTION_START; gtk_widget_set_sensitive (server_preferences->priv->updatedb_button, FALSE); gtk_label_set_label (GTK_LABEL (server_preferences->priv->updatedb_label), _("Updating...")); ario_server_update_db (NULL); } void ario_server_preferences_update_changed_cb (GtkWidget *widget, ArioServerPreferences *server_preferences) { ARIO_LOG_FUNCTION_START; ario_conf_set_boolean (PREF_UPDATE_STARTUP, gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget))); } void ario_server_preferences_stopexit_changed_cb (GtkWidget *widget, ArioServerPreferences *server_preferences) { ARIO_LOG_FUNCTION_START; ario_conf_set_boolean (PREF_STOP_EXIT, gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget))); } ario-1.6/src/preferences/ario-connection-preferences.h0000644000175000017500000000421313226723432020066 00000000000000/* * Copyright (C) 2005 Marc Pavot * * 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, 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * */ #ifndef __ARIO_CONNECTION_PREFERENCES_H #define __ARIO_CONNECTION_PREFERENCES_H #include #include G_BEGIN_DECLS #define TYPE_ARIO_CONNECTION_PREFERENCES (ario_connection_preferences_get_type ()) #define ARIO_CONNECTION_PREFERENCES(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), TYPE_ARIO_CONNECTION_PREFERENCES, ArioConnectionPreferences)) #define ARIO_CONNECTION_PREFERENCES_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), TYPE_ARIO_CONNECTION_PREFERENCES, ArioConnectionPreferencesClass)) #define IS_ARIO_CONNECTION_PREFERENCES(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), TYPE_ARIO_CONNECTION_PREFERENCES)) #define IS_ARIO_CONNECTION_PREFERENCES_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), TYPE_ARIO_CONNECTION_PREFERENCES)) #define ARIO_CONNECTION_PREFERENCES_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), TYPE_ARIO_CONNECTION_PREFERENCES, ArioConnectionPreferencesClass)) typedef struct ArioConnectionPreferencesPrivate ArioConnectionPreferencesPrivate; typedef struct { GtkBox parent; ArioConnectionPreferencesPrivate *priv; } ArioConnectionPreferences; typedef struct { GtkBoxClass parent_class; } ArioConnectionPreferencesClass; GType ario_connection_preferences_get_type (void) G_GNUC_CONST; GtkWidget * ario_connection_preferences_new (void); G_END_DECLS #endif /* __ARIO_CONNECTION_PREFERENCES_H */ ario-1.6/src/preferences/ario-preferences.h0000644000175000017500000003051513226723431015734 00000000000000/* * Copyright (C) 2005 Marc Pavot * * 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, 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * */ #ifndef __ARIO_PREFERENCES_H #define __ARIO_PREFERENCES_H /* Define if Ario must autoconnect to server or not */ #define PREF_AUTOCONNECT "autoconnect" #define PREF_AUTOCONNECT_DEFAULT TRUE /* When enabled, ario hide the covers in the albums treeview */ #define PREF_COVER_TREE_HIDDEN "ario_cover_tree_hidden" #define PREF_COVER_TREE_HIDDEN_DEFAULT FALSE /* If enabled, Ario will automaticaly get an album cover when a song is played */ #define PREF_AUTOMATIC_GET_COVER "automatic_get_cover" #define PREF_AUTOMATIC_GET_COVER_DEFAULT TRUE /* Define if Ario must use a proxy for remote connections */ #define PREF_USE_PROXY "use_proxy" #define PREF_USE_PROXY_DEFAULT FALSE /* Define the address of the proxy */ #define PREF_PROXY_ADDRESS "proxy_address" #define PREF_PROXY_ADDRESS_DEFAULT "192.168.0.1" /* Define the port of the proxy */ #define PREF_PROXY_PORT "proxy_port" #define PREF_PROXY_PORT_DEFAULT 8080 /* Define if the view tabs are shown */ #define PREF_SHOW_TABS "show_tabs" #define PREF_SHOW_TABS_DEFAULT TRUE /* define default step for volume adjustment with mouse wheel over volume button and tray icon */ #define PREF_VOL_ADJUST_STEP "volume_adjust_step" #define PREF_VOL_ADJUST_STEP_DEFAULT 5 /* Define the behavior of a double click on the tray icon (0 for 'play/pause', 1 for 'play next song', 2 for 'do nothing') */ #define PREF_TRAYICON_BEHAVIOR "trayicon_behavior" #define PREF_TRAYICON_BEHAVIOR_DEFAULT 0 /* Define the behavior of a double click on a song/album/artist... */ #define PREF_DOUBLECLICK_BEHAVIOR "doubleclick_behavior" #define PREF_DOUBLECLICK_BEHAVIOR_DEFAULT 0 /* True if the initial assistant has already been run */ #define PREF_FIRST_TIME "first_time_flag" #define PREF_FIRST_TIME_DEFAULT FALSE /* Main window width */ #define PREF_WINDOW_WIDTH "window_width" #define PREF_WINDOW_WIDTH_DEFAULT 600 /* Main window height */ #define PREF_WINDOW_HEIGHT "window_height" #define PREF_WINDOW_HEIGHT_DEFAULT 600 /* If true, the main window is maximized */ #define PREF_WINDOW_MAXIMIZED "window_maximized" #define PREF_WINDOW_MAXIMIZED_DEFAULT TRUE /* If true, the statusbar is hidden */ #define PREF_STATUSBAR_HIDDEN "statusbar_hidden" #define PREF_STATUSBAR_HIDDEN_DEFAULT FALSE /* If true, the different music sources are hidden */ #define PREF_UPPERPART_HIDDEN "upperpart_hidden" #define PREF_UPPERPART_HIDDEN_DEFAULT FALSE /* If true, the playlist is hidden */ #define PREF_PLAYLIST_HIDDEN "playlist_hidden" #define PREF_PLAYLIST_HIDDEN_DEFAULT FALSE /* Position of main window pane */ #define PREF_VPANED_POSITION "vpaned_position" #define PREF_VPANED_POSITION_DEFAULT 400 /* Position of playlists pane */ #define PREF_PLAYLISTS_HPANED_SIZE "playlists_hpaned_position" #define PREF_PLAYLISTS_HPANED_SIZE_DEFAULT 250 /* Position of filesystem pane */ #define PREF_FILSYSTEM_HPANED_SIZE "filesystem_hpaned_position" #define PREF_FILSYSTEM_HPANED_SIZE_DEFAULT 250 /* Define the source used in Ario (0 for the library, 1 for the radios, etc..) */ #define PREF_SOURCE "source" #define PREF_SOURCE_DEFAULT 0 /* Pixbuf column properties */ #define PREF_PIXBUF_COLUMN_ORDER "pixbuf_column_order" #define PREF_PIXBUF_COLUMN_ORDER_DEFAULT 1 /* Track column properties */ #define PREF_TRACK_COLUMN_SIZE "track_column_size" #define PREF_TRACK_COLUMN_SIZE_DEFAULT 50 #define PREF_TRACK_COLUMN_VISIBLE "track_column_visible" #define PREF_TRACK_COLUMN_VISIBLE_DEFAULT TRUE #define PREF_TRACK_COLUMN_ORDER "track_column_order" #define PREF_TRACK_COLUMN_ORDER_DEFAULT 2 /* Title column properties */ #define PREF_TITLE_COLUMN_SIZE "title_column_size" #define PREF_TITLE_COLUMN_SIZE_DEFAULT 200 #define PREF_TITLE_COLUMN_VISIBLE "title_column_visible" #define PREF_TITLE_COLUMN_VISIBLE_DEFAULT TRUE #define PREF_TITLE_COLUMN_ORDER "title_column_order" #define PREF_TITLE_COLUMN_ORDER_DEFAULT 3 /* Artist column properties */ #define PREF_ARTIST_COLUMN_SIZE "artist_column_size" #define PREF_ARTIST_COLUMN_SIZE_DEFAULT 200 #define PREF_ARTIST_COLUMN_VISIBLE "artist_column_visible" #define PREF_ARTIST_COLUMN_VISIBLE_DEFAULT TRUE #define PREF_ARTIST_COLUMN_ORDER "artist_column_order" #define PREF_ARTIST_COLUMN_ORDER_DEFAULT 4 /* Album column properties */ #define PREF_ALBUM_COLUMN_SIZE "album_column_size" #define PREF_ALBUM_COLUMN_SIZE_DEFAULT 200 #define PREF_ALBUM_COLUMN_VISIBLE "album_column_visible" #define PREF_ALBUM_COLUMN_VISIBLE_DEFAULT TRUE #define PREF_ALBUM_COLUMN_ORDER "album_column_order" #define PREF_ALBUM_COLUMN_ORDER_DEFAULT 5 /* Duration column properties */ #define PREF_DURATION_COLUMN_SIZE "duration_column_size" #define PREF_DURATION_COLUMN_SIZE_DEFAULT 50 #define PREF_DURATION_COLUMN_VISIBLE "duration_column_visible" #define PREF_DURATION_COLUMN_VISIBLE_DEFAULT TRUE #define PREF_DURATION_COLUMN_ORDER "duration_column_order" #define PREF_DURATION_COLUMN_ORDER_DEFAULT 6 /* File column properties */ #define PREF_FILE_COLUMN_SIZE "file_column_size" #define PREF_FILE_COLUMN_SIZE_DEFAULT 200 #define PREF_FILE_COLUMN_VISIBLE "file_column_visible" #define PREF_FILE_COLUMN_VISIBLE_DEFAULT FALSE #define PREF_FILE_COLUMN_ORDER "file_column_order" #define PREF_FILE_COLUMN_ORDER_DEFAULT 7 /* Genre column properties */ #define PREF_GENRE_COLUMN_SIZE "genre_column_size" #define PREF_GENRE_COLUMN_SIZE_DEFAULT 200 #define PREF_GENRE_COLUMN_VISIBLE "genre_column_visible" #define PREF_GENRE_COLUMN_VISIBLE_DEFAULT FALSE #define PREF_GENRE_COLUMN_ORDER "genre_column_order" #define PREF_GENRE_COLUMN_ORDER_DEFAULT 8 /* Date column properties */ #define PREF_DATE_COLUMN_SIZE "date_column_size" #define PREF_DATE_COLUMN_SIZE_DEFAULT 70 #define PREF_DATE_COLUMN_VISIBLE "date_column_visible" #define PREF_DATE_COLUMN_VISIBLE_DEFAULT FALSE #define PREF_DATE_COLUMN_ORDER "date_column_order" #define PREF_DATE_COLUMN_ORDER_DEFAULT 9 /* Disc column properties */ #define PREF_DISC_COLUMN_SIZE "disc_column_size" #define PREF_DISC_COLUMN_SIZE_DEFAULT 70 #define PREF_DISC_COLUMN_VISIBLE "disc_column_visible" #define PREF_DISC_COLUMN_VISIBLE_DEFAULT FALSE #define PREF_DISC_COLUMN_ORDER "disc_column_order" #define PREF_DISC_COLUMN_ORDER_DEFAULT 10 /* List of active plugins. It contains the "Location" of the active plugins. See the .ario-plugin file for obtaining the "Location" of a given plugin. */ #define PREF_PLUGINS_LIST "active-plugins" #ifdef ENABLE_LIBNOTIFY #define PREF_PLUGINS_LIST_DEFAULT "filesystem,radios,wikipedia,liblibnotify" #else #define PREF_PLUGINS_LIST_DEFAULT "filesystem,radios,wikipedia" #endif /* Ordered list of sources */ #define PREF_SOURCE_LIST "sources-order" #define PREF_SOURCE_LIST_DEFAULT "library,search,radios,storedplaylists,filesystem" /* Ordered list of covers providers */ #define PREF_COVER_PROVIDERS_LIST "cover-providers" #define PREF_COVER_PROVIDERS_LIST_DEFAULT "local,lastfm" /* List of active covers providers */ #define PREF_COVER_ACTIVE_PROVIDERS_LIST "active-cover-providers" #define PREF_COVER_ACTIVE_PROVIDERS_LIST_DEFAULT "local,lastfm" /* Ordered list of lyrics providers */ #define PREF_LYRICS_PROVIDERS_LIST "lyrics-providers" #define PREF_LYRICS_PROVIDERS_LIST_DEFAULT "letras" /* List of active lyrics providers */ #define PREF_LYRICS_ACTIVE_PROVIDERS_LIST "active-lyrics-providers" #define PREF_LYRICS_ACTIVE_PROVIDERS_LIST_DEFAULT "letras" /* If true, Ario windows is hidden when closed */ #define PREF_HIDE_ON_CLOSE "hide-on-close" #define PREF_HIDE_ON_CLOSE_DEFAULT FALSE /* Define how albums are sorted (alphabetically, by year, ...) */ #define PREF_ALBUM_SORT "album-sort" #define PREF_ALBUM_SORT_DEFAULT SORT_ALPHABETICALLY /* If true, the playlist automaticaly scrolls to the playing song */ #define PREF_PLAYLIST_AUTOSCROLL "playlist_autoscroll" #define PREF_PLAYLIST_AUTOSCROLL_DEFAULT FALSE /* If true, a notification window appears when the song changes */ #define PREF_HAVE_NOTIFICATION "notification" #define PREF_HAVE_NOTIFICATION_DEFAULT FALSE /* The notifier id */ #define PREF_NOTIFIER "notifier" #ifdef ENABLE_LIBNOTIFY #define PREF_NOTIFIER_DEFAULT "libnotify" #else #define PREF_NOTIFIER_DEFAULT "tooltip" #endif /* The duration of the notification (in seconds) */ #define PREF_NOTIFICATION_TIME "notification-time" #define PREF_NOTIFICATION_TIME_DEFAULT 5 /* If true, Ario can have only one instance launched at the same time */ #define PREF_ONE_INSTANCE "one-instance" #define PREF_ONE_INSTANCE_DEFAULT TRUE /* If true, the tray icon is showed */ #define PREF_TRAY_ICON "tray-icon" #define PREF_TRAY_ICON_DEFAULT TRUE /* The different lists used in the library browser (0 for artist, 1 for album, 2 for title...) */ #define PREF_BROWSER_TREES "browser-trees" #define PREF_BROWSER_TREES_DEFAULT "0,1,3" /* If true, Ario asks to SERVER to update the database when it is started */ #define PREF_UPDATE_STARTUP "update-startup" #define PREF_UPDATE_STARTUP_DEFAULT FALSE /* If true, Ario stops the music on exit */ #define PREF_STOP_EXIT "stop-exit" #define PREF_STOP_EXIT_DEFAULT FALSE /* Playlist Mode */ #define PREF_PLAYLIST_MODE "playlist-mode" #define PREF_PLAYLIST_MODE_DEFAULT "normal" /* Number of songs added to the playlist in dynamic mode*/ #define PREF_DYNAMIC_NBITEMS "dynamic-nbitems" #define PREF_DYNAMIC_NBITEMS_DEFAULT 10 /* Type of songs added to the playlist in dynamic mode*/ #define PREF_DYNAMIC_TYPE "dynamic-type" #define PREF_DYNAMIC_TYPE_DEFAULT 0 /* Playlist position */ #define PREF_PLAYLIST_POSITION "playlist-position" #define PREF_PLAYLIST_POSITION_DEFAULT 0 enum { TRAY_ICON_PLAY_PAUSE, TRAY_ICON_NEXT_SONG, TRAY_ICON_MUTE, TRAY_ICON_DO_NOTHING, TRAY_ICON_N_BEHAVIOR }; enum { SORT_ALPHABETICALLY, SORT_YEAR, SORT_N_BEHAVIOR }; enum { PLAYLIST_POSITION_BELOW, PLAYLIST_POSITION_RIGHT, PLAYLIST_POSITION_INSIDE, PLAYLIST_POSITION_N_BEHAVIOR }; #endif /* __ARIO_PREFERENCES_H */ ario-1.6/src/preferences/ario-playlist-preferences.h0000644000175000017500000000413113226723431017566 00000000000000/* * Copyright (C) 2009 Marc Pavot * * 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, 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * */ #ifndef __ARIO_PLAYLIST_PREFERENCES_H #define __ARIO_PLAYLIST_PREFERENCES_H #include #include G_BEGIN_DECLS #define TYPE_ARIO_PLAYLIST_PREFERENCES (ario_playlist_preferences_get_type ()) #define ARIO_PLAYLIST_PREFERENCES(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), TYPE_ARIO_PLAYLIST_PREFERENCES, ArioPlaylistPreferences)) #define ARIO_PLAYLIST_PREFERENCES_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), TYPE_ARIO_PLAYLIST_PREFERENCES, ArioPlaylistPreferencesClass)) #define IS_ARIO_PLAYLIST_PREFERENCES(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), TYPE_ARIO_PLAYLIST_PREFERENCES)) #define IS_ARIO_PLAYLIST_PREFERENCES_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), TYPE_ARIO_PLAYLIST_PREFERENCES)) #define ARIO_PLAYLIST_PREFERENCES_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), TYPE_ARIO_PLAYLIST_PREFERENCES, ArioPlaylistPreferencesClass)) typedef struct ArioPlaylistPreferencesPrivate ArioPlaylistPreferencesPrivate; typedef struct { GtkBox parent; ArioPlaylistPreferencesPrivate *priv; } ArioPlaylistPreferences; typedef struct { GtkBoxClass parent_class; } ArioPlaylistPreferencesClass; GType ario_playlist_preferences_get_type (void) G_GNUC_CONST; GtkWidget * ario_playlist_preferences_new (void); G_END_DECLS #endif /* __ARIO_PLAYLIST_PREFERENCES_H */ ario-1.6/src/preferences/ario-others-preferences.c0000644000175000017500000002672613226723431017242 00000000000000/* * Copyright (C) 2005 Marc Pavot * * 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, 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * */ #include "preferences/ario-others-preferences.h" #include #include #include #include #include #include #include "preferences/ario-preferences.h" #include "lib/gtk-builder-helpers.h" #include "lib/ario-conf.h" #include "ario-debug.h" static void ario_others_preferences_sync_others (ArioOthersPreferences *others_preferences); G_MODULE_EXPORT void ario_others_preferences_showtabs_check_changed_cb (GtkCheckButton *butt, ArioOthersPreferences *others_preferences); G_MODULE_EXPORT void ario_others_preferences_hideonclose_check_changed_cb (GtkCheckButton *butt, ArioOthersPreferences *others_preferences); G_MODULE_EXPORT void ario_others_preferences_oneinstance_check_changed_cb (GtkCheckButton *butt, ArioOthersPreferences *others_preferences); G_MODULE_EXPORT void ario_others_preferences_proxy_address_changed_cb (GtkWidget *widget, ArioOthersPreferences *others_preferences); G_MODULE_EXPORT void ario_others_preferences_proxy_port_changed_cb (GtkWidget *widget, ArioOthersPreferences *others_preferences); G_MODULE_EXPORT void ario_others_preferences_proxy_check_changed_cb (GtkCheckButton *butt, ArioOthersPreferences *others_preferences); G_MODULE_EXPORT void ario_others_preferences_playlist_position_changed_cb (GtkRadioButton *butt, ArioOthersPreferences *others_preferences); struct ArioOthersPreferencesPrivate { GtkWidget *showtabs_check; GtkWidget *hideonclose_check; GtkWidget *oneinstance_check; GtkWidget *proxy_check; GtkWidget *proxy_address_entry; GtkWidget *proxy_port_spinbutton; GtkWidget *below_radiobutton; GtkWidget *right_radiobutton; GtkWidget *in_radiobutton; }; #define ARIO_OTHERS_PREFERENCES_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_ARIO_OTHERS_PREFERENCES, ArioOthersPreferencesPrivate)) G_DEFINE_TYPE (ArioOthersPreferences, ario_others_preferences, GTK_TYPE_BOX) static void ario_others_preferences_class_init (ArioOthersPreferencesClass *klass) { ARIO_LOG_FUNCTION_START; g_type_class_add_private (klass, sizeof (ArioOthersPreferencesPrivate)); } static void ario_others_preferences_init (ArioOthersPreferences *others_preferences) { ARIO_LOG_FUNCTION_START; others_preferences->priv = ARIO_OTHERS_PREFERENCES_GET_PRIVATE (others_preferences); } GtkWidget * ario_others_preferences_new (void) { ARIO_LOG_FUNCTION_START; ArioOthersPreferences *others_preferences; GtkBuilder *builder; others_preferences = g_object_new (TYPE_ARIO_OTHERS_PREFERENCES, NULL); g_return_val_if_fail (others_preferences->priv != NULL, NULL); gtk_orientable_set_orientation (GTK_ORIENTABLE (others_preferences), GTK_ORIENTATION_VERTICAL); builder = gtk_builder_helpers_new (UI_PATH "others-prefs.ui", others_preferences); others_preferences->priv->showtabs_check = GTK_WIDGET (gtk_builder_get_object (builder, "showtabs_checkbutton")); others_preferences->priv->hideonclose_check = GTK_WIDGET (gtk_builder_get_object (builder, "hideonclose_checkbutton")); others_preferences->priv->oneinstance_check = GTK_WIDGET (gtk_builder_get_object (builder, "instance_checkbutton")); others_preferences->priv->proxy_check = GTK_WIDGET (gtk_builder_get_object (builder, "proxy_checkbutton")); others_preferences->priv->proxy_address_entry = GTK_WIDGET (gtk_builder_get_object (builder, "proxy_address_entry")); others_preferences->priv->proxy_port_spinbutton = GTK_WIDGET (gtk_builder_get_object (builder, "proxy_port_spinbutton")); others_preferences->priv->below_radiobutton = GTK_WIDGET (gtk_builder_get_object (builder, "pl_below_radiobutton")); others_preferences->priv->right_radiobutton = GTK_WIDGET (gtk_builder_get_object (builder, "pl_right_radiobutton")); others_preferences->priv->in_radiobutton = GTK_WIDGET (gtk_builder_get_object (builder, "pl_in_radiobutton")); gtk_image_set_from_icon_name (GTK_IMAGE (gtk_builder_get_object (builder, "pl_below_image")), "pl-below", GTK_ICON_SIZE_LARGE_TOOLBAR); gtk_image_set_from_icon_name (GTK_IMAGE (gtk_builder_get_object (builder, "pl_right_image")), "pl-right", GTK_ICON_SIZE_LARGE_TOOLBAR); gtk_image_set_from_icon_name (GTK_IMAGE (gtk_builder_get_object (builder, "pl_in_image")), "pl-inside", GTK_ICON_SIZE_LARGE_TOOLBAR); gtk_builder_helpers_boldify_label (builder, "interface_label"); gtk_builder_helpers_boldify_label (builder, "proxy_frame_label"); ario_others_preferences_sync_others (others_preferences); gtk_box_pack_start (GTK_BOX (others_preferences), GTK_WIDGET (gtk_builder_get_object (builder, "others_vbox")), TRUE, TRUE, 0); g_object_unref (builder); return GTK_WIDGET (others_preferences); } static void ario_others_preferences_sync_others (ArioOthersPreferences *others_preferences) { ARIO_LOG_FUNCTION_START; const char *proxy_address; int proxy_port; int playlist_posistion; gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (others_preferences->priv->showtabs_check), ario_conf_get_boolean (PREF_SHOW_TABS, PREF_SHOW_TABS_DEFAULT)); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (others_preferences->priv->hideonclose_check), ario_conf_get_boolean (PREF_HIDE_ON_CLOSE, PREF_HIDE_ON_CLOSE_DEFAULT)); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (others_preferences->priv->oneinstance_check), ario_conf_get_boolean (PREF_ONE_INSTANCE, PREF_ONE_INSTANCE_DEFAULT)); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (others_preferences->priv->proxy_check), ario_conf_get_boolean (PREF_USE_PROXY, PREF_USE_PROXY_DEFAULT)); proxy_address = ario_conf_get_string (PREF_PROXY_ADDRESS, PREF_PROXY_ADDRESS_DEFAULT); proxy_port = ario_conf_get_integer (PREF_PROXY_PORT, PREF_PROXY_PORT_DEFAULT); gtk_entry_set_text (GTK_ENTRY (others_preferences->priv->proxy_address_entry), proxy_address); gtk_spin_button_set_value (GTK_SPIN_BUTTON (others_preferences->priv->proxy_port_spinbutton), (gdouble) proxy_port); playlist_posistion = ario_conf_get_integer (PREF_PLAYLIST_POSITION, PREF_PLAYLIST_POSITION_DEFAULT); if (playlist_posistion == PLAYLIST_POSITION_INSIDE) gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (others_preferences->priv->in_radiobutton), TRUE); else if (playlist_posistion == PLAYLIST_POSITION_RIGHT) gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (others_preferences->priv->right_radiobutton), TRUE); else gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (others_preferences->priv->below_radiobutton), TRUE); } void ario_others_preferences_showtabs_check_changed_cb (GtkCheckButton *butt, ArioOthersPreferences *others_preferences) { ARIO_LOG_FUNCTION_START; ario_conf_set_boolean (PREF_SHOW_TABS, gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (others_preferences->priv->showtabs_check))); } void ario_others_preferences_hideonclose_check_changed_cb (GtkCheckButton *butt, ArioOthersPreferences *others_preferences) { ARIO_LOG_FUNCTION_START; ario_conf_set_boolean (PREF_HIDE_ON_CLOSE, gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (others_preferences->priv->hideonclose_check))); } void ario_others_preferences_oneinstance_check_changed_cb (GtkCheckButton *butt, ArioOthersPreferences *others_preferences) { ARIO_LOG_FUNCTION_START; ario_conf_set_boolean (PREF_ONE_INSTANCE, gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (others_preferences->priv->oneinstance_check))); } void ario_others_preferences_proxy_address_changed_cb (GtkWidget *widget, ArioOthersPreferences *others_preferences) { ARIO_LOG_FUNCTION_START; ario_conf_set_string (PREF_PROXY_ADDRESS, gtk_entry_get_text (GTK_ENTRY (others_preferences->priv->proxy_address_entry))); } void ario_others_preferences_proxy_port_changed_cb (GtkWidget *widget, ArioOthersPreferences *others_preferences) { ARIO_LOG_FUNCTION_START; gdouble port = gtk_spin_button_get_value (GTK_SPIN_BUTTON (others_preferences->priv->proxy_port_spinbutton)); ario_conf_set_integer (PREF_PROXY_PORT, (int) port); } void ario_others_preferences_proxy_check_changed_cb (GtkCheckButton *butt, ArioOthersPreferences *others_preferences) { ARIO_LOG_FUNCTION_START; gboolean active; active = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (others_preferences->priv->proxy_check)); ario_conf_set_boolean (PREF_USE_PROXY, active); gtk_widget_set_sensitive (others_preferences->priv->proxy_address_entry, active); gtk_widget_set_sensitive (others_preferences->priv->proxy_port_spinbutton, active); } void ario_others_preferences_playlist_position_changed_cb (GtkRadioButton *butt, ArioOthersPreferences *others_preferences) { if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (others_preferences->priv->in_radiobutton))) ario_conf_set_integer (PREF_PLAYLIST_POSITION, PLAYLIST_POSITION_INSIDE); else if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (others_preferences->priv->right_radiobutton))) ario_conf_set_integer (PREF_PLAYLIST_POSITION, PLAYLIST_POSITION_RIGHT); else ario_conf_set_integer (PREF_PLAYLIST_POSITION, PLAYLIST_POSITION_BELOW); } ario-1.6/src/Makefile.am0000644000175000017500000001453413226723431012070 00000000000000BUILT_SOURCES = bin_PROGRAMS = ario noinst_LTLIBRARIES = libario.la INCLUDES = $(WARNINGS) ario_SOURCES = ario-main.c ario_LDADD = libario.la $(DEPS_LIBS) libario_la_LIBADD = \ $(DEPS_LIBS)\ $(AVAHI_LIBS)\ $(LIBMPDCLIENT2_LIBS)\ $(TAGLIB_LIBS)\ $(XMMS2_LIBS)\ $(LIBGCRYPT_LIBS) libario_la_SOURCES = \ ario-enum-types.c\ ario-enum-types.h\ ario-debug.h\ ario-profiles.c\ ario-profiles.h\ ario-util.c\ ario-util.h\ covers/ario-cover.c\ covers/ario-cover.h\ covers/ario-cover-handler.c\ covers/ario-cover-handler.h\ covers/ario-cover-lastfm.c\ covers/ario-cover-lastfm.h\ covers/ario-cover-local.c\ covers/ario-cover-local.h\ covers/ario-cover-manager.c\ covers/ario-cover-manager.h\ covers/ario-cover-provider.c\ covers/ario-cover-provider.h\ lib/ario-conf.c\ lib/ario-conf.h\ lib/gtk-builder-helpers.c\ lib/gtk-builder-helpers.h\ lyrics/ario-lyrics-letras.c\ lyrics/ario-lyrics-letras.h\ lyrics/ario-lyrics-manager.c\ lyrics/ario-lyrics-manager.h\ lyrics/ario-lyrics-provider.c\ lyrics/ario-lyrics-provider.h\ lyrics/ario-lyrics.c\ lyrics/ario-lyrics.h\ notification/ario-notification-manager.c\ notification/ario-notification-manager.h\ notification/ario-notifier.c\ notification/ario-notifier.h\ notification/ario-notifier-gnotif.c\ notification/ario-notifier-gnotif.h\ playlist/ario-playlist-manager.c\ playlist/ario-playlist-manager.h\ playlist/ario-playlist-mode.c\ playlist/ario-playlist-mode.h\ playlist/ario-playlist-normal.c\ playlist/ario-playlist-normal.h\ playlist/ario-playlist-queue.c\ playlist/ario-playlist-queue.h\ playlist/ario-playlist-dynamic.c\ playlist/ario-playlist-dynamic.h\ plugins/ario-module.c\ plugins/ario-module.h\ plugins/ario-plugin.c\ plugins/ario-plugin.h\ plugins/ario-plugin-info.c\ plugins/ario-plugin-info.h\ plugins/ario-plugin-info-priv.h\ plugins/ario-plugin-manager.c\ plugins/ario-plugin-manager.h\ plugins/ario-plugins-engine.c\ plugins/ario-plugins-engine.h\ preferences/ario-browser-preferences.c\ preferences/ario-browser-preferences.h\ preferences/ario-connection-preferences.c\ preferences/ario-connection-preferences.h\ preferences/ario-cover-preferences.c\ preferences/ario-cover-preferences.h\ preferences/ario-lyrics-preferences.c\ preferences/ario-lyrics-preferences.h\ preferences/ario-others-preferences.c\ preferences/ario-others-preferences.h\ preferences/ario-playlist-preferences.c\ preferences/ario-playlist-preferences.h\ preferences/ario-server-preferences.c\ preferences/ario-server-preferences.h\ preferences/ario-stats-preferences.c\ preferences/ario-stats-preferences.h\ preferences/ario-preferences.h\ servers/ario-server.c\ servers/ario-server.h\ servers/ario-server-interface.c\ servers/ario-server-interface.h\ sources/ario-browser.c\ sources/ario-browser.h\ sources/ario-tree.c\ sources/ario-tree.h\ sources/ario-tree-albums.c\ sources/ario-tree-albums.h\ sources/ario-tree-songs.c\ sources/ario-tree-songs.h\ sources/ario-search.c\ sources/ario-search.h\ sources/ario-source.c\ sources/ario-source.h\ sources/ario-source-manager.c\ sources/ario-source-manager.h\ sources/ario-storedplaylists.c\ sources/ario-storedplaylists.h\ shell/ario-shell.c\ shell/ario-shell.h\ shell/ario-shell-coverdownloader.c\ shell/ario-shell-coverdownloader.h\ shell/ario-shell-coverselect.c\ shell/ario-shell-coverselect.h\ shell/ario-shell-lyrics.c\ shell/ario-shell-lyrics.h\ shell/ario-shell-lyricsselect.c\ shell/ario-shell-lyricsselect.h\ shell/ario-shell-preferences.c\ shell/ario-shell-preferences.h\ shell/ario-shell-songinfos.c\ shell/ario-shell-songinfos.h\ shell/ario-shell-similarartists.c\ shell/ario-shell-similarartists.h\ widgets/ario-connection-widget.c\ widgets/ario-connection-widget.h\ widgets/ario-dnd-tree.c\ widgets/ario-dnd-tree.h\ widgets/ario-firstlaunch.c\ widgets/ario-firstlaunch.h\ widgets/ario-header.c\ widgets/ario-header.h\ widgets/ario-lyrics-editor.c\ widgets/ario-lyrics-editor.h\ widgets/ario-playlist.c\ widgets/ario-playlist.h\ widgets/ario-songlist.c\ widgets/ario-songlist.h\ widgets/ario-status-bar.c\ widgets/ario-status-bar.h\ widgets/ario-volume.c\ widgets/ario-volume.h if USE_AVAHI libario_la_SOURCES += ario-avahi.c\ ario-avahi.h endif if USE_LIBMPDCLIENT2 libario_la_SOURCES += servers/ario-mpd2.c\ servers/ario-mpd2.h else libario_la_SOURCES += servers/ario-mpd.c\ servers/ario-mpd.h\ lib/libmpdclient.c\ lib/libmpdclient.h endif if USE_XMMS2 libario_la_SOURCES += servers/ario-xmms.c\ servers/ario-xmms.h endif if ENABLE_PYTHON ario_SOURCES += plugins/ario-python-module.c\ plugins/ario-python-module.h\ plugins/ario-python-plugin.c\ plugins/ario-python-plugin.h INCLUDES += \ $(NO_STRICT_ALIASING_CFLAGS) \ $(PYGTK_CFLAGS) \ $(PYTHON_CFLAGS) \ $(AM_CFLAGS) libario_la_LIBADD += \ $(top_builddir)/bindings/python/ario.la endif INST_H_FILES = \ plugins/ario-plugin.h \ servers/ario-server.h \ sources/ario-source-manager.h \ sources/ario-source.h \ shell/ario-shell.h regenerate-enum-types: (cd $(srcdir) && $(GLIB_MKENUMS) --template ario-enum-types.h.template $(INST_H_FILES)) > ario-enum-types.h (cd $(srcdir) && $(GLIB_MKENUMS) --template ario-enum-types.c.template $(INST_H_FILES)) > ario-enum-types.c AM_CPPFLAGS = \ $(DEPS_CFLAGS) \ $(AVAHI_CFLAGS) \ $(LIBMPDCLIENT2_CFLAGS) \ $(TAGLIB_CFLAGS) \ $(LIBGCRYPT_CFLAGS) \ $(XMMS2_CFLAGS) \ -DLOCALE_DIR=\""$(datadir)/locale"\"\ -DPIXMAP_PATH=\""$(pkgdatadir)/art/"\"\ -DDATA_PATH=\""$(pkgdatadir)/data/"\"\ -DUI_PATH=\""$(pkgdatadir)/ui/"\"\ -DARIO_PLUGIN_DIR=\"$(PLUGINDIR)\"\ -DARIO_PLUGIN_DATA_DIR=\"$(PLUGIN_DATA_DIR)\"\ -DCURRENT_DATE="\"`date +%G`\"" if MPD_GLIB AM_CPPFLAGS += -DMPD_GLIB endif AUTHORS.tab : $(top_srcdir)/AUTHORS sed -e 's/^/"/' -e 's/$$/",/' < $(top_srcdir)/AUTHORS > $@.tmp mv $@.tmp $@ BUILT_SOURCES += AUTHORS.tab CLEANFILES = $(BUILT_SOURCES) ario-1.6/src/ario-main.c0000644000175000017500000001100113226743774012052 00000000000000/* * Copyright (C) 2005 Marc Pavot * * 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, 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * */ #include #include #include #include #include #include #include #include #include "lib/ario-conf.h" #include "preferences/ario-preferences.h" #include "shell/ario-shell.h" #include "plugins/ario-plugins-engine.h" #include "ario-util.h" #include "ario-debug.h" #include "ario-profiles.h" #ifdef WIN32 #include #endif static ArioShell *shell = NULL; static gboolean minimized = FALSE; static void activate (GtkApplication *app) { ario_shell_present (shell); } int main (int argc, char *argv[]) { ARIO_LOG_FUNCTION_START; GError *error = NULL; gint status = 0; /* Parse options */ GOptionContext *context; gchar *profile = NULL; const GOptionEntry options [] = { { "minimized", 'm', 0, G_OPTION_ARG_NONE, &minimized, N_("Start minimized window"), NULL }, { "profile", 'p', 0, G_OPTION_ARG_STRING, &profile, N_("Start with specific profile"), NULL }, { NULL, 0, 0, 0, NULL, NULL, NULL } }; context = g_option_context_new (NULL); g_option_context_add_main_entries (context, options, GETTEXT_PACKAGE); g_option_context_add_group (context, gtk_get_option_group (TRUE)); if (!g_option_context_parse (context, &argc, &argv, &error)) { g_print ("option parsing failed: %s\n", error->message); exit (1); } g_option_context_free (context); /* Initialisation of configurations engine */ ario_conf_init (); /* Check in an instance of Ario is already running */ #ifdef WIN32 HANDLE hMutex; hMutex = CreateMutex (NULL, FALSE, "ArioMain"); if (ario_conf_get_boolean (PREF_ONE_INSTANCE, PREF_ONE_INSTANCE_DEFAULT) && (GetLastError() == ERROR_ALREADY_EXISTS)) { ARIO_LOG_INFO ("Ario is already running\n"); return 0; } #endif /* Initialisation of translation */ #ifdef ENABLE_NLS setlocale (LC_ALL, ""); bindtextdomain (GETTEXT_PACKAGE, LOCALE_DIR); bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8"); textdomain (GETTEXT_PACKAGE); #endif /* Register Ario icons */ ario_util_init_icons (); /* Initialisation of Curl */ curl_global_init (CURL_GLOBAL_WIN32); #ifndef WIN32 /* Set a specific profile */ if (profile) ario_profiles_set_current_by_name (profile); #endif /* Creates Ario main window */ GtkApplication *app; app = gtk_application_new ("org.Ario", G_APPLICATION_FLAGS_NONE); g_application_register (G_APPLICATION (app), NULL, NULL); if (g_application_get_is_remote (G_APPLICATION (app))) { g_application_activate (G_APPLICATION (app)); g_object_unref (app); return 0; } shell = ario_shell_new (app); gtk_window_set_application (GTK_WINDOW (shell), app); ario_shell_construct (shell, minimized); g_signal_connect (app, "activate", G_CALLBACK (activate), NULL); /* Initialisation of plugins engine */ ario_plugins_engine_init (shell); /* Starts GTK main loop */ status = g_application_run (G_APPLICATION (app), argc, argv); /* Shutdown main window */ ario_shell_shutdown (shell); gtk_widget_destroy (GTK_WIDGET (shell)); /* Shutdown plugins engine */ ario_plugins_engine_shutdown (); /* Shutdown configurations engine */ ario_conf_shutdown (); #ifndef WIN32 g_object_unref (app); #endif /* Clean libxml stuff */ xmlCleanupParser (); return status; } ario-1.6/src/covers/0000755000175000017500000000000013226745613011414 500000000000000ario-1.6/src/covers/ario-cover-lastfm.h0000644000175000017500000000352513226723432015037 00000000000000/* * Copyright (C) 2004,2005 Marc Pavot * * 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * */ #ifndef __ARIO_COVER_LASTFM_H #define __ARIO_COVER_LASTFM_H #include "covers/ario-cover-provider.h" G_BEGIN_DECLS #define TYPE_ARIO_COVER_LASTFM (ario_cover_lastfm_get_type ()) #define ARIO_COVER_LASTFM(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), TYPE_ARIO_COVER_LASTFM, ArioCoverLastfm)) #define ARIO_COVER_LASTFM_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), TYPE_ARIO_COVER_LASTFM, ArioCoverLastfmClass)) #define IS_ARIO_COVER_LASTFM(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), TYPE_ARIO_COVER_LASTFM)) #define IS_ARIO_COVER_LASTFM_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), TYPE_ARIO_COVER_LASTFM)) #define ARIO_COVER_LASTFM_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), TYPE_ARIO_COVER_LASTFM, ArioCoverLastfmClass)) typedef struct { ArioCoverProvider parent; } ArioCoverLastfm; typedef struct { ArioCoverProviderClass parent; } ArioCoverLastfmClass; GType ario_cover_lastfm_get_type (void) G_GNUC_CONST; ArioCoverProvider* ario_cover_lastfm_new (void); G_END_DECLS #endif /* __ARIO_COVER_LASTFM_H */ ario-1.6/src/covers/ario-cover-provider.c0000644000175000017500000000661113226723432015375 00000000000000/* * Copyright (C) 2008 Marc Pavot * * 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, 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * */ #include "covers/ario-cover-provider.h" #include #include "ario-debug.h" G_DEFINE_TYPE (ArioCoverProvider, ario_cover_provider, G_TYPE_OBJECT) static gboolean dummy_boolean (ArioCoverProvider *cover_provider, const char *artist, const char *album, const char *file, GArray **file_size, GSList **file_contents, ArioCoverProviderOperation operation) { return FALSE; } static gchar * dummy_char (ArioCoverProvider *cover_provider) { return NULL; } static void ario_cover_provider_class_init (ArioCoverProviderClass *klass) { klass->get_id = dummy_char; klass->get_name = dummy_char; klass->get_covers = dummy_boolean; } static void ario_cover_provider_init (ArioCoverProvider *cover_provider) { cover_provider->is_active = FALSE; } gchar * ario_cover_provider_get_id (ArioCoverProvider *cover_provider) { g_return_val_if_fail (ARIO_IS_COVER_PROVIDER (cover_provider), FALSE); return ARIO_COVER_PROVIDER_GET_CLASS (cover_provider)->get_id (cover_provider); } gchar * ario_cover_provider_get_name (ArioCoverProvider *cover_provider) { g_return_val_if_fail (ARIO_IS_COVER_PROVIDER (cover_provider), FALSE); return ARIO_COVER_PROVIDER_GET_CLASS (cover_provider)->get_name (cover_provider); } gboolean ario_cover_provider_get_covers (ArioCoverProvider *cover_provider, const char *artist, const char *album, const char *file, GArray **file_size, GSList **file_contents, ArioCoverProviderOperation operation) { g_return_val_if_fail (ARIO_IS_COVER_PROVIDER (cover_provider), FALSE); return ARIO_COVER_PROVIDER_GET_CLASS (cover_provider)->get_covers (cover_provider, artist, album, file, file_size, file_contents, operation); } gboolean ario_cover_provider_is_active (ArioCoverProvider *cover_provider) { ARIO_LOG_FUNCTION_START; return cover_provider->is_active; } void ario_cover_provider_set_active (ArioCoverProvider *cover_provider, gboolean is_active) { ARIO_LOG_FUNCTION_START; cover_provider->is_active = is_active; } ario-1.6/src/covers/ario-cover-local.c0000644000175000017500000001172213226723432014634 00000000000000/* * Copyright (C) 2004,2005 Marc Pavot * * 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * */ #include "covers/ario-cover-local.h" #include #include #include #include "covers/ario-cover.h" #include "ario-util.h" #include "ario-profiles.h" #include "ario-debug.h" gboolean ario_cover_local_get_covers (ArioCoverProvider *cover_provider, const char *artist, const char *album, const char *file, GArray **file_size, GSList **file_contents, ArioCoverProviderOperation operation); G_DEFINE_TYPE (ArioCoverLocal, ario_cover_local, ARIO_TYPE_COVER_PROVIDER) static gchar * ario_cover_local_get_id (ArioCoverProvider *cover_provider) { return "local"; } static gchar * ario_cover_local_get_name (ArioCoverProvider *cover_provider) { return _("Music Directory"); } static void ario_cover_local_class_init (ArioCoverLocalClass *klass) { ARIO_LOG_FUNCTION_START; ArioCoverProviderClass *cover_provider_class = ARIO_COVER_PROVIDER_CLASS (klass); cover_provider_class->get_id = ario_cover_local_get_id; cover_provider_class->get_name = ario_cover_local_get_name; cover_provider_class->get_covers = ario_cover_local_get_covers; } static void ario_cover_local_init (ArioCoverLocal *cover_local) { ARIO_LOG_FUNCTION_START; } ArioCoverProvider* ario_cover_local_new (void) { ARIO_LOG_FUNCTION_START; ArioCoverLocal *local; local = g_object_new (TYPE_ARIO_COVER_LOCAL, NULL); return ARIO_COVER_PROVIDER (local); } gboolean ario_cover_local_get_covers (ArioCoverProvider *cover_provider, const char *artist, const char *album, const char *file, GArray **file_size, GSList **file_contents, ArioCoverProviderOperation operation) { ARIO_LOG_FUNCTION_START; gchar *musicdir; gchar *path; const gchar *filename, *full_filename; gchar *data; GDir * dir; gsize size; gboolean ret = FALSE; gboolean ret2; if (!file) return FALSE; musicdir = ario_profiles_get_current (ario_profiles_get ())->musicdir; if (musicdir && strlen (musicdir) > 1) { path = g_build_filename (musicdir, file, NULL); dir = g_dir_open (path, 0, NULL); if (dir) { while ((filename = g_dir_read_name (dir))) { if (strlen (filename) > 4 && (g_str_has_suffix (filename, "png") ||g_str_has_suffix (filename, "jpg"))) { full_filename = g_build_filename (path, filename, NULL); ret2 = ario_file_get_contents (full_filename, &data, &size, NULL); if (ret2 && ario_cover_size_is_valid (size)) { /* If the cover is not too big and not too small (blank image), we append it to file_contents */ g_array_append_val (*file_size, size); *file_contents = g_slist_append (*file_contents, data); /* If at least one cover is found, we return OK */ ret = TRUE; if (operation == GET_FIRST_COVER) break; } } } g_dir_close (dir); } } return ret; } ario-1.6/src/covers/ario-cover-handler.h0000644000175000017500000000450113226723432015161 00000000000000/* * Copyright (C) 2005 Marc Pavot * * 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, 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * */ #include #ifndef __ARIO_COVER_HANDLER_H #define __ARIO_COVER_HANDLER_H G_BEGIN_DECLS #define TYPE_ARIO_COVER_HANDLER (ario_cover_handler_get_type ()) #define ARIO_COVER_HANDLER(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), TYPE_ARIO_COVER_HANDLER, ArioCoverHandler)) #define ARIO_COVER_HANDLER_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), TYPE_ARIO_COVER_HANDLER, ArioCoverHandlerClass)) #define IS_ARIO_COVER_HANDLER(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), TYPE_ARIO_COVER_HANDLER)) #define IS_ARIO_COVER_HANDLER_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), TYPE_ARIO_COVER_HANDLER)) #define ARIO_COVER_HANDLER_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), TYPE_ARIO_COVER_HANDLER, ArioCoverHandlerClass)) typedef struct ArioCoverHandlerPrivate ArioCoverHandlerPrivate; typedef struct { GtkWindow parent; ArioCoverHandlerPrivate *priv; } ArioCoverHandler; typedef struct { GtkWindowClass parent_class; /* Signals */ void (*cover_changed) (ArioCoverHandler *cover_handler); } ArioCoverHandlerClass; GType ario_cover_handler_get_type (void) G_GNUC_CONST; ArioCoverHandler * ario_cover_handler_new (void); void ario_cover_handler_force_reload (void); ArioCoverHandler * ario_cover_handler_get_instance (void); GdkPixbuf * ario_cover_handler_get_cover (void); gchar * ario_cover_handler_get_cover_path (void); GdkPixbuf * ario_cover_handler_get_large_cover (void); G_END_DECLS #endif /* __ARIO_COVER_HANDLER_H */ ario-1.6/src/covers/ario-cover.h0000644000175000017500000000435013226723435013553 00000000000000/* * Copyright (C) 2004,2005 Marc Pavot * * 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * */ #ifndef __ARIO_COVER_H #define __ARIO_COVER_H #define COVER_SIZE 70 #include G_BEGIN_DECLS typedef enum { SMALL_COVER, NORMAL_COVER }ArioCoverHomeCoversSize; typedef enum { OVERWRITE_MODE_ASK, OVERWRITE_MODE_REPLACE, OVERWRITE_MODE_SKIP }ArioCoverOverwriteMode; gboolean ario_cover_save_cover (const gchar *artist, const gchar *album, const gchar *data, const int size, const ArioCoverOverwriteMode overwrite_mode); void ario_cover_remove_cover (const gchar *artist, const gchar *album); gboolean ario_cover_size_is_valid (const int size); gboolean ario_cover_cover_exists (const gchar *artist, const gchar *album); gchar* ario_cover_make_cover_path (const gchar *artist, const gchar *album, const ArioCoverHomeCoversSize ario_cover_size); G_END_DECLS #endif /* __ARIO_COVER_H */ ario-1.6/src/covers/ario-cover-local.h0000644000175000017500000000347713226723432014651 00000000000000/* * Copyright (C) 2004,2005 Marc Pavot * * 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * */ #ifndef __ARIO_COVER_LOCAL_H #define __ARIO_COVER_LOCAL_H #include "covers/ario-cover-provider.h" G_BEGIN_DECLS #define TYPE_ARIO_COVER_LOCAL (ario_cover_local_get_type ()) #define ARIO_COVER_LOCAL(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), TYPE_ARIO_COVER_LOCAL, ArioCoverLocal)) #define ARIO_COVER_LOCAL_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), TYPE_ARIO_COVER_LOCAL, ArioCoverLocalClass)) #define IS_ARIO_COVER_LOCAL(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), TYPE_ARIO_COVER_LOCAL)) #define IS_ARIO_COVER_LOCAL_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), TYPE_ARIO_COVER_LOCAL)) #define ARIO_COVER_LOCAL_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), TYPE_ARIO_COVER_LOCAL, ArioCoverLocalClass)) typedef struct { ArioCoverProvider parent; } ArioCoverLocal; typedef struct { ArioCoverProviderClass parent; } ArioCoverLocalClass; GType ario_cover_local_get_type (void) G_GNUC_CONST; ArioCoverProvider* ario_cover_local_new (void); G_END_DECLS #endif /* __ARIO_COVER_LOCAL_H */ ario-1.6/src/covers/ario-cover-handler.c0000644000175000017500000003066213226723435015166 00000000000000/* * Copyright (C) 2005 Marc Pavot * * 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, 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * */ #include "covers/ario-cover-handler.h" #include #include #include #include #include #include "covers/ario-cover-manager.h" #include "ario-debug.h" #include "ario-util.h" #include "servers/ario-server.h" #include "ario-cover.h" #include "lib/ario-conf.h" #include "preferences/ario-preferences.h" static void ario_cover_handler_finalize (GObject *object); static void ario_cover_handler_load_pixbuf (ArioCoverHandler *cover_handler, gboolean should_get); static void ario_cover_handler_album_changed_cb (ArioServer *server, ArioCoverHandler *cover_handler); static void ario_cover_handler_state_changed_cb (ArioServer *server, ArioCoverHandler *cover_handler); enum { COVER_CHANGED, LAST_SIGNAL }; static guint ario_cover_handler_signals[LAST_SIGNAL] = { 0 }; struct ArioCoverHandlerPrivate { GThread *thread; GAsyncQueue *queue; gchar *cover_path; GdkPixbuf *pixbuf; GdkPixbuf *large_pixbuf; }; typedef struct ArioCoverHandlerData { gchar *artist; gchar *album; gchar *path; } ArioCoverHandlerData; #define ARIO_COVER_HANDLER_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_ARIO_COVER_HANDLER, ArioCoverHandlerPrivate)) G_DEFINE_TYPE (ArioCoverHandler, ario_cover_handler, G_TYPE_OBJECT) static ArioCoverHandler *instance = NULL; static void ario_cover_handler_class_init (ArioCoverHandlerClass *klass) { ARIO_LOG_FUNCTION_START; GObjectClass *object_class = G_OBJECT_CLASS (klass); object_class->finalize = ario_cover_handler_finalize; ario_cover_handler_signals[COVER_CHANGED] = g_signal_new ("cover_changed", G_OBJECT_CLASS_TYPE (object_class), G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (ArioCoverHandlerClass, cover_changed), NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0); g_type_class_add_private (klass, sizeof (ArioCoverHandlerPrivate)); } static void ario_cover_handler_init (ArioCoverHandler *cover_handler) { ARIO_LOG_FUNCTION_START; cover_handler->priv = ARIO_COVER_HANDLER_GET_PRIVATE (cover_handler); cover_handler->priv->thread = NULL; cover_handler->priv->queue = g_async_queue_new (); } ArioCoverHandler * ario_cover_handler_new (void) { ARIO_LOG_FUNCTION_START; ArioCoverHandler *cover_handler; ArioServer *server = ario_server_get_instance (); cover_handler = g_object_new (TYPE_ARIO_COVER_HANDLER, NULL); g_return_val_if_fail (cover_handler->priv != NULL, NULL); instance = cover_handler; g_signal_connect_object (server, "album_changed", G_CALLBACK (ario_cover_handler_album_changed_cb), cover_handler, 0); g_signal_connect_object (server, "state_changed", G_CALLBACK (ario_cover_handler_state_changed_cb), cover_handler, 0); return cover_handler; } static void ario_cover_handler_finalize (GObject *object) { ARIO_LOG_FUNCTION_START; ArioCoverHandler *cover_handler; g_return_if_fail (object != NULL); g_return_if_fail (IS_ARIO_COVER_HANDLER (object)); cover_handler = ARIO_COVER_HANDLER (object); g_return_if_fail (cover_handler->priv != NULL); if (cover_handler->priv->thread) g_thread_join (cover_handler->priv->thread); g_async_queue_unref (cover_handler->priv->queue); if (cover_handler->priv->pixbuf) g_object_unref(cover_handler->priv->pixbuf); if (cover_handler->priv->large_pixbuf) g_object_unref(cover_handler->priv->large_pixbuf); g_free (cover_handler->priv->cover_path); G_OBJECT_CLASS (ario_cover_handler_parent_class)->finalize (object); } static gboolean ario_cover_handler_cover_changed (ArioCoverHandler *cover_handler) { ARIO_LOG_FUNCTION_START; g_signal_emit (G_OBJECT (cover_handler), ario_cover_handler_signals[COVER_CHANGED], 0); return FALSE; } static void ario_cover_handler_free_data (ArioCoverHandlerData *data) { ARIO_LOG_FUNCTION_START; if (data) { g_free (data->artist); g_free (data->album); g_free (data->path); g_free (data); } } static gpointer ario_cover_handler_get_covers (ArioCoverHandler *cover_handler) { ARIO_LOG_FUNCTION_START; GArray *size; GSList *covers; gboolean ret; ArioCoverHandlerData *data; while ((data = (ArioCoverHandlerData *) g_async_queue_try_pop (cover_handler->priv->queue))) { if (ario_cover_cover_exists (data->artist, data->album)) { ario_cover_handler_free_data (data); continue; } covers = NULL; size = g_array_new (TRUE, TRUE, sizeof (int)); /* If a cover is found, it is loaded in covers(0) */ ret = ario_cover_manager_get_covers (ario_cover_manager_get_instance (), data->artist, data->album, data->path, &size, &covers, GET_FIRST_COVER); /* If the cover is not too big and not too small (blank image), we save it */ if (ret && ario_cover_size_is_valid (g_array_index (size, int, 0))) { ret = ario_cover_save_cover (data->artist, data->album, g_slist_nth_data (covers, 0), g_array_index (size, int, 0), OVERWRITE_MODE_SKIP); if (ret) { ario_cover_handler_load_pixbuf (cover_handler, FALSE); g_idle_add ((GSourceFunc) ario_cover_handler_cover_changed, cover_handler); } } ario_cover_handler_free_data (data); g_array_free (size, TRUE); g_slist_foreach (covers, (GFunc) g_free, NULL); g_slist_free (covers); } cover_handler->priv->thread = NULL; return NULL; } static void ario_cover_handler_load_pixbuf (ArioCoverHandler *cover_handler, gboolean should_get) { ARIO_LOG_FUNCTION_START; gchar *large_cover_path; ArioCoverHandlerData *data; gchar *artist = ario_server_get_current_artist (); gchar *album = ario_server_get_current_album (); if (!artist) artist = ARIO_SERVER_UNKNOWN; if (!album) album = ARIO_SERVER_UNKNOWN; if (cover_handler->priv->pixbuf) { g_object_unref(cover_handler->priv->pixbuf); cover_handler->priv->pixbuf = NULL; } if (cover_handler->priv->large_pixbuf) { g_object_unref(cover_handler->priv->large_pixbuf); cover_handler->priv->large_pixbuf = NULL; } if (cover_handler->priv->cover_path) { g_free (cover_handler->priv->cover_path); cover_handler->priv->cover_path = NULL; } switch (ario_server_get_current_state ()) { case ARIO_STATE_PLAY: case ARIO_STATE_PAUSE: cover_handler->priv->cover_path = ario_cover_make_cover_path (artist, album, SMALL_COVER); large_cover_path = ario_cover_make_cover_path (artist, album, NORMAL_COVER); if (cover_handler->priv->cover_path && large_cover_path) { cover_handler->priv->pixbuf = gdk_pixbuf_new_from_file_at_size (cover_handler->priv->cover_path, COVER_SIZE, COVER_SIZE, NULL); cover_handler->priv->large_pixbuf = gdk_pixbuf_new_from_file_at_size (large_cover_path, 2*COVER_SIZE, 2*COVER_SIZE, NULL); if (!cover_handler->priv->cover_path) { g_free (cover_handler->priv->cover_path); cover_handler->priv->cover_path = NULL; } g_free (large_cover_path); if (!cover_handler->priv->pixbuf && should_get && ario_conf_get_boolean (PREF_AUTOMATIC_GET_COVER, PREF_AUTOMATIC_GET_COVER_DEFAULT)) { if (ario_server_get_current_song_path ()) { data = (ArioCoverHandlerData *) g_malloc0 (sizeof (ArioCoverHandlerData)); data->artist = g_strdup (artist); data->album = g_strdup (album); data->path = g_path_get_dirname (ario_server_get_current_song_path ()); g_async_queue_push (cover_handler->priv->queue, data); if (!cover_handler->priv->thread) { cover_handler->priv->thread = g_thread_new ("cover", (GThreadFunc) ario_cover_handler_get_covers, cover_handler); } } } } break; default: break; } } static void ario_cover_handler_album_changed_cb (ArioServer *server, ArioCoverHandler *cover_handler) { ARIO_LOG_FUNCTION_START; ario_cover_handler_load_pixbuf(cover_handler, TRUE); g_signal_emit (G_OBJECT (cover_handler), ario_cover_handler_signals[COVER_CHANGED], 0); } static void ario_cover_handler_state_changed_cb (ArioServer *server, ArioCoverHandler *cover_handler) { ARIO_LOG_FUNCTION_START; ario_cover_handler_load_pixbuf(cover_handler, TRUE); g_signal_emit (G_OBJECT (cover_handler), ario_cover_handler_signals[COVER_CHANGED], 0); } void ario_cover_handler_force_reload (void) { ARIO_LOG_FUNCTION_START; ario_cover_handler_load_pixbuf (instance, TRUE); g_signal_emit (G_OBJECT (instance), ario_cover_handler_signals[COVER_CHANGED], 0); } ArioCoverHandler * ario_cover_handler_get_instance (void) { ARIO_LOG_FUNCTION_START; return instance; } GdkPixbuf * ario_cover_handler_get_cover (void) { ARIO_LOG_FUNCTION_START; return instance->priv->pixbuf; } GdkPixbuf * ario_cover_handler_get_large_cover (void) { ARIO_LOG_FUNCTION_START; return instance->priv->large_pixbuf; } gchar * ario_cover_handler_get_cover_path (void) { ARIO_LOG_FUNCTION_START; return instance->priv->cover_path; } ario-1.6/src/covers/ario-cover-lastfm.c0000644000175000017500000002251513226723432015032 00000000000000/* * Copyright (C) 2004,2005 Marc Pavot * * 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * */ #include "covers/ario-cover-lastfm.h" #include #include #include #include #include #include #include "lib/ario-conf.h" #include "covers/ario-cover.h" #include "servers/ario-server.h" #include "ario-util.h" #include "preferences/ario-preferences.h" #include "ario-debug.h" #define LASTFM_API_KEY "93bea35d40c4a58e034d14eb85e840c2" #define LASTFM_URI "http://ws.audioscrobbler.com/2.0/?api_key=%s&artist=%s&album=%s&method=album.getinfo" #define COVER_SMALL "small" #define COVER_MEDIUM "medium" #define COVER_LARGE "large" static char* ario_cover_lastfm_make_xml_uri (const char *artist, const char *album); static GSList* ario_cover_lastfm_parse_xml_file (char *xmldata, int size, ArioCoverProviderOperation operation, const char *cover_size); gboolean ario_cover_lastfm_get_covers (ArioCoverProvider *cover_provider, const char *artist, const char *album, const char *file, GArray **file_size, GSList **file_contents, ArioCoverProviderOperation operation); G_DEFINE_TYPE (ArioCoverLastfm, ario_cover_lastfm, ARIO_TYPE_COVER_PROVIDER) static gchar * ario_cover_lastfm_get_id (ArioCoverProvider *cover_provider) { return "lastfm"; } static gchar * ario_cover_lastfm_get_name (ArioCoverProvider *cover_provider) { return "Last.fm"; } static void ario_cover_lastfm_class_init (ArioCoverLastfmClass *klass) { ARIO_LOG_FUNCTION_START; ArioCoverProviderClass *cover_provider_class = ARIO_COVER_PROVIDER_CLASS (klass); cover_provider_class->get_id = ario_cover_lastfm_get_id; cover_provider_class->get_name = ario_cover_lastfm_get_name; cover_provider_class->get_covers = ario_cover_lastfm_get_covers; } static void ario_cover_lastfm_init (ArioCoverLastfm *cover_lastfm) { ARIO_LOG_FUNCTION_START; } ArioCoverProvider* ario_cover_lastfm_new (void) { ARIO_LOG_FUNCTION_START; ArioCoverLastfm *lastfm; lastfm = g_object_new (TYPE_ARIO_COVER_LASTFM, NULL); return ARIO_COVER_PROVIDER (lastfm); } static GSList * ario_cover_lastfm_parse_xml_file (char *xmldata, int size, ArioCoverProviderOperation operation, const char *cover_size) { ARIO_LOG_FUNCTION_START; xmlDocPtr doc; xmlNodePtr cur; xmlChar *key; xmlChar *attr; GSList *ario_cover_uris = NULL; xmlKeepBlanksDefault(0); doc = xmlParseMemory (xmldata, size); if (doc == NULL ) { return NULL; } cur = xmlDocGetRootElement(doc); if (!cur) { xmlFreeDoc (doc); return NULL; } /* The root node is "lfm" and we check its status attribute */ if (xmlStrcmp (cur->name, (const xmlChar *) "lfm") && (attr = xmlGetProp (cur, (const xmlChar *) "status")) != NULL && xmlStrcmp (attr, (const xmlChar *) "ok")) { xmlFreeDoc (doc); return NULL; } /* The real representation is the first children of the "lfm" node */ cur = cur->xmlChildrenNode; /* We check that the root node name is "album" */ if (xmlStrcmp (cur->name, (const xmlChar *) "album")) { xmlFreeDoc (doc); return NULL; } for (cur = cur->xmlChildrenNode; cur; cur = cur->next) { if (!xmlStrcmp (cur->name, (const xmlChar *) "image")) break; } if (!cur) { xmlFreeDoc (doc); return NULL; } for (; cur; cur = cur->next) { if ((attr = xmlGetProp (cur, (const xmlChar *) "size")) != NULL && !xmlStrcmp (attr, (const xmlChar *) cover_size)) { /* A possible cover uri has been found, we add it to the list*/ key = xmlNodeListGetString (doc, cur->xmlChildrenNode, 1); /* lastfm doesn't give any link if there isn't a cover for this size */ if (xmlStrcmp (key, (const xmlChar *) "")) { ario_cover_uris = g_slist_append (ario_cover_uris, key); if (operation == GET_FIRST_COVER) { /* If we only want one cover, we now stop to parse the file */ xmlFreeDoc (doc); return ario_cover_uris; } } } } xmlFreeDoc (doc); return ario_cover_uris; } static char * ario_cover_lastfm_make_xml_uri (const char *artist, const char *album) { ARIO_LOG_FUNCTION_START; char *xml_uri; char *formated_artist; char *formated_album; if (!album || !artist) return NULL; /* If the artist in unknown, we don't search for a cover */ if (!strcmp (artist, ARIO_SERVER_UNKNOWN)) return NULL; if (!strcmp (album, ARIO_SERVER_UNKNOWN)) return NULL; formated_artist = ario_util_format_keyword_for_lastfm (artist); formated_album = ario_util_format_keyword_for_lastfm (album); /* We make the xml uri with all the parameters */ xml_uri = g_strdup_printf (LASTFM_URI, LASTFM_API_KEY, formated_artist, formated_album); g_free (formated_artist); g_free (formated_album); return xml_uri; } gboolean ario_cover_lastfm_get_covers (ArioCoverProvider *cover_provider, const char *artist, const char *album, const char *file, GArray **file_size, GSList **file_contents, ArioCoverProviderOperation operation) { ARIO_LOG_FUNCTION_START; char *xml_uri; int xml_size; char *xml_data; GSList *temp; int temp_size; char *temp_contents; gboolean ret; GSList *ario_cover_uris; /* We construct the uri to make a request on the lastfm WebServices */ xml_uri = ario_cover_lastfm_make_xml_uri (artist, album); if (!xml_uri) return FALSE; /* We load the xml file in xml_data */ ario_util_download_file (xml_uri, NULL, 0, NULL, &xml_size, &xml_data); g_free (xml_uri); if (xml_size == 0) { return FALSE; } /* We parse the xml file to extract the cover uris */ ario_cover_uris = ario_cover_lastfm_parse_xml_file (xml_data, xml_size, operation, COVER_LARGE); g_free (xml_data); /* By default, we return an error */ ret = FALSE; for (temp = ario_cover_uris; temp; temp = temp->next) { if (temp->data) { /* For each cover uri, we load the image data in temp_contents */ ario_util_download_file (temp->data, NULL, 0, NULL, &temp_size, &temp_contents); /* We append the cover to file_contents */ g_array_append_val (*file_size, temp_size); *file_contents = g_slist_append (*file_contents, temp_contents); /* If at least one cover is found, we return OK */ ret = TRUE; } } g_slist_foreach (ario_cover_uris, (GFunc) g_free, NULL); g_slist_free (ario_cover_uris); return ret; } ario-1.6/src/covers/ario-cover-manager.c0000644000175000017500000002154113226723432015154 00000000000000/* * Copyright (C) 2005 Marc Pavot * * 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, 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * */ #include "covers/ario-cover-manager.h" #include #include #include #include #include "lib/ario-conf.h" #include "covers/ario-cover-lastfm.h" #include "covers/ario-cover-local.h" #include "preferences/ario-preferences.h" #include "ario-debug.h" struct ArioCoverManagerPrivate { GSList *providers; }; #define ARIO_COVER_MANAGER_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_ARIO_COVER_MANAGER, ArioCoverManagerPrivate)) G_DEFINE_TYPE (ArioCoverManager, ario_cover_manager, G_TYPE_OBJECT) static void ario_cover_manager_class_init (ArioCoverManagerClass *klass) { ARIO_LOG_FUNCTION_START; g_type_class_add_private (klass, sizeof (ArioCoverManagerPrivate)); } static void ario_cover_manager_init (ArioCoverManager *cover_manager) { ARIO_LOG_FUNCTION_START; cover_manager->priv = ARIO_COVER_MANAGER_GET_PRIVATE (cover_manager); } ArioCoverManager * ario_cover_manager_get_instance (void) { ARIO_LOG_FUNCTION_START; static ArioCoverManager *cover_manager = NULL; if (!cover_manager) { ArioCoverProvider *cover_provider; cover_manager = g_object_new (TYPE_ARIO_COVER_MANAGER, NULL); g_return_val_if_fail (cover_manager->priv != NULL, NULL); cover_provider = ario_cover_local_new (); ario_cover_manager_add_provider (cover_manager, ARIO_COVER_PROVIDER (cover_provider)); cover_provider = ario_cover_lastfm_new (); ario_cover_manager_add_provider (cover_manager, ARIO_COVER_PROVIDER (cover_provider)); ario_cover_manager_update_providers (cover_manager); } return cover_manager; } static void ario_cover_manager_shutdown_foreach (ArioCoverProvider *cover_provider, GSList **providers) { *providers = g_slist_append (*providers, ario_cover_provider_get_id (cover_provider)); } static void ario_cover_manager_shutdown_active_foreach (ArioCoverProvider *cover_provider, GSList **providers) { if (ario_cover_provider_is_active (cover_provider)) *providers = g_slist_append (*providers, ario_cover_provider_get_id (cover_provider)); } void ario_cover_manager_shutdown (ArioCoverManager *cover_manager) { GSList *providers = NULL; GSList *active_providers = NULL; g_slist_foreach (cover_manager->priv->providers, (GFunc) ario_cover_manager_shutdown_foreach, &providers); g_slist_foreach (cover_manager->priv->providers, (GFunc) ario_cover_manager_shutdown_active_foreach, &active_providers); ario_conf_set_string_slist (PREF_COVER_PROVIDERS_LIST, providers); ario_conf_set_string_slist (PREF_COVER_ACTIVE_PROVIDERS_LIST, active_providers); g_slist_free (providers); g_slist_free (active_providers); } static gint ario_cover_manager_compare_providers (ArioCoverProvider *cover_provider, const gchar *id) { return strcmp (ario_cover_provider_get_id (cover_provider), id); } void ario_cover_manager_update_providers (ArioCoverManager *cover_manager) { ARIO_LOG_FUNCTION_START; GSList *conf_tmp; GSList *conf_providers; GSList *conf_active_providers; GSList *found; GSList *providers = NULL; ArioCoverProvider *cover_provider; conf_providers = ario_conf_get_string_slist (PREF_COVER_PROVIDERS_LIST, PREF_COVER_PROVIDERS_LIST_DEFAULT); for (conf_tmp = conf_providers; conf_tmp; conf_tmp = g_slist_next (conf_tmp)) { found = g_slist_find_custom (cover_manager->priv->providers, conf_tmp->data, (GCompareFunc) ario_cover_manager_compare_providers); if (found) { providers = g_slist_append (providers, found->data); } } g_slist_foreach (conf_providers, (GFunc) g_free, NULL); g_slist_free (conf_providers); conf_active_providers = ario_conf_get_string_slist (PREF_COVER_ACTIVE_PROVIDERS_LIST, PREF_COVER_ACTIVE_PROVIDERS_LIST_DEFAULT); for (conf_tmp = conf_active_providers; conf_tmp; conf_tmp = g_slist_next (conf_tmp)) { found = g_slist_find_custom (providers, conf_tmp->data, (GCompareFunc) ario_cover_manager_compare_providers); if (found) { cover_provider = found->data; ario_cover_provider_set_active (cover_provider, TRUE); } } g_slist_foreach (conf_active_providers, (GFunc) g_free, NULL); g_slist_free (conf_active_providers); for (conf_tmp = cover_manager->priv->providers; conf_tmp; conf_tmp = g_slist_next (conf_tmp)) { if (!g_slist_find (providers, conf_tmp->data)) { providers = g_slist_append (providers, conf_tmp->data); } } g_slist_free (cover_manager->priv->providers); cover_manager->priv->providers = providers; } GSList* ario_cover_manager_get_providers (ArioCoverManager *cover_manager) { ARIO_LOG_FUNCTION_START; return cover_manager->priv->providers; } void ario_cover_manager_set_providers (ArioCoverManager *cover_manager, GSList *providers) { ARIO_LOG_FUNCTION_START; cover_manager->priv->providers = providers; } ArioCoverProvider* ario_cover_manager_get_provider_from_id (ArioCoverManager *cover_manager, const gchar *id) { ARIO_LOG_FUNCTION_START; GSList *found; found = g_slist_find_custom (cover_manager->priv->providers, id, (GCompareFunc) ario_cover_manager_compare_providers); return ARIO_COVER_PROVIDER (found->data); } void ario_cover_manager_add_provider (ArioCoverManager *cover_manager, ArioCoverProvider *cover_provider) { ARIO_LOG_FUNCTION_START; cover_manager->priv->providers = g_slist_append (cover_manager->priv->providers, cover_provider); } void ario_cover_manager_remove_provider (ArioCoverManager *cover_manager, ArioCoverProvider *cover_provider) { ARIO_LOG_FUNCTION_START; cover_manager->priv->providers = g_slist_remove (cover_manager->priv->providers, cover_provider); } gboolean ario_cover_manager_get_covers (ArioCoverManager *cover_manager, const char *artist, const char *album, const char *file, GArray **file_size, GSList **file_contents, ArioCoverProviderOperation operation) { ARIO_LOG_FUNCTION_START; GSList *tmp; ArioCoverProvider *cover_provider; gboolean ret = FALSE; for (tmp = cover_manager->priv->providers; tmp; tmp = g_slist_next (tmp)) { cover_provider = tmp->data; if (!ario_cover_provider_is_active (cover_provider)) continue; ARIO_LOG_DBG ("looking for a cover using provider:%s for album:%s\n", ario_cover_provider_get_name (cover_provider), album); if (ario_cover_provider_get_covers (cover_provider, artist, album, file, file_size, file_contents, operation)) { ret = TRUE; if (operation == GET_FIRST_COVER) break; } } return ret; } ario-1.6/src/covers/ario-cover-provider.h0000644000175000017500000000755613226723435015416 00000000000000/* * Copyright (C) 2008 Marc Pavot * * 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, 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * */ #ifndef __ARIO_COVER_PROVIDER_H__ #define __ARIO_COVER_PROVIDER_H__ #include G_BEGIN_DECLS /* * Type checking and casting macros */ #define ARIO_TYPE_COVER_PROVIDER (ario_cover_provider_get_type()) #define ARIO_COVER_PROVIDER(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), ARIO_TYPE_COVER_PROVIDER, ArioCoverProvider)) #define ARIO_COVER_PROVIDER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), ARIO_TYPE_COVER_PROVIDER, ArioCoverProviderClass)) #define ARIO_IS_COVER_PROVIDER(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), ARIO_TYPE_COVER_PROVIDER)) #define ARIO_IS_COVER_PROVIDER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), ARIO_TYPE_COVER_PROVIDER)) #define ARIO_COVER_PROVIDER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), ARIO_TYPE_COVER_PROVIDER, ArioCoverProviderClass)) /* * Main object structure */ typedef struct _ArioCoverProvider { GObject parent; gboolean is_active; } ArioCoverProvider; typedef enum { GET_FIRST_COVER, GET_ALL_COVERS }ArioCoverProviderOperation; /* * Class definition */ typedef struct { GObjectClass parent_class; /* Virtual public methods */ gchar* (*get_id) (ArioCoverProvider *cover_provider); gchar* (*get_name) (ArioCoverProvider *cover_provider); gboolean (*get_covers) (ArioCoverProvider *cover_provider, const char *artist, const char *album, const char *file, GArray **file_size, GSList **file_contents, ArioCoverProviderOperation operation); } ArioCoverProviderClass; /* * Public methods */ GType ario_cover_provider_get_type (void) G_GNUC_CONST; gchar* ario_cover_provider_get_id (ArioCoverProvider *cover_provider); gchar* ario_cover_provider_get_name (ArioCoverProvider *cover_provider); gboolean ario_cover_provider_get_covers (ArioCoverProvider *cover_provider, const char *artist, const char *album, const char *file, GArray **file_size, GSList **file_contents, ArioCoverProviderOperation operation); gboolean ario_cover_provider_is_active (ArioCoverProvider *cover_provider); void ario_cover_provider_set_active (ArioCoverProvider *cover_provider, gboolean is_active); G_END_DECLS #endif /* __ARIO_COVER_PROVIDER_H__ */ ario-1.6/src/covers/ario-cover-manager.h0000644000175000017500000000741113226723432015161 00000000000000/* * Copyright (C) 2005 Marc Pavot * * 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, 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * */ #ifndef __ARIO_COVER_MANAGER_H #define __ARIO_COVER_MANAGER_H #include #include "covers/ario-cover-provider.h" G_BEGIN_DECLS #define TYPE_ARIO_COVER_MANAGER (ario_cover_manager_get_type ()) #define ARIO_COVER_MANAGER(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), TYPE_ARIO_COVER_MANAGER, ArioCoverManager)) #define ARIO_COVER_MANAGER_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), TYPE_ARIO_COVER_MANAGER, ArioCoverManagerClass)) #define IS_ARIO_COVER_MANAGER(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), TYPE_ARIO_COVER_MANAGER)) #define IS_ARIO_COVER_MANAGER_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), TYPE_ARIO_COVER_MANAGER)) #define ARIO_COVER_MANAGER_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), TYPE_ARIO_COVER_MANAGER, ArioCoverManagerClass)) typedef struct ArioCoverManagerPrivate ArioCoverManagerPrivate; typedef struct { GObject parent; ArioCoverManagerPrivate *priv; } ArioCoverManager; typedef struct { GObjectClass parent; } ArioCoverManagerClass; GType ario_cover_manager_get_type (void) G_GNUC_CONST; ArioCoverManager* ario_cover_manager_get_instance (void); void ario_cover_manager_add_provider (ArioCoverManager *cover_manager, ArioCoverProvider *cover_provider); void ario_cover_manager_remove_provider (ArioCoverManager *cover_manager, ArioCoverProvider *cover_provider); void ario_cover_manager_update_providers (ArioCoverManager *cover_manage); GSList* ario_cover_manager_get_providers (ArioCoverManager *cover_manager); void ario_cover_manager_set_providers (ArioCoverManager *cover_manager, GSList *providers); ArioCoverProvider* ario_cover_manager_get_provider_from_id (ArioCoverManager *cover_manager, const gchar *id); void ario_cover_manager_shutdown (ArioCoverManager *cover_manager); gboolean ario_cover_manager_get_covers (ArioCoverManager *cover_manager, const char *artist, const char *album, const char *file, GArray **file_size, GSList **file_contents, ArioCoverProviderOperation operation); G_END_DECLS #endif /* __ARIO_COVER_MANAGER_H */ ario-1.6/src/covers/ario-cover.c0000644000175000017500000002343613226723432013551 00000000000000/* * Copyright (C) 2004,2005 Marc Pavot * * 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * */ #include "covers/ario-cover.h" #include #include #include #include #include "ario-util.h" #include "ario-debug.h" static void ario_cover_create_ario_cover_dir (void); gchar * ario_cover_make_cover_path (const gchar *artist, const gchar *album, const ArioCoverHomeCoversSize ario_cover_size) { ARIO_LOG_FUNCTION_START; char *ario_cover_path; char *filename; if (!artist || !album) return NULL; /* There are 2 different files : a small one for the labums list * and a normal one for the album-cover widget */ if (ario_cover_size == SMALL_COVER) filename = g_strdup_printf ("SMALL%s-%s.jpg", artist, album); else filename = g_strdup_printf ("%s-%s.jpg", artist, album); ario_util_sanitize_filename (filename); /* The returned path is ~/.config/ario/covers/filename */ ario_cover_path = g_build_filename (ario_util_config_dir (), "covers", filename, NULL); g_free (filename); return ario_cover_path; } gboolean ario_cover_cover_exists (const gchar *artist, const gchar *album) { ARIO_LOG_FUNCTION_START; gchar *ario_cover_path, *small_ario_cover_path; gboolean result; /* The path for the normal cover */ ario_cover_path = ario_cover_make_cover_path (artist, album, NORMAL_COVER); /* The path for the small cover */ small_ario_cover_path = ario_cover_make_cover_path (artist, album, SMALL_COVER); /* We consider that the cover exists only if the normal and small covers exist */ result = (ario_util_uri_exists (ario_cover_path) && ario_util_uri_exists (small_ario_cover_path)); g_free (ario_cover_path); g_free (small_ario_cover_path); return result; } void ario_cover_create_ario_cover_dir (void) { ARIO_LOG_FUNCTION_START; gchar *ario_cover_dir; ario_cover_dir = g_build_filename (ario_util_config_dir (), "covers", NULL); /* If the cover directory doesn't exist, we create it */ if (!ario_util_uri_exists (ario_cover_dir)) ario_util_mkdir (ario_cover_dir); g_free (ario_cover_dir); } gboolean ario_cover_size_is_valid (const int size) { ARIO_LOG_FUNCTION_START; /* return true if the cover isn't too big or too small (blank image) */ return (size < 1024 * 1024 * 10 && size > 900); } void ario_cover_remove_cover (const gchar *artist, const gchar *album) { ARIO_LOG_FUNCTION_START; gchar *small_ario_cover_path; gchar *ario_cover_path; if (!ario_cover_cover_exists (artist, album)) return; /* Delete the small cover*/ small_ario_cover_path = ario_cover_make_cover_path (artist, album, SMALL_COVER); if (ario_util_uri_exists (small_ario_cover_path)) ario_util_unlink_uri (small_ario_cover_path); g_free (small_ario_cover_path); /* Delete the normal cover*/ ario_cover_path = ario_cover_make_cover_path (artist, album, NORMAL_COVER); if (ario_util_uri_exists (ario_cover_path)) ario_util_unlink_uri (ario_cover_path); g_free (ario_cover_path); } static gboolean ario_cover_can_overwrite_cover (const gchar *artist, const gchar *album, const ArioCoverOverwriteMode overwrite_mode) { ARIO_LOG_FUNCTION_START; GtkWidget *dialog; gint retval; /* If the cover already exists, we can ask, replace or skip depending of the overwrite_mode argument */ if (ario_cover_cover_exists (artist, album)) { switch (overwrite_mode) { case OVERWRITE_MODE_ASK: dialog = gtk_message_dialog_new (NULL, GTK_DIALOG_MODAL, GTK_MESSAGE_QUESTION, GTK_BUTTONS_YES_NO, _("The cover already exists. Do you want to replace it?")); retval = gtk_dialog_run (GTK_DIALOG (dialog)); gtk_widget_destroy (dialog); /* If the user doesn't say "yes", we don't overwrite the cover */ if (retval != GTK_RESPONSE_YES) return FALSE; break; case OVERWRITE_MODE_REPLACE: /* We overwrite the cover */ return TRUE; break; case OVERWRITE_MODE_SKIP: /* We don't overwrite the cover */ return FALSE; default: /* By default, we don't overwrite the cover */ return FALSE; } } /*If the cover doesn't exists, we return TRUE */ return TRUE; } gboolean ario_cover_save_cover (const gchar *artist, const gchar *album, const gchar *data, const int size, const ArioCoverOverwriteMode overwrite_mode) { ARIO_LOG_FUNCTION_START; gboolean ret; gchar *ario_cover_path, *small_ario_cover_path; GdkPixbufLoader *loader; GdkPixbuf *pixbuf, *small_pixbuf; int width, height; gchar *path_fse, *small_path_fse; if (!artist || !album || !data) return FALSE; /* If the cover directory doesn't exist, we create it */ ario_cover_create_ario_cover_dir (); /* If the cover already exists, can we overwrite it? */ if (!ario_cover_can_overwrite_cover (artist, album, overwrite_mode)) return TRUE; /* The path for the normal cover */ ario_cover_path = ario_cover_make_cover_path (artist, album, NORMAL_COVER); /* The path for the small cover */ small_ario_cover_path = ario_cover_make_cover_path (artist, album, SMALL_COVER); loader = gdk_pixbuf_loader_new (); /*By default, we return an error */ ret = FALSE; if (gdk_pixbuf_loader_write (loader, (const guchar *)data, size, NULL)) { gdk_pixbuf_loader_close (loader, NULL); pixbuf = gdk_pixbuf_loader_get_pixbuf (loader); width = gdk_pixbuf_get_width (pixbuf); height = gdk_pixbuf_get_height (pixbuf); /* We resize the pixbuf to save the small cover. * To do it, we keep the original aspect ratio and * we limit max (height, width) by COVER_SIZE */ if (width > height) { small_pixbuf = gdk_pixbuf_scale_simple (pixbuf, COVER_SIZE, height * COVER_SIZE / width, GDK_INTERP_BILINEAR); } else { small_pixbuf = gdk_pixbuf_scale_simple (pixbuf, width * COVER_SIZE / height, COVER_SIZE, GDK_INTERP_BILINEAR); } path_fse = g_filename_from_utf8 (ario_cover_path, -1, NULL, NULL, NULL); small_path_fse = g_filename_from_utf8 (small_ario_cover_path, -1, NULL, NULL, NULL); /* We save the normal and the small covers */ if (path_fse && small_path_fse && gdk_pixbuf_save (pixbuf, ario_cover_path, "jpeg", NULL, NULL) && gdk_pixbuf_save (small_pixbuf, small_ario_cover_path, "jpeg", NULL, "quality", "95", NULL)) { /* If we succeed in the 2 operations, we return OK */ ret = TRUE; } g_free (small_path_fse); g_free (path_fse); g_object_unref (G_OBJECT (pixbuf)); g_object_unref (G_OBJECT (small_pixbuf)); } g_free (ario_cover_path); g_free (small_ario_cover_path); return ret; }