diff options
author | waker <wakeroid@gmail.com> | 2011-02-13 22:06:16 +0100 |
---|---|---|
committer | waker <wakeroid@gmail.com> | 2011-02-13 22:06:16 +0100 |
commit | e55f482a6c1a7956bfdfdf950a14f61a04e48107 (patch) | |
tree | e0b7de73c05cec8d08d3681b3cbe2728e0c14069 /plugins/tta | |
parent | fc10a78a92fab1fff627236a1b5d3f22b9d2554e (diff) |
added properties to tta plugin
Diffstat (limited to 'plugins/tta')
-rw-r--r-- | plugins/tta/ttadec.c | 4 | ||||
-rw-r--r-- | plugins/tta/ttaplug.c | 17 |
2 files changed, 18 insertions, 3 deletions
diff --git a/plugins/tta/ttadec.c b/plugins/tta/ttadec.c index d5466359..7a33d072 100644 --- a/plugins/tta/ttadec.c +++ b/plugins/tta/ttadec.c @@ -267,9 +267,7 @@ int open_tta_file (const char *filename, tta_info *info, unsigned int data_offse info->HANDLE = infile; // get file size - deadbeef->fseek (infile, 0, SEEK_END); - info->FILESIZE = deadbeef->ftell (infile); - deadbeef->fseek (infile, 0, SEEK_SET); + info->FILESIZE = deadbeef->fgetlength (infile); // read id3 tags if (!data_offset) { diff --git a/plugins/tta/ttaplug.c b/plugins/tta/ttaplug.c index bc5f610d..e9dbc87d 100644 --- a/plugins/tta/ttaplug.c +++ b/plugins/tta/ttaplug.c @@ -20,6 +20,7 @@ #include <assert.h> #include <limits.h> #include <unistd.h> +#include <math.h> #include "ttadec.h" #ifdef HAVE_CONFIG_H # include <config.h> @@ -150,6 +151,7 @@ tta_read (DB_fileinfo_t *_info, char *bytes, int size) { } } info->currentsample += (initsize-size) / samplesize; + deadbeef->streamer_set_bitrate (info->tta.BITRATE); return initsize-size; } @@ -199,7 +201,10 @@ tta_insert (DB_playItem_t *after, const char *fname) { close_tta_file (&tta); DB_FILE *fp = deadbeef->fopen (fname); + + int64_t fsize = -1; if (fp) { + fsize = deadbeef->fgetlength (fp); /*int v2err = */deadbeef->junk_id3v2_read (it, fp); /*int v1err = */deadbeef->junk_id3v1_read (it, fp); deadbeef->fclose (fp); @@ -220,6 +225,18 @@ tta_insert (DB_playItem_t *after, const char *fname) { } deadbeef->pl_unlock (); + char s[100]; + snprintf (s, sizeof (s), "%lld", fsize); + deadbeef->pl_add_meta (it, ":FILE_SIZE", s); + snprintf (s, sizeof (s), "%d", tta.BPS); + deadbeef->pl_add_meta (it, ":BPS", s); + snprintf (s, sizeof (s), "%d", tta.NCH); + deadbeef->pl_add_meta (it, ":CHANNELS", s); + snprintf (s, sizeof (s), "%d", tta.SAMPLERATE); + deadbeef->pl_add_meta (it, ":SAMPLERATE", s); + snprintf (s, sizeof (s), "%d", tta.BITRATE); + deadbeef->pl_add_meta (it, ":BITRATE", s); + cue = deadbeef->pl_insert_cue (after, it, totalsamples, tta.SAMPLERATE); if (cue) { deadbeef->pl_item_unref (it); |