annotate src/console/Audacious_Config.cxx @ 2197:c8d558dab2a7

debugging stuff added...
author Eugene Zagidullin <e.asphyx@gmail.com>
date Thu, 29 Nov 2007 03:47:05 +0300
parents b8da6a0b0da2
children ed6c81bd9016
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
1 /*
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
2 * Audacious: Cross platform multimedia player
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
3 * Copyright (c) 2005 Audacious Team
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
4 *
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
5 * Driver for Game_Music_Emu library. See details at:
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
6 * http://www.slack.net/~ant/libs/
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
7 *
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
8 * Libconsole preferences GUI by Giacomo Lozito
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
9 */
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
10
1766
c3fdb0e5a306 Convert some makefiles, remove some -DHAVE_CONFIG_H.
William Pitcock <nenolod@atheme.org>
parents: 1532
diff changeset
11 #include "config.h"
528
4d8b92b55acf [svn] - add config.h includes where needed
nenolod
parents: 527
diff changeset
12
0
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
13 #include <glib.h>
527
d124034ebea3 [svn] - glib/gi18n.h -> audacious/i18n.h for automatic dgettext support
nenolod
parents: 316
diff changeset
14 #include <audacious/i18n.h>
1969
7ada85b64e90 vtable access
William Pitcock <nenolod@atheme.org>
parents: 1950
diff changeset
15 #include <audacious/plugin.h>
0
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
16 #include <gtk/gtk.h>
1950
2ebeb7816c5e Change from "" to <>-style includes. With thanks to ccr for the correct sed voodoo.
chainsaw@localhost
parents: 1766
diff changeset
17 #include <audacious/configdb.h>
0
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
18 #include "Audacious_Config.h"
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
19
316
fb513e10174e [svn] - merge libconsole-blargg into mainline libconsole:
nenolod
parents: 12
diff changeset
20 // TODO: add UI for echo
0
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
21
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
22 void console_cfg_load( void )
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
23 {
2124
b8da6a0b0da2 s/bmp_cfg_/aud_cfg_/g
Matti Hamalainen <ccr@tnsp.org>
parents: 1969
diff changeset
24 ConfigDb *db = aud_cfg_db_open();
b8da6a0b0da2 s/bmp_cfg_/aud_cfg_/g
Matti Hamalainen <ccr@tnsp.org>
parents: 1969
diff changeset
25 aud_cfg_db_get_int(db, "console", "loop_length", &audcfg.loop_length);
b8da6a0b0da2 s/bmp_cfg_/aud_cfg_/g
Matti Hamalainen <ccr@tnsp.org>
parents: 1969
diff changeset
26 aud_cfg_db_get_bool(db, "console", "resample", &audcfg.resample);
b8da6a0b0da2 s/bmp_cfg_/aud_cfg_/g
Matti Hamalainen <ccr@tnsp.org>
parents: 1969
diff changeset
27 aud_cfg_db_get_int(db, "console", "resample_rate", &audcfg.resample_rate);
b8da6a0b0da2 s/bmp_cfg_/aud_cfg_/g
Matti Hamalainen <ccr@tnsp.org>
parents: 1969
diff changeset
28 aud_cfg_db_get_int(db, "console", "treble", &audcfg.treble);
b8da6a0b0da2 s/bmp_cfg_/aud_cfg_/g
Matti Hamalainen <ccr@tnsp.org>
parents: 1969
diff changeset
29 aud_cfg_db_get_int(db, "console", "bass", &audcfg.bass);
b8da6a0b0da2 s/bmp_cfg_/aud_cfg_/g
Matti Hamalainen <ccr@tnsp.org>
parents: 1969
diff changeset
30 aud_cfg_db_get_bool(db, "console", "ignore_spc_length", &audcfg.ignore_spc_length);
b8da6a0b0da2 s/bmp_cfg_/aud_cfg_/g
Matti Hamalainen <ccr@tnsp.org>
parents: 1969
diff changeset
31 aud_cfg_db_get_int(db, "console", "echo", &audcfg.echo);
b8da6a0b0da2 s/bmp_cfg_/aud_cfg_/g
Matti Hamalainen <ccr@tnsp.org>
parents: 1969
diff changeset
32 aud_cfg_db_get_bool(db, "console", "inc_spc_reverb", &audcfg.inc_spc_reverb);
b8da6a0b0da2 s/bmp_cfg_/aud_cfg_/g
Matti Hamalainen <ccr@tnsp.org>
parents: 1969
diff changeset
33 aud_cfg_db_close(db);
0
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
34 }
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
35
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
36
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
37 void console_cfg_save( void )
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
38 {
2124
b8da6a0b0da2 s/bmp_cfg_/aud_cfg_/g
Matti Hamalainen <ccr@tnsp.org>
parents: 1969
diff changeset
39 ConfigDb *db = aud_cfg_db_open();
b8da6a0b0da2 s/bmp_cfg_/aud_cfg_/g
Matti Hamalainen <ccr@tnsp.org>
parents: 1969
diff changeset
40 aud_cfg_db_set_int(db, "console", "loop_length", audcfg.loop_length);
b8da6a0b0da2 s/bmp_cfg_/aud_cfg_/g
Matti Hamalainen <ccr@tnsp.org>
parents: 1969
diff changeset
41 aud_cfg_db_set_bool(db, "console", "resample", audcfg.resample);
b8da6a0b0da2 s/bmp_cfg_/aud_cfg_/g
Matti Hamalainen <ccr@tnsp.org>
parents: 1969
diff changeset
42 aud_cfg_db_set_int(db, "console", "resample_rate", audcfg.resample_rate);
b8da6a0b0da2 s/bmp_cfg_/aud_cfg_/g
Matti Hamalainen <ccr@tnsp.org>
parents: 1969
diff changeset
43 aud_cfg_db_set_int(db, "console", "treble", audcfg.treble);
b8da6a0b0da2 s/bmp_cfg_/aud_cfg_/g
Matti Hamalainen <ccr@tnsp.org>
parents: 1969
diff changeset
44 aud_cfg_db_set_int(db, "console", "bass", audcfg.bass);
b8da6a0b0da2 s/bmp_cfg_/aud_cfg_/g
Matti Hamalainen <ccr@tnsp.org>
parents: 1969
diff changeset
45 aud_cfg_db_set_bool(db, "console", "ignore_spc_length", audcfg.ignore_spc_length);
b8da6a0b0da2 s/bmp_cfg_/aud_cfg_/g
Matti Hamalainen <ccr@tnsp.org>
parents: 1969
diff changeset
46 aud_cfg_db_set_int(db, "console", "echo", audcfg.echo);
b8da6a0b0da2 s/bmp_cfg_/aud_cfg_/g
Matti Hamalainen <ccr@tnsp.org>
parents: 1969
diff changeset
47 aud_cfg_db_set_bool(db, "console", "inc_spc_reverb", audcfg.inc_spc_reverb);
b8da6a0b0da2 s/bmp_cfg_/aud_cfg_/g
Matti Hamalainen <ccr@tnsp.org>
parents: 1969
diff changeset
48 aud_cfg_db_close(db);
0
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
49 }
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
50
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
51
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
52 // CONFIGURATION PANEL (GTK+2 GUI)
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
53
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
54 static void i_cfg_ev_resample_enable_commit( gpointer cbt )
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
55 {
1532
d19b625f9144 - continued German translation
mf0102 <0102@gmx.at>
parents: 1499
diff changeset
56 audcfg.resample = gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON(cbt) );
0
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
57 }
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
58
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
59 static void i_cfg_ev_resample_value_commit( gpointer spbt )
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
60 {
1532
d19b625f9144 - continued German translation
mf0102 <0102@gmx.at>
parents: 1499
diff changeset
61 audcfg.resample_rate = (gint)gtk_spin_button_get_value( GTK_SPIN_BUTTON(spbt) );
0
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
62 }
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
63
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
64 static void i_cfg_ev_bass_value_commit( gpointer spbt )
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
65 {
1532
d19b625f9144 - continued German translation
mf0102 <0102@gmx.at>
parents: 1499
diff changeset
66 audcfg.bass = (gint)gtk_spin_button_get_value( GTK_SPIN_BUTTON(spbt) );
0
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
67 }
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
68
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
69 static void i_cfg_ev_treble_value_commit( gpointer spbt )
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
70 {
1532
d19b625f9144 - continued German translation
mf0102 <0102@gmx.at>
parents: 1499
diff changeset
71 audcfg.treble = (gint)gtk_spin_button_get_value( GTK_SPIN_BUTTON(spbt) );
0
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
72 }
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
73
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
74 static void i_cfg_ev_deflen_value_commit( gpointer spbt )
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
75 {
1532
d19b625f9144 - continued German translation
mf0102 <0102@gmx.at>
parents: 1499
diff changeset
76 audcfg.loop_length = (gint)gtk_spin_button_get_value( GTK_SPIN_BUTTON(spbt) );
0
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
77 }
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
78
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
79 static void i_cfg_ev_ignorespclen_enable_commit( gpointer cbt )
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
80 {
1532
d19b625f9144 - continued German translation
mf0102 <0102@gmx.at>
parents: 1499
diff changeset
81 audcfg.ignore_spc_length = gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON(cbt) );
0
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
82 }
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
83
1498
a1fccf242404 made SPC playback reverb a configuration option till the problem can be
mf0102 <0102@gmx.at>
parents: 528
diff changeset
84 static void i_cfg_ev_incspcreverb_enable_commit( gpointer cbt )
a1fccf242404 made SPC playback reverb a configuration option till the problem can be
mf0102 <0102@gmx.at>
parents: 528
diff changeset
85 {
1532
d19b625f9144 - continued German translation
mf0102 <0102@gmx.at>
parents: 1499
diff changeset
86 audcfg.inc_spc_reverb = gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON(cbt) );
1498
a1fccf242404 made SPC playback reverb a configuration option till the problem can be
mf0102 <0102@gmx.at>
parents: 528
diff changeset
87 }
a1fccf242404 made SPC playback reverb a configuration option till the problem can be
mf0102 <0102@gmx.at>
parents: 528
diff changeset
88
0
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
89 static void i_cfg_ev_bok( gpointer configwin )
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
90 {
1532
d19b625f9144 - continued German translation
mf0102 <0102@gmx.at>
parents: 1499
diff changeset
91 console_cfg_save();
d19b625f9144 - continued German translation
mf0102 <0102@gmx.at>
parents: 1499
diff changeset
92 gtk_widget_destroy( GTK_WIDGET(configwin) );
0
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
93 }
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
94
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
95 static void i_cfg_ev_toggle_resample( GtkToggleButton *tbt , gpointer val_hbox )
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
96 {
1532
d19b625f9144 - continued German translation
mf0102 <0102@gmx.at>
parents: 1499
diff changeset
97 gtk_widget_set_sensitive( GTK_WIDGET(val_hbox) ,
d19b625f9144 - continued German translation
mf0102 <0102@gmx.at>
parents: 1499
diff changeset
98 gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON(tbt) ) );
0
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
99 }
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
100
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
101
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
102 void console_cfg_ui( void )
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
103 {
1532
d19b625f9144 - continued German translation
mf0102 <0102@gmx.at>
parents: 1499
diff changeset
104 static GtkWidget *configwin = NULL;
d19b625f9144 - continued German translation
mf0102 <0102@gmx.at>
parents: 1499
diff changeset
105 GtkWidget *configwin_vbox;
d19b625f9144 - continued German translation
mf0102 <0102@gmx.at>
parents: 1499
diff changeset
106 GtkWidget *configwin_gen_vbox, *configwin_spc_vbox;
d19b625f9144 - continued German translation
mf0102 <0102@gmx.at>
parents: 1499
diff changeset
107 GtkWidget *configwin_gen_resample_frame, *configwin_gen_resample_vbox;
d19b625f9144 - continued German translation
mf0102 <0102@gmx.at>
parents: 1499
diff changeset
108 GtkWidget *configwin_gen_resample_cbt, *configwin_gen_resample_val_hbox;
d19b625f9144 - continued German translation
mf0102 <0102@gmx.at>
parents: 1499
diff changeset
109 GtkWidget *configwin_gen_resample_val_spbt;
d19b625f9144 - continued German translation
mf0102 <0102@gmx.at>
parents: 1499
diff changeset
110 GtkWidget *configwin_gen_playback_frame, *configwin_gen_playback_vbox;
d19b625f9144 - continued German translation
mf0102 <0102@gmx.at>
parents: 1499
diff changeset
111 GtkWidget *configwin_gen_playback_tb_hbox;
d19b625f9144 - continued German translation
mf0102 <0102@gmx.at>
parents: 1499
diff changeset
112 GtkWidget *configwin_gen_playback_tb_bass_hbox, *configwin_gen_playback_tb_bass_spbt;
d19b625f9144 - continued German translation
mf0102 <0102@gmx.at>
parents: 1499
diff changeset
113 GtkWidget *configwin_gen_playback_tb_treble_hbox, *configwin_gen_playback_tb_treble_spbt;
d19b625f9144 - continued German translation
mf0102 <0102@gmx.at>
parents: 1499
diff changeset
114 GtkWidget *configwin_gen_playback_deflen_hbox, *configwin_gen_playback_deflen_spbt;
d19b625f9144 - continued German translation
mf0102 <0102@gmx.at>
parents: 1499
diff changeset
115 GtkWidget *configwin_spc_ignorespclen_cbt, *configwin_spc_increverb_cbt;
d19b625f9144 - continued German translation
mf0102 <0102@gmx.at>
parents: 1499
diff changeset
116 GtkWidget /* *hseparator, */ *hbuttonbox, *button_ok, *button_cancel;
d19b625f9144 - continued German translation
mf0102 <0102@gmx.at>
parents: 1499
diff changeset
117 GtkWidget *configwin_notebook;
d19b625f9144 - continued German translation
mf0102 <0102@gmx.at>
parents: 1499
diff changeset
118 GtkTooltips *tips;
0
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
119
1532
d19b625f9144 - continued German translation
mf0102 <0102@gmx.at>
parents: 1499
diff changeset
120 if ( configwin != NULL )
d19b625f9144 - continued German translation
mf0102 <0102@gmx.at>
parents: 1499
diff changeset
121 return;
0
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
122
1532
d19b625f9144 - continued German translation
mf0102 <0102@gmx.at>
parents: 1499
diff changeset
123 configwin = gtk_window_new( GTK_WINDOW_TOPLEVEL );
d19b625f9144 - continued German translation
mf0102 <0102@gmx.at>
parents: 1499
diff changeset
124 gtk_window_set_type_hint( GTK_WINDOW(configwin), GDK_WINDOW_TYPE_HINT_DIALOG );
d19b625f9144 - continued German translation
mf0102 <0102@gmx.at>
parents: 1499
diff changeset
125 gtk_window_set_title( GTK_WINDOW(configwin), _("Console Music Decoder") );
d19b625f9144 - continued German translation
mf0102 <0102@gmx.at>
parents: 1499
diff changeset
126 gtk_container_set_border_width( GTK_CONTAINER(configwin), 10 );
d19b625f9144 - continued German translation
mf0102 <0102@gmx.at>
parents: 1499
diff changeset
127 g_signal_connect( G_OBJECT(configwin) , "destroy" ,
d19b625f9144 - continued German translation
mf0102 <0102@gmx.at>
parents: 1499
diff changeset
128 G_CALLBACK(gtk_widget_destroyed) , &configwin );
d19b625f9144 - continued German translation
mf0102 <0102@gmx.at>
parents: 1499
diff changeset
129 button_ok = gtk_button_new_from_stock( GTK_STOCK_OK );
0
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
130
1532
d19b625f9144 - continued German translation
mf0102 <0102@gmx.at>
parents: 1499
diff changeset
131 configwin_vbox = gtk_vbox_new( FALSE , 6 );
d19b625f9144 - continued German translation
mf0102 <0102@gmx.at>
parents: 1499
diff changeset
132 gtk_container_add( GTK_CONTAINER(configwin) , configwin_vbox );
0
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
133
1532
d19b625f9144 - continued German translation
mf0102 <0102@gmx.at>
parents: 1499
diff changeset
134 tips = gtk_tooltips_new();
d19b625f9144 - continued German translation
mf0102 <0102@gmx.at>
parents: 1499
diff changeset
135 g_object_set_data_full( G_OBJECT(configwin) , "tt" , tips , g_object_unref );
0
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
136
1532
d19b625f9144 - continued German translation
mf0102 <0102@gmx.at>
parents: 1499
diff changeset
137 configwin_notebook = gtk_notebook_new();
d19b625f9144 - continued German translation
mf0102 <0102@gmx.at>
parents: 1499
diff changeset
138 gtk_notebook_set_tab_pos( GTK_NOTEBOOK(configwin_notebook) , GTK_POS_TOP );
d19b625f9144 - continued German translation
mf0102 <0102@gmx.at>
parents: 1499
diff changeset
139 gtk_box_pack_start( GTK_BOX(configwin_vbox) , configwin_notebook , TRUE , TRUE , 2 );
0
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
140
1532
d19b625f9144 - continued German translation
mf0102 <0102@gmx.at>
parents: 1499
diff changeset
141 // GENERAL PAGE
d19b625f9144 - continued German translation
mf0102 <0102@gmx.at>
parents: 1499
diff changeset
142 configwin_gen_vbox = gtk_vbox_new( FALSE , 3 );
d19b625f9144 - continued German translation
mf0102 <0102@gmx.at>
parents: 1499
diff changeset
143 gtk_container_set_border_width( GTK_CONTAINER(configwin_gen_vbox), 5 );
d19b625f9144 - continued German translation
mf0102 <0102@gmx.at>
parents: 1499
diff changeset
144 gtk_notebook_append_page( GTK_NOTEBOOK(configwin_notebook) ,
d19b625f9144 - continued German translation
mf0102 <0102@gmx.at>
parents: 1499
diff changeset
145 configwin_gen_vbox , gtk_label_new( _("General") ) );
d19b625f9144 - continued German translation
mf0102 <0102@gmx.at>
parents: 1499
diff changeset
146 // GENERAL PAGE - PLAYBACK FRAME
d19b625f9144 - continued German translation
mf0102 <0102@gmx.at>
parents: 1499
diff changeset
147 configwin_gen_playback_frame = gtk_frame_new( _("Playback") );
d19b625f9144 - continued German translation
mf0102 <0102@gmx.at>
parents: 1499
diff changeset
148 gtk_box_pack_start( GTK_BOX(configwin_gen_vbox) ,
d19b625f9144 - continued German translation
mf0102 <0102@gmx.at>
parents: 1499
diff changeset
149 configwin_gen_playback_frame , TRUE , TRUE , 0 );
d19b625f9144 - continued German translation
mf0102 <0102@gmx.at>
parents: 1499
diff changeset
150 configwin_gen_playback_vbox = gtk_vbox_new( FALSE , 4 );
d19b625f9144 - continued German translation
mf0102 <0102@gmx.at>
parents: 1499
diff changeset
151 gtk_container_set_border_width( GTK_CONTAINER(configwin_gen_playback_vbox), 4 );
d19b625f9144 - continued German translation
mf0102 <0102@gmx.at>
parents: 1499
diff changeset
152 gtk_container_add( GTK_CONTAINER(configwin_gen_playback_frame) , configwin_gen_playback_vbox );
d19b625f9144 - continued German translation
mf0102 <0102@gmx.at>
parents: 1499
diff changeset
153 configwin_gen_playback_tb_hbox = gtk_hbox_new( FALSE , 0 );
d19b625f9144 - continued German translation
mf0102 <0102@gmx.at>
parents: 1499
diff changeset
154 gtk_box_pack_start( GTK_BOX(configwin_gen_playback_vbox) ,
d19b625f9144 - continued German translation
mf0102 <0102@gmx.at>
parents: 1499
diff changeset
155 configwin_gen_playback_tb_hbox , FALSE , FALSE , 0 );
d19b625f9144 - continued German translation
mf0102 <0102@gmx.at>
parents: 1499
diff changeset
156 configwin_gen_playback_tb_bass_hbox = gtk_hbox_new( FALSE , 4 );
d19b625f9144 - continued German translation
mf0102 <0102@gmx.at>
parents: 1499
diff changeset
157 configwin_gen_playback_tb_bass_spbt = gtk_spin_button_new_with_range( -100 , 100 , 1 );
d19b625f9144 - continued German translation
mf0102 <0102@gmx.at>
parents: 1499
diff changeset
158 gtk_spin_button_set_value( GTK_SPIN_BUTTON(configwin_gen_playback_tb_bass_spbt) , audcfg.bass );
d19b625f9144 - continued German translation
mf0102 <0102@gmx.at>
parents: 1499
diff changeset
159 g_signal_connect_swapped( G_OBJECT(button_ok) , "clicked" ,
d19b625f9144 - continued German translation
mf0102 <0102@gmx.at>
parents: 1499
diff changeset
160 G_CALLBACK(i_cfg_ev_bass_value_commit) , configwin_gen_playback_tb_bass_spbt );
d19b625f9144 - continued German translation
mf0102 <0102@gmx.at>
parents: 1499
diff changeset
161 gtk_box_pack_start( GTK_BOX(configwin_gen_playback_tb_bass_hbox) ,
d19b625f9144 - continued German translation
mf0102 <0102@gmx.at>
parents: 1499
diff changeset
162 gtk_label_new(_("Bass:")) , FALSE , FALSE , 0 );
d19b625f9144 - continued German translation
mf0102 <0102@gmx.at>
parents: 1499
diff changeset
163 gtk_box_pack_start( GTK_BOX(configwin_gen_playback_tb_bass_hbox) ,
d19b625f9144 - continued German translation
mf0102 <0102@gmx.at>
parents: 1499
diff changeset
164 configwin_gen_playback_tb_bass_spbt , FALSE , FALSE , 0 );
d19b625f9144 - continued German translation
mf0102 <0102@gmx.at>
parents: 1499
diff changeset
165 gtk_box_pack_start( GTK_BOX(configwin_gen_playback_tb_bass_hbox) ,
d19b625f9144 - continued German translation
mf0102 <0102@gmx.at>
parents: 1499
diff changeset
166 gtk_label_new(_("secs")) , FALSE , FALSE , 0 );
d19b625f9144 - continued German translation
mf0102 <0102@gmx.at>
parents: 1499
diff changeset
167 configwin_gen_playback_tb_treble_hbox = gtk_hbox_new( FALSE , 4 );
d19b625f9144 - continued German translation
mf0102 <0102@gmx.at>
parents: 1499
diff changeset
168 configwin_gen_playback_tb_treble_spbt = gtk_spin_button_new_with_range( -100 , 100 , 1 );
d19b625f9144 - continued German translation
mf0102 <0102@gmx.at>
parents: 1499
diff changeset
169 gtk_spin_button_set_value( GTK_SPIN_BUTTON(configwin_gen_playback_tb_treble_spbt) , audcfg.treble );
d19b625f9144 - continued German translation
mf0102 <0102@gmx.at>
parents: 1499
diff changeset
170 g_signal_connect_swapped( G_OBJECT(button_ok) , "clicked" ,
d19b625f9144 - continued German translation
mf0102 <0102@gmx.at>
parents: 1499
diff changeset
171 G_CALLBACK(i_cfg_ev_treble_value_commit) , configwin_gen_playback_tb_treble_spbt );
d19b625f9144 - continued German translation
mf0102 <0102@gmx.at>
parents: 1499
diff changeset
172 gtk_box_pack_start( GTK_BOX(configwin_gen_playback_tb_treble_hbox) ,
d19b625f9144 - continued German translation
mf0102 <0102@gmx.at>
parents: 1499
diff changeset
173 gtk_label_new(_("Treble:")) , FALSE , FALSE , 0 );
d19b625f9144 - continued German translation
mf0102 <0102@gmx.at>
parents: 1499
diff changeset
174 gtk_box_pack_start( GTK_BOX(configwin_gen_playback_tb_treble_hbox) ,
d19b625f9144 - continued German translation
mf0102 <0102@gmx.at>
parents: 1499
diff changeset
175 configwin_gen_playback_tb_treble_spbt , FALSE , FALSE , 0 );
d19b625f9144 - continued German translation
mf0102 <0102@gmx.at>
parents: 1499
diff changeset
176 gtk_box_pack_start( GTK_BOX(configwin_gen_playback_tb_treble_hbox) ,
d19b625f9144 - continued German translation
mf0102 <0102@gmx.at>
parents: 1499
diff changeset
177 gtk_label_new(_("secs")) , FALSE , FALSE , 0 );
d19b625f9144 - continued German translation
mf0102 <0102@gmx.at>
parents: 1499
diff changeset
178 gtk_box_pack_start( GTK_BOX(configwin_gen_playback_tb_hbox) ,
d19b625f9144 - continued German translation
mf0102 <0102@gmx.at>
parents: 1499
diff changeset
179 configwin_gen_playback_tb_bass_hbox , TRUE , TRUE , 0 );
d19b625f9144 - continued German translation
mf0102 <0102@gmx.at>
parents: 1499
diff changeset
180 gtk_box_pack_start( GTK_BOX(configwin_gen_playback_tb_hbox) ,
d19b625f9144 - continued German translation
mf0102 <0102@gmx.at>
parents: 1499
diff changeset
181 gtk_vseparator_new() , FALSE , FALSE , 4 );
d19b625f9144 - continued German translation
mf0102 <0102@gmx.at>
parents: 1499
diff changeset
182 gtk_box_pack_start( GTK_BOX(configwin_gen_playback_tb_hbox) ,
d19b625f9144 - continued German translation
mf0102 <0102@gmx.at>
parents: 1499
diff changeset
183 configwin_gen_playback_tb_treble_hbox , TRUE , TRUE , 0 );
d19b625f9144 - continued German translation
mf0102 <0102@gmx.at>
parents: 1499
diff changeset
184 gtk_box_pack_start( GTK_BOX(configwin_gen_playback_vbox) ,
d19b625f9144 - continued German translation
mf0102 <0102@gmx.at>
parents: 1499
diff changeset
185 gtk_hseparator_new() , FALSE , FALSE , 0 );
d19b625f9144 - continued German translation
mf0102 <0102@gmx.at>
parents: 1499
diff changeset
186 configwin_gen_playback_deflen_hbox = gtk_hbox_new( FALSE , 4 );
d19b625f9144 - continued German translation
mf0102 <0102@gmx.at>
parents: 1499
diff changeset
187 gtk_box_pack_start( GTK_BOX(configwin_gen_playback_vbox) ,
d19b625f9144 - continued German translation
mf0102 <0102@gmx.at>
parents: 1499
diff changeset
188 configwin_gen_playback_deflen_hbox , FALSE , FALSE , 0 );
d19b625f9144 - continued German translation
mf0102 <0102@gmx.at>
parents: 1499
diff changeset
189 configwin_gen_playback_deflen_spbt = gtk_spin_button_new_with_range( 1 , 7200 , 10 );
d19b625f9144 - continued German translation
mf0102 <0102@gmx.at>
parents: 1499
diff changeset
190 gtk_spin_button_set_value( GTK_SPIN_BUTTON(configwin_gen_playback_deflen_spbt) , audcfg.loop_length );
d19b625f9144 - continued German translation
mf0102 <0102@gmx.at>
parents: 1499
diff changeset
191 g_signal_connect_swapped( G_OBJECT(button_ok) , "clicked" ,
d19b625f9144 - continued German translation
mf0102 <0102@gmx.at>
parents: 1499
diff changeset
192 G_CALLBACK(i_cfg_ev_deflen_value_commit) , configwin_gen_playback_deflen_spbt );
d19b625f9144 - continued German translation
mf0102 <0102@gmx.at>
parents: 1499
diff changeset
193 gtk_box_pack_start( GTK_BOX(configwin_gen_playback_deflen_hbox) ,
d19b625f9144 - continued German translation
mf0102 <0102@gmx.at>
parents: 1499
diff changeset
194 gtk_label_new(_("Default song length:")) , FALSE , FALSE , 0 );
d19b625f9144 - continued German translation
mf0102 <0102@gmx.at>
parents: 1499
diff changeset
195 gtk_box_pack_start( GTK_BOX(configwin_gen_playback_deflen_hbox) ,
d19b625f9144 - continued German translation
mf0102 <0102@gmx.at>
parents: 1499
diff changeset
196 configwin_gen_playback_deflen_spbt , FALSE , FALSE , 0 );
d19b625f9144 - continued German translation
mf0102 <0102@gmx.at>
parents: 1499
diff changeset
197 gtk_box_pack_start( GTK_BOX(configwin_gen_playback_deflen_hbox) ,
d19b625f9144 - continued German translation
mf0102 <0102@gmx.at>
parents: 1499
diff changeset
198 gtk_label_new(_("secs")) , FALSE , FALSE , 0 );
d19b625f9144 - continued German translation
mf0102 <0102@gmx.at>
parents: 1499
diff changeset
199 // GENERAL PAGE - RESAMPLING FRAME
d19b625f9144 - continued German translation
mf0102 <0102@gmx.at>
parents: 1499
diff changeset
200 configwin_gen_resample_frame = gtk_frame_new( _("Resampling") );
d19b625f9144 - continued German translation
mf0102 <0102@gmx.at>
parents: 1499
diff changeset
201 gtk_box_pack_start( GTK_BOX(configwin_gen_vbox) ,
d19b625f9144 - continued German translation
mf0102 <0102@gmx.at>
parents: 1499
diff changeset
202 configwin_gen_resample_frame , TRUE , TRUE , 0 );
d19b625f9144 - continued German translation
mf0102 <0102@gmx.at>
parents: 1499
diff changeset
203 configwin_gen_resample_vbox = gtk_vbox_new( FALSE , 4 );
d19b625f9144 - continued German translation
mf0102 <0102@gmx.at>
parents: 1499
diff changeset
204 gtk_container_set_border_width( GTK_CONTAINER(configwin_gen_resample_vbox), 4 );
d19b625f9144 - continued German translation
mf0102 <0102@gmx.at>
parents: 1499
diff changeset
205 gtk_container_add( GTK_CONTAINER(configwin_gen_resample_frame) , configwin_gen_resample_vbox );
d19b625f9144 - continued German translation
mf0102 <0102@gmx.at>
parents: 1499
diff changeset
206 configwin_gen_resample_cbt = gtk_check_button_new_with_label( _("Enable audio resampling") );
d19b625f9144 - continued German translation
mf0102 <0102@gmx.at>
parents: 1499
diff changeset
207 g_signal_connect_swapped( G_OBJECT(button_ok) , "clicked" ,
d19b625f9144 - continued German translation
mf0102 <0102@gmx.at>
parents: 1499
diff changeset
208 G_CALLBACK(i_cfg_ev_resample_enable_commit) , configwin_gen_resample_cbt );
d19b625f9144 - continued German translation
mf0102 <0102@gmx.at>
parents: 1499
diff changeset
209 gtk_box_pack_start( GTK_BOX(configwin_gen_resample_vbox) ,
d19b625f9144 - continued German translation
mf0102 <0102@gmx.at>
parents: 1499
diff changeset
210 configwin_gen_resample_cbt , FALSE , FALSE , 0 );
d19b625f9144 - continued German translation
mf0102 <0102@gmx.at>
parents: 1499
diff changeset
211 gtk_box_pack_start( GTK_BOX(configwin_gen_resample_vbox) ,
d19b625f9144 - continued German translation
mf0102 <0102@gmx.at>
parents: 1499
diff changeset
212 gtk_hseparator_new() , FALSE , FALSE , 0 );
d19b625f9144 - continued German translation
mf0102 <0102@gmx.at>
parents: 1499
diff changeset
213 configwin_gen_resample_val_hbox = gtk_hbox_new( FALSE , 4 );
d19b625f9144 - continued German translation
mf0102 <0102@gmx.at>
parents: 1499
diff changeset
214 configwin_gen_resample_val_spbt = gtk_spin_button_new_with_range( 11025 , 96000 , 100 );
d19b625f9144 - continued German translation
mf0102 <0102@gmx.at>
parents: 1499
diff changeset
215 gtk_spin_button_set_value( GTK_SPIN_BUTTON(configwin_gen_resample_val_spbt) , audcfg.resample_rate );
d19b625f9144 - continued German translation
mf0102 <0102@gmx.at>
parents: 1499
diff changeset
216 g_signal_connect_swapped( G_OBJECT(button_ok) , "clicked" ,
d19b625f9144 - continued German translation
mf0102 <0102@gmx.at>
parents: 1499
diff changeset
217 G_CALLBACK(i_cfg_ev_resample_value_commit) , configwin_gen_resample_val_spbt );
d19b625f9144 - continued German translation
mf0102 <0102@gmx.at>
parents: 1499
diff changeset
218 gtk_box_pack_start( GTK_BOX(configwin_gen_resample_vbox) ,
d19b625f9144 - continued German translation
mf0102 <0102@gmx.at>
parents: 1499
diff changeset
219 configwin_gen_resample_val_hbox , FALSE , FALSE , 0 );
d19b625f9144 - continued German translation
mf0102 <0102@gmx.at>
parents: 1499
diff changeset
220 gtk_box_pack_start( GTK_BOX(configwin_gen_resample_val_hbox) ,
d19b625f9144 - continued German translation
mf0102 <0102@gmx.at>
parents: 1499
diff changeset
221 gtk_label_new(_("Resampling rate:")) , FALSE , FALSE , 0 );
d19b625f9144 - continued German translation
mf0102 <0102@gmx.at>
parents: 1499
diff changeset
222 gtk_box_pack_start( GTK_BOX(configwin_gen_resample_val_hbox) ,
d19b625f9144 - continued German translation
mf0102 <0102@gmx.at>
parents: 1499
diff changeset
223 configwin_gen_resample_val_spbt , FALSE , FALSE , 0 );
d19b625f9144 - continued German translation
mf0102 <0102@gmx.at>
parents: 1499
diff changeset
224 gtk_box_pack_start( GTK_BOX(configwin_gen_resample_val_hbox) ,
d19b625f9144 - continued German translation
mf0102 <0102@gmx.at>
parents: 1499
diff changeset
225 gtk_label_new(_("Hz")) , FALSE , FALSE , 0 );
d19b625f9144 - continued German translation
mf0102 <0102@gmx.at>
parents: 1499
diff changeset
226 gtk_widget_set_sensitive( GTK_WIDGET(configwin_gen_resample_val_hbox) , audcfg.resample );
d19b625f9144 - continued German translation
mf0102 <0102@gmx.at>
parents: 1499
diff changeset
227 g_signal_connect( G_OBJECT(configwin_gen_resample_cbt) , "toggled" ,
d19b625f9144 - continued German translation
mf0102 <0102@gmx.at>
parents: 1499
diff changeset
228 G_CALLBACK(i_cfg_ev_toggle_resample) , configwin_gen_resample_val_hbox );
d19b625f9144 - continued German translation
mf0102 <0102@gmx.at>
parents: 1499
diff changeset
229 gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON(configwin_gen_resample_cbt) , audcfg.resample );
0
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
230
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
231
1532
d19b625f9144 - continued German translation
mf0102 <0102@gmx.at>
parents: 1499
diff changeset
232 // SPC PAGE
d19b625f9144 - continued German translation
mf0102 <0102@gmx.at>
parents: 1499
diff changeset
233 configwin_spc_vbox = gtk_vbox_new( FALSE , 3 );
d19b625f9144 - continued German translation
mf0102 <0102@gmx.at>
parents: 1499
diff changeset
234 gtk_container_set_border_width( GTK_CONTAINER(configwin_spc_vbox), 5 );
d19b625f9144 - continued German translation
mf0102 <0102@gmx.at>
parents: 1499
diff changeset
235 gtk_notebook_append_page( GTK_NOTEBOOK(configwin_notebook) ,
d19b625f9144 - continued German translation
mf0102 <0102@gmx.at>
parents: 1499
diff changeset
236 configwin_spc_vbox , gtk_label_new( _("SPC") ) );
d19b625f9144 - continued German translation
mf0102 <0102@gmx.at>
parents: 1499
diff changeset
237 configwin_spc_ignorespclen_cbt = gtk_check_button_new_with_label( _("Ignore length from SPC tags") );
d19b625f9144 - continued German translation
mf0102 <0102@gmx.at>
parents: 1499
diff changeset
238 configwin_spc_increverb_cbt = gtk_check_button_new_with_label( _("Increase reverb") );
d19b625f9144 - continued German translation
mf0102 <0102@gmx.at>
parents: 1499
diff changeset
239 gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON(configwin_spc_ignorespclen_cbt) , audcfg.ignore_spc_length );
d19b625f9144 - continued German translation
mf0102 <0102@gmx.at>
parents: 1499
diff changeset
240 gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON(configwin_spc_increverb_cbt) , audcfg.inc_spc_reverb );
d19b625f9144 - continued German translation
mf0102 <0102@gmx.at>
parents: 1499
diff changeset
241 g_signal_connect_swapped( G_OBJECT(button_ok) , "clicked" ,
d19b625f9144 - continued German translation
mf0102 <0102@gmx.at>
parents: 1499
diff changeset
242 G_CALLBACK(i_cfg_ev_ignorespclen_enable_commit) , configwin_spc_ignorespclen_cbt );
d19b625f9144 - continued German translation
mf0102 <0102@gmx.at>
parents: 1499
diff changeset
243 g_signal_connect_swapped( G_OBJECT(button_ok) , "clicked" ,
d19b625f9144 - continued German translation
mf0102 <0102@gmx.at>
parents: 1499
diff changeset
244 G_CALLBACK(i_cfg_ev_incspcreverb_enable_commit) , configwin_spc_increverb_cbt );
d19b625f9144 - continued German translation
mf0102 <0102@gmx.at>
parents: 1499
diff changeset
245 gtk_box_pack_start( GTK_BOX(configwin_spc_vbox) ,
d19b625f9144 - continued German translation
mf0102 <0102@gmx.at>
parents: 1499
diff changeset
246 configwin_spc_ignorespclen_cbt , FALSE , FALSE , 0 );
d19b625f9144 - continued German translation
mf0102 <0102@gmx.at>
parents: 1499
diff changeset
247 gtk_box_pack_start( GTK_BOX(configwin_spc_vbox) ,
d19b625f9144 - continued German translation
mf0102 <0102@gmx.at>
parents: 1499
diff changeset
248 configwin_spc_increverb_cbt , FALSE , FALSE , 0 );
0
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
249
1532
d19b625f9144 - continued German translation
mf0102 <0102@gmx.at>
parents: 1499
diff changeset
250 // horizontal separator and buttons
d19b625f9144 - continued German translation
mf0102 <0102@gmx.at>
parents: 1499
diff changeset
251 hbuttonbox = gtk_hbutton_box_new();
d19b625f9144 - continued German translation
mf0102 <0102@gmx.at>
parents: 1499
diff changeset
252 gtk_button_box_set_layout( GTK_BUTTON_BOX(hbuttonbox) , GTK_BUTTONBOX_END );
d19b625f9144 - continued German translation
mf0102 <0102@gmx.at>
parents: 1499
diff changeset
253 button_cancel = gtk_button_new_from_stock( GTK_STOCK_CANCEL );
d19b625f9144 - continued German translation
mf0102 <0102@gmx.at>
parents: 1499
diff changeset
254 g_signal_connect_swapped( G_OBJECT(button_cancel) , "clicked" ,
d19b625f9144 - continued German translation
mf0102 <0102@gmx.at>
parents: 1499
diff changeset
255 G_CALLBACK(gtk_widget_destroy) , configwin );
d19b625f9144 - continued German translation
mf0102 <0102@gmx.at>
parents: 1499
diff changeset
256 gtk_container_add( GTK_CONTAINER(hbuttonbox) , button_cancel );
d19b625f9144 - continued German translation
mf0102 <0102@gmx.at>
parents: 1499
diff changeset
257 g_signal_connect_swapped( G_OBJECT(button_ok) , "clicked" ,
d19b625f9144 - continued German translation
mf0102 <0102@gmx.at>
parents: 1499
diff changeset
258 G_CALLBACK(i_cfg_ev_bok) , configwin );
d19b625f9144 - continued German translation
mf0102 <0102@gmx.at>
parents: 1499
diff changeset
259 gtk_container_add( GTK_CONTAINER(hbuttonbox) , button_ok );
d19b625f9144 - continued German translation
mf0102 <0102@gmx.at>
parents: 1499
diff changeset
260 gtk_box_pack_start( GTK_BOX(configwin_vbox) , hbuttonbox , FALSE , FALSE , 0 );
0
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
261
1532
d19b625f9144 - continued German translation
mf0102 <0102@gmx.at>
parents: 1499
diff changeset
262 gtk_tooltips_set_tip( GTK_TOOLTIPS(tips) , configwin_gen_playback_deflen_spbt ,
d19b625f9144 - continued German translation
mf0102 <0102@gmx.at>
parents: 1499
diff changeset
263 _("The default song length, expressed in seconds, is used for songs "
d19b625f9144 - continued German translation
mf0102 <0102@gmx.at>
parents: 1499
diff changeset
264 "that do not provide length information (i.e. looping tracks).") , "" );
0
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
265
1532
d19b625f9144 - continued German translation
mf0102 <0102@gmx.at>
parents: 1499
diff changeset
266 gtk_widget_show_all( configwin );
0
13389e613d67 [svn] - initial import of audacious-plugins tree (lots to do)
nenolod
parents:
diff changeset
267 }