Mercurial > audlegacy-plugins
annotate src/a52dec/a52dec.c @ 192:a7c823478180 trunk
[svn] - add fast linedrawing code
author | nenolod |
---|---|
date | Thu, 02 Nov 2006 22:19:05 -0800 |
parents | 29857e91c6d5 |
children |
rev | line source |
---|---|
123
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1 |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
2 /* |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
3 * xmms-a52dec.c |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
4 * |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
5 * xmms-a52dec is free software; you can redistribute it and/or modify |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
6 * it under the terms of the GNU General Public License as published by |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
7 * the Free Software Foundation; either version 2, or (at your option) |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
8 * any later version. |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
9 * |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
10 * xmms-a52dec is distributed in the hope that it will be useful, |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
13 * GNU General Public License for more details. |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
14 * |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
15 * You should have received a copy of the GNU General Public License |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
16 * along with GNU Make; see the file COPYING. If not, write to |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
17 * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
18 * |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
19 * |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
20 */ |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
21 |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
22 |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
23 #include <stdio.h> |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
24 #include <stdlib.h> |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
25 #include <string.h> |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
26 #include <sys/errno.h> |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
27 #include <errno.h> |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
28 #include <pthread.h> |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
29 #include <semaphore.h> |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
30 #include <math.h> |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
31 #include <inttypes.h> |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
32 #include <gtk/gtk.h> |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
33 #include <audacious/util.h> |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
34 #include <audacious/plugin.h> |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
35 #include <audacious/configdb.h> |
124
f356655ed806
[svn] - push from p4://depot/svn-audacious-plugins-devel/virt-branches/trunk/a52dec:
nenolod
parents:
123
diff
changeset
|
36 #include <audacious/vfs.h> |
123
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
37 |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
38 #include <a52dec/a52.h> |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
39 #include <a52dec/mm_accel.h> |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
40 |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
41 #include "a52dec.h" |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
42 |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
43 #define DRC_BOTH 0 |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
44 #define DRC_BOOST 1 |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
45 #define DRC_REDUCE 2 |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
46 |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
47 #define SYNC_SEARCH_LIMIT 65536 |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
48 #define COMPRESSION_FACTOR_DEFAULT 0.0 |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
49 #define COMPRESSION_TYPE_DEFAULT DRC_BOTH |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
50 #define NODOWNMIX_SURROUND_DEFAULT FALSE |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
51 #define NODOWNMIX_LFE_DEFAULT FALSE |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
52 #define UPMIX_STEREO_DEFAULT FALSE |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
53 #define DUALMONO_DEFAULT 1 |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
54 #define REQUESTED_OUTPUT_DEFAULT A52_STEREO |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
55 |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
56 sample_t *sample; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
57 char *buf; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
58 long int lastset_time; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
59 char *name; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
60 int flags, sample_rate, bit_rate, frame_size, length; |
124
f356655ed806
[svn] - push from p4://depot/svn-audacious-plugins-devel/virt-branches/trunk/a52dec:
nenolod
parents:
123
diff
changeset
|
61 VFSFile *in_file; |
123
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
62 int a52_run, a52_not_eof; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
63 gint output_type; // See also: requested_output |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
64 int output_nch; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
65 |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
66 // Configuration Options. |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
67 |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
68 gdouble compression_factor; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
69 gboolean compression_type; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
70 gint requested_output; // See also: output_type |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
71 gint dualmono_channel; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
72 gboolean nodownmix_surround, nodownmix_lfe, upmix_stereo; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
73 |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
74 static pthread_t decode_thread = (pthread_t) NULL; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
75 sem_t play_loop_signal; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
76 pthread_mutex_t infile_lock; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
77 |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
78 extern InputPlugin a52_ip; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
79 |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
80 static int is_our_file_a52 (char *); |
124
f356655ed806
[svn] - push from p4://depot/svn-audacious-plugins-devel/virt-branches/trunk/a52dec:
nenolod
parents:
123
diff
changeset
|
81 static int synchronise_a52(VFSFile *, int *, int *, int *, int *); |
123
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
82 sample_t dynamic_range(sample_t, void *); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
83 static void init_a52 (void); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
84 static void *play_loop (void *); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
85 void convertsample(sample_t *, int16_t *, int); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
86 int16_t float2int (float); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
87 static void play_a52 (char *); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
88 static void stop_a52 (void); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
89 static int get_time_a52 (void); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
90 static void get_song_info_a52 (char *, char **, int *); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
91 static void pause_a52 (short); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
92 static void seek_a52 (int); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
93 static void about_a52 (void); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
94 static void configure_a52 (void); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
95 static void configure_ok(GtkWidget *, gpointer); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
96 static void configure_apply(GtkWidget *, gpointer); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
97 static void info_a52 (char *); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
98 |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
99 InputPlugin a52_ip = { |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
100 NULL, |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
101 NULL, |
126
29857e91c6d5
[svn] - xmms-a52dec -> 'AC-3 / A52 Decoding Plugin'
nenolod
parents:
124
diff
changeset
|
102 "AC-3 / A52 Decoding Plugin", |
123
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
103 init_a52, |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
104 about_a52, |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
105 configure_a52, |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
106 is_our_file_a52, |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
107 NULL, |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
108 play_a52, |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
109 stop_a52, |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
110 pause_a52, |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
111 seek_a52, |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
112 NULL, |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
113 get_time_a52, |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
114 NULL, |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
115 NULL, |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
116 NULL, |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
117 NULL, |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
118 NULL, |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
119 NULL, |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
120 NULL, |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
121 get_song_info_a52, |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
122 info_a52, |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
123 NULL |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
124 }; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
125 |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
126 InputPlugin * |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
127 get_iplugin_info (void) |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
128 { |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
129 return &a52_ip; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
130 } |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
131 |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
132 static void |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
133 init_a52 (void) |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
134 { |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
135 ConfigDb *config; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
136 |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
137 // Retrieve settings from file, setting to default if not found. |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
138 |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
139 config = bmp_cfg_db_open(); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
140 if (!bmp_cfg_db_get_double(config, "xmms-a52dec", "compression_factor", |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
141 &compression_factor)) |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
142 { |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
143 bmp_cfg_db_set_double(config, "xmms-a52dec", "compression_factor", |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
144 COMPRESSION_FACTOR_DEFAULT); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
145 compression_factor = COMPRESSION_FACTOR_DEFAULT; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
146 } |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
147 |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
148 if (!bmp_cfg_db_get_int(config, "xmms-a52dec", "compression_type", |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
149 &compression_type)) |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
150 { |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
151 bmp_cfg_db_set_int(config, "xmms-a52dec", "compression_type", |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
152 COMPRESSION_TYPE_DEFAULT); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
153 compression_type = COMPRESSION_TYPE_DEFAULT; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
154 } |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
155 |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
156 if (!bmp_cfg_db_get_bool(config, "xmms-a52dec", "nodownmix_surround", |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
157 &nodownmix_surround)) |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
158 { |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
159 bmp_cfg_db_set_bool(config, "xmms-a52dec", "nodownmix_surround", |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
160 NODOWNMIX_SURROUND_DEFAULT); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
161 nodownmix_surround = NODOWNMIX_SURROUND_DEFAULT; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
162 } |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
163 |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
164 if (!bmp_cfg_db_get_bool(config, "xmms-a52dec", "nodownmix_lfe", |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
165 &nodownmix_lfe)) |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
166 { |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
167 bmp_cfg_db_set_bool(config, "xmms-a52dec", "nodownmix_lfe", |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
168 NODOWNMIX_LFE_DEFAULT); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
169 nodownmix_lfe = NODOWNMIX_LFE_DEFAULT; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
170 } |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
171 |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
172 if (!bmp_cfg_db_get_bool(config, "xmms-a52dec", "upmix_stereo", |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
173 &upmix_stereo)) |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
174 { |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
175 bmp_cfg_db_set_bool(config, "xmms-a52dec", "upmix_stereo", |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
176 UPMIX_STEREO_DEFAULT); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
177 upmix_stereo = UPMIX_STEREO_DEFAULT; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
178 } |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
179 |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
180 if (!bmp_cfg_db_get_int(config, "xmms-a52dec", "dualmono_channel", |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
181 &dualmono_channel)) |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
182 { |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
183 bmp_cfg_db_set_int(config, "xmms-a52dec", "dualmono_channel", |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
184 DUALMONO_DEFAULT); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
185 requested_output = DUALMONO_DEFAULT; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
186 } |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
187 |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
188 bmp_cfg_db_close(config); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
189 } |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
190 |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
191 static int |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
192 is_our_file_a52 (char *filename) |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
193 { |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
194 int l_flags, l_sample_rate, l_bit_rate, l_frame_size; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
195 gchar *extension; |
124
f356655ed806
[svn] - push from p4://depot/svn-audacious-plugins-devel/virt-branches/trunk/a52dec:
nenolod
parents:
123
diff
changeset
|
196 VFSFile *temp_file; |
123
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
197 |
124
f356655ed806
[svn] - push from p4://depot/svn-audacious-plugins-devel/virt-branches/trunk/a52dec:
nenolod
parents:
123
diff
changeset
|
198 temp_file = vfs_fopen (filename, "r"); |
123
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
199 if (!temp_file) |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
200 return FALSE; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
201 |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
202 extension = strrchr (filename, '.'); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
203 |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
204 if (extension) |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
205 if (!strcasecmp (extension, ".a52") || !strcasecmp (extension, ".ac3")) |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
206 if (synchronise_a52(temp_file, &l_flags, &l_sample_rate, |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
207 &l_bit_rate, &l_frame_size) == 0) |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
208 { |
124
f356655ed806
[svn] - push from p4://depot/svn-audacious-plugins-devel/virt-branches/trunk/a52dec:
nenolod
parents:
123
diff
changeset
|
209 vfs_fclose (temp_file); |
123
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
210 return TRUE; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
211 } |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
212 |
124
f356655ed806
[svn] - push from p4://depot/svn-audacious-plugins-devel/virt-branches/trunk/a52dec:
nenolod
parents:
123
diff
changeset
|
213 vfs_fclose (temp_file); |
123
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
214 return FALSE; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
215 } |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
216 |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
217 /* Synchronises a52 bitstream and set parameters. |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
218 |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
219 Starting from the current file pointer position, search up to |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
220 SYNC_SEARCH_LIMIT bytes for a valid frame, and set file pointer |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
221 to start of frame. file pointer will be set to an undefined position if |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
222 no valid frame found. |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
223 |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
224 Return 0 if successful. |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
225 Return -1 if failed. */ |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
226 |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
227 static int |
124
f356655ed806
[svn] - push from p4://depot/svn-audacious-plugins-devel/virt-branches/trunk/a52dec:
nenolod
parents:
123
diff
changeset
|
228 synchronise_a52(VFSFile *file, int *l_flags, int *l_sample_rate, |
123
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
229 int *l_bit_rate, int *l_frame_size) |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
230 { |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
231 int count; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
232 char temp_buf[7]; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
233 |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
234 for (count=0; count <= SYNC_SEARCH_LIMIT; count++) |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
235 { |
124
f356655ed806
[svn] - push from p4://depot/svn-audacious-plugins-devel/virt-branches/trunk/a52dec:
nenolod
parents:
123
diff
changeset
|
236 if (vfs_fread(temp_buf, 7, 1, file) != 1) |
123
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
237 return -1; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
238 |
124
f356655ed806
[svn] - push from p4://depot/svn-audacious-plugins-devel/virt-branches/trunk/a52dec:
nenolod
parents:
123
diff
changeset
|
239 if (vfs_fseek(file, -6, SEEK_CUR)) |
123
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
240 return -1; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
241 |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
242 *l_frame_size = a52_syncinfo (temp_buf, l_flags, l_sample_rate, l_bit_rate); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
243 if (*l_frame_size != 0) |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
244 break; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
245 } |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
246 |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
247 // No valid frame found. |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
248 |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
249 if (count == SYNC_SEARCH_LIMIT) |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
250 return -1; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
251 |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
252 // Valid frame found. Go back 1 bytes to return to start of frame. |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
253 |
124
f356655ed806
[svn] - push from p4://depot/svn-audacious-plugins-devel/virt-branches/trunk/a52dec:
nenolod
parents:
123
diff
changeset
|
254 if (vfs_fseek(file, -1, SEEK_CUR)) |
123
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
255 return -1; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
256 |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
257 return 0; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
258 } |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
259 |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
260 sample_t dynamic_range(sample_t recommend, void *nothing) |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
261 { |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
262 switch (compression_type) |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
263 { |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
264 case DRC_BOOST: |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
265 if (recommend > 1) |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
266 return pow(recommend, (double) compression_factor); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
267 else |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
268 return 1; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
269 case DRC_REDUCE: |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
270 if (recommend < 1) |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
271 return pow(recommend, (double) compression_factor); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
272 else |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
273 return 1; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
274 case DRC_BOTH: |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
275 default: |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
276 return pow(recommend, (double) compression_factor); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
277 } |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
278 } |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
279 |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
280 static void * |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
281 play_loop (void *arg) |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
282 { |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
283 int old_frame_size, old_bit_rate; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
284 a52_state_t *dec_state; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
285 char *filebuf; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
286 int16_t outbuf[256*6]; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
287 int sample_type; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
288 int first_run=1; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
289 int tempcount; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
290 sample_t level=32766.0; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
291 |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
292 /* Re-initialise the a52 library. Without this, there will be |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
293 some noise when switching songs */ |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
294 |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
295 dec_state = a52_init(0); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
296 sample = a52_samples(dec_state); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
297 |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
298 a52_run = 1; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
299 lastset_time = 0; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
300 |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
301 old_frame_size = frame_size; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
302 old_bit_rate = bit_rate; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
303 filebuf = malloc(frame_size); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
304 |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
305 while (a52_run) |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
306 { |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
307 a52_not_eof = 1; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
308 |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
309 /* Lock the mutex before synch and read. |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
310 |
124
f356655ed806
[svn] - push from p4://depot/svn-audacious-plugins-devel/virt-branches/trunk/a52dec:
nenolod
parents:
123
diff
changeset
|
311 This prevent a52_seek from calling an vfs_fseek between a |
123
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
312 synch and read. */ |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
313 |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
314 pthread_mutex_lock(&infile_lock); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
315 |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
316 // Re-synchronise before reading each frame. |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
317 |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
318 if (synchronise_a52(in_file, &flags, &sample_rate, |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
319 &bit_rate, &frame_size) == -1) |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
320 { |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
321 pthread_mutex_unlock(&infile_lock); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
322 a52_not_eof = 0; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
323 xmms_usleep(1000); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
324 continue; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
325 } |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
326 |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
327 // Check if frame_size has changed. If yes, realloc filebuf. |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
328 |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
329 if (frame_size != old_frame_size) |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
330 { |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
331 filebuf = realloc(filebuf, frame_size); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
332 old_frame_size = frame_size; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
333 } |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
334 |
124
f356655ed806
[svn] - push from p4://depot/svn-audacious-plugins-devel/virt-branches/trunk/a52dec:
nenolod
parents:
123
diff
changeset
|
335 if(!vfs_fread(filebuf, frame_size, 1, in_file)) |
123
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
336 { |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
337 pthread_mutex_unlock(&infile_lock); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
338 a52_not_eof = 0; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
339 xmms_usleep(1000); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
340 continue; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
341 } |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
342 |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
343 pthread_mutex_unlock(&infile_lock); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
344 |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
345 if (bit_rate != old_bit_rate) |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
346 { |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
347 a52_ip.set_info (name, length / (bit_rate / 8 / 1000), |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
348 bit_rate, sample_rate, output_nch); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
349 old_bit_rate = bit_rate; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
350 } |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
351 |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
352 if (nodownmix_surround == TRUE) |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
353 sample_type = A52_3F2R | A52_ADJUST_LEVEL; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
354 else |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
355 sample_type = output_type | A52_ADJUST_LEVEL; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
356 |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
357 if (nodownmix_lfe == TRUE) |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
358 sample_type |= A52_LFE; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
359 else |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
360 sample_type &= A52_CHANNEL_MASK; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
361 |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
362 // The above is for non-5.1, for 5.1 we add in the LFE channel. |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
363 |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
364 sample_type |= output_type & A52_LFE; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
365 |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
366 if(a52_frame(dec_state, filebuf, &sample_type, &level, 0.0)) |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
367 break; // Don't know how to deal with this properly. |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
368 |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
369 a52_dynrng (dec_state, dynamic_range, NULL); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
370 |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
371 for (tempcount = 0; tempcount < 6; tempcount++) |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
372 { |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
373 a52_block(dec_state); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
374 |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
375 convertsample(sample, outbuf, sample_type); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
376 |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
377 /* Sleep while the buffer is full */ |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
378 while (a52_run && (a52_ip.output->buffer_free () < 512 * output_nch)) |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
379 xmms_usleep (10000); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
380 |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
381 a52_ip.output->write_audio (outbuf, 512 * output_nch); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
382 |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
383 /* Signal the play_a52 thread to let it know that we have |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
384 finished writing to buffer. It can safely exit now. |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
385 |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
386 Without this, get_time_a52 may run before we have started |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
387 playing anything. get_time_a52 will find that the buffer |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
388 is not playing (yet) and return -1 causing stop_a52 to |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
389 stop play_loop. |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
390 |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
391 We must only run this once, because play_a52 will destroy |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
392 the semaphore once it receive the signal. */ |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
393 |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
394 if (first_run) |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
395 { |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
396 sem_post(&play_loop_signal); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
397 first_run=0; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
398 } |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
399 |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
400 /* Add visualisation data. Do not use a52_ip.gettime() |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
401 for the time. Due to buffering, the time for which the |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
402 data is submitted and the current playing time is not |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
403 the same. The vis data is sent in advance and must be |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
404 set for the correct time. */ |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
405 |
124
f356655ed806
[svn] - push from p4://depot/svn-audacious-plugins-devel/virt-branches/trunk/a52dec:
nenolod
parents:
123
diff
changeset
|
406 a52_ip.add_vis_pcm (vfs_ftell(in_file) / (bit_rate / 8 / 1000), |
123
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
407 FMT_S16_LE, output_nch, 512 * output_nch, outbuf); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
408 } |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
409 } |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
410 |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
411 /* If sem_post didn't run above, we'll run it now */ |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
412 |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
413 if (first_run) |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
414 { |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
415 sem_post(&play_loop_signal); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
416 first_run=0; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
417 } |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
418 |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
419 // Free memory allocated by a52_init. |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
420 |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
421 a52_free(dec_state); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
422 |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
423 /* If we break from the loop due to end of file, the music |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
424 is probably still playing, so we'll sleep and wait for |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
425 it to end. We'll set a52_not_eof to 0 to let get_time_a52 |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
426 know that we have reached the end of file.*/ |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
427 |
124
f356655ed806
[svn] - push from p4://depot/svn-audacious-plugins-devel/virt-branches/trunk/a52dec:
nenolod
parents:
123
diff
changeset
|
428 vfs_fclose (in_file); |
123
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
429 a52_not_eof=0; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
430 |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
431 pthread_exit (NULL); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
432 } |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
433 |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
434 void |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
435 convertsample(sample_t *sample, int16_t *outbuf, int sample_type) |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
436 { |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
437 int count; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
438 int lfe_offset; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
439 |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
440 if (sample_type & A52_LFE) |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
441 lfe_offset = 256; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
442 else |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
443 lfe_offset = 0; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
444 |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
445 for (count = 0; count < 256; count++) |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
446 if (output_type == A52_STEREO) |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
447 switch (sample_type & A52_CHANNEL_MASK) |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
448 { |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
449 case A52_MONO: |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
450 case A52_CHANNEL1: |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
451 case A52_CHANNEL2: |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
452 outbuf[count * 2] = float2int (sample[count + lfe_offset]); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
453 outbuf[count * 2 + 1] = outbuf[count * 2]; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
454 break; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
455 case A52_CHANNEL: |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
456 if (dualmono_channel == 1) |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
457 { |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
458 outbuf[count * 2] = float2int (sample[count + lfe_offset]); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
459 outbuf[count * 2 + 1] = outbuf[count * 2]; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
460 } |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
461 else |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
462 { |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
463 outbuf[count * 2] = float2int (sample[count + 256 + lfe_offset]); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
464 outbuf[count * 2 + 1] = outbuf[count * 2]; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
465 } |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
466 break; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
467 case A52_STEREO: |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
468 case A52_DOLBY: |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
469 case A52_2F1R: |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
470 case A52_2F2R: |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
471 outbuf[count * 2] = float2int (sample[count + lfe_offset]); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
472 outbuf[count * 2 + 1] = float2int (sample[count + 256 + lfe_offset]); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
473 break; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
474 case A52_3F: |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
475 case A52_3F1R: |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
476 case A52_3F2R: |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
477 outbuf[count * 2] = float2int (sample[count + lfe_offset]); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
478 outbuf[count * 2 + 1] = float2int (sample[count + 512 + lfe_offset]); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
479 break; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
480 } |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
481 else if (output_type == A52_2F2R) |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
482 switch (sample_type & A52_CHANNEL_MASK) |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
483 { |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
484 case A52_MONO: |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
485 case A52_CHANNEL1: |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
486 case A52_CHANNEL2: |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
487 outbuf[count * 4] = float2int (sample[count + lfe_offset]); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
488 outbuf[count * 4 + 1] = outbuf[count * 4]; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
489 if (upmix_stereo == TRUE) |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
490 { |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
491 outbuf[count * 4 + 2] = outbuf[count * 4]; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
492 outbuf[count * 4 + 3] = outbuf[count * 4]; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
493 } |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
494 else |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
495 { |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
496 outbuf[count * 4 + 2] = 0; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
497 outbuf[count * 4 + 3] = 0; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
498 } |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
499 break; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
500 case A52_CHANNEL: |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
501 if (dualmono_channel == 1) |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
502 { |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
503 outbuf[count * 4] = float2int (sample[count + lfe_offset]); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
504 outbuf[count * 4 + 1] = outbuf[count * 4]; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
505 if (upmix_stereo == TRUE) |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
506 { |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
507 outbuf[count * 4 + 2] = outbuf[count * 4]; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
508 outbuf[count * 4 + 3] = outbuf[count * 4]; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
509 } |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
510 else |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
511 { |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
512 outbuf[count * 4 + 2] = 0; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
513 outbuf[count * 4 + 3] = 0; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
514 } |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
515 } |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
516 else |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
517 { |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
518 outbuf[count * 4] = float2int (sample[count + 256 + lfe_offset]); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
519 outbuf[count * 4 + 1] = outbuf[count * 4]; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
520 if (upmix_stereo == TRUE) |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
521 { |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
522 outbuf[count * 4 + 2] = outbuf[count * 4]; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
523 outbuf[count * 4 + 3] = outbuf[count * 4]; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
524 } |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
525 else |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
526 { |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
527 outbuf[count * 4 + 2] = 0; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
528 outbuf[count * 4 + 3] = 0; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
529 } |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
530 } |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
531 break; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
532 case A52_STEREO: |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
533 case A52_DOLBY: |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
534 outbuf[count * 4] = float2int (sample[count + lfe_offset]); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
535 outbuf[count * 4 + 1] = float2int (sample[count + 256 + lfe_offset]); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
536 if (upmix_stereo == TRUE) |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
537 { |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
538 outbuf[count * 4 + 2] = outbuf[count * 4]; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
539 outbuf[count * 4 + 3] = outbuf[count * 4 + 1]; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
540 } |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
541 else |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
542 { |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
543 outbuf[count * 4 + 2] = 0; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
544 outbuf[count * 4 + 3] = 0; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
545 } |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
546 break; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
547 case A52_3F: |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
548 outbuf[count * 4] = float2int (sample[count + lfe_offset]); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
549 outbuf[count * 4 + 1] = float2int (sample[count + 512 + lfe_offset]); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
550 if (upmix_stereo == TRUE) |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
551 { |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
552 outbuf[count * 4 + 2] = outbuf[count * 4]; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
553 outbuf[count * 4 + 3] = outbuf[count * 4 + 1]; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
554 } |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
555 else |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
556 { |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
557 outbuf[count * 4 + 2] = 0; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
558 outbuf[count * 4 + 3] = 0; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
559 } |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
560 break; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
561 case A52_2F1R: |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
562 outbuf[count * 4] = float2int (sample[count + lfe_offset]); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
563 outbuf[count * 4 + 1] = float2int (sample[count + 256 + lfe_offset]); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
564 outbuf[count * 4 + 2] = float2int (sample[count + 512 + lfe_offset]); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
565 outbuf[count * 4 + 3] = outbuf[count * 4 + 2]; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
566 break; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
567 case A52_2F2R: |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
568 outbuf[count * 4] = float2int (sample[count + lfe_offset]); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
569 outbuf[count * 4 + 1] = float2int (sample[count + 256 + lfe_offset]); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
570 outbuf[count * 4 + 2] = float2int (sample[count + 512 + lfe_offset]); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
571 outbuf[count * 4 + 3] = float2int (sample[count + 768 + lfe_offset]); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
572 break; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
573 case A52_3F1R: |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
574 outbuf[count * 4] = float2int (sample[count + lfe_offset]); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
575 outbuf[count * 4 + 1] = float2int (sample[count + 512 + lfe_offset]); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
576 outbuf[count * 4 + 2] = float2int (sample[count + 768 + lfe_offset]); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
577 outbuf[count * 4 + 3] = outbuf[count * 4 + 2]; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
578 break; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
579 case A52_3F2R: |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
580 outbuf[count * 4] = float2int (sample[count + lfe_offset]); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
581 outbuf[count * 4 + 1] = float2int (sample[count + 512 + lfe_offset]); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
582 outbuf[count * 4 + 2] = float2int (sample[count + 768 + lfe_offset]); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
583 outbuf[count * 4 + 3] = float2int (sample[count + 1024 + lfe_offset]); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
584 break; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
585 } |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
586 else if (output_type == A52_3F2R) |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
587 switch (sample_type & A52_CHANNEL_MASK) |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
588 { |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
589 case A52_MONO: |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
590 case A52_CHANNEL1: |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
591 case A52_CHANNEL2: |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
592 outbuf[count * 5] = float2int (sample[count + lfe_offset]); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
593 outbuf[count * 5 + 1] = outbuf[count * 5]; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
594 if (upmix_stereo == TRUE) |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
595 { |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
596 outbuf[count * 5 + 2] = outbuf[count * 5]; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
597 outbuf[count * 5 + 3] = outbuf[count * 5]; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
598 } |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
599 else |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
600 { |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
601 outbuf[count * 5 + 2] = 0; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
602 outbuf[count * 5 + 3] = 0; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
603 } |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
604 outbuf[count * 5 + 4] = outbuf[count * 5]; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
605 break; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
606 case A52_CHANNEL: |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
607 if (dualmono_channel == 1) |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
608 { |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
609 outbuf[count * 5] = float2int (sample[count + lfe_offset]); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
610 outbuf[count * 5 + 1] = outbuf[count * 5]; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
611 if (upmix_stereo == TRUE) |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
612 { |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
613 outbuf[count * 5 + 2] = outbuf[count * 5]; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
614 outbuf[count * 5 + 3] = outbuf[count * 5]; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
615 } |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
616 else |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
617 { |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
618 outbuf[count * 5 + 2] = 0; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
619 outbuf[count * 5 + 3] = 0; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
620 } |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
621 } |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
622 else |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
623 { |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
624 outbuf[count * 5] = float2int (sample[count + 256 + lfe_offset]); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
625 outbuf[count * 5 + 1] = outbuf[count * 5]; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
626 if (upmix_stereo == TRUE) |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
627 { |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
628 outbuf[count * 5 + 2] = outbuf[count * 5]; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
629 outbuf[count * 5 + 3] = outbuf[count * 5]; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
630 } |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
631 else |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
632 { |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
633 outbuf[count * 5 + 2] = 0; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
634 outbuf[count * 5 + 3] = 0; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
635 } |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
636 } |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
637 break; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
638 case A52_STEREO: |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
639 case A52_DOLBY: |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
640 outbuf[count * 5] = float2int (sample[count + lfe_offset]); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
641 outbuf[count * 5 + 1] = float2int (sample[count + 256 + lfe_offset]); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
642 if (upmix_stereo == TRUE) |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
643 { |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
644 outbuf[count * 5 + 2] = outbuf[count * 5]; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
645 outbuf[count * 5 + 3] = outbuf[count * 5 + 1]; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
646 } |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
647 else |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
648 { |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
649 outbuf[count * 5 + 2] = 0; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
650 outbuf[count * 5 + 3] = 0; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
651 } |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
652 outbuf[count * 5 + 4] = 0; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
653 break; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
654 case A52_3F: |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
655 outbuf[count * 5] = float2int (sample[count + lfe_offset]); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
656 outbuf[count * 5 + 1] = float2int (sample[count + 512 + lfe_offset]); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
657 if (upmix_stereo == TRUE) |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
658 { |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
659 outbuf[count * 5 + 2] = outbuf[count * 5]; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
660 outbuf[count * 5 + 3] = outbuf[count * 5 + 1]; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
661 } |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
662 else |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
663 { |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
664 outbuf[count * 5 + 2] = 0; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
665 outbuf[count * 5 + 3] = 0; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
666 } |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
667 outbuf[count * 5 + 4] = float2int (sample[count + 256 + lfe_offset]); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
668 break; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
669 case A52_2F1R: |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
670 outbuf[count * 5] = float2int (sample[count + lfe_offset]); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
671 outbuf[count * 5 + 1] = float2int (sample[count + 256 + lfe_offset]); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
672 outbuf[count * 5 + 2] = float2int (sample[count + 512 + lfe_offset]); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
673 outbuf[count * 5 + 3] = outbuf[count * 5 + 2]; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
674 outbuf[count * 5 + 4] = 0; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
675 break; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
676 case A52_2F2R: |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
677 outbuf[count * 5] = float2int (sample[count + lfe_offset]); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
678 outbuf[count * 5 + 1] = float2int (sample[count + 256 + lfe_offset]); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
679 outbuf[count * 5 + 2] = float2int (sample[count + 512 + lfe_offset]); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
680 outbuf[count * 5 + 3] = float2int (sample[count + 768 + lfe_offset]); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
681 outbuf[count * 5 + 4] = 0; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
682 break; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
683 case A52_3F1R: |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
684 outbuf[count * 5] = float2int (sample[count + lfe_offset]); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
685 outbuf[count * 5 + 1] = float2int (sample[count + 512 + lfe_offset]); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
686 outbuf[count * 5 + 2] = float2int (sample[count + 768 + lfe_offset]); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
687 outbuf[count * 5 + 3] = outbuf[count * 5 + 2]; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
688 outbuf[count * 5 + 4] = float2int (sample[count + 256 + lfe_offset]); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
689 break; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
690 case A52_3F2R: |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
691 outbuf[count * 5] = float2int (sample[count + lfe_offset]); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
692 outbuf[count * 5 + 1] = float2int (sample[count + 512 + lfe_offset]); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
693 outbuf[count * 5 + 2] = float2int (sample[count + 768 + lfe_offset]); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
694 outbuf[count * 5 + 3] = float2int (sample[count + 1024 + lfe_offset]); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
695 outbuf[count * 5 + 4] = float2int (sample[count + 256 + lfe_offset]); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
696 break; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
697 } |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
698 else if (output_type == (A52_3F2R | A52_LFE)) |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
699 switch (sample_type & A52_CHANNEL_MASK) |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
700 { |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
701 case A52_MONO: |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
702 case A52_CHANNEL1: |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
703 case A52_CHANNEL2: |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
704 outbuf[count * 6] = float2int (sample[count + lfe_offset]); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
705 outbuf[count * 6 + 1] = outbuf[count * 6]; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
706 if (upmix_stereo == TRUE) |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
707 { |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
708 outbuf[count * 6 + 2] = outbuf[count * 6]; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
709 outbuf[count * 6 + 3] = outbuf[count * 6]; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
710 } |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
711 else |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
712 { |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
713 outbuf[count * 6 + 2] = 0; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
714 outbuf[count * 6 + 3] = 0; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
715 } |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
716 outbuf[count * 6 + 4] = outbuf[count * 6]; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
717 if (lfe_offset) |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
718 outbuf[count * 6 + 5] = float2int (sample[count]); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
719 else |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
720 outbuf[count * 6 + 5] = 0; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
721 break; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
722 case A52_CHANNEL: |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
723 if (dualmono_channel == 1) |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
724 { |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
725 outbuf[count * 6] = float2int (sample[count + lfe_offset]); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
726 outbuf[count * 6 + 1] = outbuf[count * 6]; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
727 if (upmix_stereo == TRUE) |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
728 { |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
729 outbuf[count * 6 + 2] = outbuf[count * 6]; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
730 outbuf[count * 6 + 3] = outbuf[count * 6]; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
731 } |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
732 else |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
733 { |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
734 outbuf[count * 6 + 2] = 0; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
735 outbuf[count * 6 + 3] = 0; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
736 } |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
737 } |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
738 else |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
739 { |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
740 outbuf[count * 6] = float2int (sample[count + 256 + lfe_offset]); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
741 outbuf[count * 6 + 1] = outbuf[count * 6]; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
742 if (upmix_stereo == TRUE) |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
743 { |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
744 outbuf[count * 6 + 2] = outbuf[count * 6]; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
745 outbuf[count * 6 + 3] = outbuf[count * 6]; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
746 } |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
747 else |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
748 { |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
749 outbuf[count * 6 + 2] = 0; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
750 outbuf[count * 6 + 3] = 0; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
751 } |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
752 } |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
753 break; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
754 case A52_STEREO: |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
755 case A52_DOLBY: |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
756 outbuf[count * 6] = float2int (sample[count + lfe_offset]); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
757 outbuf[count * 6 + 1] = float2int (sample[count + 256 + lfe_offset]); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
758 if (upmix_stereo == TRUE) |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
759 { |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
760 outbuf[count * 6 + 2] = outbuf[count * 6]; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
761 outbuf[count * 6 + 3] = outbuf[count * 6 + 1]; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
762 } |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
763 else |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
764 { |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
765 outbuf[count * 6 + 2] = 0; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
766 outbuf[count * 6 + 3] = 0; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
767 } |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
768 outbuf[count * 6 + 4] = 0; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
769 if (lfe_offset) |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
770 outbuf[count * 6 + 5] = float2int (sample[count]); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
771 else |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
772 outbuf[count * 6 + 5] = 0; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
773 break; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
774 case A52_3F: |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
775 outbuf[count * 6] = float2int (sample[count + lfe_offset]); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
776 outbuf[count * 6 + 1] = float2int (sample[count + 512 + lfe_offset]); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
777 if (upmix_stereo == TRUE) |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
778 { |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
779 outbuf[count * 6 + 2] = outbuf[count * 6]; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
780 outbuf[count * 6 + 3] = outbuf[count * 6 + 1]; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
781 } |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
782 else |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
783 { |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
784 outbuf[count * 6 + 2] = 0; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
785 outbuf[count * 6 + 3] = 0; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
786 } |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
787 outbuf[count * 6 + 4] = float2int (sample[count + 256 + lfe_offset]); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
788 if (lfe_offset) |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
789 outbuf[count * 6 + 5] = float2int (sample[count]); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
790 else |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
791 outbuf[count * 6 + 5] = 0; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
792 break; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
793 case A52_2F1R: |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
794 outbuf[count * 6] = float2int (sample[count + lfe_offset]); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
795 outbuf[count * 6 + 1] = float2int (sample[count + 256 + lfe_offset]); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
796 outbuf[count * 6 + 2] = float2int (sample[count + 512 + lfe_offset]); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
797 outbuf[count * 6 + 3] = outbuf[count * 6 + 2]; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
798 outbuf[count * 6 + 4] = 0; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
799 if (lfe_offset) |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
800 outbuf[count * 6 + 5] = float2int (sample[count]); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
801 else |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
802 outbuf[count * 6 + 5] = 0; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
803 break; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
804 case A52_2F2R: |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
805 outbuf[count * 6] = float2int (sample[count + lfe_offset]); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
806 outbuf[count * 6 + 1] = float2int (sample[count + 256 + lfe_offset]); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
807 outbuf[count * 6 + 2] = float2int (sample[count + 512 + lfe_offset]); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
808 outbuf[count * 6 + 3] = float2int (sample[count + 768 + lfe_offset]); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
809 outbuf[count * 6 + 4] = 0; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
810 if (lfe_offset) |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
811 outbuf[count * 6 + 5] = float2int (sample[count]); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
812 else |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
813 outbuf[count * 6 + 5] = 0; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
814 break; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
815 case A52_3F1R: |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
816 outbuf[count * 6] = float2int (sample[count + lfe_offset]); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
817 outbuf[count * 6 + 1] = float2int (sample[count + 512 + lfe_offset]); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
818 outbuf[count * 6 + 2] = float2int (sample[count + 768 + lfe_offset]); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
819 outbuf[count * 6 + 3] = outbuf[count * 6 + 2]; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
820 outbuf[count * 6 + 4] = float2int (sample[count + 256 + lfe_offset]); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
821 if (lfe_offset) |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
822 outbuf[count * 6 + 5] = float2int (sample[count]); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
823 else |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
824 outbuf[count * 6 + 5] = 0; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
825 break; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
826 case A52_3F2R: |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
827 outbuf[count * 6] = float2int (sample[count + lfe_offset]); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
828 outbuf[count * 6 + 1] = float2int (sample[count + 512 + lfe_offset]); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
829 outbuf[count * 6 + 2] = float2int (sample[count + 768 + lfe_offset]); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
830 outbuf[count * 6 + 3] = float2int (sample[count + 1024 + lfe_offset]); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
831 outbuf[count * 6 + 4] = float2int (sample[count + 256 + lfe_offset]); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
832 if (lfe_offset) |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
833 outbuf[count * 6 + 5] = float2int (sample[count]); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
834 else |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
835 outbuf[count * 6 + 5] = 0; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
836 break; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
837 } |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
838 else if (output_type == A52_DOLBY) |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
839 switch (sample_type & A52_CHANNEL_MASK) |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
840 { |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
841 case A52_CHANNEL1: |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
842 case A52_CHANNEL2: |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
843 outbuf[count * 2] = float2int (sample[count + lfe_offset]); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
844 outbuf[count * 2 + 1] = outbuf[count * 2]; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
845 break; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
846 case A52_CHANNEL: |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
847 if (dualmono_channel == 1) |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
848 { |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
849 outbuf[count * 2] = float2int (sample[count + lfe_offset]); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
850 outbuf[count * 2 + 1] = outbuf[count * 2]; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
851 } |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
852 else |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
853 { |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
854 outbuf[count * 2] = float2int (sample[count + 256 + lfe_offset]); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
855 outbuf[count * 2 + 1] = outbuf[count * 2]; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
856 } |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
857 break; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
858 case A52_STEREO: |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
859 case A52_DOLBY: |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
860 outbuf[count * 2] = float2int (sample[count + lfe_offset]); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
861 outbuf[count * 2 + 1] = float2int (sample[count + 256 + lfe_offset]); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
862 break; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
863 } |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
864 } |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
865 |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
866 int16_t |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
867 float2int (float sample) |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
868 { |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
869 if (sample > 32767.0) |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
870 return 32767; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
871 else if (sample < -32767.0) |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
872 return -32767; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
873 else |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
874 return (int16_t) sample; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
875 } |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
876 |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
877 static void |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
878 play_a52 (char *filename) |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
879 { |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
880 char *temp; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
881 |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
882 if (a52_run) |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
883 return; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
884 |
124
f356655ed806
[svn] - push from p4://depot/svn-audacious-plugins-devel/virt-branches/trunk/a52dec:
nenolod
parents:
123
diff
changeset
|
885 in_file = vfs_fopen (filename, "r"); |
123
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
886 |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
887 if (!in_file) |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
888 return; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
889 |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
890 if (synchronise_a52(in_file, &flags, &sample_rate, |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
891 &bit_rate, &frame_size) == -1) |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
892 { |
124
f356655ed806
[svn] - push from p4://depot/svn-audacious-plugins-devel/virt-branches/trunk/a52dec:
nenolod
parents:
123
diff
changeset
|
893 vfs_fclose(in_file); |
123
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
894 return; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
895 } |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
896 |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
897 output_type = requested_output; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
898 |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
899 if ((output_type & A52_STEREO) || (output_type & A52_DOLBY)) |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
900 { |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
901 output_nch = a52_ip.output->open_audio (FMT_S16_NE, sample_rate, 2); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
902 if (output_nch == 0) |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
903 { |
124
f356655ed806
[svn] - push from p4://depot/svn-audacious-plugins-devel/virt-branches/trunk/a52dec:
nenolod
parents:
123
diff
changeset
|
904 vfs_fclose (in_file); |
123
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
905 return; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
906 } |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
907 } |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
908 |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
909 if (output_type != A52_DOLBY) |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
910 output_type = A52_STEREO; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
911 |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
912 /* don't ask. -nenolod */ |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
913 if (output_nch == 1) |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
914 output_nch = 2; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
915 |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
916 // Get song title |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
917 |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
918 temp = strrchr (filename, '/'); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
919 if (!temp) |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
920 temp = filename; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
921 else |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
922 temp++; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
923 name = malloc (strlen (temp) + 1); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
924 strcpy (name, temp); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
925 *strrchr (name, '.') = '\0'; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
926 |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
927 // Get song length |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
928 |
124
f356655ed806
[svn] - push from p4://depot/svn-audacious-plugins-devel/virt-branches/trunk/a52dec:
nenolod
parents:
123
diff
changeset
|
929 vfs_fseek (in_file, 0, SEEK_END); |
123
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
930 |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
931 /* If we can get the file length, we divide it by byterate (not bitrate) |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
932 and multiply by 1000 to get time in milliseconds. |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
933 If we can't get file length, we'll set it to -1 |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
934 |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
935 length (the variable) : file length |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
936 length (passed to set_info) : milliseconds |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
937 bit_rate : bits/second |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
938 sample_rate : sample/second */ |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
939 |
124
f356655ed806
[svn] - push from p4://depot/svn-audacious-plugins-devel/virt-branches/trunk/a52dec:
nenolod
parents:
123
diff
changeset
|
940 if ((length = vfs_ftell (in_file)) != -1) |
123
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
941 a52_ip.set_info (name, length / (bit_rate / 8 / 1000), |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
942 bit_rate, sample_rate, 2); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
943 else |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
944 a52_ip.set_info (name, -1, bit_rate, sample_rate, 2); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
945 |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
946 free(name); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
947 |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
948 // Return to start of file. |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
949 |
124
f356655ed806
[svn] - push from p4://depot/svn-audacious-plugins-devel/virt-branches/trunk/a52dec:
nenolod
parents:
123
diff
changeset
|
950 vfs_fseek (in_file, 0, SEEK_SET); |
123
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
951 |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
952 // Mutex will be used in play_loop. |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
953 |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
954 pthread_mutex_destroy(&infile_lock); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
955 pthread_mutex_init(&infile_lock, NULL); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
956 |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
957 /* Ensure that play_loop has written to the buffer before exiting. |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
958 See play_loop for further details. */ |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
959 |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
960 sem_init(&play_loop_signal, 0, 0); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
961 pthread_create (&decode_thread, NULL, play_loop, NULL); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
962 sem_wait(&play_loop_signal); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
963 sem_destroy(&play_loop_signal); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
964 |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
965 return; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
966 } |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
967 |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
968 static void |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
969 stop_a52 (void) |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
970 { |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
971 if (a52_run) |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
972 { |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
973 a52_run = 0; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
974 pthread_join (decode_thread, NULL); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
975 a52_ip.output->close_audio (); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
976 } |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
977 } |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
978 |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
979 static int |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
980 get_time_a52 (void) |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
981 { |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
982 /* lastset_time is set when playing starts and |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
983 when seeking. We can't use it directly because |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
984 it's based on file position for reading. Due to |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
985 buffering, the file position is always ahead of |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
986 the play position. |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
987 |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
988 Instead, we set lastset_time when playing and |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
989 seeking, and use the output_time() as an offset. */ |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
990 |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
991 a52_ip.output->buffer_free(); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
992 |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
993 if ((a52_run && a52_not_eof) || a52_ip.output->buffer_playing ()) |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
994 return lastset_time + a52_ip.output->output_time (); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
995 |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
996 return -1; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
997 } |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
998 |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
999 static void |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1000 pause_a52 (short paused) |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1001 { |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1002 a52_ip.output->pause (paused); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1003 } |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1004 |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1005 static void |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1006 get_song_info_a52 (gchar * filename, gchar ** title, gint * info_length) |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1007 { |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1008 int l_flags, l_sample_rate, l_bit_rate, l_frame_size; |
124
f356655ed806
[svn] - push from p4://depot/svn-audacious-plugins-devel/virt-branches/trunk/a52dec:
nenolod
parents:
123
diff
changeset
|
1009 VFSFile *temp_file; |
123
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1010 char *temp_name, *temp; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1011 |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1012 // Set the song title |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1013 |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1014 temp = strrchr (filename, '/'); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1015 if (!temp) |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1016 temp = filename; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1017 else |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1018 temp++; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1019 temp_name = malloc (strlen (temp) + 1); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1020 strcpy (temp_name, temp); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1021 *strrchr (temp_name, '.') = '\0'; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1022 (*title) = temp_name; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1023 |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1024 // Determine the song length from filesize. |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1025 |
124
f356655ed806
[svn] - push from p4://depot/svn-audacious-plugins-devel/virt-branches/trunk/a52dec:
nenolod
parents:
123
diff
changeset
|
1026 temp_file = vfs_fopen (filename, "r"); |
123
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1027 |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1028 if (synchronise_a52(temp_file, &l_flags, &l_sample_rate, |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1029 &l_bit_rate, &l_frame_size) == -1) |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1030 { |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1031 *info_length = -1; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1032 return; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1033 } |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1034 |
124
f356655ed806
[svn] - push from p4://depot/svn-audacious-plugins-devel/virt-branches/trunk/a52dec:
nenolod
parents:
123
diff
changeset
|
1035 vfs_fseek (temp_file, 0, SEEK_END); |
123
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1036 |
124
f356655ed806
[svn] - push from p4://depot/svn-audacious-plugins-devel/virt-branches/trunk/a52dec:
nenolod
parents:
123
diff
changeset
|
1037 if ((*info_length = vfs_ftell (temp_file)) == -1) |
123
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1038 { |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1039 // Can't get file position |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1040 *info_length = -1; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1041 return; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1042 } |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1043 |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1044 // Song length in milliseconds |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1045 |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1046 *info_length = *info_length / (l_bit_rate / 8 / 1000); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1047 } |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1048 |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1049 static void |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1050 seek_a52 (gint time) |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1051 { |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1052 // time is in seconds. |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1053 |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1054 // Don't seek while play_loop is reading/synching. |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1055 |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1056 pthread_mutex_lock(&infile_lock); |
124
f356655ed806
[svn] - push from p4://depot/svn-audacious-plugins-devel/virt-branches/trunk/a52dec:
nenolod
parents:
123
diff
changeset
|
1057 vfs_fseek(in_file, time * bit_rate / 8, SEEK_SET); |
123
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1058 pthread_mutex_unlock(&infile_lock); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1059 |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1060 a52_ip.output->flush (0); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1061 lastset_time = time * 1000; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1062 } |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1063 |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1064 void |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1065 about_a52 (void) |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1066 { |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1067 GdkPixmap *pixmap; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1068 GdkBitmap *mask; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1069 GtkStyle *style; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1070 static GtkWidget *dialog, *button, *label, *pixmapwid; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1071 |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1072 if (dialog) |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1073 return; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1074 |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1075 dialog = gtk_dialog_new (); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1076 gtk_signal_connect (GTK_OBJECT (dialog), "destroy", |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1077 GTK_SIGNAL_FUNC (gtk_widget_destroyed), &dialog); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1078 gtk_window_set_title (GTK_WINDOW (dialog), "About xmms-a52dec 1.0"); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1079 gtk_window_set_policy (GTK_WINDOW (dialog), FALSE, FALSE, FALSE); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1080 gtk_container_border_width (GTK_CONTAINER (dialog), 5); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1081 label = gtk_label_new ("\nXMMS-AC3DEC VERSION 1.0\n\n \ |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1082 An A52/AC3 decoder plugin for xmms based on the a52dec package.\n \ |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1083 \nCoded by Cort <ccwee@cyberway.com.sg>\nEnhanced by David Weisgerber <tnt@md.2y.net>"); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1084 |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1085 /* now for the pixmap from gdk */ |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1086 style = gtk_widget_get_style (dialog); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1087 pixmap = gdk_pixmap_create_from_xpm_d (dialog->window, &mask, |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1088 &style->bg[GTK_STATE_NORMAL], |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1089 (gchar **) a52dec_xpm); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1090 /* a pixmap widget to contain the pixmap */ |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1091 pixmapwid = gtk_pixmap_new (pixmap, NULL); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1092 gtk_widget_show (pixmapwid); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1093 gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dialog)->vbox), pixmapwid, TRUE, |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1094 TRUE, 0); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1095 gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dialog)->vbox), label, TRUE, TRUE, |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1096 0); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1097 gtk_widget_show (label); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1098 |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1099 button = gtk_button_new_with_label (" Close "); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1100 gtk_signal_connect_object (GTK_OBJECT (button), "clicked", |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1101 GTK_SIGNAL_FUNC (gtk_widget_destroy), |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1102 GTK_OBJECT (dialog)); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1103 gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dialog)->action_area), button, |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1104 FALSE, FALSE, 0); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1105 |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1106 gtk_widget_show (button); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1107 gtk_widget_show (dialog); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1108 gtk_widget_grab_focus (button); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1109 } |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1110 |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1111 static GtkWidget *drc_scale, *drc_both, *drc_boost, *drc_reduce; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1112 static GtkWidget *effect_surround, *effect_lfe, *effect_upmix; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1113 static GtkWidget *dualmono_channel1, *dualmono_channel2; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1114 |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1115 void |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1116 configure_a52 (void) |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1117 { |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1118 static GtkWidget *dialog; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1119 static GtkWidget *button_cancel, *button_apply, *button_ok; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1120 static GtkWidget *hbox, *vbox, *vbox2; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1121 static GtkWidget *effect_vbox, *button_hbox, *dualmono_vbox; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1122 static GtkWidget *drc_vbox; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1123 static GtkWidget *range_frame, *effect_frame, *output_frame, *dualmono_frame; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1124 static GtkTooltips *tooltips; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1125 |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1126 if (dialog) |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1127 return; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1128 |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1129 tooltips = gtk_tooltips_new(); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1130 |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1131 // Create dialog and set window parameters. |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1132 |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1133 dialog = gtk_dialog_new (); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1134 gtk_signal_connect (GTK_OBJECT (dialog), "destroy", |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1135 GTK_SIGNAL_FUNC (gtk_widget_destroyed), &dialog); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1136 gtk_window_set_title (GTK_WINDOW (dialog), "xmms-a52dec Configuration"); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1137 gtk_window_set_policy (GTK_WINDOW (dialog), FALSE, FALSE, FALSE); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1138 gtk_container_border_width (GTK_CONTAINER (dialog), 5); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1139 |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1140 // Prepare all the vbox and hbox. |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1141 |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1142 hbox = gtk_hbox_new(FALSE, 5); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1143 gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dialog)->vbox), hbox, TRUE, TRUE, |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1144 0); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1145 vbox = gtk_vbox_new(FALSE, 0); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1146 gtk_box_pack_start (GTK_BOX (hbox), vbox, TRUE, TRUE, 0); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1147 vbox2 = gtk_vbox_new(FALSE, 0); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1148 gtk_box_pack_start (GTK_BOX (hbox), vbox2, TRUE, TRUE, 0); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1149 |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1150 // Prepare all the frames. |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1151 |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1152 range_frame = gtk_frame_new("Dynamic Range Compression"); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1153 effect_frame = gtk_frame_new("Effect"); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1154 output_frame = gtk_frame_new("Output"); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1155 dualmono_frame = gtk_frame_new("Dual Mono"); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1156 |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1157 // Pack the frames in. |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1158 |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1159 gtk_box_pack_start (GTK_BOX (vbox), range_frame, TRUE, TRUE, 0); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1160 gtk_box_pack_start (GTK_BOX (vbox), effect_frame, TRUE, TRUE, 0); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1161 gtk_box_pack_start (GTK_BOX (vbox2), output_frame, TRUE, TRUE, 0); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1162 gtk_box_pack_start (GTK_BOX (vbox2), dualmono_frame, TRUE, TRUE, 0); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1163 |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1164 // Create Dynamic Range Compression options. |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1165 |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1166 drc_vbox = gtk_vbox_new(FALSE, 0); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1167 drc_scale = gtk_hscale_new (GTK_ADJUSTMENT |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1168 (gtk_adjustment_new |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1169 (compression_factor, 0, 1, 0.01, 0.1, 0))); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1170 gtk_scale_set_digits (GTK_SCALE (drc_scale), 2); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1171 drc_both = gtk_radio_button_new_with_label (NULL, "Boost and Reduce"); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1172 drc_boost = gtk_radio_button_new_with_label_from_widget ( |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1173 GTK_RADIO_BUTTON(drc_both), "Boost only"); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1174 drc_reduce = gtk_radio_button_new_with_label_from_widget ( |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1175 GTK_RADIO_BUTTON(drc_both), "Reduce only"); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1176 gtk_box_pack_start (GTK_BOX (drc_vbox), drc_scale, TRUE, TRUE, 0); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1177 gtk_box_pack_start (GTK_BOX (drc_vbox), drc_both, TRUE, TRUE, 0); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1178 gtk_box_pack_start (GTK_BOX (drc_vbox), drc_boost, TRUE, TRUE, 0); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1179 gtk_box_pack_start (GTK_BOX (drc_vbox), drc_reduce, TRUE, TRUE, 0); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1180 gtk_container_add (GTK_CONTAINER(range_frame), drc_vbox); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1181 |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1182 if (compression_type == DRC_BOTH) |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1183 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(drc_both), TRUE); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1184 else if (compression_type == DRC_BOOST) |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1185 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(drc_boost), TRUE); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1186 else if (compression_type == DRC_REDUCE) |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1187 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(drc_reduce), TRUE); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1188 |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1189 |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1190 // Create effect toggle button. |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1191 |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1192 effect_vbox = gtk_vbox_new(FALSE, 0); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1193 effect_surround = gtk_check_button_new_with_label("No downmix of surround"); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1194 effect_lfe = gtk_check_button_new_with_label("No downmix of LFE channel"); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1195 effect_upmix = gtk_check_button_new_with_label("Upmix stereo to surround"); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1196 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(effect_surround), |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1197 nodownmix_surround); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1198 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(effect_lfe), nodownmix_lfe); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1199 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(effect_upmix), upmix_stereo); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1200 gtk_box_pack_start (GTK_BOX (effect_vbox), effect_surround, TRUE, TRUE, 0); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1201 gtk_box_pack_start (GTK_BOX (effect_vbox), effect_lfe, TRUE, TRUE, 0); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1202 gtk_box_pack_start (GTK_BOX (effect_vbox), effect_upmix, TRUE, TRUE, 0); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1203 gtk_container_add (GTK_CONTAINER(effect_frame), effect_vbox); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1204 |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1205 // Create dualmono channel radio button. |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1206 |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1207 dualmono_vbox = gtk_vbox_new(FALSE, 0); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1208 dualmono_channel1 = gtk_radio_button_new_with_label (NULL, "Play First channel"); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1209 dualmono_channel2 = gtk_radio_button_new_with_label_from_widget ( |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1210 GTK_RADIO_BUTTON(dualmono_channel1), "Play Second channel"); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1211 |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1212 if (dualmono_channel == 1) |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1213 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(dualmono_channel1), TRUE); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1214 else |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1215 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(dualmono_channel2), TRUE); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1216 |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1217 gtk_box_pack_start (GTK_BOX (dualmono_vbox), dualmono_channel1, TRUE, TRUE, 0); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1218 gtk_box_pack_start (GTK_BOX (dualmono_vbox), dualmono_channel2, TRUE, TRUE, 0); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1219 gtk_container_add (GTK_CONTAINER(dualmono_frame), dualmono_vbox); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1220 |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1221 // Create hbuttonbox for buttons. |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1222 |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1223 button_hbox = gtk_hbutton_box_new(); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1224 |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1225 // Create cancel button. |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1226 |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1227 button_cancel = gtk_button_new_with_label ("Cancel"); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1228 gtk_signal_connect_object (GTK_OBJECT (button_cancel), "clicked", |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1229 GTK_SIGNAL_FUNC (gtk_widget_destroy), |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1230 GTK_OBJECT (dialog)); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1231 gtk_box_pack_start(GTK_BOX(button_hbox), button_cancel, TRUE, TRUE, 0); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1232 |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1233 // Create apply button. |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1234 |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1235 button_apply = gtk_button_new_with_label ("Apply"); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1236 gtk_signal_connect_object (GTK_OBJECT (button_apply), "clicked", |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1237 GTK_SIGNAL_FUNC (configure_apply), |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1238 GTK_OBJECT (dialog)); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1239 gtk_box_pack_start(GTK_BOX(button_hbox), button_apply, TRUE, TRUE, 0); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1240 |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1241 // Create ok button. |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1242 |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1243 button_ok = gtk_button_new_with_label ("Ok"); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1244 gtk_signal_connect_object (GTK_OBJECT (button_ok), "clicked", |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1245 GTK_SIGNAL_FUNC (configure_ok), |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1246 GTK_OBJECT (dialog)); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1247 gtk_box_pack_start(GTK_BOX(button_hbox), button_ok, TRUE, TRUE, 0); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1248 |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1249 // Pack hbuttonbox into dialog. |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1250 |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1251 gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dialog)->action_area), |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1252 button_hbox, TRUE, TRUE,0); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1253 |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1254 // Set tooltips. |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1255 |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1256 gtk_tooltips_set_tip(GTK_TOOLTIPS (tooltips), drc_scale, |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1257 "Dynamic range compression is used to lower the\ |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1258 volume of loud sounds and increase the volume of\ |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1259 soft sounds.\nSet to 0.00 if you wish to disable this feature.", NULL); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1260 |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1261 gtk_tooltips_set_tip(GTK_TOOLTIPS (tooltips), drc_both, |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1262 "Boost the volume of soft sounds and reduce the volume\ |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1263 of loud sounds.", NULL); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1264 |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1265 gtk_tooltips_set_tip(GTK_TOOLTIPS (tooltips), drc_boost, |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1266 "Boost the volume of soft sounds, but leave loud sounds\ |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1267 unchanged.", NULL); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1268 |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1269 gtk_tooltips_set_tip(GTK_TOOLTIPS (tooltips), drc_reduce, |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1270 "Reduce the volume of loud sounds, but leave soft sounds\ |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1271 unchanged.", NULL); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1272 |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1273 gtk_tooltips_set_tip(GTK_TOOLTIPS (tooltips), dualmono_channel1, |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1274 "Dualmono tracks contain 2 seperate mono channels. Select\ |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1275 this option to play the first channels.", NULL); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1276 |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1277 gtk_tooltips_set_tip(GTK_TOOLTIPS (tooltips), dualmono_channel2, |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1278 "Dualmono tracks contain 2 seperate mono channels. Select\ |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1279 this option to play the second channels.", NULL); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1280 |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1281 // Show all of the above. |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1282 |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1283 gtk_widget_show (hbox); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1284 gtk_widget_show (vbox); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1285 gtk_widget_show (vbox2); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1286 gtk_widget_show (range_frame); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1287 gtk_widget_show (drc_scale); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1288 gtk_widget_show (drc_both); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1289 gtk_widget_show (drc_boost); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1290 gtk_widget_show (drc_reduce); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1291 gtk_widget_show (drc_vbox); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1292 gtk_widget_show (effect_frame); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1293 gtk_widget_show (effect_surround); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1294 gtk_widget_show (effect_lfe); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1295 gtk_widget_show (effect_upmix); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1296 gtk_widget_show (effect_vbox); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1297 gtk_widget_show (dualmono_vbox); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1298 gtk_widget_show (dualmono_channel1); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1299 gtk_widget_show (dualmono_channel2); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1300 gtk_widget_show (dualmono_frame); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1301 gtk_widget_show (button_hbox); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1302 gtk_widget_show (button_cancel); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1303 gtk_widget_show (button_apply); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1304 gtk_widget_show (button_ok); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1305 gtk_widget_show (dialog); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1306 gtk_widget_grab_focus (button_ok); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1307 } |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1308 |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1309 static void configure_ok(GtkWidget * w, gpointer data) |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1310 { |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1311 // Let configure_apply set and save compression_factor. |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1312 |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1313 configure_apply(NULL, NULL); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1314 |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1315 // Close the window. |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1316 |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1317 gtk_widget_destroy(w); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1318 } |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1319 |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1320 static void configure_apply(GtkWidget * w, gpointer data) |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1321 { |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1322 GtkAdjustment *scale_adj; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1323 ConfigDb *config; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1324 |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1325 scale_adj = gtk_range_get_adjustment(GTK_RANGE(drc_scale)); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1326 compression_factor = (gdouble) scale_adj->value; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1327 |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1328 if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(drc_both)) == TRUE) |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1329 compression_type = DRC_BOTH; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1330 else if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(drc_boost)) == TRUE) |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1331 compression_type = DRC_BOOST; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1332 else if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(drc_reduce)) == TRUE) |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1333 compression_type = DRC_REDUCE; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1334 |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1335 nodownmix_surround = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(effect_surround)); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1336 nodownmix_lfe = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(effect_lfe)); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1337 upmix_stereo = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(effect_upmix)); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1338 requested_output = A52_STEREO; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1339 |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1340 if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(dualmono_channel1)) == TRUE) |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1341 dualmono_channel = 1; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1342 else |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1343 dualmono_channel = 2; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1344 |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1345 config = bmp_cfg_db_open(); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1346 bmp_cfg_db_set_double(config, "xmms-a52dec", "compression_factor", |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1347 compression_factor); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1348 bmp_cfg_db_set_int(config, "xmms-a52dec", "compression_type", |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1349 compression_type); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1350 bmp_cfg_db_set_bool(config, "xmms-a52dec", "nodownmix_surround", |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1351 nodownmix_surround); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1352 bmp_cfg_db_set_bool(config, "xmms-a52dec", "nodownmix_lfe", |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1353 nodownmix_lfe); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1354 bmp_cfg_db_set_bool(config, "xmms-a52dec", "upmix_stereo", |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1355 upmix_stereo); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1356 bmp_cfg_db_set_int(config, "xmms-a52dec", "requested_output", |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1357 requested_output); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1358 bmp_cfg_db_close(config); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1359 } |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1360 |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1361 void |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1362 info_a52 (char *filename) |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1363 { |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1364 static GtkWidget *window; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1365 static GtkWidget *button_ok; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1366 static GtkWidget *hbox, *vbox, *label, *label2, *entry, *frame; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1367 static char *temp_text, *label2_text, *temp, *temp_name; |
124
f356655ed806
[svn] - push from p4://depot/svn-audacious-plugins-devel/virt-branches/trunk/a52dec:
nenolod
parents:
123
diff
changeset
|
1368 VFSFile *temp_file; |
123
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1369 int l_flags, l_sample_rate, l_bit_rate, l_frame_size, l_length; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1370 int no_window = 0; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1371 |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1372 if (!window) |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1373 no_window = 1; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1374 |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1375 // Create window and set parameters. |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1376 |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1377 if (no_window) |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1378 { |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1379 window = gtk_window_new (GTK_WINDOW_TOPLEVEL); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1380 gtk_signal_connect (GTK_OBJECT (window), "destroy", |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1381 GTK_SIGNAL_FUNC (gtk_widget_destroyed), &window); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1382 gtk_window_set_default_size (GTK_WINDOW (window), 485, -1); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1383 gtk_window_set_policy (GTK_WINDOW (window), FALSE, FALSE, TRUE); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1384 gtk_container_border_width (GTK_CONTAINER (window), 5); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1385 } |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1386 |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1387 temp = strrchr (filename, '/'); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1388 if (!temp) |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1389 temp = filename; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1390 else |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1391 temp++; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1392 temp_name = malloc (strlen (temp) + 1); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1393 strcpy (temp_name, temp); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1394 *strrchr (temp_name, '.') = '\0'; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1395 |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1396 sprintf(temp_text, "File Info - %s", temp_name); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1397 gtk_window_set_title (GTK_WINDOW (window), temp_text); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1398 |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1399 free(temp_name); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1400 free(temp_text); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1401 |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1402 // Create vbuttonbox for filename and fileinfo frame. |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1403 |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1404 if (no_window) |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1405 { |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1406 vbox = gtk_vbox_new(FALSE, 0); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1407 |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1408 // Create label with a text entry containing filename. |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1409 |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1410 hbox = gtk_hbox_new(FALSE, 0); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1411 gtk_box_pack_start(GTK_BOX(vbox), hbox, TRUE, TRUE, 8); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1412 label = gtk_label_new ("Filename: "); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1413 gtk_label_set_justify (GTK_LABEL(label), GTK_JUSTIFY_LEFT); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1414 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1415 entry = gtk_entry_new (); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1416 gtk_widget_set_usize (entry, 400, -1); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1417 gtk_editable_set_editable(GTK_EDITABLE(entry), FALSE); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1418 gtk_box_pack_start(GTK_BOX(hbox), entry, TRUE, TRUE, 0); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1419 } |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1420 gtk_entry_set_text (GTK_ENTRY(entry), filename); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1421 |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1422 // Determine the song length from filesize. |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1423 |
124
f356655ed806
[svn] - push from p4://depot/svn-audacious-plugins-devel/virt-branches/trunk/a52dec:
nenolod
parents:
123
diff
changeset
|
1424 temp_file = vfs_fopen (filename, "r"); |
123
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1425 |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1426 if (synchronise_a52(temp_file, &l_flags, &l_sample_rate, |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1427 &l_bit_rate, &l_frame_size) == -1) |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1428 { |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1429 l_length = -1; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1430 return; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1431 } |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1432 |
124
f356655ed806
[svn] - push from p4://depot/svn-audacious-plugins-devel/virt-branches/trunk/a52dec:
nenolod
parents:
123
diff
changeset
|
1433 vfs_fseek (temp_file, 0, SEEK_END); |
123
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1434 |
124
f356655ed806
[svn] - push from p4://depot/svn-audacious-plugins-devel/virt-branches/trunk/a52dec:
nenolod
parents:
123
diff
changeset
|
1435 if ((l_length = vfs_ftell (temp_file)) == -1) |
123
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1436 { |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1437 // Can't get file position |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1438 l_length = -1; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1439 return; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1440 } |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1441 |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1442 // Determine channel type. |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1443 |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1444 switch (l_flags & A52_CHANNEL_MASK) |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1445 { |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1446 case A52_CHANNEL: |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1447 sprintf(temp_text, "Channel"); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1448 break; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1449 case A52_MONO: |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1450 sprintf(temp_text, "Mono"); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1451 break; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1452 case A52_STEREO: |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1453 sprintf(temp_text, "Stereo"); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1454 break; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1455 case A52_3F: |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1456 sprintf(temp_text, "3 Front"); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1457 break; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1458 case A52_2F1R: |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1459 sprintf(temp_text, "2 Front 1 Rear"); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1460 break; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1461 case A52_3F1R: |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1462 sprintf(temp_text, "3 Front 1 Rear"); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1463 break; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1464 case A52_2F2R: |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1465 sprintf(temp_text, "2 Front 2 Rear"); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1466 break; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1467 case A52_3F2R: |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1468 sprintf(temp_text, "3 Front 2 Rear"); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1469 break; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1470 case A52_CHANNEL1: |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1471 sprintf(temp_text, "Channel1"); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1472 break; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1473 case A52_CHANNEL2: |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1474 sprintf(temp_text, "Channel2"); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1475 break; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1476 case A52_DOLBY: |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1477 sprintf(temp_text, "Dolby"); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1478 break; |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1479 } |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1480 |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1481 // Create frame for file info. |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1482 |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1483 if (no_window) |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1484 { |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1485 frame = gtk_frame_new ("A/52 Info:"); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1486 gtk_box_pack_start(GTK_BOX(vbox), frame, TRUE, TRUE, 8); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1487 |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1488 // Create label inside frame. |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1489 |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1490 label2 = gtk_label_new (NULL); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1491 gtk_container_add(GTK_CONTAINER(frame), label2); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1492 gtk_misc_set_alignment (GTK_MISC (label2), 0, 0); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1493 gtk_label_set_justify (GTK_LABEL(label2), GTK_JUSTIFY_LEFT); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1494 |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1495 } |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1496 |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1497 // Set text of label inside frame. |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1498 |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1499 if (l_flags & A52_LFE) |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1500 sprintf(label2_text, "\n Bitrate: %d kb/s\n Samplerate: %d Hz\n Channel Type: %s\n Low Frequency Enhancement: Yes\n %d frames\n Filesize: %d B\n", |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1501 l_bit_rate / 1000, l_sample_rate, temp_text, l_length / l_frame_size, l_length); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1502 else |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1503 sprintf(label2_text, "\n Bitrate: %d kb/s\n Samplerate: %d Hz\n Channel Type: %s\n Low Frequency Enhancement: No\n %d frames\n Filesize: %d B\n", |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1504 l_bit_rate / 1000, l_sample_rate, temp_text, l_length / l_frame_size, l_length); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1505 |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1506 gtk_label_set_text (GTK_LABEL(label2), label2_text); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1507 |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1508 if (no_window) |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1509 { |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1510 // Create ok button. |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1511 |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1512 button_ok = gtk_button_new_with_label ("Ok"); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1513 gtk_signal_connect_object (GTK_OBJECT (button_ok), "clicked", |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1514 GTK_SIGNAL_FUNC (gtk_widget_destroy), |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1515 GTK_OBJECT (window)); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1516 gtk_widget_set_usize (button_ok, 100, -1); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1517 gtk_box_pack_start(GTK_BOX (vbox), button_ok, |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1518 TRUE, FALSE, 8); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1519 |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1520 // Pack vbuttonbox into window. |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1521 |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1522 gtk_container_add (GTK_CONTAINER (window), vbox); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1523 |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1524 // Show all of the above. |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1525 |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1526 gtk_widget_show (label2); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1527 gtk_widget_show (label); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1528 gtk_widget_show (entry); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1529 gtk_widget_show (frame); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1530 gtk_widget_show (hbox); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1531 gtk_widget_show (button_ok); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1532 gtk_widget_show (vbox); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1533 gtk_widget_show (window); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1534 gtk_widget_grab_focus (button_ok); |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1535 } |
59a6cec7e9b1
[svn] - a52dec plugin port. *under construction; don't expect to work*
nenolod
parents:
diff
changeset
|
1536 } |