summaryrefslogtreecommitdiff
path: root/plugins/tta
diff options
context:
space:
mode:
authorGravatar waker <wakeroid@gmail.com>2011-02-13 22:06:16 +0100
committerGravatar waker <wakeroid@gmail.com>2011-02-13 22:06:16 +0100
commite55f482a6c1a7956bfdfdf950a14f61a04e48107 (patch)
treee0b7de73c05cec8d08d3681b3cbe2728e0c14069 /plugins/tta
parentfc10a78a92fab1fff627236a1b5d3f22b9d2554e (diff)
added properties to tta plugin
Diffstat (limited to 'plugins/tta')
-rw-r--r--plugins/tta/ttadec.c4
-rw-r--r--plugins/tta/ttaplug.c17
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);