Mercurial > audlegacy
comparison Plugins/Input/console/Audacious_Driver.cpp @ 149:908ef215f340 trunk
[svn] basic resampling code.
author | nenolod |
---|---|
date | Thu, 10 Nov 2005 18:15:39 -0800 |
parents | fe9cb5132263 |
children | 1997ecd9dcb1 |
comparison
equal
deleted
inserted
replaced
148:fe9cb5132263 | 149:908ef215f340 |
---|---|
121 static void play_file_spc(char *filename) | 121 static void play_file_spc(char *filename) |
122 { | 122 { |
123 gchar *name; | 123 gchar *name; |
124 Emu_Std_Reader reader; | 124 Emu_Std_Reader reader; |
125 Spc_Emu::header_t header; | 125 Spc_Emu::header_t header; |
126 gint samplerate; | |
127 | |
128 if (audcfg.resample == TRUE) | |
129 samplerate = audcfg.resample_rate; | |
130 else | |
131 samplerate = Spc_Emu::native_sample_rate; | |
126 | 132 |
127 reader.open(filename); | 133 reader.open(filename); |
128 reader.read(&header, sizeof(header)); | 134 reader.read(&header, sizeof(header)); |
129 | 135 |
130 spc = new Spc_Emu; | 136 spc = new Spc_Emu; |
131 spc->init(32000); | 137 spc->init(samplerate); |
132 spc->load(header, reader); | 138 spc->load(header, reader); |
133 spc->start_track(0); | 139 spc->start_track(0); |
134 | 140 |
135 console_ip_is_going = TRUE; | 141 console_ip_is_going = TRUE; |
136 | 142 |
137 name = get_title(filename); | 143 name = get_title(filename); |
138 | 144 |
139 if (audcfg.loop_length) | 145 if (audcfg.loop_length) |
140 console_ip.set_info(name, audcfg.loop_length * 1000, | 146 console_ip.set_info(name, audcfg.loop_length * 1000, |
141 spc->voice_count() * 1000, 32000, 2); | 147 spc->voice_count() * 1000, samplerate, 2); |
142 else | 148 else |
143 console_ip.set_info(name, -1, spc->voice_count(), 32000, 2); | 149 console_ip.set_info(name, -1, spc->voice_count() * 1000, |
144 | 150 samplerate, 2); |
145 | 151 |
146 g_free(name); | 152 g_free(name); |
147 | 153 |
148 if (!console_ip.output->open_audio(MY_FMT, 32000, 2)) | 154 if (!console_ip.output->open_audio(MY_FMT, samplerate, 2)) |
149 return; | 155 return; |
150 | 156 |
151 playing_type = PLAY_TYPE_SPC; | 157 playing_type = PLAY_TYPE_SPC; |
152 | 158 |
153 decode_thread = g_thread_create(play_loop_spc, spc, TRUE, NULL); | 159 decode_thread = g_thread_create(play_loop_spc, spc, TRUE, NULL); |