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