Mercurial > audlegacy-plugins
comparison src/sndfile/plugin.c @ 2552:7d7f7d9ae98e
Sanitize Tuple creation, remove useless usage of GString and string duplications.
| author | Matti Hamalainen <ccr@tnsp.org> |
|---|---|
| date | Thu, 08 May 2008 22:01:01 +0300 |
| parents | 92300fe06f15 |
| children | b119d6f2e6c8 |
comparison
equal
deleted
inserted
replaced
| 2551:92300fe06f15 | 2552:7d7f7d9ae98e |
|---|---|
| 138 fill_song_tuple (gchar *filename, Tuple *ti) | 138 fill_song_tuple (gchar *filename, Tuple *ti) |
| 139 { | 139 { |
| 140 VFSFile *vfsfile = NULL; | 140 VFSFile *vfsfile = NULL; |
| 141 SNDFILE *tmp_sndfile; | 141 SNDFILE *tmp_sndfile; |
| 142 SF_INFO tmp_sfinfo; | 142 SF_INFO tmp_sfinfo; |
| 143 guint lossy = 0; | 143 gboolean lossy = FALSE; |
| 144 gchar *codec = NULL, *format, *subformat = NULL; | 144 gchar *codec, *format, *subformat; |
| 145 GString *codec_gs = NULL; | |
| 146 | 145 |
| 147 tmp_sndfile = open_sndfile_from_uri(filename, vfsfile, &tmp_sfinfo); | 146 tmp_sndfile = open_sndfile_from_uri(filename, vfsfile, &tmp_sfinfo); |
| 148 if ( sf_get_string(tmp_sndfile, SF_STR_TITLE) == NULL) | 147 if ( sf_get_string(tmp_sndfile, SF_STR_TITLE) == NULL) |
| 149 aud_tuple_associate_string(ti, FIELD_TITLE, NULL, g_path_get_basename(filename)); | 148 aud_tuple_associate_string(ti, FIELD_TITLE, NULL, g_path_get_basename(filename)); |
| 150 else | 149 else |
| 157 | 156 |
| 158 if (!tmp_sndfile) | 157 if (!tmp_sndfile) |
| 159 return; | 158 return; |
| 160 | 159 |
| 161 close_sndfile (tmp_sndfile, vfsfile); | 160 close_sndfile (tmp_sndfile, vfsfile); |
| 162 tmp_sndfile = NULL; | |
| 163 | 161 |
| 164 if (tmp_sfinfo.samplerate > 0) | 162 if (tmp_sfinfo.samplerate > 0) |
| 165 aud_tuple_associate_int(ti, FIELD_LENGTH, NULL, (int) ceil (1000.0 * tmp_sfinfo.frames / tmp_sfinfo.samplerate)); | 163 aud_tuple_associate_int(ti, FIELD_LENGTH, NULL, (gint) ceil (1000.0 * tmp_sfinfo.frames / tmp_sfinfo.samplerate)); |
| 166 | 164 |
| 167 switch (tmp_sfinfo.format & SF_FORMAT_TYPEMASK) | 165 switch (tmp_sfinfo.format & SF_FORMAT_TYPEMASK) |
| 168 { | 166 { |
| 169 case SF_FORMAT_WAV: | 167 case SF_FORMAT_WAV: |
| 170 case SF_FORMAT_WAVEX: | 168 case SF_FORMAT_WAVEX: |
| 253 case SF_FORMAT_DOUBLE: | 251 case SF_FORMAT_DOUBLE: |
| 254 subformat = "64 bit float"; | 252 subformat = "64 bit float"; |
| 255 break; | 253 break; |
| 256 case SF_FORMAT_ULAW: | 254 case SF_FORMAT_ULAW: |
| 257 subformat = "U-Law"; | 255 subformat = "U-Law"; |
| 258 lossy = 1; | 256 lossy = TRUE; |
| 259 break; | 257 break; |
| 260 case SF_FORMAT_ALAW: | 258 case SF_FORMAT_ALAW: |
| 261 subformat = "A-Law"; | 259 subformat = "A-Law"; |
| 262 lossy = 1; | 260 lossy = TRUE; |
| 263 break; | 261 break; |
| 264 case SF_FORMAT_IMA_ADPCM: | 262 case SF_FORMAT_IMA_ADPCM: |
| 265 subformat = "IMA ADPCM"; | 263 subformat = "IMA ADPCM"; |
| 266 lossy = 1; | 264 lossy = TRUE; |
| 267 break; | 265 break; |
| 268 case SF_FORMAT_MS_ADPCM: | 266 case SF_FORMAT_MS_ADPCM: |
| 269 subformat = "MS ADPCM"; | 267 subformat = "MS ADPCM"; |
| 270 lossy = 1; | 268 lossy = TRUE; |
| 271 break; | 269 break; |
| 272 case SF_FORMAT_GSM610: | 270 case SF_FORMAT_GSM610: |
| 273 subformat = "GSM 6.10"; | 271 subformat = "GSM 6.10"; |
| 274 lossy = 1; | 272 lossy = TRUE; |
| 275 break; | 273 break; |
| 276 case SF_FORMAT_VOX_ADPCM: | 274 case SF_FORMAT_VOX_ADPCM: |
| 277 subformat = "Oki Dialogic ADPCM"; | 275 subformat = "Oki Dialogic ADPCM"; |
| 278 lossy = 1; | 276 lossy = TRUE; |
| 279 break; | 277 break; |
| 280 case SF_FORMAT_G721_32: | 278 case SF_FORMAT_G721_32: |
| 281 subformat = "32kbs G721 ADPCM"; | 279 subformat = "32kbs G721 ADPCM"; |
| 282 lossy = 1; | 280 lossy = TRUE; |
| 283 break; | 281 break; |
| 284 case SF_FORMAT_G723_24: | 282 case SF_FORMAT_G723_24: |
| 285 subformat = "24kbs G723 ADPCM"; | 283 subformat = "24kbs G723 ADPCM"; |
| 286 lossy = 1; | 284 lossy = TRUE; |
| 287 break; | 285 break; |
| 288 case SF_FORMAT_G723_40: | 286 case SF_FORMAT_G723_40: |
| 289 subformat = "40kbs G723 ADPCM"; | 287 subformat = "40kbs G723 ADPCM"; |
| 290 lossy = 1; | 288 lossy = TRUE; |
| 291 break; | 289 break; |
| 292 case SF_FORMAT_DWVW_12: | 290 case SF_FORMAT_DWVW_12: |
| 293 subformat = "12 bit Delta Width Variable Word"; | 291 subformat = "12 bit Delta Width Variable Word"; |
| 294 lossy = 1; | 292 lossy = TRUE; |
| 295 break; | 293 break; |
| 296 case SF_FORMAT_DWVW_16: | 294 case SF_FORMAT_DWVW_16: |
| 297 subformat = "16 bit Delta Width Variable Word"; | 295 subformat = "16 bit Delta Width Variable Word"; |
| 298 lossy = 1; | 296 lossy = TRUE; |
| 299 break; | 297 break; |
| 300 case SF_FORMAT_DWVW_24: | 298 case SF_FORMAT_DWVW_24: |
| 301 subformat = "24 bit Delta Width Variable Word"; | 299 subformat = "24 bit Delta Width Variable Word"; |
| 302 lossy = 1; | 300 lossy = TRUE; |
| 303 break; | 301 break; |
| 304 case SF_FORMAT_DWVW_N: | 302 case SF_FORMAT_DWVW_N: |
| 305 subformat = "N bit Delta Width Variable Word"; | 303 subformat = "N bit Delta Width Variable Word"; |
| 306 lossy = 1; | 304 lossy = TRUE; |
| 307 break; | 305 break; |
| 308 case SF_FORMAT_DPCM_8: | 306 case SF_FORMAT_DPCM_8: |
| 309 subformat = "8 bit differential PCM"; | 307 subformat = "8 bit differential PCM"; |
| 310 break; | 308 break; |
| 311 case SF_FORMAT_DPCM_16: | 309 case SF_FORMAT_DPCM_16: |
| 312 subformat = "16 bit differential PCM"; | 310 subformat = "16 bit differential PCM"; |
| 313 } | 311 break; |
| 314 | 312 default: |
| 315 codec_gs = g_string_new(""); | 313 subformat = NULL; |
| 314 } | |
| 315 | |
| 316 if (subformat != NULL) | 316 if (subformat != NULL) |
| 317 g_string_append_printf(codec_gs, "%s (%s)", format, subformat); | 317 codec = g_strdup_printf("%s (%s)", format, subformat); |
| 318 else | 318 else |
| 319 g_string_append_printf(codec_gs, "%s", format); | 319 codec = g_strdup_printf("%s", format); |
| 320 codec = g_strdup(codec_gs->str); | |
| 321 g_string_free(codec_gs, TRUE); | |
| 322 aud_tuple_associate_string(ti, FIELD_CODEC, NULL, codec); | 320 aud_tuple_associate_string(ti, FIELD_CODEC, NULL, codec); |
| 323 | 321 g_free(codec); |
| 324 if (lossy != 0) | 322 |
| 325 aud_tuple_associate_string(ti, FIELD_QUALITY, NULL, "lossy"); | 323 aud_tuple_associate_string(ti, FIELD_QUALITY, NULL, lossy ? "lossy" : "lossless"); |
| 326 else | |
| 327 aud_tuple_associate_string(ti, FIELD_QUALITY, NULL, "lossless"); | |
| 328 } | 324 } |
| 329 | 325 |
| 330 static gchar * | 326 static gchar * |
| 331 get_title(gchar *filename) | 327 get_title(gchar *filename) |
| 332 { | 328 { |
