added 0.7.1 branch
This commit is contained in:
		
							parent
							
								
									f419d2a0dd
								
							
						
					
					
						commit
						df371146b5
					
				| 
						 | 
				
			
			@ -0,0 +1,93 @@
 | 
			
		|||
# Darksnow - A gui for darkice
 | 
			
		||||
#
 | 
			
		||||
#  Copyright (C) 2004-2005 Rafael Diniz <rafael@riseup.net>
 | 
			
		||||
# 
 | 
			
		||||
#  This source code is free software; you can redistribute it and/or
 | 
			
		||||
#  modify it under the terms of the GNU Public License as published 
 | 
			
		||||
#  by the Free Software Foundation; either version 2 of the License,
 | 
			
		||||
#  or (at your option) any later version.
 | 
			
		||||
#
 | 
			
		||||
#  This source code 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.
 | 
			
		||||
#  Please refer to the GNU Public License for more details.
 | 
			
		||||
#
 | 
			
		||||
# You should have received a copy of the GNU Public License along with
 | 
			
		||||
# this source code; if not, write to:
 | 
			
		||||
# Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 | 
			
		||||
#
 | 
			
		||||
 | 
			
		||||
# darksnow Makefile 
 | 
			
		||||
PREFIX=@prefix@
 | 
			
		||||
INTLPREFIX=@prefix@
 | 
			
		||||
CC=@CC@
 | 
			
		||||
VERSION=@VERSION@
 | 
			
		||||
#CFLAGS+=-Wall -DGTK_DISABLE_DEPRECATED=1
 | 
			
		||||
CFLAGS+=-Wall
 | 
			
		||||
INSTALL=install
 | 
			
		||||
ARCH=`uname -m`
 | 
			
		||||
 | 
			
		||||
#set debugging symbols:
 | 
			
		||||
#CFLAGS+= -g 
 | 
			
		||||
 | 
			
		||||
#set funny messages
 | 
			
		||||
#CFLAGS+= -DFUNNY 
 | 
			
		||||
 | 
			
		||||
# use tooltips
 | 
			
		||||
CFLAGS+= -DUSE_TOOLTIP
 | 
			
		||||
 | 
			
		||||
all: darksnow
 | 
			
		||||
 | 
			
		||||
darksnow: darksnow.o interface.o config_files.o tooltips.o man_gzip
 | 
			
		||||
	$(CC) darksnow.o interface.o config_files.o tooltips.o -o darksnow  @GTK_LIBS@ @GTK_CFLAGS@ -DVERSION="\"$(VERSION)\""
 | 
			
		||||
 | 
			
		||||
darksnow.o: darksnow.c
 | 
			
		||||
	$(CC) $(FUNNY) @GTK_CFLAGS@ -DINTLPREFIX="\"$(INTLPREFIX)\"" -DVERSION="\"$(VERSION)\"" -c darksnow.c -o darksnow.o
 | 
			
		||||
 | 
			
		||||
interface.o: interface.c
 | 
			
		||||
	$(CC) $(CFLAGS) $(FUNNY) @GTK_CFLAGS@ -DINTLPREFIX="\"$(INTLPREFIX)\"" -DVERSION="\"$(VERSION)\"" -c interface.c -o interface.o
 | 
			
		||||
 | 
			
		||||
config_files.o: config_files.c
 | 
			
		||||
	$(CC) $(CFLAGS) $(FUNNY) @GTK_CFLAGS@ -DINTLPREFIX="\"$(INTLPREFIX)\"" -DVERSION="\"$(VERSION)\"" -c config_files.c -o config_files.o
 | 
			
		||||
 | 
			
		||||
tooltips.o: tooltips.c
 | 
			
		||||
	$(CC) $(CFLAGS) $(FUNNY) @GTK_CFLAGS@ -DINTLPREFIX="\"$(INTLPREFIX)\"" -DVERSION="\"$(VERSION)\"" -c tooltips.c -o tooltips.o
 | 
			
		||||
 | 
			
		||||
man_gzip:
 | 
			
		||||
	gzip -c man/darksnow.1 > man/darksnow.1.gz 
 | 
			
		||||
 | 
			
		||||
clean:
 | 
			
		||||
	rm -f *.o *~ darksnow man/darksnow.1.gz
 | 
			
		||||
	rm -rf slack darksnow.tgz
 | 
			
		||||
 | 
			
		||||
install: darksnow
 | 
			
		||||
	$(INSTALL) -D --mode=0755 darksnow $(PREFIX)/bin/darksnow
 | 
			
		||||
	$(INSTALL) -D --mode=0644 documentation/CHANGES $(PREFIX)/share/darksnow/changelog
 | 
			
		||||
	$(INSTALL) -D --mode=0644 po/pt_BR.mo $(PREFIX)/share/locale/pt_BR/LC_MESSAGES/darksnow.mo
 | 
			
		||||
	$(INSTALL) -D --mode=0644 icon/darksnow_icon.png $(PREFIX)/share/icons/hicolor/32x32/apps/darksnow.png
 | 
			
		||||
	$(INSTALL) -D --mode=0644 man/darksnow.1.gz $(PREFIX)/share/man/man1/darksnow.1.gz
 | 
			
		||||
 | 
			
		||||
make_pkg: darksnow
 | 
			
		||||
	echo "Remember to run this option as root!"
 | 
			
		||||
	rm -rf slack
 | 
			
		||||
	$(INSTALL) -D --mode=0755 darksnow slack$(PREFIX)/bin/darksnow
 | 
			
		||||
	$(INSTALL) -D --mode=0644 icon/darksnow_icon.png slack$(PREFIX)/share/icons/darksnow.png
 | 
			
		||||
	$(INSTALL) -D --mode=0644 po/pt_BR.mo slack$(PREFIX)/share/locale/pt_BR/LC_MESSAGES/darksnow.mo
 | 
			
		||||
	$(INSTALL) -D --mode=0644 documentation/CHANGES slack$(PREFIX)/doc/darksnow/CHANGES
 | 
			
		||||
	$(INSTALL) -D --mode=0644 documentation/LICENSE slack$(PREFIX)/doc/darksnow/LICENSE
 | 
			
		||||
	$(INSTALL) -D --mode=0644 documentation/README.en slack$(PREFIX)/doc/darksnow/README.en
 | 
			
		||||
	$(INSTALL) -D --mode=0644 documentation/README.pt_BR slack$(PREFIX)/doc/darksnow/README.pt_BR	
 | 
			
		||||
	$(INSTALL) -D --mode=0644 documentation/CHANGES slack$(PREFIX)/doc/darksnow/CHANGES
 | 
			
		||||
	$(INSTALL) -D --mode=0644 documentation/slack-desc slack/install/slack-desc
 | 
			
		||||
	cd slack; makepkg -c y -l n  ../darksnow-$(VERSION)-$(ARCH)-1rd.tgz
 | 
			
		||||
	echo "Remember to run this option as root!"
 | 
			
		||||
 | 
			
		||||
install_pkg: make_pkg
 | 
			
		||||
	/sbin/installpkg darksnow-*-1rd.tgz
 | 
			
		||||
 | 
			
		||||
upgrade_pkg: make_pkg
 | 
			
		||||
	/sbin/upgradepkg darksnow-*-1rd.tgz
 | 
			
		||||
 | 
			
		||||
dist-clean: clean
 | 
			
		||||
	rm aclocal.m4 config.status config.log man/darksnow.1.gz Makefile
 | 
			
		||||
	rm -r autom4te.cache
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,3 @@
 | 
			
		|||
please read documentation/README.*
 | 
			
		||||
por favor leia documentation/README.*
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,69 @@
 | 
			
		|||
#!/bin/sh
 | 
			
		||||
# Run this to set up the build system: configure, makefiles, etc.
 | 
			
		||||
# (based on the version in enlightenment's cvs)
 | 
			
		||||
 | 
			
		||||
package="darkice-gui"
 | 
			
		||||
 | 
			
		||||
srcdir=`dirname $0`
 | 
			
		||||
test -z "$srcdir" && srcdir=.
 | 
			
		||||
 | 
			
		||||
cd "$srcdir"
 | 
			
		||||
DIE=0
 | 
			
		||||
 | 
			
		||||
(autoheader --version) < /dev/null > /dev/null 2>&1 || {
 | 
			
		||||
    echo
 | 
			
		||||
    echo "You must have autoconf installed to compile $package."
 | 
			
		||||
    echo "Download the appropriate package for your distribution,"
 | 
			
		||||
    echo "or get the source tarball at ftp://ftp.gnu.org/pub/gnu/"
 | 
			
		||||
    DIE=1
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
(autoconf --version) < /dev/null > /dev/null 2>&1 || {
 | 
			
		||||
    echo
 | 
			
		||||
    echo "You must have autoconf installed to compile $package."
 | 
			
		||||
    echo "Download the appropriate package for your distribution,"
 | 
			
		||||
    echo "or get the source tarball at ftp://ftp.gnu.org/pub/gnu/"
 | 
			
		||||
    DIE=1
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
(automake --version) < /dev/null > /dev/null 2>&1 || {
 | 
			
		||||
    echo
 | 
			
		||||
    echo "You must have automake installed to compile $package."
 | 
			
		||||
    echo "Download the appropriate package for your system,"
 | 
			
		||||
    echo "or get the source from one of the GNU ftp sites"
 | 
			
		||||
    echo "listed in http://www.gnu.org/order/ftp.html"
 | 
			
		||||
    DIE=1
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
(libtool --help) < /dev/null > /dev/null 2>&1 || {
 | 
			
		||||
    echo
 | 
			
		||||
    echo "You must have libtool installed to compile $package."
 | 
			
		||||
    echo "Download the appropriate package for your system,"
 | 
			
		||||
    echo "or get the source from one of the GNU ftp sites"
 | 
			
		||||
    echo "listed in http://www.gnu.org/order/ftp.html"
 | 
			
		||||
    DIE=1
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
if test "$DIE" -eq 1; then
 | 
			
		||||
    exit 1
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
if test -z "$*"; then
 | 
			
		||||
    echo "I am going to run ./configure with no arguments - if you wish "
 | 
			
		||||
    echo "to pass any to it, please specify them on the $0 command line."
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
echo "Generating configuration files for $package, please wait...."
 | 
			
		||||
 | 
			
		||||
echo "  aclocal $ACLOCAL_FLAGS"
 | 
			
		||||
aclocal $ACLOCAL_FLAGS
 | 
			
		||||
echo "  autoheader"
 | 
			
		||||
autoheader
 | 
			
		||||
echo "  libtoolize --automake"
 | 
			
		||||
libtoolize --automake
 | 
			
		||||
echo "  automake --add-missing $AUTOMAKE_FLAGS"
 | 
			
		||||
automake --add-missing $AUTOMAKE_FLAGS 
 | 
			
		||||
echo "  autoconf"
 | 
			
		||||
autoconf
 | 
			
		||||
 | 
			
		||||
$srcdir/configure "$@" && echo
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,336 @@
 | 
			
		|||
/* Darksnow - A GUI for darkice
 | 
			
		||||
 * Copyright (C) 2004-2005 Rafael Diniz <rafael@riseup.net>
 | 
			
		||||
 *
 | 
			
		||||
 * This source code is free software; you can redistribute it and/or
 | 
			
		||||
 * modify it under the terms of the GNU Public License as published 
 | 
			
		||||
 * by the Free Software Foundation; either version 2 of the License,
 | 
			
		||||
 * or (at your option) any later version.
 | 
			
		||||
 *
 | 
			
		||||
 * This source code 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.
 | 
			
		||||
 * Please refer to the GNU Public License for more details.
 | 
			
		||||
 *
 | 
			
		||||
 * You should have received a copy of the GNU Public License along with
 | 
			
		||||
 * this source code; if not, write to:
 | 
			
		||||
 * Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 | 
			
		||||
 *
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#include <stdio.h>
 | 
			
		||||
#include <unistd.h>
 | 
			
		||||
#include <stdlib.h>
 | 
			
		||||
#include <string.h>
 | 
			
		||||
#include <libintl.h>
 | 
			
		||||
 | 
			
		||||
#ifndef __GTK_H__
 | 
			
		||||
#include <gtk/gtk.h>
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#ifndef __GLOBAL_H__
 | 
			
		||||
#include "global.h"
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#ifndef __CONSTANTS_H__
 | 
			
		||||
#include "constants.h"
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#ifndef __CONFIG_FILES_H__
 | 
			
		||||
#include "config_files.h"
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
gboolean darksnow_config_store(char opt, char *save_path) {
 | 
			
		||||
  int i;
 | 
			
		||||
  char mp[128];
 | 
			
		||||
  char *server;
 | 
			
		||||
  char *port;
 | 
			
		||||
  char *mountpoint;
 | 
			
		||||
  char *pass;
 | 
			
		||||
  char *remotedump;
 | 
			
		||||
  char *localdump;
 | 
			
		||||
  char *radioname;
 | 
			
		||||
  char adddate;
 | 
			
		||||
  char *description;
 | 
			
		||||
  char *url;
 | 
			
		||||
  char *genre;
 | 
			
		||||
  char *icecast;
 | 
			
		||||
  char *format;
 | 
			
		||||
  char *bitrate;
 | 
			
		||||
  char *bitratemode;
 | 
			
		||||
  char *samplerate;
 | 
			
		||||
  char *quality;
 | 
			
		||||
  char *bitspersample;
 | 
			
		||||
  char *channel;
 | 
			
		||||
  char *buffersize;
 | 
			
		||||
  char *device;
 | 
			
		||||
  char *public;
 | 
			
		||||
  char *verbosity;
 | 
			
		||||
 | 
			
		||||
  FILE *f_darksnow_cfg;
 | 
			
		||||
  
 | 
			
		||||
  /* Entry inputs */
 | 
			
		||||
  server = (char *) gtk_entry_get_text ( (GtkEntry *) entry_server);
 | 
			
		||||
  port = (char *) gtk_entry_get_text (( GtkEntry *) entry_port);
 | 
			
		||||
  mountpoint = (char *) gtk_entry_get_text ( (GtkEntry *) entry_mountpoint);
 | 
			
		||||
  pass = (char *) gtk_entry_get_text ( (GtkEntry *) entry_pass);
 | 
			
		||||
  radioname = (char *) gtk_entry_get_text ( (GtkEntry *) entry_radioname);
 | 
			
		||||
  description = (char *) gtk_entry_get_text ( (GtkEntry *) entry_description);
 | 
			
		||||
  url = (char *) gtk_entry_get_text ( (GtkEntry *) entry_url);
 | 
			
		||||
  genre = (char *) gtk_entry_get_text ( (GtkEntry *) entry_genre);
 | 
			
		||||
  remotedump = (char *) gtk_entry_get_text ( (GtkEntry *) entry_remotedump);
 | 
			
		||||
  localdump = (char *) gtk_entry_get_text ( (GtkEntry *) entry_localdump);
 | 
			
		||||
  
 | 
			
		||||
  adddate = (char) (gtk_toggle_button_get_active ( GTK_TOGGLE_BUTTON (checkbutton_adddate) ))? '1': '0';
 | 
			
		||||
  
 | 
			
		||||
  /* Combo box inputs */
 | 
			
		||||
  icecast = gtk_combo_box_text_get_active_text  ( GTK_COMBO_BOX_TEXT(combo_icecast));
 | 
			
		||||
  format = gtk_combo_box_text_get_active_text  ( GTK_COMBO_BOX_TEXT(combo_format));
 | 
			
		||||
  bitrate = gtk_combo_box_text_get_active_text  ( GTK_COMBO_BOX_TEXT(combo_bitrate));
 | 
			
		||||
  bitratemode = gtk_combo_box_text_get_active_text  ( GTK_COMBO_BOX_TEXT(combo_bitratemode));
 | 
			
		||||
  samplerate = gtk_combo_box_text_get_active_text  ( GTK_COMBO_BOX_TEXT(combo_samplerate));
 | 
			
		||||
  quality = gtk_combo_box_text_get_active_text  ( GTK_COMBO_BOX_TEXT(combo_quality));
 | 
			
		||||
  bitspersample = gtk_combo_box_text_get_active_text  ( GTK_COMBO_BOX_TEXT(combo_bitspersample));
 | 
			
		||||
  channel = gtk_combo_box_text_get_active_text  ( GTK_COMBO_BOX_TEXT(combo_channel));
 | 
			
		||||
  buffersize = gtk_combo_box_text_get_active_text  ( GTK_COMBO_BOX_TEXT(combo_buffersize));
 | 
			
		||||
  device = gtk_combo_box_text_get_active_text  ( GTK_COMBO_BOX_TEXT(combo_device));
 | 
			
		||||
  public = gtk_combo_box_text_get_active_text  ( GTK_COMBO_BOX_TEXT(combo_public));
 | 
			
		||||
  verbosity = gtk_combo_box_text_get_active_text  ( GTK_COMBO_BOX_TEXT(combo_verbosity));
 | 
			
		||||
  
 | 
			
		||||
 | 
			
		||||
  if (!( f_darksnow_cfg = (opt != 0)? fopen(darksnow_cfg, "w") : fopen(save_path, "w"))) {
 | 
			
		||||
      printf("Error: Cannot open %s\n", (opt != 0)? darksnow_cfg: save_path);
 | 
			
		||||
      return FALSE;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  /* for compatibility issues, mountpoint can start with slash */
 | 
			
		||||
  i = 0;
 | 
			
		||||
  while( mountpoint[i] == ' ' || mountpoint[i] == '/' ) i++;
 | 
			
		||||
  strcpy (mp, mountpoint+i);
 | 
			
		||||
  
 | 
			
		||||
 | 
			
		||||
  /* Entry writes */
 | 
			
		||||
  fprintf (f_darksnow_cfg, "server=%s\n", server);
 | 
			
		||||
  fprintf (f_darksnow_cfg, "port=%s\n", port);
 | 
			
		||||
  fprintf (f_darksnow_cfg, "mountpoint=%s\n", mp);
 | 
			
		||||
  fprintf (f_darksnow_cfg, "pass=%s\n", pass);
 | 
			
		||||
  fprintf (f_darksnow_cfg, "radioname=%s\n", radioname);
 | 
			
		||||
  fprintf (f_darksnow_cfg, "description=%s\n", description);
 | 
			
		||||
  fprintf (f_darksnow_cfg, "url=%s\n", url);
 | 
			
		||||
  fprintf (f_darksnow_cfg, "genre=%s\n", genre);
 | 
			
		||||
  fprintf (f_darksnow_cfg, "icecast=%s\n", icecast);
 | 
			
		||||
  fprintf (f_darksnow_cfg, "format=%s\n", format);
 | 
			
		||||
  fprintf (f_darksnow_cfg, "bitrate=%s\n", bitrate);
 | 
			
		||||
  fprintf (f_darksnow_cfg, "bitratemode=%s\n", bitratemode);
 | 
			
		||||
  fprintf (f_darksnow_cfg, "samplerate=%s\n", samplerate);
 | 
			
		||||
  fprintf (f_darksnow_cfg, "quality=%s\n", quality);
 | 
			
		||||
  fprintf (f_darksnow_cfg, "bitspersample=%s\n", bitspersample);
 | 
			
		||||
  fprintf (f_darksnow_cfg, "channel=%s\n", channel);
 | 
			
		||||
  fprintf (f_darksnow_cfg, "buffersize=%s\n", buffersize);
 | 
			
		||||
  fprintf (f_darksnow_cfg, "device=%s\n", device);
 | 
			
		||||
  fprintf (f_darksnow_cfg, "public=%s\n", public);
 | 
			
		||||
  fprintf (f_darksnow_cfg, "verbosity=%s\n", verbosity);
 | 
			
		||||
  fprintf (f_darksnow_cfg, "remotedump=%s\n", remotedump);
 | 
			
		||||
  fprintf (f_darksnow_cfg, "localdump=%s\n", localdump);
 | 
			
		||||
  fprintf (f_darksnow_cfg, "adddate=%c\n", adddate);
 | 
			
		||||
 | 
			
		||||
  fclose (f_darksnow_cfg);
 | 
			
		||||
  
 | 
			
		||||
  return TRUE;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
gboolean darksnow2darkice_cfg() {
 | 
			
		||||
  FILE *f_darksnow_cfg;
 | 
			
		||||
  FILE *f_darkice_cfg;
 | 
			
		||||
  char destination = 0;
 | 
			
		||||
  int i;
 | 
			
		||||
 | 
			
		||||
  /* strings section */
 | 
			
		||||
  char foo[256] = {0};
 | 
			
		||||
  char server[256] = {0};
 | 
			
		||||
  char port[128] = {0};
 | 
			
		||||
  char mountpoint[128] = {0};
 | 
			
		||||
  char pass[128] = {0};
 | 
			
		||||
  char remotedump[256] = {0};
 | 
			
		||||
  char localdump[256] = {0};
 | 
			
		||||
  char adddate;
 | 
			
		||||
  char radioname[128] = {0};
 | 
			
		||||
  char description[256] = {0};
 | 
			
		||||
  char url[256] = {0};
 | 
			
		||||
  char genre[128] = {0};
 | 
			
		||||
  char icecast[128] = {0};
 | 
			
		||||
  char format[128] = {0};
 | 
			
		||||
  char bitrate[128] = {0};
 | 
			
		||||
  char bitratemode[128] = {0};
 | 
			
		||||
  char samplerate[128] = {0};
 | 
			
		||||
  char quality[128] = {0};
 | 
			
		||||
  char bitspersample[128] = {0};
 | 
			
		||||
  char channel[128] = {0};
 | 
			
		||||
  char buffersize[128] = {0};
 | 
			
		||||
  char device[128] = {0};
 | 
			
		||||
  char public[128] = {0};
 | 
			
		||||
 | 
			
		||||
  if (!(f_darksnow_cfg = fopen(darksnow_cfg, "r"))) {
 | 
			
		||||
    printf("Error: Cannot open %s\n", darksnow_cfg);
 | 
			
		||||
    exit (-1);
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  if (!(f_darkice_cfg = fopen(darkice_cfg, "w"))) {
 | 
			
		||||
    printf("Error: Cannot open %s\n", darkice_cfg);
 | 
			
		||||
    exit (-1);
 | 
			
		||||
  }
 | 
			
		||||
  
 | 
			
		||||
  /* read de configuration from darksnow config file */
 | 
			
		||||
  fscanf(f_darksnow_cfg, "%[^=]=%[^\n]\n", foo, server);
 | 
			
		||||
  fscanf(f_darksnow_cfg, "%[^=]=%[^\n]\n", foo, port);
 | 
			
		||||
  fscanf(f_darksnow_cfg, "%[^=]=%[^\n]\n", foo, mountpoint);
 | 
			
		||||
  fscanf(f_darksnow_cfg, "%[^=]=%[^\n]\n", foo, pass);
 | 
			
		||||
  fscanf(f_darksnow_cfg, "%[^=]=%[^\n]\n", foo, radioname);
 | 
			
		||||
  fscanf(f_darksnow_cfg, "%[^=]=%[^\n]\n", foo, description);
 | 
			
		||||
  fscanf(f_darksnow_cfg, "%[^=]=%[^\n]\n", foo, url);
 | 
			
		||||
  fscanf(f_darksnow_cfg, "%[^=]=%[^\n]\n", foo, genre);
 | 
			
		||||
  fscanf(f_darksnow_cfg, "%[^=]=%[^\n]\n", foo, icecast);
 | 
			
		||||
  fscanf(f_darksnow_cfg, "%[^=]=%[^\n]\n", foo, format);
 | 
			
		||||
  fscanf(f_darksnow_cfg, "%[^=]=%[^\n]\n", foo, bitrate);
 | 
			
		||||
  fscanf(f_darksnow_cfg, "%[^=]=%[^\n]\n", foo, bitratemode);
 | 
			
		||||
  fscanf(f_darksnow_cfg, "%[^=]=%[^\n]\n", foo, samplerate);
 | 
			
		||||
  fscanf(f_darksnow_cfg, "%[^=]=%[^\n]\n", foo, quality);
 | 
			
		||||
  fscanf(f_darksnow_cfg, "%[^=]=%[^\n]\n", foo, bitspersample);
 | 
			
		||||
  fscanf(f_darksnow_cfg, "%[^=]=%[^\n]\n", foo, channel);
 | 
			
		||||
  fscanf(f_darksnow_cfg, "%[^=]=%[^\n]\n", foo, buffersize);
 | 
			
		||||
  fscanf(f_darksnow_cfg, "%[^=]=%[^\n]\n", foo, device);
 | 
			
		||||
  fscanf(f_darksnow_cfg, "%[^=]=%[^\n]\n", foo, public);
 | 
			
		||||
  fscanf(f_darksnow_cfg, "%*[^=]=%*[^\n]\n"); /* the verbosity level is not needed */ 
 | 
			
		||||
  fscanf(f_darksnow_cfg, "%[^=]=%[^\n]\n", foo, remotedump);
 | 
			
		||||
  fscanf(f_darksnow_cfg, "%[^=]=%[^\n]\n", foo, localdump);
 | 
			
		||||
  fscanf(f_darksnow_cfg, "%[^=]=%c\n", foo, &adddate);
 | 
			
		||||
 | 
			
		||||
  /* set destination flag - 0-> icecast1, 1->icecast2, 2->shoutcast, 3->file */
 | 
			
		||||
  if (!strcmp("Icecast 1", icecast)) 
 | 
			
		||||
    destination = 0;
 | 
			
		||||
  else if (!strcmp("Icecast 2", icecast))
 | 
			
		||||
    destination = 1;
 | 
			
		||||
  else if (!strcmp("Shoutcast", icecast))
 | 
			
		||||
    destination = 2;
 | 
			
		||||
  /* File output support not yet codded */
 | 
			
		||||
  else if (!strcmp("File", icecast))
 | 
			
		||||
    destination = 3;
 | 
			
		||||
 | 
			
		||||
  /* write the config file for darkice */
 | 
			
		||||
 | 
			
		||||
  /* the reader of the config file */
 | 
			
		||||
  fprintf(f_darkice_cfg, "[general]");
 | 
			
		||||
  fprintf(f_darkice_cfg, "\nduration = ");  
 | 
			
		||||
  fprintf(f_darkice_cfg, "0");        /*  duration of encoding, in seconds. 0 means forever */
 | 
			
		||||
  fprintf(f_darkice_cfg, "\nbufferSecs = ");
 | 
			
		||||
  fprintf(f_darkice_cfg, "%s", buffersize);        /* size of internal slip buffer, in seconds */
 | 
			
		||||
  fprintf(f_darkice_cfg, "\n\n[input]");
 | 
			
		||||
  fprintf(f_darkice_cfg, "\ndevice = ");
 | 
			
		||||
  fprintf(f_darkice_cfg, "%s", device); /* OSS, ALSA, Pulse or JACK */
 | 
			
		||||
  if (!strcmp(device, "pulseaudio")) {
 | 
			
		||||
      fprintf(f_darkice_cfg, "\npaSourceName = default");
 | 
			
		||||
  }
 | 
			
		||||
  fprintf(f_darkice_cfg, "\nsampleRate = "); 
 | 
			
		||||
  fprintf(f_darkice_cfg, "%s", samplerate); /* sample rate in Hz. try 11025, 22050 or 44100 */
 | 
			
		||||
  fprintf(f_darkice_cfg, "\nbitsPerSample = ");
 | 
			
		||||
  fprintf(f_darkice_cfg, "%s", bitspersample); /* bits per sample. try 16 */
 | 
			
		||||
 | 
			
		||||
  fprintf(f_darkice_cfg, "\nchannel = "); /* channels. 1 = mono, 2 = stereo */
 | 
			
		||||
  if (!strcmp(channel, "1 - Mono"))
 | 
			
		||||
    fprintf(f_darkice_cfg, "1"); 
 | 
			
		||||
  else
 | 
			
		||||
    fprintf(f_darkice_cfg, "2");
 | 
			
		||||
 | 
			
		||||
  /* destionation type */
 | 
			
		||||
  switch (destination) {
 | 
			
		||||
  case 0:
 | 
			
		||||
    fprintf(f_darkice_cfg, "\n\n[icecast-0]"); /* icecast 1 version server */
 | 
			
		||||
    break;
 | 
			
		||||
  case 1:
 | 
			
		||||
    fprintf(f_darkice_cfg, "\n\n[icecast2-0]"); /* icecast 2 version server */
 | 
			
		||||
    break;
 | 
			
		||||
  case 2:
 | 
			
		||||
    fprintf(f_darkice_cfg, "\n\n[shoutcast-0]"); /* shoutcast server */ /* FIXME - not yet implemented */
 | 
			
		||||
    break;
 | 
			
		||||
  case 3:
 | 
			
		||||
    fprintf(f_darkice_cfg, "\n\n[file-0]"); /* file output */ /* FIXME - not yet implemented */
 | 
			
		||||
    break;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  /* write bitratemode */
 | 
			
		||||
  fprintf(f_darkice_cfg, "\nbitrateMode = ");
 | 
			
		||||
  if (!strcmp(gettext("Constant"), bitratemode))
 | 
			
		||||
    fprintf(f_darkice_cfg, "cbr"); /* Constant bitrate mode */
 | 
			
		||||
  else 
 | 
			
		||||
    if (!strcmp(gettext("Average"), bitratemode))
 | 
			
		||||
      fprintf(f_darkice_cfg, "abr"); /* average bitrate mode */
 | 
			
		||||
  else 
 | 
			
		||||
    if (!strcmp(gettext("Variable"), bitratemode)) 
 | 
			
		||||
      fprintf(f_darkice_cfg, "vbr"); /* variable bitrate mode */
 | 
			
		||||
  
 | 
			
		||||
 | 
			
		||||
  /* write format */
 | 
			
		||||
  if (destination == 1) {
 | 
			
		||||
    fprintf(f_darkice_cfg, "\nformat = ");
 | 
			
		||||
    if (!strcmp( gettext("mp3"), format))
 | 
			
		||||
      fprintf(f_darkice_cfg, "mp3"); 
 | 
			
		||||
    else if (!strcmp( gettext("ogg/vorbis"), format))
 | 
			
		||||
      fprintf(f_darkice_cfg, "vorbis"); 
 | 
			
		||||
    else if (!strcmp( gettext("ogg/opus"), format))
 | 
			
		||||
      fprintf(f_darkice_cfg, "opus"); 
 | 
			
		||||
    else if (!strcmp( gettext("aac"), format))
 | 
			
		||||
      fprintf(f_darkice_cfg, "aac");
 | 
			
		||||
    else if (!strcmp( gettext("mp2"), format))
 | 
			
		||||
      fprintf(f_darkice_cfg, "mp2");
 | 
			
		||||
    else if (!strcmp( gettext("aacp"), format))
 | 
			
		||||
      fprintf(f_darkice_cfg, "aacp");
 | 
			
		||||
  }
 | 
			
		||||
  
 | 
			
		||||
  fprintf(f_darkice_cfg, "\nbitrate = ");
 | 
			
		||||
  fprintf(f_darkice_cfg, "%s", bitrate); /* bitrate of the stream sent to the server */
 | 
			
		||||
  fprintf(f_darkice_cfg, "\nquality = ");
 | 
			
		||||
  fprintf(f_darkice_cfg, "%s", quality); /*  encoding quality */ 
 | 
			
		||||
  fprintf(f_darkice_cfg, "\nserver = ");
 | 
			
		||||
  fprintf(f_darkice_cfg, "%s", server);
 | 
			
		||||
  fprintf(f_darkice_cfg, "\nport = ");
 | 
			
		||||
  fprintf(f_darkice_cfg, "%s", port); /* port of the IceCast2 server, usually 8000 */
 | 
			
		||||
  fprintf(f_darkice_cfg, "\npassword = ");
 | 
			
		||||
  fprintf(f_darkice_cfg, "%s", pass); /* source password to the IceCast2 server */
 | 
			
		||||
  fprintf(f_darkice_cfg, "\nmountPoint = "); 
 | 
			
		||||
  fprintf(f_darkice_cfg, "%s", mountpoint);  /* mount point of this stream on the IceCast2 server */
 | 
			
		||||
  fprintf(f_darkice_cfg, "\nname = "); 
 | 
			
		||||
  fprintf(f_darkice_cfg, "%s", radioname); /* name of the stream */
 | 
			
		||||
  fprintf(f_darkice_cfg, "\ndescription = "); 
 | 
			
		||||
  fprintf(f_darkice_cfg, "%s", description); /* description of the stream */
 | 
			
		||||
  fprintf(f_darkice_cfg, "\nurl = ");
 | 
			
		||||
  fprintf(f_darkice_cfg, "%s", url); /* URL related to the stream */
 | 
			
		||||
  fprintf(f_darkice_cfg, "\ngenre = ");
 | 
			
		||||
  fprintf(f_darkice_cfg, "%s", genre); /* genre of the stream */
 | 
			
		||||
  fprintf(f_darkice_cfg, "\npublic = ");
 | 
			
		||||
  if (!strcmp( gettext("yes"), public))
 | 
			
		||||
    fprintf(f_darkice_cfg, "yes"); /* list this stream */
 | 
			
		||||
  else 
 | 
			
		||||
    fprintf(f_darkice_cfg, "no"); /* do not list this stream */
 | 
			
		||||
 | 
			
		||||
  for (i = 0; remotedump[i] != 0 && remotedump[i] == ' '; i++); /* set the remotedumpfile name */
 | 
			
		||||
  if (remotedump[i] != 0) {
 | 
			
		||||
    fprintf(f_darkice_cfg, "\nremoteDumpFile  = ");
 | 
			
		||||
    fprintf(f_darkice_cfg, "%s", remotedump+i);
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  for (i = 0; localdump[i] != 0 && localdump[i] == ' '; i++); /* set the localdumpfile name */
 | 
			
		||||
  if (localdump[i] != 0) {
 | 
			
		||||
    fprintf(f_darkice_cfg, "\nlocalDumpFile  = ");
 | 
			
		||||
    fprintf(f_darkice_cfg, "%s", localdump+i);
 | 
			
		||||
    fprintf(f_darkice_cfg, "\nfileAddDate  = ");
 | 
			
		||||
    fprintf(f_darkice_cfg, "%s", (adddate == '1')? "yes":"no");
 | 
			
		||||
  }  
 | 
			
		||||
 | 
			
		||||
  fprintf(f_darkice_cfg, "\n");
 | 
			
		||||
 | 
			
		||||
  fclose(f_darksnow_cfg);
 | 
			
		||||
  fclose(f_darkice_cfg);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
  return TRUE;
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,25 @@
 | 
			
		|||
/* Darksnow - A GUI for darkice
 | 
			
		||||
 * Copyright (C) 2004-2005 Rafael Diniz <rafael@riseup.net>
 | 
			
		||||
 *
 | 
			
		||||
 * This source code is free software; you can redistribute it and/or
 | 
			
		||||
 * modify it under the terms of the GNU Public License as published 
 | 
			
		||||
 * by the Free Software Foundation; either version 2 of the License,
 | 
			
		||||
 * or (at your option) any later version.
 | 
			
		||||
 *
 | 
			
		||||
 * This source code 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.
 | 
			
		||||
 * Please refer to the GNU Public License for more details.
 | 
			
		||||
 *
 | 
			
		||||
 * You should have received a copy of the GNU Public License along with
 | 
			
		||||
 * this source code; if not, write to:
 | 
			
		||||
 * Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 | 
			
		||||
 *
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#define __CONFIG_FILES_H__
 | 
			
		||||
 | 
			
		||||
/* writes darksnow config file to disk. if opt != 0, save in path, else, save in darksnow config directory */
 | 
			
		||||
gboolean darksnow_config_store( char opt, char *save_path);
 | 
			
		||||
 | 
			
		||||
gboolean darksnow2darkice_cfg();
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,20 @@
 | 
			
		|||
AC_INIT
 | 
			
		||||
AC_CONFIG_SRCDIR([darksnow.c])
 | 
			
		||||
AC_CONFIG_HEADERS([config.h])
 | 
			
		||||
 | 
			
		||||
dnl set CC
 | 
			
		||||
AC_PROG_CC
 | 
			
		||||
 | 
			
		||||
dnl tests C compiler
 | 
			
		||||
AC_LANG([C])
 | 
			
		||||
 | 
			
		||||
VERSION="0.7.1"
 | 
			
		||||
AC_SUBST(VERSION)
 | 
			
		||||
 | 
			
		||||
AC_CHECK_FUNC(mmap,,AC_MSG_ERROR(Sorry, you need mmap. If you are reading this, email-me and report this problem and your system description - rafael@riseup.net))
 | 
			
		||||
AC_CHECK_FUNC(gettext,,AC_MSG_ERROR(Sorry, you need gettext. If you are reading this, email-me and report this problem and your system description - rafael@riseup.net))
 | 
			
		||||
 | 
			
		||||
AM_PATH_GTK_2_0(2.14.0)
 | 
			
		||||
 | 
			
		||||
AC_CONFIG_FILES([Makefile])
 | 
			
		||||
AC_OUTPUT
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,25 @@
 | 
			
		|||
/* Darksnow - A GUI for darkice
 | 
			
		||||
 * Copyright (C) 2004-2005 Rafael Diniz <rafael@riseup.net>
 | 
			
		||||
 *
 | 
			
		||||
 * This source code is free software; you can redistribute it and/or
 | 
			
		||||
 * modify it under the terms of the GNU Public License as published 
 | 
			
		||||
 * by the Free Software Foundation; either version 2 of the License,
 | 
			
		||||
 * or (at your option) any later version.
 | 
			
		||||
 *
 | 
			
		||||
 * This source code 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.
 | 
			
		||||
 * Please refer to the GNU Public License for more details.
 | 
			
		||||
 *
 | 
			
		||||
 * You should have received a copy of the GNU Public License along with
 | 
			
		||||
 * this source code; if not, write to:
 | 
			
		||||
 * Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 | 
			
		||||
 *
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#define __CONSTANTS_H__
 | 
			
		||||
 | 
			
		||||
/* the size of main window */
 | 
			
		||||
#define SIZE_X 480
 | 
			
		||||
#define SIZE_Y 505
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,676 @@
 | 
			
		|||
/* Darksnow - A GUI for darkice
 | 
			
		||||
 * Copyright (C) 2004-2005 Rafael Diniz <rafael@riseup.net>
 | 
			
		||||
 *
 | 
			
		||||
 * This source code is free software; you can redistribute it and/or
 | 
			
		||||
 * modify it under the terms of the GNU Public License as published 
 | 
			
		||||
 * by the Free Software Foundation; either version 2 of the License,
 | 
			
		||||
 * or (at your option) any later version.
 | 
			
		||||
 *
 | 
			
		||||
 * This source code 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.
 | 
			
		||||
 * Please refer to the GNU Public License for more details.
 | 
			
		||||
 *
 | 
			
		||||
 * You should have received a copy of the GNU Public License along with
 | 
			
		||||
 * this source code; if not, write to:
 | 
			
		||||
 * Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 | 
			
		||||
 *
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#include <stdio.h>
 | 
			
		||||
#include <stdlib.h>
 | 
			
		||||
#include <string.h>
 | 
			
		||||
#include <unistd.h>
 | 
			
		||||
#include <gtk/gtk.h>
 | 
			
		||||
#include <libintl.h>
 | 
			
		||||
#include <locale.h>
 | 
			
		||||
#include <sys/stat.h>
 | 
			
		||||
#include <sys/types.h>
 | 
			
		||||
#include <sys/mman.h>
 | 
			
		||||
#include <fcntl.h>
 | 
			
		||||
#include <dirent.h>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#ifndef __GLOBAL_H__
 | 
			
		||||
#include "global.h"
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
/* some defines */
 | 
			
		||||
#ifndef __CONSTANTS_H__
 | 
			
		||||
#include "constants.h"
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#ifndef __INTERFACE_H__
 | 
			
		||||
#include "interface.h"
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#ifndef __TOOLTIPS_H__
 | 
			
		||||
#include "tooltips.h"
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
int main( int  argc, char *argv[], char *envp[]) {
 | 
			
		||||
  DIR *directory;
 | 
			
		||||
  char *foo;
 | 
			
		||||
  char bar[256];
 | 
			
		||||
  char locale[16];
 | 
			
		||||
  int i = 0, j = 0, fd;
 | 
			
		||||
 | 
			
		||||
  if (!gtk_init_check (&argc, &argv)) {
 | 
			
		||||
    fprintf(stderr, "Display cannot be initialized, wait for the curses interface :-P\n");
 | 
			
		||||
    exit (-1);
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  if (envp[i] == NULL) {
 | 
			
		||||
    fprintf(stderr, "hummmm, Environment variables not found?\n");
 | 
			
		||||
    exit(-1);
 | 
			
		||||
  }
 | 
			
		||||
  
 | 
			
		||||
 | 
			
		||||
  /* Sets the shared area                             */
 | 
			
		||||
  /* 00 means streaming stopped, don't update label   */
 | 
			
		||||
  /* 01 means streaming stopped, update label         */
 | 
			
		||||
  /* 10 means streaming started, don't update label   */
 | 
			
		||||
  /* 11 means streaming started, update label         */
 | 
			
		||||
  shared_area = mmap (0, 3, PROT_READ | PROT_WRITE, MAP_SHARED | MAP_ANON, -1, 0);
 | 
			
		||||
  sprintf ((char *) shared_area, "00"); 
 | 
			
		||||
 | 
			
		||||
  /* get the user HOME */
 | 
			
		||||
  while (envp[i] != NULL && strncmp("HOME", envp[i++], 4));
 | 
			
		||||
  if (envp[i] != NULL)
 | 
			
		||||
    strcpy(home, envp[i-1]+5);
 | 
			
		||||
 | 
			
		||||
  /* if not exists, create the config directory */
 | 
			
		||||
  strcat(home,"/.darksnow");
 | 
			
		||||
  if ( !(directory = opendir(home)) ) {
 | 
			
		||||
    if (mkdir(home, S_IRWXU ))
 | 
			
		||||
      fprintf(stderr, "Error: %s cannot be created\n", home);
 | 
			
		||||
  }
 | 
			
		||||
  else
 | 
			
		||||
    closedir(directory);
 | 
			
		||||
 | 
			
		||||
  /* sets the location of the configuration files */
 | 
			
		||||
  strcpy (darksnow_cfg, home);
 | 
			
		||||
  strcat (darksnow_cfg, "/darksnow.cfg");
 | 
			
		||||
  strcpy (darkice_cfg, home);
 | 
			
		||||
  strcat (darkice_cfg, "/darkice.cfg");
 | 
			
		||||
  strcpy (darksnow_temp, home);
 | 
			
		||||
  strcat (darksnow_temp, "/darksnow.temp");
 | 
			
		||||
 | 
			
		||||
  /* the fifo for the debug window of darkice */
 | 
			
		||||
  unlink(darksnow_temp);
 | 
			
		||||
  if(mkfifo(darksnow_temp, S_IRWXU )) 
 | 
			
		||||
    fprintf(stderr, "error creating the fifo at %s\n", darksnow_temp);
 | 
			
		||||
  darkice_fd = open (darksnow_temp, O_RDONLY | O_NONBLOCK);
 | 
			
		||||
  
 | 
			
		||||
  /* internacionalization stuff */
 | 
			
		||||
  setlocale (LC_ALL, "");
 | 
			
		||||
 | 
			
		||||
  strcpy(locale, INTLPREFIX);
 | 
			
		||||
  strcat(locale, "/share/locale");
 | 
			
		||||
 | 
			
		||||
  bindtextdomain ("darksnow", locale);
 | 
			
		||||
  textdomain ("darksnow");
 | 
			
		||||
 | 
			
		||||
  /* check if darkice exists in path */
 | 
			
		||||
  i = 0; j = 5;
 | 
			
		||||
  while (envp[i] != NULL && strncmp("PATH", envp[i++], 4));
 | 
			
		||||
 | 
			
		||||
  while ( (sscanf(envp[i-1]+j,"%[^:]:",bar) != -1) && j){ 
 | 
			
		||||
    j = j + strlen(bar) + 1;
 | 
			
		||||
    fd = 0;
 | 
			
		||||
    while ( (bar[fd] != '=') && (bar[fd] != 0) ) ++fd;
 | 
			
		||||
    if (bar[fd] == '=') goto end;
 | 
			
		||||
    if ( (fd = open(strcat(bar,"/darkice"), O_RDONLY)) != -1) {
 | 
			
		||||
	j = 0;   /* 0 means darkice is found */
 | 
			
		||||
	close (fd);
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
  
 | 
			
		||||
  
 | 
			
		||||
  if (j){
 | 
			
		||||
  end:
 | 
			
		||||
    darkice_not_found();
 | 
			
		||||
    exit(-1);
 | 
			
		||||
  }
 | 
			
		||||
  
 | 
			
		||||
  
 | 
			
		||||
  /* Now the GTK+ stuff ...  */
 | 
			
		||||
 | 
			
		||||
  g_timeout_add (1000, (GSourceFunc) status_loop, 0); /* status_loop() updates the streaming status */
 | 
			
		||||
  
 | 
			
		||||
  window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
 | 
			
		||||
  button_start = gtk_button_new_with_label ( gettext("Start Streaming") );
 | 
			
		||||
  button_stop = gtk_button_new_with_label ( gettext("Stop Streaming") );
 | 
			
		||||
  button_detail = gtk_button_new_with_label ( gettext("Show Details") );
 | 
			
		||||
  show_detail = 0;
 | 
			
		||||
  label_status = gtk_label_new ( gettext("Streaming Status: Stopped"));
 | 
			
		||||
  table = gtk_table_new (2, 1, FALSE);
 | 
			
		||||
  vbox = gtk_vbox_new (FALSE, 0); /* packs the menu_bar and the table */
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
  /* main window stuff */
 | 
			
		||||
  gtk_window_set_title (GTK_WINDOW (window), "DarkSnow");
 | 
			
		||||
  gtk_widget_set_size_request (GTK_WIDGET (window), SIZE_X, SIZE_Y); 
 | 
			
		||||
  gtk_container_set_border_width (GTK_CONTAINER (window), 0);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
  /* sets up the upper menu stuff */
 | 
			
		||||
  menu_bar = gtk_menu_bar_new();  
 | 
			
		||||
 | 
			
		||||
  menu_file = gtk_menu_new();
 | 
			
		||||
  menu_item_file = gtk_menu_item_new_with_label ( gettext("File") );
 | 
			
		||||
  menu_item_open = gtk_menu_item_new_with_label ( gettext("Open Configuration") );
 | 
			
		||||
  menu_item_save = gtk_menu_item_new_with_label ( gettext("Save Configuration") );
 | 
			
		||||
  menu_item_quit_nd = gtk_menu_item_new_with_label ( gettext("Quit and don't stop darkice") );
 | 
			
		||||
  menu_item_quit = gtk_menu_item_new_with_label ( gettext("Quit") ); 
 | 
			
		||||
  gtk_menu_shell_append (GTK_MENU_SHELL (menu_file), menu_item_open);
 | 
			
		||||
  gtk_menu_shell_append (GTK_MENU_SHELL (menu_file), menu_item_save);
 | 
			
		||||
  gtk_menu_shell_append (GTK_MENU_SHELL (menu_file), menu_item_quit_nd);
 | 
			
		||||
  gtk_menu_shell_append (GTK_MENU_SHELL (menu_file), menu_item_quit);
 | 
			
		||||
  gtk_menu_item_set_submenu (GTK_MENU_ITEM (menu_item_file), menu_file);
 | 
			
		||||
  gtk_menu_shell_append ( GTK_MENU_SHELL (menu_bar), menu_item_file );
 | 
			
		||||
 | 
			
		||||
  menu_help = gtk_menu_new();
 | 
			
		||||
  menu_item_help = gtk_menu_item_new_with_label ( gettext("Help") );
 | 
			
		||||
  menu_item_about = gtk_menu_item_new_with_label ( gettext("About") );
 | 
			
		||||
  gtk_menu_shell_append (GTK_MENU_SHELL (menu_help), menu_item_about);
 | 
			
		||||
  gtk_menu_item_set_submenu (GTK_MENU_ITEM (menu_item_help), menu_help);
 | 
			
		||||
  gtk_menu_shell_append ( GTK_MENU_SHELL (menu_bar), menu_item_help );
 | 
			
		||||
 | 
			
		||||
  gtk_box_pack_start (GTK_BOX (vbox), menu_bar, FALSE, FALSE, 0);
 | 
			
		||||
 | 
			
		||||
  
 | 
			
		||||
  /* sets up the about dialog */
 | 
			
		||||
  dialog_about = gtk_about_dialog_new ();
 | 
			
		||||
  const gchar *authors[] = {"Rafael Diniz", NULL};
 | 
			
		||||
  gtk_about_dialog_set_program_name( GTK_ABOUT_DIALOG( dialog_about), "DarkSnow");
 | 
			
		||||
  gtk_about_dialog_set_version( GTK_ABOUT_DIALOG( dialog_about), VERSION);
 | 
			
		||||
  gtk_about_dialog_set_authors( GTK_ABOUT_DIALOG(dialog_about), authors);
 | 
			
		||||
/*  gtk_about_dialog_set_license_type( GTK_ABOUT_DIALOG(dialog_about), GTK_LICENSE_GPL_3_0);*/
 | 
			
		||||
  gtk_about_dialog_set_website( GTK_ABOUT_DIALOG(dialog_about), "http://darksnow.radiolivre.org");
 | 
			
		||||
 | 
			
		||||
  /* sets up the exit window */
 | 
			
		||||
  dialog_darkkill = gtk_dialog_new ();
 | 
			
		||||
  label_darkkill = gtk_label_new (gettext("Darkice is running.\nDo you want to kill darkice?\n"));
 | 
			
		||||
  button_yes_darkkill = gtk_button_new_with_label (gettext("Yes"));
 | 
			
		||||
  button_no_darkkill = gtk_button_new_with_label (gettext("No"));
 | 
			
		||||
 | 
			
		||||
  gtk_window_set_title(GTK_WINDOW (dialog_darkkill), gettext("Darkice is running"));
 | 
			
		||||
  gtk_box_pack_start (GTK_BOX (gtk_dialog_get_action_area( GTK_DIALOG (dialog_darkkill))), button_yes_darkkill, TRUE, TRUE, 0);
 | 
			
		||||
  gtk_box_pack_start (GTK_BOX (gtk_dialog_get_action_area( GTK_DIALOG (dialog_darkkill))), button_no_darkkill, TRUE, TRUE, 0);
 | 
			
		||||
  gtk_box_pack_start (GTK_BOX (gtk_dialog_get_content_area( GTK_DIALOG (dialog_darkkill))), label_darkkill, TRUE, TRUE, 0);
 | 
			
		||||
  
 | 
			
		||||
  g_signal_connect_swapped (G_OBJECT (dialog_darkkill), "delete_event",G_CALLBACK (gtk_widget_hide), dialog_darkkill);
 | 
			
		||||
  g_signal_connect (G_OBJECT (button_yes_darkkill), "clicked",G_CALLBACK (delete_event), NULL);
 | 
			
		||||
  g_signal_connect (G_OBJECT (button_no_darkkill), "clicked",G_CALLBACK (delete_event_nd), NULL);
 | 
			
		||||
 | 
			
		||||
  /* sets up the file selectors */
 | 
			
		||||
  file_open = gtk_file_chooser_dialog_new ( gettext("Open File"),
 | 
			
		||||
                                          NULL,
 | 
			
		||||
                                          GTK_FILE_CHOOSER_ACTION_OPEN,
 | 
			
		||||
                                          GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
 | 
			
		||||
                                          GTK_STOCK_OPEN, GTK_RESPONSE_ACCEPT,
 | 
			
		||||
                                          NULL);
 | 
			
		||||
  file_save = gtk_file_chooser_dialog_new ( gettext("Save File"),
 | 
			
		||||
                                          NULL,
 | 
			
		||||
                                          GTK_FILE_CHOOSER_ACTION_SAVE,
 | 
			
		||||
                                          GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
 | 
			
		||||
                                          GTK_STOCK_OPEN, GTK_RESPONSE_ACCEPT,
 | 
			
		||||
                                          NULL);
 | 
			
		||||
  file_localdump = gtk_file_chooser_dialog_new ( gettext("Local Dump File"),
 | 
			
		||||
                                          NULL,
 | 
			
		||||
                                          GTK_FILE_CHOOSER_ACTION_OPEN,
 | 
			
		||||
                                          GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
 | 
			
		||||
                                          GTK_STOCK_OPEN, GTK_RESPONSE_ACCEPT,
 | 
			
		||||
                                          NULL);
 | 
			
		||||
 | 
			
		||||
  gtk_file_chooser_set_local_only ( GTK_FILE_CHOOSER( file_open), FALSE);
 | 
			
		||||
  gtk_file_chooser_set_local_only ( GTK_FILE_CHOOSER( file_save), FALSE);
 | 
			
		||||
  gtk_file_chooser_set_local_only ( GTK_FILE_CHOOSER( file_localdump), FALSE);
 | 
			
		||||
 | 
			
		||||
  /* sets up the notebook stuff */
 | 
			
		||||
  notebook = gtk_notebook_new ();
 | 
			
		||||
  gtk_notebook_set_tab_pos ( GTK_NOTEBOOK (notebook), GTK_POS_TOP );
 | 
			
		||||
 | 
			
		||||
  table_server = gtk_table_new (1, 1, FALSE);
 | 
			
		||||
  table_audio = gtk_table_new (1, 1, FALSE);
 | 
			
		||||
  table_description = gtk_table_new (1, 1, FALSE);
 | 
			
		||||
 | 
			
		||||
  label_notebook_server = gtk_label_new ( gettext("Server Options"));
 | 
			
		||||
  label_notebook_audio = gtk_label_new ( gettext("Audio Options"));
 | 
			
		||||
  label_notebook_description = gtk_label_new ( gettext("Streaming Description"));
 | 
			
		||||
  
 | 
			
		||||
  gtk_notebook_insert_page ( GTK_NOTEBOOK (notebook), table_server, label_notebook_server, 1);
 | 
			
		||||
  gtk_notebook_insert_page ( GTK_NOTEBOOK (notebook), table_audio, label_notebook_audio, 2);
 | 
			
		||||
  gtk_notebook_insert_page ( GTK_NOTEBOOK (notebook), table_description, label_notebook_description, 3);
 | 
			
		||||
 | 
			
		||||
  /* Server Options Widgets */
 | 
			
		||||
  label_icecast = gtk_label_new ( gettext("Streaming Destination: "));
 | 
			
		||||
  combo_icecast = gtk_combo_box_text_new_with_entry ();
 | 
			
		||||
  gtk_combo_box_text_append_text ( GTK_COMBO_BOX_TEXT (combo_icecast), "Icecast 1");
 | 
			
		||||
  gtk_combo_box_text_append_text ( GTK_COMBO_BOX_TEXT (combo_icecast), "Icecast 2");
 | 
			
		||||
  gtk_combo_box_text_append_text ( GTK_COMBO_BOX_TEXT (combo_icecast), "Shoutcast");
 | 
			
		||||
  gtk_entry_set_text (GTK_ENTRY (gtk_bin_get_child (GTK_BIN (combo_icecast))),"Icecast 2");
 | 
			
		||||
 | 
			
		||||
  label_server = gtk_label_new ( gettext("Server: "));
 | 
			
		||||
  entry_server = gtk_entry_new ();
 | 
			
		||||
  label_port = gtk_label_new ( gettext("Port: "));
 | 
			
		||||
  entry_port = gtk_entry_new ();
 | 
			
		||||
  label_mountpoint = gtk_label_new ( gettext("Mount Point: "));
 | 
			
		||||
  entry_mountpoint = gtk_entry_new ();
 | 
			
		||||
  label_pass = gtk_label_new ( gettext("Password: "));
 | 
			
		||||
  entry_pass = gtk_entry_new ();
 | 
			
		||||
  gtk_entry_set_visibility (GTK_ENTRY(entry_pass), FALSE);
 | 
			
		||||
  
 | 
			
		||||
  label_verbosity = gtk_label_new ( gettext ("Verbosity level: "));
 | 
			
		||||
  combo_verbosity = gtk_combo_box_text_new_with_entry();
 | 
			
		||||
 | 
			
		||||
  gtk_combo_box_text_append_text ( GTK_COMBO_BOX_TEXT (combo_verbosity), "0");
 | 
			
		||||
  gtk_combo_box_text_append_text ( GTK_COMBO_BOX_TEXT (combo_verbosity), "1");
 | 
			
		||||
  gtk_combo_box_text_append_text ( GTK_COMBO_BOX_TEXT (combo_verbosity), "2");
 | 
			
		||||
  gtk_combo_box_text_append_text ( GTK_COMBO_BOX_TEXT (combo_verbosity), "3");
 | 
			
		||||
  gtk_combo_box_text_append_text ( GTK_COMBO_BOX_TEXT (combo_verbosity), "4");
 | 
			
		||||
  gtk_combo_box_text_append_text ( GTK_COMBO_BOX_TEXT (combo_verbosity), "5");
 | 
			
		||||
  gtk_combo_box_text_append_text ( GTK_COMBO_BOX_TEXT (combo_verbosity), "6");
 | 
			
		||||
  gtk_combo_box_text_append_text ( GTK_COMBO_BOX_TEXT (combo_verbosity), "7");
 | 
			
		||||
  gtk_combo_box_text_append_text ( GTK_COMBO_BOX_TEXT (combo_verbosity), "8");
 | 
			
		||||
  gtk_combo_box_text_append_text ( GTK_COMBO_BOX_TEXT (combo_verbosity), "9");
 | 
			
		||||
  gtk_combo_box_text_append_text ( GTK_COMBO_BOX_TEXT (combo_verbosity), "10");
 | 
			
		||||
  gtk_entry_set_text (GTK_ENTRY (gtk_bin_get_child (GTK_BIN (combo_verbosity))),"0");
 | 
			
		||||
 | 
			
		||||
  label_remotedump = gtk_label_new ( gettext ("Remote Dump File: ")); 
 | 
			
		||||
  entry_remotedump = gtk_entry_new ();
 | 
			
		||||
  
 | 
			
		||||
  button_localdump = gtk_button_new_with_label ( gettext("Local Dump File"));
 | 
			
		||||
  entry_localdump = gtk_entry_new ();
 | 
			
		||||
 | 
			
		||||
  checkbutton_adddate = gtk_check_button_new_with_label ( gettext ("Add date to local dump filename? "));
 | 
			
		||||
 | 
			
		||||
  /* End Server Options Widgets */
 | 
			
		||||
 | 
			
		||||
  /* Audio Options Widgets */
 | 
			
		||||
  label_format = gtk_label_new ( gettext("Format: "));
 | 
			
		||||
  combo_format = gtk_combo_box_text_new_with_entry ();
 | 
			
		||||
  gtk_combo_box_text_append_text ( GTK_COMBO_BOX_TEXT (combo_format), gettext("mp3"));
 | 
			
		||||
  gtk_combo_box_text_append_text ( GTK_COMBO_BOX_TEXT (combo_format), gettext("ogg/vorbis"));
 | 
			
		||||
  gtk_combo_box_text_append_text ( GTK_COMBO_BOX_TEXT (combo_format), gettext("aac"));
 | 
			
		||||
  gtk_combo_box_text_append_text ( GTK_COMBO_BOX_TEXT (combo_format), gettext("mp2"));
 | 
			
		||||
  gtk_combo_box_text_append_text ( GTK_COMBO_BOX_TEXT (combo_format), gettext("aacp"));
 | 
			
		||||
  gtk_combo_box_text_append_text ( GTK_COMBO_BOX_TEXT (combo_format), gettext("ogg/opus"));
 | 
			
		||||
  gtk_entry_set_text (GTK_ENTRY (gtk_bin_get_child (GTK_BIN (combo_format))),"ogg/vorbis");
 | 
			
		||||
 | 
			
		||||
  label_bitratemode = gtk_label_new ( gettext("BitRateMode: "));
 | 
			
		||||
  combo_bitratemode = gtk_combo_box_text_new_with_entry ();
 | 
			
		||||
  gtk_combo_box_text_append_text ( GTK_COMBO_BOX_TEXT (combo_bitratemode), gettext("Constant"));
 | 
			
		||||
  gtk_combo_box_text_append_text ( GTK_COMBO_BOX_TEXT (combo_bitratemode), gettext("Average"));
 | 
			
		||||
  gtk_combo_box_text_append_text ( GTK_COMBO_BOX_TEXT (combo_bitratemode), gettext("Variable"));
 | 
			
		||||
  gtk_entry_set_text (GTK_ENTRY (gtk_bin_get_child (GTK_BIN (combo_bitratemode))), gettext("Constant"));
 | 
			
		||||
 | 
			
		||||
  label_bitrate = gtk_label_new ( gettext("BitRate: "));
 | 
			
		||||
  combo_bitrate = gtk_combo_box_text_new_with_entry ();
 | 
			
		||||
  gtk_combo_box_text_append_text ( GTK_COMBO_BOX_TEXT (combo_bitrate), "16");
 | 
			
		||||
  gtk_combo_box_text_append_text ( GTK_COMBO_BOX_TEXT (combo_bitrate), "24");
 | 
			
		||||
  gtk_combo_box_text_append_text ( GTK_COMBO_BOX_TEXT (combo_bitrate), "32");
 | 
			
		||||
  gtk_combo_box_text_append_text ( GTK_COMBO_BOX_TEXT (combo_bitrate), "40");
 | 
			
		||||
  gtk_combo_box_text_append_text ( GTK_COMBO_BOX_TEXT (combo_bitrate), "48");
 | 
			
		||||
  gtk_combo_box_text_append_text ( GTK_COMBO_BOX_TEXT (combo_bitrate), "56");
 | 
			
		||||
  gtk_combo_box_text_append_text ( GTK_COMBO_BOX_TEXT (combo_bitrate), "64");
 | 
			
		||||
  gtk_combo_box_text_append_text ( GTK_COMBO_BOX_TEXT (combo_bitrate), "72");
 | 
			
		||||
  gtk_combo_box_text_append_text ( GTK_COMBO_BOX_TEXT (combo_bitrate), "80");
 | 
			
		||||
  gtk_combo_box_text_append_text ( GTK_COMBO_BOX_TEXT (combo_bitrate), "88");
 | 
			
		||||
  gtk_combo_box_text_append_text ( GTK_COMBO_BOX_TEXT (combo_bitrate), "96");
 | 
			
		||||
  gtk_combo_box_text_append_text ( GTK_COMBO_BOX_TEXT (combo_bitrate), "104");
 | 
			
		||||
  gtk_combo_box_text_append_text ( GTK_COMBO_BOX_TEXT (combo_bitrate), "112");
 | 
			
		||||
  gtk_combo_box_text_append_text ( GTK_COMBO_BOX_TEXT (combo_bitrate), "120");
 | 
			
		||||
  gtk_combo_box_text_append_text ( GTK_COMBO_BOX_TEXT (combo_bitrate), "128");
 | 
			
		||||
  gtk_combo_box_text_append_text ( GTK_COMBO_BOX_TEXT (combo_bitrate), "160");
 | 
			
		||||
  gtk_combo_box_text_append_text ( GTK_COMBO_BOX_TEXT (combo_bitrate), "192");
 | 
			
		||||
  gtk_combo_box_text_append_text ( GTK_COMBO_BOX_TEXT (combo_bitrate), "224");
 | 
			
		||||
  gtk_combo_box_text_append_text ( GTK_COMBO_BOX_TEXT (combo_bitrate), "256");
 | 
			
		||||
  gtk_entry_set_text ( GTK_ENTRY(gtk_bin_get_child (GTK_BIN (combo_bitrate))),"128");
 | 
			
		||||
 | 
			
		||||
  label_samplerate = gtk_label_new ( gettext("SampleRate: "));
 | 
			
		||||
  combo_samplerate = gtk_combo_box_text_new_with_entry ();
 | 
			
		||||
  gtk_combo_box_text_append_text ( GTK_COMBO_BOX_TEXT (combo_samplerate), "8000");
 | 
			
		||||
  gtk_combo_box_text_append_text ( GTK_COMBO_BOX_TEXT (combo_samplerate), "11025");
 | 
			
		||||
  gtk_combo_box_text_append_text ( GTK_COMBO_BOX_TEXT (combo_samplerate), "16000");
 | 
			
		||||
  gtk_combo_box_text_append_text ( GTK_COMBO_BOX_TEXT (combo_samplerate), "22050");
 | 
			
		||||
  gtk_combo_box_text_append_text ( GTK_COMBO_BOX_TEXT (combo_samplerate), "24000");
 | 
			
		||||
  gtk_combo_box_text_append_text ( GTK_COMBO_BOX_TEXT (combo_samplerate), "32000");
 | 
			
		||||
  gtk_combo_box_text_append_text ( GTK_COMBO_BOX_TEXT (combo_samplerate), "44100");
 | 
			
		||||
  gtk_combo_box_text_append_text ( GTK_COMBO_BOX_TEXT (combo_samplerate), "48000");
 | 
			
		||||
  gtk_combo_box_text_append_text ( GTK_COMBO_BOX_TEXT (combo_samplerate), "96000");
 | 
			
		||||
  gtk_entry_set_text ( GTK_ENTRY(gtk_bin_get_child (GTK_BIN (combo_samplerate))),"48000");
 | 
			
		||||
 | 
			
		||||
  label_quality = gtk_label_new ( gettext("Quality: "));
 | 
			
		||||
  combo_quality = gtk_combo_box_text_new_with_entry ();
 | 
			
		||||
  gtk_combo_box_text_append_text ( GTK_COMBO_BOX_TEXT (combo_quality),  "1.0");
 | 
			
		||||
  gtk_combo_box_text_append_text ( GTK_COMBO_BOX_TEXT (combo_quality),  "0.9");
 | 
			
		||||
  gtk_combo_box_text_append_text ( GTK_COMBO_BOX_TEXT (combo_quality),  "0.8");
 | 
			
		||||
  gtk_combo_box_text_append_text ( GTK_COMBO_BOX_TEXT (combo_quality),  "0.7");
 | 
			
		||||
  gtk_combo_box_text_append_text ( GTK_COMBO_BOX_TEXT (combo_quality),  "0.6");
 | 
			
		||||
  gtk_combo_box_text_append_text ( GTK_COMBO_BOX_TEXT (combo_quality),  "0.5");
 | 
			
		||||
  gtk_combo_box_text_append_text ( GTK_COMBO_BOX_TEXT (combo_quality),  "0.4");
 | 
			
		||||
  gtk_combo_box_text_append_text ( GTK_COMBO_BOX_TEXT (combo_quality),  "0.3");
 | 
			
		||||
  gtk_combo_box_text_append_text ( GTK_COMBO_BOX_TEXT (combo_quality),  "0.2");
 | 
			
		||||
  gtk_combo_box_text_append_text ( GTK_COMBO_BOX_TEXT (combo_quality),  "0.1");
 | 
			
		||||
  gtk_entry_set_text ( GTK_ENTRY(gtk_bin_get_child (GTK_BIN (combo_quality))),"0.8");
 | 
			
		||||
 | 
			
		||||
  label_bitspersample = gtk_label_new ( gettext("Bits per Sample: "));
 | 
			
		||||
  combo_bitspersample = gtk_combo_box_text_new_with_entry ();
 | 
			
		||||
  gtk_combo_box_text_append_text ( GTK_COMBO_BOX_TEXT (combo_bitspersample),  "16");
 | 
			
		||||
  gtk_combo_box_text_append_text ( GTK_COMBO_BOX_TEXT (combo_bitspersample),  "8");
 | 
			
		||||
  gtk_entry_set_text (GTK_ENTRY (gtk_bin_get_child (GTK_BIN (combo_bitspersample))),"16");
 | 
			
		||||
 | 
			
		||||
  label_channel = gtk_label_new ( gettext("Number of channels: "));
 | 
			
		||||
  combo_channel = gtk_combo_box_text_new_with_entry ();
 | 
			
		||||
  gtk_combo_box_text_append_text ( GTK_COMBO_BOX_TEXT (combo_channel),  "2 - Stereo");
 | 
			
		||||
  gtk_combo_box_text_append_text ( GTK_COMBO_BOX_TEXT (combo_channel), "1 - Mono");
 | 
			
		||||
  gtk_entry_set_text ( GTK_ENTRY(gtk_bin_get_child (GTK_BIN (combo_channel))),"1 - Mono");
 | 
			
		||||
 | 
			
		||||
  label_buffersize = gtk_label_new ( gettext ("Buffer Size: "));
 | 
			
		||||
  combo_buffersize = gtk_combo_box_text_new_with_entry ();
 | 
			
		||||
  gtk_combo_box_text_append_text ( GTK_COMBO_BOX_TEXT (combo_buffersize), "1");
 | 
			
		||||
  gtk_combo_box_text_append_text ( GTK_COMBO_BOX_TEXT (combo_buffersize), "2");
 | 
			
		||||
  gtk_combo_box_text_append_text ( GTK_COMBO_BOX_TEXT (combo_buffersize), "3");
 | 
			
		||||
  gtk_combo_box_text_append_text ( GTK_COMBO_BOX_TEXT (combo_buffersize), "4");
 | 
			
		||||
  gtk_combo_box_text_append_text ( GTK_COMBO_BOX_TEXT (combo_buffersize), "5");
 | 
			
		||||
  gtk_combo_box_text_append_text ( GTK_COMBO_BOX_TEXT (combo_buffersize), "6");
 | 
			
		||||
  gtk_combo_box_text_append_text ( GTK_COMBO_BOX_TEXT (combo_buffersize), "7");
 | 
			
		||||
  gtk_combo_box_text_append_text ( GTK_COMBO_BOX_TEXT (combo_buffersize), "8");
 | 
			
		||||
  gtk_combo_box_text_append_text ( GTK_COMBO_BOX_TEXT (combo_buffersize), "9");
 | 
			
		||||
  gtk_combo_box_text_append_text ( GTK_COMBO_BOX_TEXT (combo_buffersize), "10");
 | 
			
		||||
  gtk_combo_box_text_append_text ( GTK_COMBO_BOX_TEXT (combo_buffersize), "11");
 | 
			
		||||
  gtk_combo_box_text_append_text ( GTK_COMBO_BOX_TEXT (combo_buffersize), "12");
 | 
			
		||||
  gtk_combo_box_text_append_text ( GTK_COMBO_BOX_TEXT (combo_buffersize), "13");
 | 
			
		||||
  gtk_combo_box_text_append_text ( GTK_COMBO_BOX_TEXT (combo_buffersize), "14");
 | 
			
		||||
  gtk_combo_box_text_append_text ( GTK_COMBO_BOX_TEXT (combo_buffersize), "15");
 | 
			
		||||
  gtk_combo_box_text_append_text ( GTK_COMBO_BOX_TEXT (combo_buffersize), "16");
 | 
			
		||||
  gtk_combo_box_text_append_text ( GTK_COMBO_BOX_TEXT (combo_buffersize), "17");
 | 
			
		||||
  gtk_combo_box_text_append_text ( GTK_COMBO_BOX_TEXT (combo_buffersize), "18");
 | 
			
		||||
  gtk_combo_box_text_append_text ( GTK_COMBO_BOX_TEXT (combo_buffersize), "19");
 | 
			
		||||
  gtk_combo_box_text_append_text ( GTK_COMBO_BOX_TEXT (combo_buffersize), "20");
 | 
			
		||||
  gtk_entry_set_text ( GTK_ENTRY(gtk_bin_get_child (GTK_BIN (combo_buffersize))),"10");
 | 
			
		||||
 | 
			
		||||
  label_device = gtk_label_new ( gettext ("Device Input: "));
 | 
			
		||||
  combo_device = gtk_combo_box_text_new_with_entry ();
 | 
			
		||||
  gtk_combo_box_text_append_text ( GTK_COMBO_BOX_TEXT (combo_device), "jack");
 | 
			
		||||
  gtk_combo_box_text_append_text ( GTK_COMBO_BOX_TEXT (combo_device), "jack_auto");
 | 
			
		||||
  gtk_combo_box_text_append_text ( GTK_COMBO_BOX_TEXT (combo_device), "default");
 | 
			
		||||
  gtk_combo_box_text_append_text ( GTK_COMBO_BOX_TEXT (combo_device), "pulseaudio");
 | 
			
		||||
  gtk_combo_box_text_append_text ( GTK_COMBO_BOX_TEXT (combo_device), "/dev/dsp");
 | 
			
		||||
  gtk_combo_box_text_append_text ( GTK_COMBO_BOX_TEXT (combo_device), "/dev/dsp0");
 | 
			
		||||
  gtk_combo_box_text_append_text ( GTK_COMBO_BOX_TEXT (combo_device), "/dev/dsp1");
 | 
			
		||||
  gtk_combo_box_text_append_text ( GTK_COMBO_BOX_TEXT (combo_device), "/dev/dsp2");
 | 
			
		||||
  gtk_combo_box_text_append_text ( GTK_COMBO_BOX_TEXT (combo_device), "/dev/dsp3");
 | 
			
		||||
  gtk_combo_box_text_append_text ( GTK_COMBO_BOX_TEXT (combo_device), "hw:0,0");
 | 
			
		||||
  gtk_combo_box_text_append_text ( GTK_COMBO_BOX_TEXT (combo_device), "hw:0,1");
 | 
			
		||||
  gtk_combo_box_text_append_text ( GTK_COMBO_BOX_TEXT (combo_device), "hw:0,2");
 | 
			
		||||
  gtk_combo_box_text_append_text ( GTK_COMBO_BOX_TEXT (combo_device), "hw:1,0");
 | 
			
		||||
  gtk_combo_box_text_append_text ( GTK_COMBO_BOX_TEXT (combo_device), "hw:1,1");
 | 
			
		||||
  gtk_combo_box_text_append_text ( GTK_COMBO_BOX_TEXT (combo_device), "hw:1,2");
 | 
			
		||||
  gtk_entry_set_text ( GTK_ENTRY(gtk_bin_get_child (GTK_BIN (combo_device))),"/dev/dsp");
 | 
			
		||||
 | 
			
		||||
  /* End Audio Options Widgets */
 | 
			
		||||
  
 | 
			
		||||
  /* configuration widgets stuff - label + entry */
 | 
			
		||||
  label_radioname = gtk_label_new ( gettext("Radio Name: "));
 | 
			
		||||
  entry_radioname = gtk_entry_new ();
 | 
			
		||||
  label_url = gtk_label_new ( gettext("URL: "));
 | 
			
		||||
  entry_url = gtk_entry_new ();
 | 
			
		||||
  label_description = gtk_label_new ( gettext("Description: "));
 | 
			
		||||
  entry_description = gtk_entry_new ();
 | 
			
		||||
  label_genre = gtk_label_new ( gettext("Genre: "));
 | 
			
		||||
  entry_genre = gtk_entry_new ();
 | 
			
		||||
  
 | 
			
		||||
  /* configuration widgets stuff - label + combo box */
 | 
			
		||||
 | 
			
		||||
  
 | 
			
		||||
  label_public = gtk_label_new ( gettext("Public: "));
 | 
			
		||||
  combo_public = gtk_combo_box_text_new_with_entry ();
 | 
			
		||||
  gtk_combo_box_text_append_text ( GTK_COMBO_BOX_TEXT (combo_public), "yes");
 | 
			
		||||
  gtk_combo_box_text_append_text ( GTK_COMBO_BOX_TEXT (combo_public), "no");
 | 
			
		||||
  gtk_entry_set_text ( GTK_ENTRY(gtk_bin_get_child (GTK_BIN (combo_public))),"no");
 | 
			
		||||
 | 
			
		||||
  /* text view stuff */
 | 
			
		||||
  tag = gtk_text_tag_new ("");
 | 
			
		||||
  tag_table = gtk_text_tag_table_new();
 | 
			
		||||
  gtk_text_tag_table_add(tag_table, tag);
 | 
			
		||||
  buffer = gtk_text_buffer_new(tag_table);
 | 
			
		||||
  foo = gettext("DarkSnow - A graphical user interface for darkice\nThe Revolution will be streamed!");
 | 
			
		||||
  gtk_text_buffer_set_text(buffer, foo,strlen(foo));
 | 
			
		||||
  text = gtk_text_view_new_with_buffer (buffer);
 | 
			
		||||
  gtk_text_view_set_editable(GTK_TEXT_VIEW (text), FALSE);    
 | 
			
		||||
 | 
			
		||||
  /* scroll for the textview widget */
 | 
			
		||||
  scroll_text = gtk_scrolled_window_new (NULL, NULL);
 | 
			
		||||
  gtk_scrolled_window_set_policy ( GTK_SCROLLED_WINDOW (scroll_text), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
 | 
			
		||||
  gtk_container_add (GTK_CONTAINER (scroll_text), text);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
  /* the magic :-) */
 | 
			
		||||
  gtk_box_pack_end (GTK_BOX (vbox), table, TRUE, TRUE, 5);
 | 
			
		||||
  gtk_container_add (GTK_CONTAINER (window), vbox);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
  /* set the widgets tooltips */
 | 
			
		||||
  set_all_tooltips();
 | 
			
		||||
  
 | 
			
		||||
 | 
			
		||||
  g_signal_connect (G_OBJECT (window), "delete_event",G_CALLBACK (main_quit), NULL);
 | 
			
		||||
  
 | 
			
		||||
  g_signal_connect_swapped (G_OBJECT (dialog_about), "response",G_CALLBACK (gtk_widget_hide), dialog_about);
 | 
			
		||||
 | 
			
		||||
  g_signal_connect (G_OBJECT (button_start), "clicked", G_CALLBACK (dark_start), NULL);
 | 
			
		||||
  g_signal_connect (G_OBJECT (button_stop), "clicked", G_CALLBACK (dark_stop), NULL);
 | 
			
		||||
  g_signal_connect (G_OBJECT (button_detail), "clicked", G_CALLBACK (dark_detail), NULL);
 | 
			
		||||
  
 | 
			
		||||
  g_signal_connect_swapped (G_OBJECT (menu_item_open), "activate", G_CALLBACK (gtk_dialog_run), file_open);
 | 
			
		||||
  g_signal_connect_swapped (G_OBJECT (menu_item_save), "activate", G_CALLBACK (gtk_dialog_run), file_save);
 | 
			
		||||
  g_signal_connect (G_OBJECT (menu_item_quit), "activate", G_CALLBACK (main_quit), NULL);
 | 
			
		||||
  g_signal_connect (G_OBJECT (menu_item_quit_nd), "activate", G_CALLBACK (delete_event_nd), NULL);
 | 
			
		||||
  g_signal_connect_swapped (G_OBJECT (menu_item_about), "activate", G_CALLBACK (gtk_dialog_run), dialog_about);
 | 
			
		||||
  g_signal_connect_swapped (G_OBJECT (button_localdump), "clicked", G_CALLBACK (gtk_dialog_run), file_localdump);
 | 
			
		||||
 | 
			
		||||
  g_signal_connect ( G_OBJECT (GTK_FILE_CHOOSER_DIALOG (file_open)), "response", G_CALLBACK (dark_put_in_box), NULL);
 | 
			
		||||
  g_signal_connect ( G_OBJECT (GTK_FILE_CHOOSER_DIALOG (file_save)), "response", G_CALLBACK (dark_write_config), NULL);
 | 
			
		||||
  g_signal_connect ( G_OBJECT (GTK_FILE_CHOOSER_DIALOG (file_localdump)), "response", G_CALLBACK (dark_localdump), NULL);
 | 
			
		||||
 | 
			
		||||
  
 | 
			
		||||
  /* pack the notebook, the buttons and textview widgets into the main table */
 | 
			
		||||
  gtk_table_attach (GTK_TABLE (table), notebook, 0, SIZE_X, 0, 400, (GTK_FILL | GTK_SHRINK | GTK_EXPAND), (GTK_FILL | GTK_SHRINK), 5, 5);
 | 
			
		||||
  gtk_table_attach (GTK_TABLE (table), button_start, 0,  SIZE_X/2,  401,  430, (GTK_SHRINK | GTK_FILL), (GTK_SHRINK | GTK_FILL), 45, 5);
 | 
			
		||||
  gtk_table_attach (GTK_TABLE (table), button_stop,  SIZE_X/2+1, SIZE_X, 401,  430, (GTK_SHRINK | GTK_FILL), (GTK_SHRINK | GTK_FILL), 45, 5);
 | 
			
		||||
  gtk_table_attach (GTK_TABLE (table), scroll_text, 0, SIZE_X, 431, 560, (GTK_FILL | GTK_SHRINK | GTK_EXPAND), (GTK_FILL | GTK_SHRINK | GTK_EXPAND), 5, 5); 
 | 
			
		||||
  gtk_table_attach (GTK_TABLE (table), label_status, 0, 3*SIZE_X/5, 561, 570, (GTK_FILL | GTK_SHRINK), (GTK_FILL | GTK_SHRINK ), 0, 3);  
 | 
			
		||||
  gtk_table_attach (GTK_TABLE (table), button_detail, 3*SIZE_X/5+1, SIZE_X, 561, 570, (GTK_FILL | GTK_SHRINK), (GTK_FILL | GTK_SHRINK), 10, 3);  
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
  /* main notebook tab */
 | 
			
		||||
  gtk_table_attach (GTK_TABLE (table_server), label_icecast, 0, SIZE_X/2, 0,  25, (GTK_FILL | GTK_SHRINK), (GTK_FILL | GTK_SHRINK), 0, 5);
 | 
			
		||||
  gtk_table_attach (GTK_TABLE (table_server), combo_icecast, SIZE_X/2+1, SIZE_X, 0,  25, (GTK_FILL |  GTK_SHRINK | GTK_EXPAND),(GTK_FILL | GTK_SHRINK), 10, 5);
 | 
			
		||||
  
 | 
			
		||||
  gtk_table_attach (GTK_TABLE (table_server), label_server,  0,  SIZE_X/2,   26,  50, (GTK_FILL |  GTK_SHRINK),(GTK_FILL | GTK_SHRINK), 0, 5);
 | 
			
		||||
  gtk_table_attach (GTK_TABLE (table_server), entry_server, SIZE_X/2+1, SIZE_X,   26,  50, (GTK_FILL |  GTK_SHRINK | GTK_EXPAND),(GTK_FILL | GTK_SHRINK), 10, 5);
 | 
			
		||||
  
 | 
			
		||||
  gtk_table_attach (GTK_TABLE (table_server), label_port, 0, SIZE_X/2, 51, 75, (GTK_FILL |  GTK_SHRINK),(GTK_FILL | GTK_SHRINK), 0, 5);
 | 
			
		||||
  gtk_table_attach (GTK_TABLE (table_server), entry_port, SIZE_X/2+1, SIZE_X, 51, 75, (GTK_FILL |  GTK_SHRINK | GTK_EXPAND),(GTK_FILL | GTK_SHRINK), 10, 5);
 | 
			
		||||
  
 | 
			
		||||
  gtk_table_attach (GTK_TABLE (table_server), label_mountpoint, 0, SIZE_X/2, 76, 100, (GTK_FILL |  GTK_SHRINK),(GTK_FILL | GTK_SHRINK), 0, 5);
 | 
			
		||||
  gtk_table_attach (GTK_TABLE (table_server), entry_mountpoint, SIZE_X/2+1, SIZE_X, 76, 100, (GTK_FILL |  GTK_SHRINK | GTK_EXPAND),(GTK_FILL | GTK_SHRINK), 10, 5);
 | 
			
		||||
  
 | 
			
		||||
  gtk_table_attach (GTK_TABLE (table_server), label_pass, 0, SIZE_X/2, 101,  125, (GTK_FILL |  GTK_SHRINK),(GTK_FILL | GTK_SHRINK), 0, 5);
 | 
			
		||||
  gtk_table_attach (GTK_TABLE (table_server), entry_pass, SIZE_X/2+1, SIZE_X, 101, 125, (GTK_FILL |  GTK_SHRINK | GTK_EXPAND),(GTK_FILL | GTK_SHRINK), 10, 5);
 | 
			
		||||
 | 
			
		||||
  gtk_table_attach (GTK_TABLE (table_server), label_verbosity, 0, SIZE_X/2, 126,  150, (GTK_FILL |  GTK_SHRINK),(GTK_FILL | GTK_SHRINK), 0, 5);
 | 
			
		||||
  gtk_table_attach (GTK_TABLE (table_server), combo_verbosity, SIZE_X/2+1, SIZE_X, 126, 150, (GTK_FILL |  GTK_SHRINK | GTK_EXPAND),(GTK_FILL | GTK_SHRINK), 10, 5);
 | 
			
		||||
 | 
			
		||||
  gtk_table_attach (GTK_TABLE (table_server), label_remotedump, 0, SIZE_X/2, 151,  175, (GTK_FILL |  GTK_SHRINK),(GTK_FILL | GTK_SHRINK), 0, 5);
 | 
			
		||||
  gtk_table_attach (GTK_TABLE (table_server), entry_remotedump, SIZE_X/2+1, SIZE_X, 151, 175, (GTK_FILL |  GTK_SHRINK | GTK_EXPAND),(GTK_FILL | GTK_SHRINK), 10, 5);
 | 
			
		||||
 | 
			
		||||
  gtk_table_attach (GTK_TABLE (table_server), button_localdump, 0, SIZE_X/2, 176,  200, (GTK_FILL |  GTK_SHRINK),(GTK_FILL | GTK_SHRINK), 0, 5);
 | 
			
		||||
  gtk_table_attach (GTK_TABLE (table_server), entry_localdump, SIZE_X/2+1, SIZE_X, 176, 200, (GTK_FILL |  GTK_SHRINK | GTK_EXPAND),(GTK_FILL | GTK_SHRINK), 10, 5);
 | 
			
		||||
 | 
			
		||||
  gtk_table_attach (GTK_TABLE (table_server), checkbutton_adddate, 0, SIZE_X, 201,  225, (GTK_FILL |  GTK_SHRINK),(GTK_FILL | GTK_SHRINK), 0, 5);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
  
 | 
			
		||||
  /* audio notebook tab */
 | 
			
		||||
  gtk_table_attach (GTK_TABLE (table_audio), label_format, 0, SIZE_X/2, 0,  25, (GTK_FILL |  GTK_SHRINK),(GTK_FILL | GTK_SHRINK), 0, 5);
 | 
			
		||||
  gtk_table_attach (GTK_TABLE (table_audio), combo_format, SIZE_X/2+1, SIZE_X, 0,  25, (GTK_FILL |  GTK_SHRINK | GTK_EXPAND),(GTK_FILL | GTK_SHRINK), 10, 5);
 | 
			
		||||
  
 | 
			
		||||
  gtk_table_attach (GTK_TABLE (table_audio), label_bitratemode, 0, SIZE_X/2, 26,  50, (GTK_FILL |  GTK_SHRINK),(GTK_FILL | GTK_SHRINK), 0, 5);
 | 
			
		||||
  gtk_table_attach (GTK_TABLE (table_audio), combo_bitratemode, SIZE_X/2+1, SIZE_X, 26,  50, (GTK_FILL |  GTK_SHRINK | GTK_EXPAND),(GTK_FILL | GTK_SHRINK), 10, 5);
 | 
			
		||||
  
 | 
			
		||||
  gtk_table_attach (GTK_TABLE (table_audio), label_bitrate, 0, SIZE_X/2, 51, 75, (GTK_FILL |  GTK_SHRINK),(GTK_FILL | GTK_SHRINK), 0, 5);
 | 
			
		||||
  gtk_table_attach (GTK_TABLE (table_audio), combo_bitrate, SIZE_X/2+1, SIZE_X, 51, 75, (GTK_FILL |  GTK_SHRINK | GTK_EXPAND),(GTK_FILL | GTK_SHRINK), 10, 5);
 | 
			
		||||
 | 
			
		||||
  gtk_table_attach (GTK_TABLE (table_audio), label_samplerate, 0, SIZE_X/2, 76, 100, (GTK_FILL |  GTK_SHRINK),(GTK_FILL | GTK_SHRINK), 0, 5);
 | 
			
		||||
  gtk_table_attach (GTK_TABLE (table_audio), combo_samplerate, SIZE_X/2+1, SIZE_X, 76, 100, (GTK_FILL |  GTK_SHRINK | GTK_EXPAND),(GTK_FILL | GTK_SHRINK), 10, 5);
 | 
			
		||||
 | 
			
		||||
  gtk_table_attach (GTK_TABLE (table_audio), label_quality, 0, SIZE_X/2, 101, 125, (GTK_FILL |  GTK_SHRINK),(GTK_FILL | GTK_SHRINK), 0, 5);
 | 
			
		||||
  gtk_table_attach (GTK_TABLE (table_audio), combo_quality, SIZE_X/2+1, SIZE_X, 101, 125, (GTK_FILL |  GTK_SHRINK | GTK_EXPAND),(GTK_FILL | GTK_SHRINK), 10, 5);
 | 
			
		||||
 | 
			
		||||
  gtk_table_attach (GTK_TABLE (table_audio), label_bitspersample, 0, SIZE_X/2, 126, 150, (GTK_FILL |  GTK_SHRINK),(GTK_FILL | GTK_SHRINK), 0, 5);
 | 
			
		||||
  gtk_table_attach (GTK_TABLE (table_audio), combo_bitspersample, SIZE_X/2+1, SIZE_X, 126, 150, (GTK_FILL |  GTK_SHRINK | GTK_EXPAND),(GTK_FILL | GTK_SHRINK), 10, 5);
 | 
			
		||||
 | 
			
		||||
  gtk_table_attach (GTK_TABLE (table_audio), label_channel, 0, SIZE_X/2, 151, 175, (GTK_FILL |  GTK_SHRINK),(GTK_FILL | GTK_SHRINK), 0, 5);
 | 
			
		||||
  gtk_table_attach (GTK_TABLE (table_audio), combo_channel, SIZE_X/2+1, SIZE_X, 151, 175, (GTK_FILL |  GTK_SHRINK | GTK_EXPAND),(GTK_FILL | GTK_SHRINK), 10, 5);
 | 
			
		||||
 | 
			
		||||
  gtk_table_attach (GTK_TABLE (table_audio), label_buffersize, 0, SIZE_X/2, 176, 200, (GTK_FILL |  GTK_SHRINK),(GTK_FILL | GTK_SHRINK), 0, 5);
 | 
			
		||||
  gtk_table_attach (GTK_TABLE (table_audio), combo_buffersize, SIZE_X/2+1, SIZE_X, 176, 200, (GTK_FILL |  GTK_SHRINK | GTK_EXPAND),(GTK_FILL | GTK_SHRINK), 10, 5);
 | 
			
		||||
  
 | 
			
		||||
  gtk_table_attach (GTK_TABLE (table_audio), label_device, 0, SIZE_X/2, 201, 225, (GTK_FILL |  GTK_SHRINK),(GTK_FILL | GTK_SHRINK), 0, 5);
 | 
			
		||||
  gtk_table_attach (GTK_TABLE (table_audio), combo_device, SIZE_X/2+1, SIZE_X, 201, 225, (GTK_FILL |  GTK_SHRINK | GTK_EXPAND),(GTK_FILL | GTK_SHRINK), 10, 5);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
  /* description notebook tab */
 | 
			
		||||
  gtk_table_attach (GTK_TABLE (table_description), label_radioname, 0, SIZE_X/2, 0, 25, (GTK_FILL |  GTK_SHRINK),(GTK_FILL | GTK_SHRINK), 0, 5);
 | 
			
		||||
  gtk_table_attach (GTK_TABLE (table_description), entry_radioname, SIZE_X/2+1, SIZE_X, 0, 25, (GTK_FILL |  GTK_SHRINK | GTK_EXPAND),(GTK_FILL | GTK_SHRINK), 10, 5);
 | 
			
		||||
  
 | 
			
		||||
  gtk_table_attach (GTK_TABLE (table_description), label_description, 0, SIZE_X/2, 26, 50, (GTK_FILL |  GTK_SHRINK),(GTK_FILL | GTK_SHRINK), 0, 5);
 | 
			
		||||
  gtk_table_attach (GTK_TABLE (table_description), entry_description, SIZE_X/2+1, SIZE_X, 26, 50, (GTK_FILL |  GTK_SHRINK | GTK_EXPAND),(GTK_FILL | GTK_SHRINK), 10, 5);
 | 
			
		||||
  
 | 
			
		||||
  gtk_table_attach (GTK_TABLE (table_description), label_url, 0, SIZE_X/2, 51,  75, (GTK_FILL |  GTK_SHRINK),(GTK_FILL | GTK_SHRINK), 0, 5);
 | 
			
		||||
  gtk_table_attach (GTK_TABLE (table_description), entry_url, SIZE_X/2+1, SIZE_X, 51,  75, (GTK_FILL |  GTK_SHRINK | GTK_EXPAND),(GTK_FILL | GTK_SHRINK), 10, 5);
 | 
			
		||||
  
 | 
			
		||||
  gtk_table_attach (GTK_TABLE (table_description), label_genre, 0, SIZE_X/2, 76,  100, (GTK_FILL |  GTK_SHRINK),(GTK_FILL | GTK_SHRINK), 0, 5);
 | 
			
		||||
  gtk_table_attach (GTK_TABLE (table_description), entry_genre, SIZE_X/2+1, SIZE_X, 76,  100, (GTK_FILL |  GTK_SHRINK | GTK_EXPAND),(GTK_FILL | GTK_SHRINK), 10, 5);
 | 
			
		||||
  
 | 
			
		||||
  gtk_table_attach (GTK_TABLE (table_description), label_public, 0, SIZE_X/2, 101,  125, (GTK_FILL |  GTK_SHRINK), (GTK_FILL | GTK_SHRINK), 0, 5);
 | 
			
		||||
  gtk_table_attach (GTK_TABLE (table_description), combo_public, SIZE_X/2+1, SIZE_X, 101, 125, (GTK_FILL |  GTK_SHRINK | GTK_EXPAND),(GTK_FILL | GTK_SHRINK), 10, 5);
 | 
			
		||||
  
 | 
			
		||||
 | 
			
		||||
  
 | 
			
		||||
  
 | 
			
		||||
  /* show all widgets */ 
 | 
			
		||||
  gtk_widget_show (button_start);
 | 
			
		||||
  gtk_widget_show (button_stop);
 | 
			
		||||
  gtk_widget_show (button_detail);
 | 
			
		||||
  gtk_widget_show (label_status);
 | 
			
		||||
 | 
			
		||||
  
 | 
			
		||||
  gtk_widget_show (label_icecast);
 | 
			
		||||
  gtk_widget_show (combo_icecast);
 | 
			
		||||
  
 | 
			
		||||
  gtk_widget_show (label_server);
 | 
			
		||||
  gtk_widget_show (entry_server);
 | 
			
		||||
  
 | 
			
		||||
  gtk_widget_show (label_port);
 | 
			
		||||
  gtk_widget_show (entry_port);
 | 
			
		||||
  
 | 
			
		||||
  gtk_widget_show (label_mountpoint);
 | 
			
		||||
  gtk_widget_show (entry_mountpoint);
 | 
			
		||||
 | 
			
		||||
  gtk_widget_show (label_pass);
 | 
			
		||||
  gtk_widget_show (entry_pass);
 | 
			
		||||
 | 
			
		||||
  gtk_widget_show (label_remotedump);
 | 
			
		||||
  gtk_widget_show (entry_remotedump);
 | 
			
		||||
 | 
			
		||||
  gtk_widget_show (button_localdump);
 | 
			
		||||
  gtk_widget_show (entry_localdump);
 | 
			
		||||
  
 | 
			
		||||
  gtk_widget_show (checkbutton_adddate);
 | 
			
		||||
  
 | 
			
		||||
  gtk_widget_show (label_format);
 | 
			
		||||
  gtk_widget_show (combo_format);
 | 
			
		||||
  
 | 
			
		||||
  gtk_widget_show (label_bitratemode);
 | 
			
		||||
  gtk_widget_show (combo_bitratemode);
 | 
			
		||||
  
 | 
			
		||||
  gtk_widget_show (label_bitrate);
 | 
			
		||||
  gtk_widget_show (combo_bitrate);
 | 
			
		||||
 | 
			
		||||
  gtk_widget_show (label_samplerate);
 | 
			
		||||
  gtk_widget_show (combo_samplerate);
 | 
			
		||||
 | 
			
		||||
  gtk_widget_show (label_quality);
 | 
			
		||||
  gtk_widget_show (combo_quality);
 | 
			
		||||
 | 
			
		||||
  gtk_widget_show (label_bitspersample);
 | 
			
		||||
  gtk_widget_show (combo_bitspersample);
 | 
			
		||||
 | 
			
		||||
  gtk_widget_show (label_channel);
 | 
			
		||||
  gtk_widget_show (combo_channel);
 | 
			
		||||
 | 
			
		||||
  gtk_widget_show (label_buffersize);
 | 
			
		||||
  gtk_widget_show (combo_buffersize);
 | 
			
		||||
 | 
			
		||||
  gtk_widget_show (label_device);
 | 
			
		||||
  gtk_widget_show (combo_device);
 | 
			
		||||
 | 
			
		||||
  gtk_widget_show (label_verbosity);
 | 
			
		||||
  gtk_widget_show (combo_verbosity);
 | 
			
		||||
  
 | 
			
		||||
  gtk_widget_show (label_radioname);
 | 
			
		||||
  gtk_widget_show (entry_radioname);
 | 
			
		||||
  
 | 
			
		||||
  gtk_widget_show (label_description);
 | 
			
		||||
  gtk_widget_show (entry_description);
 | 
			
		||||
  
 | 
			
		||||
  gtk_widget_show (label_url);
 | 
			
		||||
  gtk_widget_show (entry_url);
 | 
			
		||||
  
 | 
			
		||||
  gtk_widget_show (label_genre);
 | 
			
		||||
  gtk_widget_show (entry_genre);
 | 
			
		||||
    
 | 
			
		||||
  gtk_widget_show (label_public);
 | 
			
		||||
  gtk_widget_show (combo_public);
 | 
			
		||||
 
 | 
			
		||||
  /*  gtk_widget_show (text);
 | 
			
		||||
      gtk_widget_show (scroll_text);*/
 | 
			
		||||
 | 
			
		||||
  gtk_widget_show (table_server);
 | 
			
		||||
  gtk_widget_show (table_audio);
 | 
			
		||||
  gtk_widget_show (table_description);
 | 
			
		||||
  
 | 
			
		||||
  gtk_widget_show (label_notebook_server);
 | 
			
		||||
  gtk_widget_show (label_notebook_audio);
 | 
			
		||||
  gtk_widget_show (label_notebook_description);
 | 
			
		||||
 | 
			
		||||
  gtk_widget_show (notebook);
 | 
			
		||||
 | 
			
		||||
  gtk_widget_show (menu_bar);
 | 
			
		||||
  gtk_widget_show (menu_item_file);
 | 
			
		||||
  gtk_widget_show (menu_item_open);
 | 
			
		||||
  gtk_widget_show (menu_item_save);
 | 
			
		||||
  gtk_widget_show (menu_item_quit);
 | 
			
		||||
  gtk_widget_show (menu_item_quit_nd);
 | 
			
		||||
  gtk_widget_show (menu_item_help);
 | 
			
		||||
  gtk_widget_show (menu_item_about);
 | 
			
		||||
 | 
			
		||||
  gtk_widget_show (table);
 | 
			
		||||
 | 
			
		||||
  gtk_widget_show (vbox);
 | 
			
		||||
  
 | 
			
		||||
  gtk_widget_show (window);
 | 
			
		||||
  
 | 
			
		||||
  gtk_main ();
 | 
			
		||||
 | 
			
		||||
  close (darkice_fd);
 | 
			
		||||
 | 
			
		||||
  return 0;
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,36 @@
 | 
			
		|||
darksnow (0.6-0ubuntu2) dapper; urgency=low
 | 
			
		||||
 | 
			
		||||
  * debian/compat:
 | 
			
		||||
    + Set compat to 5.
 | 
			
		||||
  * debian/rules:
 | 
			
		||||
    + use dh_iconcache .
 | 
			
		||||
 | 
			
		||||
 -- Zak B. Elep <zakame@ubuntu.com>  Tue, 11 Apr 2006 05:13:19 -0400
 | 
			
		||||
 | 
			
		||||
darksnow (0.6-0ubuntu1) dapper; urgency=low
 | 
			
		||||
 | 
			
		||||
  * New upstream release
 | 
			
		||||
  * updated the address of FSF at debian/copyright
 | 
			
		||||
  * updated debian/rules and patches to the new version
 | 
			
		||||
 | 
			
		||||
 -- Rodrigo Belem <rclbelem@gmail.com>  Fri,  4 Nov 2005 15:01:09 +0000
 | 
			
		||||
 | 
			
		||||
darksnow (0.5.3-0ubuntu1) breezy; urgency=low
 | 
			
		||||
 | 
			
		||||
  * New upstream release
 | 
			
		||||
  * updated debian/rules and patches to the new version
 | 
			
		||||
  * man page now part of the upstream release
 | 
			
		||||
 | 
			
		||||
 -- Rodrigo Belem <rclbelem@gmail.com>  Fri, 18 Oct 2005 00:26:46 -0400
 | 
			
		||||
 | 
			
		||||
darksnow (0.5.2-0ubuntu1) breezy; urgency=low
 | 
			
		||||
 | 
			
		||||
  * added Homepage to package description
 | 
			
		||||
  * removed unnecessary cdbs rules tarball.mk, autotools-vars.mk 
 | 
			
		||||
  * removed unnecessary Build-Depends: build-essential, autotools-dev
 | 
			
		||||
  * created a manpage
 | 
			
		||||
  * created a patch to fix Makefile.in to Debian way
 | 
			
		||||
  * Initial Release.
 | 
			
		||||
 | 
			
		||||
 -- Rodrigo Belem <rclbelem@gmail.com>  Fri, 19 Aug 2005 18:20:24 -0400
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1 @@
 | 
			
		|||
5
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,16 @@
 | 
			
		|||
Source: darksnow
 | 
			
		||||
Section: sound
 | 
			
		||||
Priority: optional
 | 
			
		||||
Maintainer: Rodrigo Belem <rclbelem@gmail.com>
 | 
			
		||||
Build-Depends: cdbs (>= 0.4.23-1.1), debhelper (>= 4.1.0), patchutils (>= 0.2.25), libgtk2.0-dev
 | 
			
		||||
Standards-Version: 3.6.2
 | 
			
		||||
 | 
			
		||||
Package: darksnow
 | 
			
		||||
Architecture: any
 | 
			
		||||
Depends: ${shlibs:Depends}, darkice
 | 
			
		||||
Description: simple graphical user interface to darkice
 | 
			
		||||
 DarkSnow is a graphical interface written in GTK+2 for the darkice
 | 
			
		||||
 live streamer.
 | 
			
		||||
 .
 | 
			
		||||
 Homepage: http://darksnow.radiolivre.org/
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,28 @@
 | 
			
		|||
This package was debianized by Rodrigo Belem <rclbelem@gmail.com> on
 | 
			
		||||
Fri, 19 Aug 2005 18:20:24 -0400.
 | 
			
		||||
 | 
			
		||||
It was downloaded from http://darksnow.radiolivre.org/
 | 
			
		||||
 | 
			
		||||
Copyright:
 | 
			
		||||
 | 
			
		||||
Upstream Author: Rafael Diniz <rafael@riseup.net>
 | 
			
		||||
 | 
			
		||||
License:
 | 
			
		||||
 | 
			
		||||
   This package 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; version 2 dated June, 1991.
 | 
			
		||||
 | 
			
		||||
   This package 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 package; if not, write to the Free Software
 | 
			
		||||
   Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
 | 
			
		||||
   02110-1301, USA.
 | 
			
		||||
 | 
			
		||||
On Debian GNU/Linux systems, the complete text of the GNU General
 | 
			
		||||
Public License can be found in `/usr/share/common-licenses/GPL'.
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,3 @@
 | 
			
		|||
documentation/CREDITS  
 | 
			
		||||
documentation/README.en  
 | 
			
		||||
documentation/README.pt_BR
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1 @@
 | 
			
		|||
man/darksnow.1
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,55 @@
 | 
			
		|||
--- darksnow-0.6/Makefile.in	2005-10-26 16:12:18.000000000 +0000
 | 
			
		||||
+++ Makefile.in.debian	2005-10-26 16:17:20.000000000 +0000
 | 
			
		||||
@@ -22,12 +22,12 @@
 | 
			
		||||
 INTLPREFIX=@prefix@
 | 
			
		||||
 CC=@CC@
 | 
			
		||||
 VERSION=@VERSION@
 | 
			
		||||
-CFLAGS+=-Wall 
 | 
			
		||||
+CFLAGS+=-Wall -fPIC
 | 
			
		||||
 INSTALL=install
 | 
			
		||||
 ARCH=`uname -m`
 | 
			
		||||
 
 | 
			
		||||
 #set debugging symbols:
 | 
			
		||||
-#CFLAGS+= -g 
 | 
			
		||||
+CFLAGS+= -g 
 | 
			
		||||
 
 | 
			
		||||
 #set funny messages
 | 
			
		||||
 #CFLAGS+= -DFUNNY 
 | 
			
		||||
@@ -60,34 +60,12 @@
 | 
			
		||||
 	rm -rf slack darksnow.tgz
 | 
			
		||||
 
 | 
			
		||||
 install: darksnow
 | 
			
		||||
-	$(INSTALL) -D --mode=0755 darksnow $(PREFIX)/bin/darksnow
 | 
			
		||||
-	$(INSTALL) -D --mode=0644 documentation/CHANGES $(PREFIX)/share/darksnow/changelog
 | 
			
		||||
-	$(INSTALL) -D --mode=0644 po/pt_BR.mo $(PREFIX)/share/locale/pt_BR/LC_MESSAGES/darksnow.mo
 | 
			
		||||
-	$(INSTALL) -D --mode=0644 icon/darksnow_icon.png $(PREFIX)/share/icons/hicolor/32x32/apps/darksnow.png
 | 
			
		||||
-	$(INSTALL) -D --mode=0644 man/darksnow.1.gz $(PREFIX)/share/man/man1/darksnow.1.gz
 | 
			
		||||
-
 | 
			
		||||
-make_pkg: darksnow
 | 
			
		||||
-	echo "Remember to run this option as root!"
 | 
			
		||||
-	rm -rf slack
 | 
			
		||||
-	$(INSTALL) -D --mode=0755 darksnow slack$(PREFIX)/bin/darksnow
 | 
			
		||||
-	$(INSTALL) -D --mode=0644 icon/darksnow_icon.png slack$(PREFIX)/share/icons/darksnow.png
 | 
			
		||||
-	$(INSTALL) -D --mode=0644 po/pt_BR.mo slack$(PREFIX)/share/locale/pt_BR/LC_MESSAGES/darksnow.mo
 | 
			
		||||
-	$(INSTALL) -D --mode=0644 documentation/CHANGES slack$(PREFIX)/doc/darksnow/CHANGES
 | 
			
		||||
-	$(INSTALL) -D --mode=0644 documentation/LICENSE slack$(PREFIX)/doc/darksnow/LICENSE
 | 
			
		||||
-	$(INSTALL) -D --mode=0644 documentation/README.en slack$(PREFIX)/doc/darksnow/README.en
 | 
			
		||||
-	$(INSTALL) -D --mode=0644 documentation/README.pt_BR slack$(PREFIX)/doc/darksnow/README.pt_BR	
 | 
			
		||||
-	$(INSTALL) -D --mode=0644 documentation/CHANGES slack$(PREFIX)/doc/darksnow/CHANGES
 | 
			
		||||
-	$(INSTALL) -D --mode=0644 documentation/slack-desc slack/install/slack-desc
 | 
			
		||||
-	cd slack; makepkg -c y -l n  ../darksnow-$(VERSION)-$(ARCH)-1rd.tgz
 | 
			
		||||
-	echo "Remember to run this option as root!"
 | 
			
		||||
-
 | 
			
		||||
-install_pkg: make_pkg
 | 
			
		||||
-	/sbin/installpkg darksnow-*-1rd.tgz
 | 
			
		||||
-
 | 
			
		||||
-upgrade_pkg: make_pkg
 | 
			
		||||
-	/sbin/upgradepkg darksnow-*-1rd.tgz
 | 
			
		||||
+	$(INSTALL) -D --mode=0755 $(CURDIR)/darksnow $(DESTDIR)$(PREFIX)/bin/darksnow
 | 
			
		||||
+	$(INSTALL) -D --mode=0644 $(CURDIR)/documentation/CHANGES $(DESTDIR)$(PREFIX)/share/doc/darksnow/changelog
 | 
			
		||||
+	$(INSTALL) -D --mode=0644 $(CURDIR)/po/pt_BR.mo $(DESTDIR)$(PREFIX)/share/locale/pt_BR/LC_MESSAGES/darksnow.mo
 | 
			
		||||
+	$(INSTALL) -D --mode=0644 $(CURDIR)/icon/darksnow_icon.png $(DESTDIR)$(PREFIX)/share/icons/hicolor/32x32/apps/darksnow.png
 | 
			
		||||
+	$(INSTALL) -D --mode=0644 $(CURDIR)/man/darksnow.1.gz $(DESTDIR)$(PREFIX)/share/man/man1/darksnow.1.gz
 | 
			
		||||
 
 | 
			
		||||
 dist-clean: clean
 | 
			
		||||
 	rm aclocal.m4 config.status config.log man/darksnow.1.gz Makefile
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,23 @@
 | 
			
		|||
#!/usr/bin/make -f
 | 
			
		||||
 | 
			
		||||
#DEB_AUTO_UPDATE_DEBIAN_CONTROL := yes
 | 
			
		||||
 | 
			
		||||
include /usr/share/cdbs/1/rules/debhelper.mk
 | 
			
		||||
include /usr/share/cdbs/1/rules/simple-patchsys.mk
 | 
			
		||||
include /usr/share/cdbs/1/class/autotools.mk
 | 
			
		||||
 | 
			
		||||
# Use dh_iconcache
 | 
			
		||||
install/darksnow::
 | 
			
		||||
	dh_iconcache -pdarksnow
 | 
			
		||||
 | 
			
		||||
binary-post-install/darksnow::
 | 
			
		||||
	rm -f $(CURDIR)/debian/darksnow/usr/share/doc/darksnow/README
 | 
			
		||||
 | 
			
		||||
clean::
 | 
			
		||||
	rm -f config.guess.cdbs-orig
 | 
			
		||||
	rm -f config.sub.cdbs-orig
 | 
			
		||||
	rm -f config.status 
 | 
			
		||||
	rm -f config.log 
 | 
			
		||||
	rm -f Makefile
 | 
			
		||||
	rm -f *.o *~ darksnow  
 | 
			
		||||
			    
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,61 @@
 | 
			
		|||
0.7.1
 | 
			
		||||
  Added pulseaudio support.
 | 
			
		||||
  Small fixes.
 | 
			
		||||
0.7
 | 
			
		||||
  Added Opus support.
 | 
			
		||||
  GTK3 support.
 | 
			
		||||
0.6.1
 | 
			
		||||
  Added MP2 format option.
 | 
			
		||||
  Other small changes.
 | 
			
		||||
0.6
 | 
			
		||||
  Added AAC format option.
 | 
			
		||||
  Changed the way that darksnow gets the darkice output (now it uses fifo)
 | 
			
		||||
  Fixed a memory leak and some minor improvements done. 
 | 
			
		||||
0.5.3
 | 
			
		||||
  Added some copyright notes, some minor changes and a debian directory, for package creation.
 | 
			
		||||
0.5.2
 | 
			
		||||
  Added remote and local dump file options.
 | 
			
		||||
  Some bug fixes.
 | 
			
		||||
0.5.1
 | 
			
		||||
  Added jack support. (needs darkice 0.15 or greater)
 | 
			
		||||
0.5
 | 
			
		||||
  a little bug fix and now automatic slackware package creation works ok.
 | 
			
		||||
0.4.9
 | 
			
		||||
  fixed two bugs, one of them very serious that prevented darksnow running in ppc and probably other
 | 
			
		||||
  big endian archs.
 | 
			
		||||
0.4.8
 | 
			
		||||
  fixed a wrong behaviour of the darkice output window
 | 
			
		||||
0.4.7
 | 
			
		||||
  lots of bug fixes
 | 
			
		||||
  description window now works correctly
 | 
			
		||||
0.4.6
 | 
			
		||||
  show/hide darkice output window
 | 
			
		||||
  initial tooltips support
 | 
			
		||||
  limited autoconf support
 | 
			
		||||
0.4.5
 | 
			
		||||
  darkice verbosity level option included - this breaks compatibily with older config_files.
 | 
			
		||||
0.4.4
 | 
			
		||||
  now is possible to exit darksnow without killing darkice
 | 
			
		||||
0.4.3
 | 
			
		||||
  fixed "<defunct>" bug
 | 
			
		||||
  mountpoint string can start with slash
 | 
			
		||||
  some minor enhancements and bug fixes
 | 
			
		||||
0.4.2
 | 
			
		||||
  brazilian portuguese translation fix
 | 
			
		||||
0.4.1:
 | 
			
		||||
  streaming status now works in most cases.
 | 
			
		||||
  some minor interface adjustments
 | 
			
		||||
  small bugs fixed
 | 
			
		||||
0.4:
 | 
			
		||||
  load and save configuration from file added.
 | 
			
		||||
0.3.1:
 | 
			
		||||
  small bug fix
 | 
			
		||||
0.3:
 | 
			
		||||
  notebooks added
 | 
			
		||||
  better widgets arrangement
 | 
			
		||||
  first useable version
 | 
			
		||||
0.2.1:
 | 
			
		||||
0.2:
 | 
			
		||||
0.1:
 | 
			
		||||
0.0:
 | 
			
		||||
  Initial version
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,4 @@
 | 
			
		|||
Thanks to:
 | 
			
		||||
- rhatto: bug feedback and package creation,
 | 
			
		||||
- Eddy parris (http://www.communecation.net/): icon creation.
 | 
			
		||||
- Rodrigo Belem: for the darksnow debianization
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,340 @@
 | 
			
		|||
		    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.
 | 
			
		||||
 | 
			
		||||
    <one line to give the program's name and a brief idea of what it does.>
 | 
			
		||||
    Copyright (C) <year>  <name of author>
 | 
			
		||||
 | 
			
		||||
    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.
 | 
			
		||||
 | 
			
		||||
  <signature of Ty Coon>, 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.
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,47 @@
 | 
			
		|||
# darksnow - a gtk2 interface for darkice
 | 
			
		||||
# Copyright (C) 2004  Rafael Diniz
 | 
			
		||||
# 
 | 
			
		||||
# 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.
 | 
			
		||||
 | 
			
		||||
This is darksnow, a GUI for darkice (darkice.sf.net), developed by Rafael Diniz.
 | 
			
		||||
 | 
			
		||||
Requirements:
 | 
			
		||||
- darkice 0.14 (darkice >= 0.15 for jack support),
 | 
			
		||||
- gtk2,
 | 
			
		||||
- killall (kill processes by name),
 | 
			
		||||
- linux 2.4 or greater and probably any recent BSD system (including OpenBSD, NetBSD, FreeBSD, 
 | 
			
		||||
Solaris and MacOS X).
 | 
			
		||||
 | 
			
		||||
Compiling:
 | 
			
		||||
$ ./configure --prefix=/usr
 | 
			
		||||
$ make
 | 
			
		||||
Installing, as root:
 | 
			
		||||
# make install
 | 
			
		||||
or, if you use Slackware, create a package (as root):
 | 
			
		||||
# make make_pkg
 | 
			
		||||
and install or upgrade:
 | 
			
		||||
# make install_pkg
 | 
			
		||||
or
 | 
			
		||||
# make upgrade_pkg
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
to run, type:
 | 
			
		||||
$ darksnow
 | 
			
		||||
 | 
			
		||||
Any trouble, email-me:
 | 
			
		||||
rafael@riseup.net
 | 
			
		||||
 | 
			
		||||
_The Revolution will be Streamed_
 | 
			
		||||
Get off the internet, I'll see you in the streets!
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,47 @@
 | 
			
		|||
# darksnow - uma interface grafica em gtk2 para o darkice
 | 
			
		||||
# Copyright (C) 2004  Rafael Diniz
 | 
			
		||||
# 
 | 
			
		||||
# 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.
 | 
			
		||||
 | 
			
		||||
Este eh o darksnow, uma interface grafica para o darkice (darkice.sf.net) desenvolvida por Rafael Diniz.
 | 
			
		||||
 | 
			
		||||
Pre-requisitos:
 | 
			
		||||
- darkice 0.14 (darkice 0.15 para suporte ao jack),
 | 
			
		||||
- gtk2,
 | 
			
		||||
- killall, (mata processos por nome),
 | 
			
		||||
- linux 2.4 ou superior e provavelmente qualquer sistema BSD recente (incluindo OpenBSD, NetBSD, FreeBSD,
 | 
			
		||||
Solaris e MacOS X).
 | 
			
		||||
 | 
			
		||||
Para compilar o programa, digite:
 | 
			
		||||
$ ./configure --prefix=/usr
 | 
			
		||||
$ make
 | 
			
		||||
e para instalar, como root:
 | 
			
		||||
# make install
 | 
			
		||||
ou, se voce usa Slackware, crie um pacote (como root):
 | 
			
		||||
# make make_pkg
 | 
			
		||||
e instale ou atualize usando
 | 
			
		||||
# make install_pkg
 | 
			
		||||
ou
 | 
			
		||||
# make upgrade_pkg
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
Para executar o programa, digite:
 | 
			
		||||
$ darksnow
 | 
			
		||||
 | 
			
		||||
Qualquer problema, mande um email para:
 | 
			
		||||
rafael@riseup.net
 | 
			
		||||
 | 
			
		||||
_A Revolução será transmitida pela Internet_
 | 
			
		||||
Saia da Internet, vejo você nas ruas!
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,19 @@
 | 
			
		|||
# HOW TO EDIT THIS FILE:
 | 
			
		||||
# The "handy ruler" below makes it easier to edit a package description.  Line
 | 
			
		||||
# up the first '|' above the ':' following the base package name, and the '|'
 | 
			
		||||
# on the right side marks the last column you can put a character in.  You must
 | 
			
		||||
# make exactly 11 lines for the formatting to be correct.  It's also
 | 
			
		||||
# customary to leave one space after the ':'.
 | 
			
		||||
 | 
			
		||||
       |-----handy-ruler------------------------------------------------------|
 | 
			
		||||
darksnow: darksnow (streaming tool)
 | 
			
		||||
darksnow:
 | 
			
		||||
darksnow: Darksnow is a graphical interface written in GTK+2 for the darkice
 | 
			
		||||
darksnow: live streamer.
 | 
			
		||||
darksnow:
 | 
			
		||||
darksnow:
 | 
			
		||||
darksnow:
 | 
			
		||||
darksnow:
 | 
			
		||||
darksnow:
 | 
			
		||||
darksnow:
 | 
			
		||||
darksnow:
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,154 @@
 | 
			
		|||
/* Darksnow - A GUI for darkice
 | 
			
		||||
 * Copyright (C) 2004-2005 Rafael Diniz <rafael@riseup.net>
 | 
			
		||||
 *
 | 
			
		||||
 * This source code is free software; you can redistribute it and/or
 | 
			
		||||
 * modify it under the terms of the GNU Public License as published 
 | 
			
		||||
 * by the Free Software Foundation; either version 2 of the License,
 | 
			
		||||
 * or (at your option) any later version.
 | 
			
		||||
 *
 | 
			
		||||
 * This source code 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.
 | 
			
		||||
 * Please refer to the GNU Public License for more details.
 | 
			
		||||
 *
 | 
			
		||||
 * You should have received a copy of the GNU Public License along with
 | 
			
		||||
 * this source code; if not, write to:
 | 
			
		||||
 * Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 | 
			
		||||
 *
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#define __GLOBAL_H__
 | 
			
		||||
 | 
			
		||||
#ifndef __GTK_H__
 | 
			
		||||
#include <gtk/gtk.h>
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
/* shared area */
 | 
			
		||||
void *shared_area;
 | 
			
		||||
 | 
			
		||||
/* darkice execution child process pid */
 | 
			
		||||
int pid;
 | 
			
		||||
 | 
			
		||||
/* file descriptor used by darkice output pipe */
 | 
			
		||||
int darkice_fd;
 | 
			
		||||
 | 
			
		||||
/* the user home */
 | 
			
		||||
char home[64];
 | 
			
		||||
char darksnow_cfg[64];
 | 
			
		||||
char darkice_cfg[64];
 | 
			
		||||
char darksnow_temp[64];
 | 
			
		||||
char show_detail;
 | 
			
		||||
 | 
			
		||||
/* main window Widgets */
 | 
			
		||||
GtkWidget *window;
 | 
			
		||||
GtkWidget *button_start;
 | 
			
		||||
GtkWidget *button_stop;
 | 
			
		||||
GtkWidget *button_detail;
 | 
			
		||||
GtkWidget *label_status;
 | 
			
		||||
GtkWidget *table;
 | 
			
		||||
 | 
			
		||||
/* About Dialog box */
 | 
			
		||||
GtkWidget *dialog_about;
 | 
			
		||||
 | 
			
		||||
/* darkice not found dialog box */
 | 
			
		||||
GtkWidget *dialog_darkdep;
 | 
			
		||||
GtkWidget *label_darkdep;
 | 
			
		||||
GtkWidget *button_darkdep;
 | 
			
		||||
 | 
			
		||||
/* "kill darkice?" dialog box */
 | 
			
		||||
GtkWidget *dialog_darkkill;
 | 
			
		||||
GtkWidget *label_darkkill;
 | 
			
		||||
GtkWidget *button_yes_darkkill;
 | 
			
		||||
GtkWidget *button_no_darkkill;
 | 
			
		||||
GtkWidget *button_cancel_darkkill;
 | 
			
		||||
 | 
			
		||||
/* menu stuff */
 | 
			
		||||
GtkWidget *menu_bar;
 | 
			
		||||
GtkWidget *menu_file;
 | 
			
		||||
GtkWidget *menu_item_file;
 | 
			
		||||
GtkWidget *menu_item_open;
 | 
			
		||||
GtkWidget *menu_item_save; 
 | 
			
		||||
GtkWidget *menu_item_quit_nd;
 | 
			
		||||
GtkWidget *menu_item_quit;
 | 
			
		||||
GtkWidget *menu_help;
 | 
			
		||||
GtkWidget *menu_item_help;
 | 
			
		||||
GtkWidget *menu_item_about;
 | 
			
		||||
GtkWidget *vbox;
 | 
			
		||||
 | 
			
		||||
/* open and save file selectors */
 | 
			
		||||
GtkWidget *file_open;
 | 
			
		||||
GtkWidget *file_save;
 | 
			
		||||
GtkWidget *file_localdump;
 | 
			
		||||
 | 
			
		||||
/* notebook stuff */
 | 
			
		||||
GtkWidget *notebook;
 | 
			
		||||
GtkWidget *label_notebook_server;
 | 
			
		||||
GtkWidget *table_server;
 | 
			
		||||
GtkWidget *label_notebook_audio;
 | 
			
		||||
GtkWidget *table_audio;
 | 
			
		||||
GtkWidget *label_notebook_description;
 | 
			
		||||
GtkWidget *table_description;
 | 
			
		||||
 | 
			
		||||
/* darksnow configuration stuff - button + entry */
 | 
			
		||||
 | 
			
		||||
GtkWidget *button_localdump;
 | 
			
		||||
GtkWidget *entry_localdump;
 | 
			
		||||
GtkWidget *checkbutton_adddate;
 | 
			
		||||
GtkWidget *label_remotedump;
 | 
			
		||||
GtkWidget *entry_remotedump;
 | 
			
		||||
 | 
			
		||||
/* darksnow configuration stuff - label + entry */
 | 
			
		||||
GtkWidget *label_server;
 | 
			
		||||
GtkWidget *entry_server;
 | 
			
		||||
GtkWidget *label_port;
 | 
			
		||||
GtkWidget *entry_port;
 | 
			
		||||
GtkWidget *label_mountpoint;
 | 
			
		||||
GtkWidget *entry_mountpoint;
 | 
			
		||||
GtkWidget *label_pass;
 | 
			
		||||
GtkWidget *entry_pass;
 | 
			
		||||
GtkWidget *label_radioname;
 | 
			
		||||
GtkWidget *entry_radioname;
 | 
			
		||||
GtkWidget *label_description;
 | 
			
		||||
GtkWidget *entry_description;
 | 
			
		||||
GtkWidget *label_url;
 | 
			
		||||
GtkWidget *entry_url;
 | 
			
		||||
GtkWidget *label_genre;
 | 
			
		||||
GtkWidget *entry_genre;
 | 
			
		||||
 | 
			
		||||
/* darksnow configuration stuff - label + combo box */
 | 
			
		||||
GtkWidget *label_icecast;
 | 
			
		||||
GtkWidget *combo_icecast;
 | 
			
		||||
GtkWidget *label_format;
 | 
			
		||||
GtkWidget *combo_format;
 | 
			
		||||
GtkWidget *label_bitrate;
 | 
			
		||||
GtkWidget *combo_bitrate;
 | 
			
		||||
GtkWidget *label_bitratemode;
 | 
			
		||||
GtkWidget *combo_bitratemode;
 | 
			
		||||
GtkWidget *label_samplerate;
 | 
			
		||||
GtkWidget *combo_samplerate;
 | 
			
		||||
GtkWidget *label_quality;
 | 
			
		||||
GtkWidget *combo_quality;
 | 
			
		||||
GtkWidget *label_bitspersample;
 | 
			
		||||
GtkWidget *combo_bitspersample;
 | 
			
		||||
GtkWidget *label_channel;
 | 
			
		||||
GtkWidget *combo_channel;
 | 
			
		||||
GtkWidget *label_buffersize;
 | 
			
		||||
GtkWidget *combo_buffersize;
 | 
			
		||||
GtkWidget *label_device;
 | 
			
		||||
GtkWidget *combo_device;
 | 
			
		||||
GtkWidget *label_public;
 | 
			
		||||
GtkWidget *combo_public;
 | 
			
		||||
GtkWidget *label_verbosity;
 | 
			
		||||
GtkWidget *combo_verbosity;
 | 
			
		||||
 | 
			
		||||
/* text view stuff */
 | 
			
		||||
GtkWidget *text;
 | 
			
		||||
GtkTextBuffer *buffer;
 | 
			
		||||
GtkTextTagTable *tag_table;
 | 
			
		||||
GtkTextTag *tag;
 | 
			
		||||
 | 
			
		||||
/* text view has to scroll */
 | 
			
		||||
GtkWidget *scroll_text;
 | 
			
		||||
 | 
			
		||||
/* The GTK ToolTips */
 | 
			
		||||
GtkTooltip *tooltip;
 | 
			
		||||
										
											Binary file not shown.
										
									
								
							| 
		 After Width: | Height: | Size: 2.6 KiB  | 
| 
						 | 
				
			
			@ -0,0 +1,409 @@
 | 
			
		|||
/* Darksnow - A GUI for darkice
 | 
			
		||||
 * Copyright (C) 2004-2005 Rafael Diniz <rafael@riseup.net>
 | 
			
		||||
 *
 | 
			
		||||
 * This source code is free software; you can redistribute it and/or
 | 
			
		||||
 * modify it under the terms of the GNU Public License as published 
 | 
			
		||||
 * by the Free Software Foundation; either version 2 of the License,
 | 
			
		||||
 * or (at your option) any later version.
 | 
			
		||||
 *
 | 
			
		||||
 * This source code 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.
 | 
			
		||||
 * Please refer to the GNU Public License for more details.
 | 
			
		||||
 *
 | 
			
		||||
 * You should have received a copy of the GNU Public License along with
 | 
			
		||||
 * this source code; if not, write to:
 | 
			
		||||
 * Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 | 
			
		||||
 *
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#include <stdio.h>
 | 
			
		||||
#include <stdlib.h>
 | 
			
		||||
#include <string.h>
 | 
			
		||||
#include <unistd.h>
 | 
			
		||||
#include <libintl.h>
 | 
			
		||||
#include <sys/types.h>
 | 
			
		||||
#include <sys/wait.h>
 | 
			
		||||
#include <dirent.h>
 | 
			
		||||
#include <signal.h>
 | 
			
		||||
 | 
			
		||||
#ifndef __GLOBAL_H__
 | 
			
		||||
#include "global.h"
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#ifndef __CONSTANTS_H__
 | 
			
		||||
#include "constants.h"
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#ifndef __GTK_H__
 | 
			
		||||
#include <gtk/gtk.h>
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#ifndef __CONFIG_FILES_H__
 | 
			
		||||
#include "config_files.h"
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#ifndef __INTERFACE_H__
 | 
			
		||||
#include "interface.h"
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#ifdef FUNNY
 | 
			
		||||
#define FUN 1
 | 
			
		||||
#else 
 | 
			
		||||
#define FUN 0
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
/* callback that start darkice */
 | 
			
		||||
void dark_start( GtkWidget *widget, gpointer data) {
 | 
			
		||||
  char *darkice_verbosity;
 | 
			
		||||
  char command[128], foo, dark_output[128];
 | 
			
		||||
 | 
			
		||||
  /* if the first char of shared area is 1, means that the streaming is running and we cannot start another darkice */
 | 
			
		||||
  sscanf((char *) shared_area, "%c", &foo);
 | 
			
		||||
  if (foo == '1')
 | 
			
		||||
    return;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
  /* call the function that load the values from widgets and save to the darksnow config file */
 | 
			
		||||
  darksnow_config_store(1, NULL);
 | 
			
		||||
  /* call the function that translate the darksnow config file to the darkice config file */
 | 
			
		||||
  darksnow2darkice_cfg();
 | 
			
		||||
 | 
			
		||||
  darkice_verbosity = gtk_combo_box_text_get_active_text  ( GTK_COMBO_BOX_TEXT(combo_verbosity));
 | 
			
		||||
 | 
			
		||||
  strcpy(command,"darkice");
 | 
			
		||||
  strcat(command," -v ");
 | 
			
		||||
  strcat(command, darkice_verbosity);
 | 
			
		||||
  strcat(command," -c ");
 | 
			
		||||
  strcat(command, darkice_cfg);
 | 
			
		||||
  strcat(command," > ");
 | 
			
		||||
  strcat(command, darksnow_temp);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
  if ((pid = fork()) == -1) {
 | 
			
		||||
    printf("Could not start 'darkice' process, Fork error! \n");
 | 
			
		||||
    gtk_main_quit();
 | 
			
		||||
  }
 | 
			
		||||
  
 | 
			
		||||
  if (!pid) {
 | 
			
		||||
    /* streaming started */
 | 
			
		||||
    sprintf ((char *) shared_area, "11");
 | 
			
		||||
    system(command);
 | 
			
		||||
    /* if the system() returns, this means that the streaming stopped */
 | 
			
		||||
    sprintf ((char *) shared_area, "01");
 | 
			
		||||
    _exit(-1);
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  strcpy(dark_output, gettext("-->    Command     <--\n"));
 | 
			
		||||
  strcat(dark_output, command);
 | 
			
		||||
  strcat(dark_output, gettext("\n--> Darkice output <--\n") );
 | 
			
		||||
 | 
			
		||||
  gtk_text_buffer_set_text (buffer, dark_output , strlen(dark_output));
 | 
			
		||||
  
 | 
			
		||||
  /* print the darkice output for the first time */
 | 
			
		||||
  usleep(200000);
 | 
			
		||||
  text_box_loop (1); 
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/* callback that stop darkice */
 | 
			
		||||
void dark_stop( GtkWidget *widget, gpointer data ){
 | 
			
		||||
  char out[32];
 | 
			
		||||
 | 
			
		||||
  system("killall darkice &> /dev/null");
 | 
			
		||||
  strcpy(out, gettext("Darkice off") );
 | 
			
		||||
  gtk_text_buffer_set_text (buffer, out, strlen(out));
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void dark_put_in_box ( GtkWidget *widget, gint response_id, gpointer data ) {
 | 
			
		||||
  FILE *f_darksnow_cfg;
 | 
			
		||||
  char *darksnow_path;
 | 
			
		||||
  char foo[256] = {0};
 | 
			
		||||
  char server[256] = {0};
 | 
			
		||||
  char port[128] = {0};
 | 
			
		||||
  char mountpoint[128] = {0};
 | 
			
		||||
  char pass[128] = {0};
 | 
			
		||||
  char remotedump[256] = {0};
 | 
			
		||||
  char localdump[256] = {0};
 | 
			
		||||
  char adddate;
 | 
			
		||||
  char radioname[128] = {0};
 | 
			
		||||
  char description[256] = {0};
 | 
			
		||||
  char url[256] = {0};
 | 
			
		||||
  char genre[128] = {0};
 | 
			
		||||
  char icecast[128] = {0};
 | 
			
		||||
  char format[128] = {0};
 | 
			
		||||
  char bitrate[128] = {0};
 | 
			
		||||
  char bitratemode[128] = {0};
 | 
			
		||||
  char samplerate[128] = {0};
 | 
			
		||||
  char quality[128] = {0};
 | 
			
		||||
  char bitspersample[128] = {0};
 | 
			
		||||
  char channel[128] = {0};
 | 
			
		||||
  char buffersize[128] = {0};
 | 
			
		||||
  char device[128] = {0};
 | 
			
		||||
  char public[128] = {0};
 | 
			
		||||
  char verbosity[8] = {0};
 | 
			
		||||
  DIR *directory;
 | 
			
		||||
 | 
			
		||||
  if (response_id != GTK_RESPONSE_ACCEPT) {
 | 
			
		||||
    gtk_widget_hide(file_open);
 | 
			
		||||
    return ;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  darksnow_path = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (file_open));
 | 
			
		||||
  
 | 
			
		||||
  if ( (directory = opendir(darksnow_path))) {
 | 
			
		||||
    printf("Error: %s is a directory\n", darksnow_path);
 | 
			
		||||
    closedir (directory);
 | 
			
		||||
    return;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  if (!(f_darksnow_cfg = fopen(darksnow_path, "r"))) {
 | 
			
		||||
    printf("Error: Cannot open %s\n", darksnow_path);
 | 
			
		||||
    return;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  fscanf(f_darksnow_cfg, "%[^=]=%[^\n]\n", foo, server);
 | 
			
		||||
  fscanf(f_darksnow_cfg, "%[^=]=%[^\n]\n", foo, port);
 | 
			
		||||
  fscanf(f_darksnow_cfg, "%[^=]=%[^\n]\n", foo, mountpoint);
 | 
			
		||||
  fscanf(f_darksnow_cfg, "%[^=]=%[^\n]\n", foo, pass);
 | 
			
		||||
  fscanf(f_darksnow_cfg, "%[^=]=%[^\n]\n", foo, radioname);
 | 
			
		||||
  fscanf(f_darksnow_cfg, "%[^=]=%[^\n]\n", foo, description);
 | 
			
		||||
  fscanf(f_darksnow_cfg, "%[^=]=%[^\n]\n", foo, url);
 | 
			
		||||
  fscanf(f_darksnow_cfg, "%[^=]=%[^\n]\n", foo, genre);
 | 
			
		||||
  fscanf(f_darksnow_cfg, "%[^=]=%[^\n]\n", foo, icecast);
 | 
			
		||||
  fscanf(f_darksnow_cfg, "%[^=]=%[^\n]\n", foo, format);
 | 
			
		||||
  fscanf(f_darksnow_cfg, "%[^=]=%[^\n]\n", foo, bitrate);
 | 
			
		||||
  fscanf(f_darksnow_cfg, "%[^=]=%[^\n]\n", foo, bitratemode);
 | 
			
		||||
  fscanf(f_darksnow_cfg, "%[^=]=%[^\n]\n", foo, samplerate);
 | 
			
		||||
  fscanf(f_darksnow_cfg, "%[^=]=%[^\n]\n", foo, quality);
 | 
			
		||||
  fscanf(f_darksnow_cfg, "%[^=]=%[^\n]\n", foo, bitspersample);
 | 
			
		||||
  fscanf(f_darksnow_cfg, "%[^=]=%[^\n]\n", foo, channel);
 | 
			
		||||
  fscanf(f_darksnow_cfg, "%[^=]=%[^\n]\n", foo, buffersize);
 | 
			
		||||
  fscanf(f_darksnow_cfg, "%[^=]=%[^\n]\n", foo, device);
 | 
			
		||||
  fscanf(f_darksnow_cfg, "%[^=]=%[^\n]\n", foo, public);
 | 
			
		||||
  fscanf(f_darksnow_cfg, "%[^=]=%[^\n]\n", foo, verbosity);
 | 
			
		||||
  fscanf(f_darksnow_cfg, "%[^=]=%[^\n]\n", foo, remotedump);
 | 
			
		||||
  fscanf(f_darksnow_cfg, "%[^=]=%[^\n]\n", foo, localdump);
 | 
			
		||||
  fscanf(f_darksnow_cfg, "%[^=]=%c\n", foo, &adddate);
 | 
			
		||||
 | 
			
		||||
  gtk_entry_set_text ( (GtkEntry *) entry_server, server);
 | 
			
		||||
  gtk_entry_set_text ( (GtkEntry *) entry_port, port);
 | 
			
		||||
  gtk_entry_set_text ( (GtkEntry *) entry_mountpoint, mountpoint);
 | 
			
		||||
  gtk_entry_set_text ( (GtkEntry *) entry_pass, pass);
 | 
			
		||||
  gtk_entry_set_text ( (GtkEntry *) entry_radioname, radioname);
 | 
			
		||||
  gtk_entry_set_text ( (GtkEntry *) entry_description, description);
 | 
			
		||||
  gtk_entry_set_text ( (GtkEntry *) entry_url, url);
 | 
			
		||||
  gtk_entry_set_text ( (GtkEntry *) entry_genre, genre);
 | 
			
		||||
  gtk_entry_set_text ( (GtkEntry *) entry_server, server);
 | 
			
		||||
  gtk_entry_set_text ( (GtkEntry *) entry_remotedump, remotedump);
 | 
			
		||||
  gtk_entry_set_text ( (GtkEntry *) entry_localdump, localdump);
 | 
			
		||||
  gtk_entry_set_text ( GTK_ENTRY(gtk_bin_get_child (GTK_BIN (combo_icecast))), icecast);
 | 
			
		||||
  gtk_entry_set_text ( GTK_ENTRY(gtk_bin_get_child (GTK_BIN (combo_format))), format);
 | 
			
		||||
  gtk_entry_set_text ( GTK_ENTRY(gtk_bin_get_child (GTK_BIN (combo_bitrate))), bitrate);
 | 
			
		||||
  gtk_entry_set_text ( GTK_ENTRY(gtk_bin_get_child (GTK_BIN (combo_bitratemode))), bitratemode);
 | 
			
		||||
  gtk_entry_set_text ( GTK_ENTRY(gtk_bin_get_child (GTK_BIN (combo_samplerate))), samplerate);
 | 
			
		||||
  gtk_entry_set_text ( GTK_ENTRY(gtk_bin_get_child (GTK_BIN (combo_quality))), quality);
 | 
			
		||||
  gtk_entry_set_text ( GTK_ENTRY(gtk_bin_get_child (GTK_BIN (combo_bitspersample))), bitspersample);
 | 
			
		||||
  gtk_entry_set_text ( GTK_ENTRY(gtk_bin_get_child (GTK_BIN (combo_channel))), channel);
 | 
			
		||||
  gtk_entry_set_text ( GTK_ENTRY(gtk_bin_get_child (GTK_BIN (combo_buffersize))), buffersize);
 | 
			
		||||
  gtk_entry_set_text ( GTK_ENTRY(gtk_bin_get_child (GTK_BIN (combo_device))), device);
 | 
			
		||||
  gtk_entry_set_text ( GTK_ENTRY(gtk_bin_get_child (GTK_BIN (combo_public))), public);
 | 
			
		||||
  gtk_entry_set_text ( GTK_ENTRY(gtk_bin_get_child (GTK_BIN (combo_verbosity))),verbosity);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
  if (adddate == '1')
 | 
			
		||||
    gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON (checkbutton_adddate), TRUE);
 | 
			
		||||
  else
 | 
			
		||||
    gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON (checkbutton_adddate), FALSE);
 | 
			
		||||
 | 
			
		||||
  fclose(f_darksnow_cfg);
 | 
			
		||||
 | 
			
		||||
  gtk_widget_hide(file_open);
 | 
			
		||||
  
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void dark_write_config ( GtkWidget *widget, gint response_id, gpointer data ) {
 | 
			
		||||
  char *darksnow_path;
 | 
			
		||||
 | 
			
		||||
  if (response_id != GTK_RESPONSE_ACCEPT) {
 | 
			
		||||
    gtk_widget_hide(file_save);
 | 
			
		||||
    return ;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  darksnow_path = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (file_save));
 | 
			
		||||
  if (darksnow_config_store (0, darksnow_path))
 | 
			
		||||
    gtk_widget_hide(file_save);
 | 
			
		||||
  
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
void dark_localdump (GtkWidget *widget, gint response_id,  gpointer data){
 | 
			
		||||
  if (response_id != GTK_RESPONSE_ACCEPT) {
 | 
			
		||||
    gtk_widget_hide(file_localdump);
 | 
			
		||||
    return ;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  gtk_entry_set_text ( (GtkEntry *) entry_localdump, gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (file_localdump)));
 | 
			
		||||
  gtk_widget_hide (file_localdump);
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void clean_text_view_memory(){
 | 
			
		||||
  GtkTextIter start_iter, end_iter;
 | 
			
		||||
 | 
			
		||||
  gtk_text_buffer_get_bounds (buffer, &start_iter, &end_iter);
 | 
			
		||||
  gtk_text_iter_forward_lines (&start_iter, 6);
 | 
			
		||||
  gtk_text_iter_backward_lines (&end_iter, 6);
 | 
			
		||||
  gtk_text_buffer_delete(buffer, &start_iter, &end_iter);
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
gboolean status_loop (gboolean foo) {
 | 
			
		||||
  char status[3];
 | 
			
		||||
  static int alarm_id = 0;
 | 
			
		||||
  
 | 
			
		||||
 | 
			
		||||
  /** This checks if the status of the transmission if ON or OFF, using the shared area **/
 | 
			
		||||
  sscanf((char *) shared_area, "%s", status);
 | 
			
		||||
 | 
			
		||||
  /* if the update label flag is on */
 | 
			
		||||
  if (status[1] == '1') {
 | 
			
		||||
    /** streaming stopped **/
 | 
			
		||||
    if (status [0] == '0') {
 | 
			
		||||
      gtk_label_set_text(GTK_LABEL (label_status), gettext("Streaming Status: Stopped")); 
 | 
			
		||||
      text_box_loop(1);
 | 
			
		||||
      if (alarm_id)
 | 
			
		||||
	g_source_remove(alarm_id);
 | 
			
		||||
    }
 | 
			
		||||
    /** streaming started **/
 | 
			
		||||
    else {
 | 
			
		||||
      gtk_label_set_text(GTK_LABEL (label_status), gettext("Streaming Status: Started")); 
 | 
			
		||||
      text_box_loop(0);
 | 
			
		||||
      alarm_id = g_timeout_add (4000, (GSourceFunc) text_box_loop, 0);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    strncpy((char *) shared_area+1, "0", 1);  
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  /* I need nothing from child, just do this to prevent <defunct> processes */
 | 
			
		||||
  waitpid(pid, NULL, WNOHANG);
 | 
			
		||||
 | 
			
		||||
  return TRUE;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#define BUFFER_SIZE 16384
 | 
			
		||||
 | 
			
		||||
gboolean text_box_loop (int option) {
 | 
			
		||||
  char dark_output[BUFFER_SIZE];
 | 
			
		||||
  char status[3];
 | 
			
		||||
  int i;
 | 
			
		||||
  static int bytes_written = 0;
 | 
			
		||||
 | 
			
		||||
  sscanf((char *) shared_area, "%s", status);
 | 
			
		||||
  
 | 
			
		||||
  if (status[0] == '1' || option == 1) {
 | 
			
		||||
    
 | 
			
		||||
    while ( (i = read (darkice_fd, dark_output, BUFFER_SIZE - 1))  && i > 0 ) {
 | 
			
		||||
      dark_output[i] = 0;
 | 
			
		||||
      gtk_text_buffer_insert_at_cursor (buffer, dark_output, strlen(dark_output));
 | 
			
		||||
      bytes_written = bytes_written + i;
 | 
			
		||||
 | 
			
		||||
      /* 32 * BUFFER_SIZE =  */
 | 
			
		||||
      if (bytes_written > 524288){
 | 
			
		||||
	clean_text_view_memory();
 | 
			
		||||
	bytes_written = 0;
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
  return TRUE; 
 | 
			
		||||
} 
 | 
			
		||||
 | 
			
		||||
/* callback que chama a funcao de saida do programa, eh issu mermo, mata tudo mermaum!! */
 | 
			
		||||
gboolean delete_event(GtkWidget *widget, GdkEvent  *event, gpointer data) {
 | 
			
		||||
 | 
			
		||||
  system("killall darkice &> /dev/null");
 | 
			
		||||
  gtk_main_quit ();
 | 
			
		||||
  return FALSE;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/* callback that exit without killing darkice */
 | 
			
		||||
gboolean delete_event_nd (GtkWidget *widget, GdkEvent  *event, gpointer data) {
 | 
			
		||||
  char foo;
 | 
			
		||||
 | 
			
		||||
  sscanf((char *) shared_area, "%c", &foo);
 | 
			
		||||
  if (foo == '1')
 | 
			
		||||
    kill(pid,SIGTERM);
 | 
			
		||||
 | 
			
		||||
  gtk_main_quit ();
 | 
			
		||||
  return FALSE;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
gboolean main_quit (GtkWidget *widget, GdkEvent  *event, gpointer data) {
 | 
			
		||||
  char status = '0';
 | 
			
		||||
 | 
			
		||||
  sscanf ((char *) shared_area, "%c", &status);
 | 
			
		||||
 | 
			
		||||
  /* if darkice is running, ask for killing it */
 | 
			
		||||
  if (status == '1') {
 | 
			
		||||
    gtk_widget_show (button_yes_darkkill);
 | 
			
		||||
    gtk_widget_show (button_no_darkkill);
 | 
			
		||||
    gtk_widget_show (label_darkkill);
 | 
			
		||||
    gtk_widget_show (dialog_darkkill);
 | 
			
		||||
  }
 | 
			
		||||
  else
 | 
			
		||||
    exit(0);
 | 
			
		||||
  //delete_event_nd(NULL, NULL, NULL);
 | 
			
		||||
  
 | 
			
		||||
  return FALSE;
 | 
			
		||||
      
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/* function that is called when darkice is not found */
 | 
			
		||||
void darkice_not_found() {
 | 
			
		||||
  char bar[192];
 | 
			
		||||
 | 
			
		||||
  /* sets up the darkice not found dialog */
 | 
			
		||||
  if (!FUN)
 | 
			
		||||
    sprintf(bar, gettext("Darkice binary 'darkice' not found on path!\nDownload darkice at http://code.google.com/p/darkice/"));
 | 
			
		||||
  else
 | 
			
		||||
    sprintf(bar, gettext("Don't you know you should have the fucking\ndarkice to run this shit!!\nGet it at http://code.google.com/p/darkice/\n"));
 | 
			
		||||
  
 | 
			
		||||
  dialog_darkdep = gtk_dialog_new ();
 | 
			
		||||
  label_darkdep = gtk_label_new ( bar );
 | 
			
		||||
  button_darkdep = gtk_button_new_with_label ( gettext("Close"));
 | 
			
		||||
  gtk_window_set_title(GTK_WINDOW (dialog_darkdep), gettext("Error"));
 | 
			
		||||
 | 
			
		||||
  gtk_box_pack_start (GTK_BOX (gtk_dialog_get_action_area( GTK_DIALOG (dialog_darkdep))), button_darkdep, TRUE, TRUE, 0);
 | 
			
		||||
  gtk_box_pack_start (GTK_BOX (gtk_dialog_get_content_area( GTK_DIALOG (dialog_darkdep))), label_darkdep, TRUE, TRUE, 0);
 | 
			
		||||
 | 
			
		||||
  g_signal_connect (G_OBJECT (dialog_darkdep), "delete_event",G_CALLBACK (delete_event), NULL);
 | 
			
		||||
  g_signal_connect (G_OBJECT (button_darkdep), "clicked",G_CALLBACK (delete_event), NULL);
 | 
			
		||||
  
 | 
			
		||||
  gtk_widget_show (button_darkdep);
 | 
			
		||||
  gtk_widget_show (label_darkdep);
 | 
			
		||||
  gtk_widget_show (dialog_darkdep);
 | 
			
		||||
 | 
			
		||||
  gtk_main ();
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void dark_detail (GtkWidget *widget, gpointer data) {
 | 
			
		||||
  if (show_detail) {
 | 
			
		||||
    show_detail = 0;
 | 
			
		||||
    gtk_button_set_label (GTK_BUTTON(button_detail), gettext("Show Details"));
 | 
			
		||||
    gtk_widget_hide (scroll_text);
 | 
			
		||||
    gtk_widget_hide (text);
 | 
			
		||||
    gtk_window_resize (GTK_WINDOW(window), SIZE_X, SIZE_Y);
 | 
			
		||||
  }
 | 
			
		||||
  else{
 | 
			
		||||
    show_detail = 1;
 | 
			
		||||
    gtk_button_set_label (GTK_BUTTON(button_detail), gettext("Hide Details"));
 | 
			
		||||
    gtk_widget_show (text);
 | 
			
		||||
    gtk_widget_show (scroll_text);
 | 
			
		||||
    gtk_window_resize (GTK_WINDOW(window), SIZE_X, SIZE_Y+110);
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,69 @@
 | 
			
		|||
/* Darksnow - A GUI for darkice
 | 
			
		||||
 * Copyright (C) 2004-2005 Rafael Diniz <rafael@riseup.net>
 | 
			
		||||
 *
 | 
			
		||||
 * This source code is free software; you can redistribute it and/or
 | 
			
		||||
 * modify it under the terms of the GNU Public License as published 
 | 
			
		||||
 * by the Free Software Foundation; either version 2 of the License,
 | 
			
		||||
 * or (at your option) any later version.
 | 
			
		||||
 *
 | 
			
		||||
 * This source code 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.
 | 
			
		||||
 * Please refer to the GNU Public License for more details.
 | 
			
		||||
 *
 | 
			
		||||
 * You should have received a copy of the GNU Public License along with
 | 
			
		||||
 * this source code; if not, write to:
 | 
			
		||||
 * Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 | 
			
		||||
 *
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#define __INTERFACE_H__
 | 
			
		||||
 | 
			
		||||
#ifndef __GTK_H__
 | 
			
		||||
#include <gtk/gtk.h>
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
/* Callback for button_start click */
 | 
			
		||||
void dark_start (GtkWidget *widget, gpointer data);
 | 
			
		||||
 | 
			
		||||
/* Callback for button_stop click */
 | 
			
		||||
void dark_stop (GtkWidget *widget, gpointer data);
 | 
			
		||||
 | 
			
		||||
/* Callback for button_load click */
 | 
			
		||||
void dark_load (GtkWidget *widget, gpointer data);
 | 
			
		||||
 | 
			
		||||
/* Callback for OK button of the "Open File" file selector, displayed by dark_open */
 | 
			
		||||
void dark_put_in_box (GtkWidget *widget, gint response_id, gpointer data);
 | 
			
		||||
 | 
			
		||||
/* Callback for OK button of the "Save File" file selector, displayed by dark_save */
 | 
			
		||||
void dark_write_config ( GtkWidget *widget, gint response_id, gpointer data );
 | 
			
		||||
 | 
			
		||||
/* Callback for the local dump file selector 'ok' button */
 | 
			
		||||
void dark_localdump (GtkWidget *widget, gint response_id,  gpointer data);
 | 
			
		||||
 | 
			
		||||
/* Cleans the buffer inside the view box */
 | 
			
		||||
void clean_text_view_memory();
 | 
			
		||||
 | 
			
		||||
/* The function that updates the streaming status */
 | 
			
		||||
gboolean status_loop (gboolean foo);
 | 
			
		||||
 | 
			
		||||
/* The function that updates the darkice output window, when option == 1, means that     */
 | 
			
		||||
/* the "streaming_started" flag will be ignored, if option == 0, the "streaming_started" */
 | 
			
		||||
/* flag will not be ignored and the debug window will not be updated.                    */
 | 
			
		||||
gboolean text_box_loop (int option);
 | 
			
		||||
 | 
			
		||||
/* Callback that call the gtk_main_quit() */
 | 
			
		||||
gboolean delete_event (GtkWidget *widget, GdkEvent *event, gpointer data );
 | 
			
		||||
 | 
			
		||||
/* Callback that call the gtk_main_quit() without killing darkice */
 | 
			
		||||
gboolean delete_event_nd (GtkWidget *widget, GdkEvent *event, gpointer data );
 | 
			
		||||
 | 
			
		||||
/* Callback that shows a dialog asking for killing or not darkice before quitting */
 | 
			
		||||
gboolean main_quit (GtkWidget *widget, GdkEvent  *event, gpointer data);
 | 
			
		||||
 | 
			
		||||
/* darkice not found function */
 | 
			
		||||
void darkice_not_found();
 | 
			
		||||
 | 
			
		||||
/* callback function that is called when Detail button is clicked */
 | 
			
		||||
void dark_detail (GtkWidget *widget, gpointer data);
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,62 @@
 | 
			
		|||
.\" Process this file with
 | 
			
		||||
.\" groff -man -Tascii foo.1
 | 
			
		||||
.\"
 | 
			
		||||
.TH DARKSNOW 1 "August 2005" UNIX "User Manuals"
 | 
			
		||||
.SH NAME
 | 
			
		||||
darksnow \- A simple frontend to DarkIce
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
.SH DESCRIPTION
 | 
			
		||||
\fBDarkSnow\fP is a graphical interface written in GTK+2 for the
 | 
			
		||||
darkice live streamer.
 | 
			
		||||
 | 
			
		||||
.SH SEE ALSO
 | 
			
		||||
.BR darkice (1)
 | 
			
		||||
.br
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
.SH AUTHOR
 | 
			
		||||
.nf
 | 
			
		||||
darksnow was written by Rafael Diniz <rafael@riseup.net>.
 | 
			
		||||
 | 
			
		||||
This manual page was written by Rodrigo Belem.
 | 
			
		||||
.fi
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
.SH BUGS
 | 
			
		||||
.nf
 | 
			
		||||
Send feedback or report bugs to: rafael@riseup.net
 | 
			
		||||
.fi
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
.SH COPYING
 | 
			
		||||
 | 
			
		||||
Permission is granted to copy, distribute and/or modify this manual
 | 
			
		||||
under the terms of the GNU Free Documentation License, Version 1.1 or
 | 
			
		||||
any later version published by the Free Software Foundation;
 | 
			
		||||
Permission is granted to make and distribute verbatim copies of this
 | 
			
		||||
manual page provided the above copyright notice and this permission
 | 
			
		||||
notice are preserved on all copies.
 | 
			
		||||
 | 
			
		||||
--
 | 
			
		||||
 | 
			
		||||
DarkSnow source code is free software; you can redistribute it and/or
 | 
			
		||||
modify it under the terms of the GNU Public License as published by
 | 
			
		||||
the Free Software Foundation; either version 2 of the License, or (at
 | 
			
		||||
your option) any later version.
 | 
			
		||||
 | 
			
		||||
DarkSnow source code 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.
 | 
			
		||||
Please refer to the GNU Public License for more details.
 | 
			
		||||
 | 
			
		||||
You should have received a copy of the GNU Public License along with
 | 
			
		||||
this source code; if not, write to:
 | 
			
		||||
Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139,
 | 
			
		||||
USA.
 | 
			
		||||
 | 
			
		||||
.SH AVAILABILITY
 | 
			
		||||
 | 
			
		||||
The most recent version of \fIDarkSnow\fR can be obtained from its
 | 
			
		||||
homepage at \fIhttp://darksnow.radiolivre.org\fR.
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,2 @@
 | 
			
		|||
all:
 | 
			
		||||
	msgfmt pt_BR.po -o pt_BR.mo
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,387 @@
 | 
			
		|||
# translation of darksnow to Brazilian portuguese.
 | 
			
		||||
# This file is distributed under the GNU GPLv2.
 | 
			
		||||
# Copyright (C) 2005, Rafael Diniz
 | 
			
		||||
# Rafael Diniz <rafael@riseup.net>, 2005.
 | 
			
		||||
#
 | 
			
		||||
msgid ""
 | 
			
		||||
msgstr ""
 | 
			
		||||
"Project-Id-Version: Darksnow 0.6\n"
 | 
			
		||||
"Report-Msgid-Bugs-To: Rafael Diniz <rafael@riseup.net>\n"
 | 
			
		||||
"POT-Creation-Date: 2004-02-05 00:52-0300\n"
 | 
			
		||||
"PO-Revision-Date: 2005-11-03 22:42+0000\n"
 | 
			
		||||
"Last-Translator: Rafael Diniz <rafael@riseup.net>\n"
 | 
			
		||||
"Language-Team: Rafael Diniz <rafael@riseup.net>\n"
 | 
			
		||||
"MIME-Version: 1.0\n"
 | 
			
		||||
"Content-Type: text/plain; charset=UTF-8\n"
 | 
			
		||||
"Content-Transfer-Encoding: 8bit\n"
 | 
			
		||||
 | 
			
		||||
#: config_files.c:259 darksnow.c:290
 | 
			
		||||
msgid "Constant"
 | 
			
		||||
msgstr "Constante"
 | 
			
		||||
 | 
			
		||||
#: config_files.c:262 darksnow.c:291
 | 
			
		||||
msgid "Average"
 | 
			
		||||
msgstr "Media"
 | 
			
		||||
 | 
			
		||||
#: config_files.c:265 darksnow.c:292
 | 
			
		||||
msgid "Variable"
 | 
			
		||||
msgstr "Variavel"
 | 
			
		||||
 | 
			
		||||
#: config_files.c:272 darksnow.c:281
 | 
			
		||||
msgid "mp3"
 | 
			
		||||
msgstr "mp3"
 | 
			
		||||
 | 
			
		||||
#: config_files.c:274 darksnow.c:282
 | 
			
		||||
msgid "ogg/vorbis"
 | 
			
		||||
msgstr "ogg/vorbis"
 | 
			
		||||
 | 
			
		||||
#: config_files.c:276 darksnow.c:283
 | 
			
		||||
msgid "aac"
 | 
			
		||||
msgstr "aac"
 | 
			
		||||
 | 
			
		||||
#: config_files.c:301 darksnow.c:425
 | 
			
		||||
msgid "yes"
 | 
			
		||||
msgstr "sim"
 | 
			
		||||
 | 
			
		||||
#: darksnow.c:142
 | 
			
		||||
msgid "Start Streaming"
 | 
			
		||||
msgstr "Iniciar Transmissao"
 | 
			
		||||
 | 
			
		||||
#: darksnow.c:143
 | 
			
		||||
msgid "Stop Streaming"
 | 
			
		||||
msgstr "Parar Transmissao"
 | 
			
		||||
 | 
			
		||||
#: darksnow.c:144 interface.c:384
 | 
			
		||||
msgid "Show Details"
 | 
			
		||||
msgstr "Mostrar Detalhes"
 | 
			
		||||
 | 
			
		||||
#: darksnow.c:146 interface.c:262
 | 
			
		||||
msgid "Streaming Status: Stopped"
 | 
			
		||||
msgstr "Estado da Transmissao: Parada"
 | 
			
		||||
 | 
			
		||||
#: darksnow.c:161
 | 
			
		||||
msgid "File"
 | 
			
		||||
msgstr "Arquivo"
 | 
			
		||||
 | 
			
		||||
#: darksnow.c:162
 | 
			
		||||
msgid "Open Configuration"
 | 
			
		||||
msgstr "Abrir Configuracao"
 | 
			
		||||
 | 
			
		||||
#: darksnow.c:163
 | 
			
		||||
msgid "Save Configuration"
 | 
			
		||||
msgstr "Salvar Configuracao"
 | 
			
		||||
 | 
			
		||||
#: darksnow.c:164
 | 
			
		||||
msgid "Quit and don't stop darkice"
 | 
			
		||||
msgstr "Sair sem desligar o darkice"
 | 
			
		||||
 | 
			
		||||
#: darksnow.c:165
 | 
			
		||||
msgid "Quit"
 | 
			
		||||
msgstr "Sair"
 | 
			
		||||
 | 
			
		||||
#: darksnow.c:174
 | 
			
		||||
msgid "Help"
 | 
			
		||||
msgstr "Ajuda"
 | 
			
		||||
 | 
			
		||||
#: darksnow.c:175
 | 
			
		||||
msgid "About"
 | 
			
		||||
msgstr "Sobre"
 | 
			
		||||
 | 
			
		||||
#: darksnow.c:185
 | 
			
		||||
#, c-format
 | 
			
		||||
msgid ""
 | 
			
		||||
"DarkSnow version: %s\n"
 | 
			
		||||
"Software written by Rafael Diniz\n"
 | 
			
		||||
"License: GNU Public License v2"
 | 
			
		||||
msgstr ""
 | 
			
		||||
"Versao do DarkSnow: %s\n"
 | 
			
		||||
"Programa escrito por Rafael Diniz\n"
 | 
			
		||||
"Licenca: GNU GPL v2"
 | 
			
		||||
 | 
			
		||||
#: darksnow.c:188 interface.c:364
 | 
			
		||||
msgid "Close"
 | 
			
		||||
msgstr "Fechar"
 | 
			
		||||
 | 
			
		||||
#: darksnow.c:189
 | 
			
		||||
msgid "About DarkSnow"
 | 
			
		||||
msgstr "Sobre o DarkSnow"
 | 
			
		||||
 | 
			
		||||
#: darksnow.c:196
 | 
			
		||||
msgid ""
 | 
			
		||||
"Darkice is running.\n"
 | 
			
		||||
"Do you want to kill darkice?\n"
 | 
			
		||||
msgstr ""
 | 
			
		||||
"O Darkice esta sendo executado.\n"
 | 
			
		||||
"Voce quer que o darkice seja desligado?\n"
 | 
			
		||||
 | 
			
		||||
#: darksnow.c:197
 | 
			
		||||
msgid "Yes"
 | 
			
		||||
msgstr "Sim"
 | 
			
		||||
 | 
			
		||||
#: darksnow.c:198
 | 
			
		||||
msgid "No"
 | 
			
		||||
msgstr "Nao"
 | 
			
		||||
 | 
			
		||||
#: darksnow.c:200
 | 
			
		||||
msgid "Darkice is running"
 | 
			
		||||
msgstr "Darkice sendo executado"
 | 
			
		||||
 | 
			
		||||
#: darksnow.c:211
 | 
			
		||||
msgid "Open File"
 | 
			
		||||
msgstr "Abrir Arquivo"
 | 
			
		||||
 | 
			
		||||
#: darksnow.c:212
 | 
			
		||||
msgid "Save File"
 | 
			
		||||
msgstr "Salvar Arquivo"
 | 
			
		||||
 | 
			
		||||
#: darksnow.c:213 darksnow.c:270
 | 
			
		||||
msgid "Local Dump File"
 | 
			
		||||
msgstr "Arquivo de Dump Local"
 | 
			
		||||
 | 
			
		||||
#: darksnow.c:223
 | 
			
		||||
msgid "Server Options"
 | 
			
		||||
msgstr "Opcoes do Servidor"
 | 
			
		||||
 | 
			
		||||
#: darksnow.c:224
 | 
			
		||||
msgid "Audio Options"
 | 
			
		||||
msgstr "Opcoes de Audio"
 | 
			
		||||
 | 
			
		||||
#: darksnow.c:225
 | 
			
		||||
msgid "Streaming Description"
 | 
			
		||||
msgstr "Descricao da Transmissao"
 | 
			
		||||
 | 
			
		||||
#: darksnow.c:232
 | 
			
		||||
msgid "Streaming Destination: "
 | 
			
		||||
msgstr "Destino da Transmissao: "
 | 
			
		||||
 | 
			
		||||
#: darksnow.c:241
 | 
			
		||||
msgid "Server: "
 | 
			
		||||
msgstr "Servidor: "
 | 
			
		||||
 | 
			
		||||
#: darksnow.c:243
 | 
			
		||||
msgid "Port: "
 | 
			
		||||
msgstr "Porta: "
 | 
			
		||||
 | 
			
		||||
#: darksnow.c:245
 | 
			
		||||
msgid "Mount Point: "
 | 
			
		||||
msgstr "Ponto de Montagem: "
 | 
			
		||||
 | 
			
		||||
#: darksnow.c:247
 | 
			
		||||
msgid "Password: "
 | 
			
		||||
msgstr "Senha: "
 | 
			
		||||
 | 
			
		||||
#: darksnow.c:251
 | 
			
		||||
msgid "Verbosity level: "
 | 
			
		||||
msgstr "Nivel de verbosidade: "
 | 
			
		||||
 | 
			
		||||
#: darksnow.c:267
 | 
			
		||||
msgid "Remote Dump File: "
 | 
			
		||||
msgstr "Arquivo de Dump Remoto: "
 | 
			
		||||
 | 
			
		||||
#: darksnow.c:273
 | 
			
		||||
msgid "Add date to local dump filename? "
 | 
			
		||||
msgstr "Adicinar a data ao nome do arquivo de dump local? "
 | 
			
		||||
 | 
			
		||||
#: darksnow.c:278
 | 
			
		||||
msgid "Format: "
 | 
			
		||||
msgstr "Formato: "
 | 
			
		||||
 | 
			
		||||
#: darksnow.c:287
 | 
			
		||||
msgid "BitRateMode: "
 | 
			
		||||
msgstr "Modo de codificacao: "
 | 
			
		||||
 | 
			
		||||
#: darksnow.c:295
 | 
			
		||||
msgid "BitRate: "
 | 
			
		||||
msgstr "Razao de bits: "
 | 
			
		||||
 | 
			
		||||
#: darksnow.c:320
 | 
			
		||||
msgid "SampleRate: "
 | 
			
		||||
msgstr "Taxa de Amostragem: "
 | 
			
		||||
 | 
			
		||||
#: darksnow.c:333
 | 
			
		||||
msgid "Quality: "
 | 
			
		||||
msgstr "Qualidade: "
 | 
			
		||||
 | 
			
		||||
#: darksnow.c:348
 | 
			
		||||
msgid "Bits per Sample: "
 | 
			
		||||
msgstr "Bits por Amostra: "
 | 
			
		||||
 | 
			
		||||
#: darksnow.c:355
 | 
			
		||||
msgid "Number of channels: "
 | 
			
		||||
msgstr "Numero de canais: "
 | 
			
		||||
 | 
			
		||||
#: darksnow.c:363
 | 
			
		||||
msgid "Buffer Size: "
 | 
			
		||||
msgstr "Tamanho do Buffer: "
 | 
			
		||||
 | 
			
		||||
#: darksnow.c:389
 | 
			
		||||
msgid "Device Input: "
 | 
			
		||||
msgstr "Dispositivo de Entrada: "
 | 
			
		||||
 | 
			
		||||
#: darksnow.c:410
 | 
			
		||||
msgid "Radio Name: "
 | 
			
		||||
msgstr "Nome da Radio: "
 | 
			
		||||
 | 
			
		||||
#: darksnow.c:412
 | 
			
		||||
msgid "URL: "
 | 
			
		||||
msgstr "URL: "
 | 
			
		||||
 | 
			
		||||
#: darksnow.c:414
 | 
			
		||||
msgid "Description: "
 | 
			
		||||
msgstr "Descricao: "
 | 
			
		||||
 | 
			
		||||
#: darksnow.c:416
 | 
			
		||||
msgid "Genre: "
 | 
			
		||||
msgstr "Genero: "
 | 
			
		||||
 | 
			
		||||
#: darksnow.c:422
 | 
			
		||||
msgid "Public: "
 | 
			
		||||
msgstr "Publica: "
 | 
			
		||||
 | 
			
		||||
#: darksnow.c:426
 | 
			
		||||
msgid "no"
 | 
			
		||||
msgstr "nao"
 | 
			
		||||
 | 
			
		||||
#: darksnow.c:435
 | 
			
		||||
msgid ""
 | 
			
		||||
"DarkSnow - A graphical user interface for darkice\n"
 | 
			
		||||
"The Revolution will be streamed!"
 | 
			
		||||
msgstr ""
 | 
			
		||||
"DarkSnow - Uma interface grafica para o darkice\n"
 | 
			
		||||
"A Revolucao sera transmitida pela Internet!"
 | 
			
		||||
 | 
			
		||||
#: interface.c:97
 | 
			
		||||
msgid "-->    Command     <--\n"
 | 
			
		||||
msgstr "-->    Comando     <--\n"
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#: interface.c:99
 | 
			
		||||
msgid ""
 | 
			
		||||
"\n"
 | 
			
		||||
"--> Darkice output <--\n"
 | 
			
		||||
msgstr ""
 | 
			
		||||
"\n"
 | 
			
		||||
"--> Saida do Darkice <--\n"
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#: interface.c:113
 | 
			
		||||
msgid "Darkice off"
 | 
			
		||||
msgstr "Darkice desligado"
 | 
			
		||||
 | 
			
		||||
#: interface.c:269
 | 
			
		||||
msgid "Streaming Status: Started"
 | 
			
		||||
msgstr "Estado da Transmissao: Iniciada"
 | 
			
		||||
 | 
			
		||||
#: interface.c:358
 | 
			
		||||
#, c-format
 | 
			
		||||
msgid ""
 | 
			
		||||
"Darkice binary 'darkice' not found on path!\n"
 | 
			
		||||
"Download darkice at http://code.google.com/p/darkice/"
 | 
			
		||||
msgstr ""
 | 
			
		||||
"Darkice nao encontrado!\n"
 | 
			
		||||
"Baixe o darkice de http://code.google.com/p/darkice/"
 | 
			
		||||
 | 
			
		||||
#: interface.c:360
 | 
			
		||||
#, c-format
 | 
			
		||||
msgid ""
 | 
			
		||||
"Don't you know you should have the fucking\n"
 | 
			
		||||
"darkice to run this shit!!\n"
 | 
			
		||||
"Get it at http://code.google.com/p/darkice/\n"
 | 
			
		||||
msgstr ""
 | 
			
		||||
"Puta vida, caraio, se num tah ligado que\n"
 | 
			
		||||
" vc tem que ter o darkice pra rodar essa merda??\n"
 | 
			
		||||
" baixa logo daquela merda de \n"
 | 
			
		||||
"http://code.google.com/p/darkice/\n"
 | 
			
		||||
"manu!!!\n"
 | 
			
		||||
 | 
			
		||||
#: interface.c:365
 | 
			
		||||
msgid "Error"
 | 
			
		||||
msgstr "Erro"
 | 
			
		||||
 | 
			
		||||
#: interface.c:391
 | 
			
		||||
msgid "Hide Details"
 | 
			
		||||
msgstr "Esconder Detalhes"
 | 
			
		||||
 | 
			
		||||
#: tooltips.c:42
 | 
			
		||||
msgid ""
 | 
			
		||||
"Field that indicates the name of the server.\n"
 | 
			
		||||
"Eg: orelha2.radiolivre.org"
 | 
			
		||||
msgstr ""
 | 
			
		||||
"Campo que indica o nome do servidor.\n"
 | 
			
		||||
"Ex: orelha2.radiolivre.org"
 | 
			
		||||
 | 
			
		||||
#: tooltips.c:43
 | 
			
		||||
msgid ""
 | 
			
		||||
"Field that indicates the server port that you'll connect.\n"
 | 
			
		||||
"Eg: 8000"
 | 
			
		||||
msgstr ""
 | 
			
		||||
"Campo que indica a porta do servidor na qual voce ira se conectar.\n"
 | 
			
		||||
"Ex: 8000"
 | 
			
		||||
 | 
			
		||||
#: tooltips.c:44
 | 
			
		||||
msgid ""
 | 
			
		||||
"Field that indicates the mount point for the stream.\n"
 | 
			
		||||
"Eg: radio_x.ogg\n"
 | 
			
		||||
" Remember to put a \".ogg\" at the end of the mountpoint if you want to use "
 | 
			
		||||
"ogg/vorbis!"
 | 
			
		||||
msgstr ""
 | 
			
		||||
"Campo que indica o ponto de montagem para o stream.\n"
 | 
			
		||||
"Ex: radio_x.ogg\n"
 | 
			
		||||
" Lembre-se de colocar um \".ogg\" no final do ponto de montagem caso voce queira "
 | 
			
		||||
"usar ogg/vorbis!"
 | 
			
		||||
 | 
			
		||||
#: tooltips.c:45
 | 
			
		||||
msgid ""
 | 
			
		||||
"Field that indicates the password for the stream, provided by the server "
 | 
			
		||||
"administrator."
 | 
			
		||||
msgstr ""
 | 
			
		||||
"Campo que indica a senha do stream, fornecida pelo administrador do servidor."
 | 
			
		||||
 | 
			
		||||
#: tooltips.c:46
 | 
			
		||||
msgid ""
 | 
			
		||||
"Field that indicates the file the IceCast server should dump the contents of "
 | 
			
		||||
"this stream on its side (server side).\n"
 | 
			
		||||
"Eg: remote_file_name.mp3"
 | 
			
		||||
msgstr ""
 | 
			
		||||
"Campo que indica o arquivo no qual o servidor IceCast ira depositar o conteudo "
 | 
			
		||||
"deste stream, no seu lado (server side).\n "
 | 
			
		||||
"Ex: arquivo_remoto.mp3"
 | 
			
		||||
 | 
			
		||||
#: tooltips.c:48
 | 
			
		||||
msgid ""
 | 
			
		||||
"Field that indicates the file where the same data sent to the stream will be "
 | 
			
		||||
"dumped.\n"
 | 
			
		||||
"Eg: local_file_name.mp3"
 | 
			
		||||
msgstr ""
 | 
			
		||||
"Campo que indica o arquivo no qual sera depositado os mesmos dados enviados "
 | 
			
		||||
"ao stream.\n"
 | 
			
		||||
"Ex: arquivo_local.mp3"
 | 
			
		||||
 | 
			
		||||
#: tooltips.c:50
 | 
			
		||||
msgid ""
 | 
			
		||||
"If you want to automatically insert a date string in the localDumpFile name, "
 | 
			
		||||
"check this option."
 | 
			
		||||
msgstr ""
 | 
			
		||||
"Se voce quer que seja inserida a data no nome do arquivo de dump local, marque "
 | 
			
		||||
"essa opcao."
 | 
			
		||||
 | 
			
		||||
#: tooltips.c:54
 | 
			
		||||
msgid ""
 | 
			
		||||
"Field that indicates the verbosity level of darkice.\n"
 | 
			
		||||
"Use a value greater than 0 if you want more information in 'Details Window'."
 | 
			
		||||
msgstr ""
 | 
			
		||||
"Campo que indica o nivel de verbosidade do darkice.\n"
 | 
			
		||||
"Use um valor maior que 0 caso voce queira maior quantidade de informacao na janela de detalhes."
 | 
			
		||||
 | 
			
		||||
#: tooltips.c:55
 | 
			
		||||
msgid ""
 | 
			
		||||
"For OSS DSP audio device to record from, use /dev/dsp_ (eg. /dev/dsp), for "
 | 
			
		||||
"ALSA, use hw:_,_ (eg. hw:0,0), and to create an unconnected input port in "
 | 
			
		||||
"jack, use 'jack', or use 'jack_auto' to automatically make Jack connect to "
 | 
			
		||||
"the first source. (if you choose jack you must set the samplerate to the "
 | 
			
		||||
"same jack samplerate!)"
 | 
			
		||||
msgstr ""
 | 
			
		||||
"Para usar como dispositivo de captura um dispositivo OSS, usar /dev/dsp_ (ex: /dev/dsp), para "
 | 
			
		||||
"usar um dispositivo ALSA, usar hw:_,_ (ex: hw:0,0), e para criar uma porta de entrada desconectada no jack, "
 | 
			
		||||
"usar 'jack', ou use 'jack_auto' para automaticamente fazer o jack conectar ao primeiro dispositivo fonte. "
 | 
			
		||||
"(Se voce escolheu o jack, lembre-se de utilizar a mesma taxa de amostragem utilizada pelo jack!"
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,61 @@
 | 
			
		|||
/* Darksnow - A GUI for darkice
 | 
			
		||||
 * Copyright (C) 2004-2005 Rafael Diniz <rafael@riseup.net>
 | 
			
		||||
 *
 | 
			
		||||
 * This source code is free software; you can redistribute it and/or
 | 
			
		||||
 * modify it under the terms of the GNU Public License as published 
 | 
			
		||||
 * by the Free Software Foundation; either version 2 of the License,
 | 
			
		||||
 * or (at your option) any later version.
 | 
			
		||||
 *
 | 
			
		||||
 * This source code 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.
 | 
			
		||||
 * Please refer to the GNU Public License for more details.
 | 
			
		||||
 *
 | 
			
		||||
 * You should have received a copy of the GNU Public License along with
 | 
			
		||||
 * this source code; if not, write to:
 | 
			
		||||
 * Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 | 
			
		||||
 *
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#ifndef __GTK_H__
 | 
			
		||||
#include <gtk/gtk.h>
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#ifndef __GLOBAL_H__
 | 
			
		||||
#include "global.h"
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#ifdef USE_TOOLTIP
 | 
			
		||||
#define TOOLTIP 1
 | 
			
		||||
#else 
 | 
			
		||||
#define TOOLTIP 0
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#include <stdio.h>
 | 
			
		||||
#include <stdlib.h>
 | 
			
		||||
#include <libintl.h>
 | 
			
		||||
 | 
			
		||||
void set_all_tooltips(){
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
  if (TOOLTIP) {
 | 
			
		||||
    gtk_widget_set_tooltip_text ( entry_server, gettext("Field that indicates the name of the server.\nEg: orelha2.radiolivre.org"));
 | 
			
		||||
    gtk_widget_set_tooltip_text ( entry_port, gettext("Field that indicates the server port that you'll connect.\nEg: 8000"));
 | 
			
		||||
    gtk_widget_set_tooltip_text ( entry_mountpoint, gettext("Field that indicates the mount point for the stream.\nEg: radio_x.ogg\n Remember to put a \".ogg\" at the end of the mountpoint if you want to use ogg/vorbis!"));
 | 
			
		||||
    gtk_widget_set_tooltip_text ( entry_pass, gettext("Field that indicates the password for the stream, provided by the server administrator."));
 | 
			
		||||
    gtk_widget_set_tooltip_text ( entry_remotedump, gettext("Field that indicates the file \
 | 
			
		||||
the IceCast server should dump the contents of this stream on its side (server side).\nEg: remote_file_name.mp3"));
 | 
			
		||||
    gtk_widget_set_tooltip_text ( entry_localdump, gettext("Field that indicates the file where \
 | 
			
		||||
the same data sent to the stream will be dumped.\nEg: local_file_name.mp3"));
 | 
			
		||||
    gtk_widget_set_tooltip_text ( checkbutton_adddate, gettext("If you want to automatically \
 | 
			
		||||
insert a date string in the localDumpFile name, check this option."));
 | 
			
		||||
    gtk_widget_set_tooltip_text ( combo_verbosity, gettext("Field that indicates the verbosity level of darkice.\nUse a value greater than 0 if you want more information in 'Details Window'."));
 | 
			
		||||
    gtk_widget_set_tooltip_text ( combo_device, gettext("For OSS DSP audio \
 | 
			
		||||
device to record from, use /dev/dsp_ (eg. /dev/dsp), for ALSA, use hw:_,_ (eg. hw:0,0), and to create an \
 | 
			
		||||
unconnected input \
 | 
			
		||||
port in jack, use 'jack', or use 'jack_auto' to automatically make Jack connect \
 | 
			
		||||
to the first source. (if you choose jack you must set the samplerate to the same jack samplerate!)"));
 | 
			
		||||
 | 
			
		||||
  }
 | 
			
		||||
    
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,22 @@
 | 
			
		|||
/* Darksnow - A GUI for darkice
 | 
			
		||||
 * Copyright (C) 2004-2005 Rafael Diniz <rafael@riseup.net>
 | 
			
		||||
 *
 | 
			
		||||
 * This source code is free software; you can redistribute it and/or
 | 
			
		||||
 * modify it under the terms of the GNU Public License as published 
 | 
			
		||||
 * by the Free Software Foundation; either version 2 of the License,
 | 
			
		||||
 * or (at your option) any later version.
 | 
			
		||||
 *
 | 
			
		||||
 * This source code 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.
 | 
			
		||||
 * Please refer to the GNU Public License for more details.
 | 
			
		||||
 *
 | 
			
		||||
 * You should have received a copy of the GNU Public License along with
 | 
			
		||||
 * this source code; if not, write to:
 | 
			
		||||
 * Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 | 
			
		||||
 *
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#define __TOOLTIPS_H__
 | 
			
		||||
 | 
			
		||||
void set_all_tooltips();
 | 
			
		||||
		Loading…
	
		Reference in New Issue