Help - Search - Members - Calendar
Full Version: Chronflow
Hydrogenaudio Forums > Hosted Forums > foobar2000 > 3rd Party Plugins - (fb2k)
Pages: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
Chronial
QUOTE
It reads: Release of RC failed. (mainWin) [foobar ver 9.4.4]

Please try this version (this is not a release, you shouldn't use if you don't have this problem):
http://chron.visiondesigns.de/foobar2000/f...v0.2.1debug.zip

The error-message should be more detailed now - what does it say? smile.gif


@mgl2k
Love it!

Would you mind if include this config in the next release (your name will stay there, of course)?
Btw: you should try to use coverSizeLimits() to increasethe size of the middle cover - that way the middle cover will also have a mirror effect. You can also change the fading of the mirror by changing your cover sizes (if you make the middle cover a size of 1x1 and the little ones a size of 0.25x0.25, the mirror effect would be a lot stronger, for example).
Thanks for writing such a great config smile.gif.
(but you should use [ codebox ] wink.gif)
QUOTE
And what's about that "Playlist Mode"? Can't seem to find anything to activate it...
Not implemented yet.

QUOTE
Have you ever considered having per-panel settings? Would be nice for such things as your albumart panel imitation, so that we could use your component wherever we'd like to.

On the todo list, but I'm not sure how good this will work because of stuff like vsynch etc.

QUOTE
And can we have context menus for the albums (plz)?
Implemented, will be in the next release.

@Kiteroa
Have you tried updating your Graphics card drivers?
Chronial
@mgl2k
I played a bit with your config, since I didn't like the column-swapping effect on the sides. Here's what I've got:
CODE

/************************* COVER DISPLAY *****************/
// These functions define the Display of the single Covers
// The given parameter coverId is a floating point number.
// It is 0 for the center cover, 1 for the one right
// beneath it, -1 for the one on the left side and so on.
// During movement the values float between the integer
// values.
function coverPosition(coverId){
if (coverId < drawCovers()[0]+1) return coverPosition(drawCovers()[0]+1);
if (coverId > drawCovers()[1]-1) {
array = coverPosition(drawCovers()[1]-1);
array[2] -= 0.0001;
return array;
}

var x, y, z;
x = Math.abs(coverId);
y = Math.abs(coverId);
z = Math.abs(coverId);

x = Math.ceil((x)/4) + 1.8;
y = (Math.abs(coverId)-1) % 8;
y = Math.min(y, 7-y);
if (y > 3 || y < 0) {
x -= 1 - Math.abs(coverId) % 1;
}
y = Math.min(y,3);
y = Math.max(y,0);
y = y * 4/3;
z = -Math.abs(x - 1.8)/5;
if (Math.abs(coverId) < 1) {
abs = Math.abs(coverId);
x = sigmoidInterpolation(abs)*abs * 2.5;
y = sigmoidInterpolation(1-abs) * 1.365;
z = sigmoidInterpolation(1-abs) * 4.55;
}
if (coverId < 0) {
x *= -1;
}
return new Array(x, y, z);
}

function sigmoidInterpolation(t) {
t = (t-0.5)*8;
y = 1/(1 + Math.pow(Math.E, -t));
return y;
}

// return array is (angle, x, ,y, z) - this rotates
// the cover *angle* degrees around the vector (x,y,z)
// With (0,0,0,0) the cover is parallel to the y-z-Plane
function coverRotation(coverId){
var angle = 0;
return new Array(angle, 1, 0, 0);
}

// Sets which point of the cover coverPosition() defines
// (-1,-1) means bottom left, (0,0) means center,
// (1,1) means top right, (0, -1) means bottom center etc.
// The cover is also rotated around this point.
function coverAlign(coverId){
if (Math.abs(coverId) < 1){
return new Array(0, -1);
} else {
var y = coverPosition(coverId)[1]/4;
return new Array(0, -1 + y*2);

}
}

// Defines the the size boundaries for the cover.
// Aspect ratio is preserved.
// Return Array is (widht, height)
function coverSizeLimits(coverId){
if (Math.abs(coverId) > 1){
var y = (Math.abs(coverId)-1) % 8;
y = Math.min(y, 7-y);
if (y > 3 || y < 0) {
var m = (Math.abs(coverId) % 1);
var size = 1 - 2*Math.min(m,1-m)
return new Array(size, size);
}
}
return new Array(1, 1);

}

// Defines the range of covers to draw.
// Return array is (leftmostCover, rightmostCover)
// This interval shouldn't be larger than 80
// The center cover is 0.
function drawCovers(){
return new Array(-41, 41);
}

// In which direction should the fov be expanded/shrinked
// when the panel is resized?
// If this returns (0,1), the height is fixed.
// If this returns (1,0), the width is fixed.
// You can also return stuff like (0.5,0.5) or (7, 3)
// The values determine how important it is for this
// dimension to stay fixed.
function aspectBehaviour(){
return new Array(0,1);
}

/************************** CAMMERA SETUP ****************/
// Position of the viewport
function eyePos(){
return new Array(0, 1.8, 6);
}
// Defines the point for the eye to look at
function lookAt(){
return new Array(0, 1.8, 0);
}
// Used to rotate the view.
// The returned Vector points upwards in the viewport.
// This vector must not be parallel to the line of sight from the
// eyePos point to the lookAt point.
function upVector(){
return new Array(0, 1, 0);
}

/************************** MIRROR SETUP *****************/
function showMirrorPlane(){
return true; // return false to hide the mirror
}
// Any Point on the Mirror Plane
function mirrorPoint (){
return new Array(0, 0, 0);
}
// Normal of the Mirror Plane
function mirrorNormal (){
return new Array(0, 1, 0);
}
callisto
hey Chronial, is it possible to get an overview of the things you are currently implementing or planning to do? (like context menu / scrollbar / etc...?!)
I could now tell a few things that I think about you might be already have in mind... but you know, before you're going nuts wink.gif
brien
QUOTE(Chronial @ Mar 29 2008, 19:09) *

QUOTE
It reads: Release of RC failed. (mainWin) [foobar ver 9.4.4]

Please try this version (this is not a release, you shouldn't use if you don't have this problem):
http://chron.visiondesigns.de/foobar2000/f...v0.2.1debug.zip

The error-message should be more detailed now - what does it say? smile.gif


Error Window Title:
Foo_chronflow Error

Error Msg:
Release of RC failed. (mainWin)
The handle is invalid.

[foobar 9.5.1/panelsui 13.8]
Walterrrr
Chronial:
I just Upgraded to 2.1 and get a pop up box "Error: Rendering is not fully hardware-accelerated." on startup of Foobar2000 and the right third of the chronflow window panel is black. 2.0.c & d worked fine! Thought you should know. It seems after reverting to c and d that the black box area persists. when using the window as a columns UI panel moving it gives me a "ImgTexture Leak:6" error, although now the black area has gone.
UPDATE: the black box may be be a columns UI issue as I can make it go away by adding a component, saving settings and then removing that component. :S I am using the 0.3 alpha of Columns UI
When using the component to browse things, stuff that normally updates dynamically (visualizations, seek bar, elapsed time, VBR info) stops and then catches up when the flow panel is settled. Strange conflict!

Otherwise, Awesome! I love it! It doesn't run great on this computer at first, but when it's cached a certain amount of covers it looks nice. The Parabola layout runs smoothest. I've noticed that if I've clicked on the panel and scroll left/right with the keyboard, I can't Ctrl-P to access foobar's preferences! Also, I noticed that in the "set config name" window, one button says Abbrechen which means Cancel, right?

I am using the album art view as my album art viewer panel thing. Do you think it's possible to display the title if a cover doesn't exist? I tried $if($not($replace(%path%,%filename_ext%,)folder.jpg),%album artist% - %album%,) but that just didn't display in all cases. I just had a thought: is the title display was view-specific then you'd be able to display titles how and where you want or not at all depending on the view. I would think that using it as an album art panel, you wouldn't want titles, generally, but in a cover flow type panel, you would. Just a thought and some nitpicking. Overall, I still love this component!



mgl2k: NICE!
mil3s
Is it possible to get some nice fade-in and fade-out for covers first and last in the coverflow. Currently if you toggle right the first cover won't totaly disappear until animation is finished. If you toggle left on the other hand the last cover disappear instantly.

Also it would be nice with an option to dim the side covers so they don't stand out as much as the center one.
mgl2k
QUOTE(Chronial @ Mar 30 2008, 02:09) *
Love it!
Would you mind if include this config in the next release (your name will stay there, of course)?
Sure. Love to hear that!
I'm glad you guys like it. wink.gif

With your suggestion, I made the mirror effect more visible. Looks better now.

CODE
// Title: The Shelf
// Author: Martin Gloderer
// Description: This is a Chronflow config.


/************************* COVER DISPLAY *****************/
// These functions define the Display of the single Covers
// The given parameter coverId is a floating point number.
// It is 0 for the center cover, 1 for the one right
// beneath it, -1 for the one on the left side and so on.
// During movement the values float between the integer
// values.
function coverPosition(coverId){
if (coverId < drawCovers()[0]+1) return coverPosition(drawCovers()[0]+1);
if (coverId > drawCovers()[1]-1) {
array = coverPosition(drawCovers()[1]-1);
array[2] -= 0.0001;
return array;
}

var x, y, z;
x = Math.abs(coverId);
y = Math.abs(coverId);
z = 0;

x = Math.ceil(x/4) + 1.8;
y = (Math.abs(coverId)-1) % 8;
y = Math.min(y, 7-y);
if (y > 3 || y < 0) {
x -= 1 - Math.abs(coverId) % 1;
}
y = Math.min(y,3);
y = Math.max(y,0);
z = -Math.abs(x-1 - 1.8)/5;
if (Math.abs(coverId) < 1) {
abs = Math.abs(coverId);
x = sigmoidInterpolation(abs)*Math.sqrt(abs) * 2.8;
z = sigmoidInterpolation(1-abs) * 0.4;
}
if (coverId < 0) {
x *= -1;
}
x /= 4;
y /= 4;
z /= 2.5;
return new Array(x, y, z);
}

function sigmoidInterpolation(t) {
t = (t-0.5)*8;
y = 1/(1 + Math.pow(Math.E, -t));
return y;
}

// return array is (angle, x, ,y, z) - this rotates
// the cover *angle* degrees around the vector (x,y,z)
// With (0,0,0,0) the cover is parallel to the y-z-Plane
function coverRotation(coverId){
var angle = 0;
return new Array(angle, 0, 1, 0);
}

// Sets which point of the cover coverPosition() defines
// (-1,-1) means bottom left, (0,0) means center,
// (1,1) means top right, (0, -1) means bottom center etc.
// The cover is also rotated around this point.
function coverAlign(coverId){
return new Array(0, -1);
}

// Defines the the size boundaries for the cover.
// Aspect ratio is preserved.
// Return Array is (widht, height)
function coverSizeLimits(coverId){
// return new Array(1, 1);
abs = Math.abs(coverId);
var w, h;
w = 0.25;
h = 0.25;
// w *= 0.999;
// h *= 0.999;
if (Math.abs(coverId) < 1){ // The centered cover
var w, h;
w = (sigmoidInterpolation(1-abs)*(1-abs) * 0.75)+0.25;
h = (sigmoidInterpolation(1-abs)*(1-abs) * 0.75)+0.25;
}
return new Array(h, w);
}

// Defines the range of covers to draw.
// Return array is (leftmostCover, rightmostCover)
// This interval shouldn't be larger than 80
// The center cover is 0.
function drawCovers(){
return new Array(-41, 41);
}

// In which direction should the fov be expanded/shrinked
// when the panel is resized?
// If this returns (0,1), the height is fixed.
// If this returns (1,0), the width is fixed.
// You can also return stuff like (0.5,0.5) or (7, 3)
// The values determine how important it is for this
// dimension to stay fixed.
function aspectBehaviour(){
return new Array(0,1);
}

/************************** CAMMERA SETUP ****************/
// Position of the viewport
function eyePos(){
return new Array(0, 0.42, 1.6);
}
// Defines the point for the eye to look at
function lookAt(){
return new Array(0, 0.42, 0);
}

// Used to rotate the view.
// The returned Vector points upwards in the viewport.
// This vector must not be parallel to the line of sight from the
// eyePos point to the lookAt point.
function upVector(){
return new Array(0, 1, 0);
}

/************************** MIRROR SETUP *****************/
function showMirrorPlane(){
return true; // return false to hide the mirror
}
// Any Point on the Mirror Plane
function mirrorPoint (){
return new Array(0, 0, 0);
}
// Normal of the Mirror Plane





function mirrorNormal (){
return new Array(0, 1, 0);
}


And for the more vertically oriented, try this quick config:

CODE
// Author: Martin Gloderer
// Description: This is a Chronflow config.


// General Notes:
// Most of these functions return an array with 3 elements
// These are the x,y,z coordinates in 3d-space
// x is left to right
// y is bottom to top
// z is front to back


/************************* COVER DISPLAY *****************/
// These functions define the Display of the single Covers
// The given parameter coverId is a floating point number.
// It is 0 for the center cover, 1 for the one right
// beneath it, -1 for the one on the left side and so on.
// During movement the values float between the integer
// values.
function coverPosition(coverId){
var x, y, z;
y = 0;
z = -coverId/15;
return new Array(x, y, z);
}

// return array is (angle, x, ,y, z) - this rotates
// the cover *angle* degrees around the vector (x,y,z)
// With (0,0,0,0) the cover is parallel to the y-z-Plane
function coverRotation(coverId){
var angle = 0;
angle = 40;
if (coverId > 0) angle *= -1;
if (coverId >= 0 && coverId <= 1) {
angle = 80 * (0.5 - Math.pow(coverId, 6));
}
return new Array(angle,1,0,0);
}

// Sets which point of the cover coverPosition() defines
// (-1,-1) means bottom left, (0,0) means center,
// (1,1) means top right, (0, -1) means bottom center etc.
// The cover is also rotated around this point.
function coverAlign(coverId){
return new Array(0, -1);
}

// Defines the the size boundaries for the cover.
// Aspect ratio is preserved.
// Return Array is (widht, height)
function coverSizeLimits(coverId){
return new Array(1, 2);
}

// Defines the range of covers to draw.
// Return array is (leftmostCover, rightmostCover)
// This interval shouldn't be larger than 80
// The center cover is 0.
function drawCovers(){
return new Array(-10, 10);
}


// In which direction should the fov be expanded/shrinked
// when the panel is resized?
// If this returns (0,1), the height is fixed.
// If this returns (1,0), the width is fixed.
// You can also return stuff like (0.5,0.5) or (7, 3)
// The values determine how important it is for this
// dimension to stay fixed.
function aspectBehaviour(){
return new Array(1, 0.5);
}

/************************** CAMMERA SETUP ****************/
// Position of the viewport
function eyePos(){
return new Array(-0.75, 1.5, 1.5);
}
// Defines the point for the eye to look at
function lookAt(){
return new Array(-0.15, 0.5, 0);
}
// Used to rotate the view.
// The returned Vector points upwards in the viewport.
// This vector must not be parallel to the line of sight from the
// eyePos point to the lookAt point.
function upVector(){
return new Array(-0.15, 1, -0.05);
}

/************************** MIRROR SETUP *****************/
function showMirrorPlane(){
return true; // return false to hide the mirror
}
// Any Point on the Mirror Plane
function mirrorPoint (){
return new Array(0.75, 0, 0);
}
// Normal of the Mirror Plane
function mirrorNormal (){
return new Array(-1, 0, 0);
}


As for feature requests (in increasing order):

As it is now, every single cover has to go the same route.
I tried to track single covers from left to right, but I couldn't find a way to know when a new cover appeared and from which side it did.
Is it possible to implement something to that effect in the API?

And also: (animatable) alpha transparency for covers. smile.gif

As the last one: a kind of "filter as you type" in the panel to quickly narrow down the sources to those with a matching group-by-string. Getting kind of hard finding anything with a decent number of covers. wink.gif
krondor
QUOTE
And for the more vertically oriented, try this quick config:


NOOOO!! THiS iS CrAzY MAN !!!!!! it's like vinyl LPs collection!!!...hahaha...very good work!!!..biggrin.gif


chronial: please can you add rapid access to albums with A-Z keys like graphical browser component??
mil3s
This coverflow setup has some other angles, that I've seen in some coverflow screenshots.
CODE
// General Notes:
// Most of these functions return an array with 3 elements
// These are the x,y,z coordinates in 3d-space
// x is left to right
// y is bottom to top
// z is front to back


/************************* COVER DISPLAY *****************/
// These functions define the Display of the single Covers
// The given parameter coverId is a floating point number.
// It is 0 for the center cover, 1 for the one right
// beneath it, -1 for the one on the left side and so on.
// During movement the values float between the integer
// values.
function coverPosition(coverId){
var x, y, z;
y = 0;
if (Math.abs(coverId) <= 1){ // The centered cover
z = 4 + 0.51 * (1 - Math.abs(coverId));
x = coverId * 0.8;
} else { // The covers on the side
z = 4 - (Math.abs(coverId)-1) * 0.01;
x = 0.8 + 0.05 * (Math.abs(coverId)-1);
if (coverId < 0)
x *= -1;
}
return new Array(x, y, z);
}
// return array is (angle, x, ,y, z) - this rotates
// the cover *angle* degrees around the vector (x,y,z)
// With (0,0,0,0) the cover is parallel to the y-z-Plane
function coverRotation(coverId){
var angle;
if (Math.abs(coverId) < 1){ // The centered cover
angle = coverId * -60;
} else { // The covers on the side
if (coverId > 0)
angle = -60;
else
angle = 60;
}
return new Array(angle, 0, 1, 0);
}

// Sets which point of the cover coverPosition() defines
// (-1,-1) means bottom left, (0,0) means center,
// (1,1) means top right, (0, -1) means bottom center etc.
// The cover is also rotated around this point.
function coverAlign(coverId){
return new Array(0, -1);
}

// Defines the the size boundaries for the cover.
// Aspect ratio is preserved.
// Return Array is (widht, height)
function coverSizeLimits(coverId){
if (Math.abs(coverId) < 1){ // The centered cover
var w, h;
w = 1;
h = 1;
// Shrinks the centered cover to a height of 1
if (Math.abs(coverId) > 0.5)
h = 1 + (Math.abs(coverId) - 0.5)*2;
// Allows the centered cover to have a width of 2.5;
if (Math.abs(coverId) < 0.5)
w = 1 + (0.5 - Math.abs(coverId))*3;
return new Array(w, h);
} else { // The covers on the side
return new Array(1, 2);
}
}

// Defines the range of covers to draw.
// Return array is (leftmostCover, rightmostCover)
// This interval shouldn't be larger than 80
// The center cover is 0.
function drawCovers(){
return new Array(-10, 9);
}


// In which direction should the fov be expanded/shrinked
// when the panel is resized?
// If this returns (0,1), the height is fixed.
// If this returns (1,0), the width is fixed.
// You can also return stuff like (0.5,0.5) or (7, 3)
// The values determine how important it is for this
// dimension to stay fixed.
function aspectBehaviour(){
return new Array(0, 1);
}

/************************** CAMMERA SETUP ****************/
// Position of the viewport
function eyePos(){
return new Array(0, 1.15, 6.1);
}
// Defines the point for the eye to look at
function lookAt(){
return new Array(0, -1.15, 0);
}
// Used to rotate the view.
// The returned Vector points upwards in the viewport.
// This vector must not be parallel to the line of sight from the
// eyePos point to the lookAt point.
function upVector(){
return new Array(0, 1, 0);
}

/************************** MIRROR SETUP *****************/
function showMirrorPlane(){
return true; // return false to hide the mirror
}
// Any Point on the Mirror Plane
function mirrorPoint (){
return new Array(0, 0, 0);
}
// Normal of the Mirror Plane
function mirrorNormal (){
return new Array(0, 1, 0);
}
Proxific
Greetings

I just switched, or should i say flowed, over from bubbles coverflow to chronials.

The fact that it is highly customizable is really great. But blink.gif is it possible
to make one configuration the default one. So that it could not be changed?

I totally messed up the 'standard config'. Unfortunately i'm not that familiar with jscript
and now i'm unable to get it back.

Thanx for your work Chronial.
mil3s
^Delete the component and start foobar. Don't keep the settings when asked. Close foobar again and put the component back.
Proxific
@mil3s

Yes. That's right. I know that, but i'm thinking of something more comfortable. happy.gif
bowen_tk
I think there is a mistake :
In the rename windows of javascript the cancel button is named abbreschen. (so german) I don't know if it is only on my version.

Just a question is it possible when i double click on a cover to play the album in the current playlist instead of replacing the current playlist

I try to do it in choosing play instead of replace playlist but it doesn't work.

If you add this and the antialiasing support your compenent will be perfect smile.gif
Maxoo
Love this component !!!
Can I suggest having a different topic, where all the Jscript would be exposed ? It'll look clearer than what's here...
Falstaff
QUOTE(bowen_tk @ Mar 30 2008, 17:33) *

I think there is a mistake :
In the rename windows of javascript the cancel button is named abbreschen. (so german) I don't know if it is only on my version.

Just a question is it possible when i double click on a cover to play the album in the current playlist instead of replacing the current playlist

I try to do it in choosing play instead of replace playlist but it doesn't work.

If you add this and the antialiasing support your compenent will be perfect smile.gif


+1 please, i haven't choice 'Play' in the combobox for double-click settings, just 'Playback/Play' but it doesn't work at all, sad.gif

thanx by advance
mil3s
Bug?... If I single click anywhere in the coverflow panel it will freeze for a few seconds. Is this intentional? because it's really annoying.
Chronial
QUOTE
Error Msg:
Release of RC failed. (mainWin)
The handle is invalid.

Thanks for information. Will be fixed in next release.

QUOTE
"Error: Rendering is not fully hardware-accelerated."

Well, that's not good - but it is running fine nonetheless? Then I will turn this into a console message.

QUOTE
when using the window as a columns UI panel moving it gives me a "ImgTexture Leak:6" error,

Should be fixed in next release.

QUOTE
When using the component to browse things, stuff that normally updates dynamically (visualizations, seek bar, elapsed time, VBR info) stops and then catches up when the flow panel is settled. Strange conflict!

This is known behaviour. I can't do much about it at the moment, but I will implement tripple buffering in the future - that will fix this problem.


QUOTE
I've noticed that if I've clicked on the panel and scroll left/right with the keyboard, I can't Ctrl-P to access foobar's preferences!

Reported and fixed smile.gif


QUOTE
Also, I noticed that in the "set config name" window, one button says Abbrechen which means Cancel, right?
Yes, thats right - and fixed.


QUOTE
I am using the album art view as my album art viewer panel thing. Do you think it's possible to display the title if a cover doesn't exist? I tried $if($not($replace(%path%,%filename_ext%,)folder.jpg),%album artist% - %album%,) but that just didn't display in all cases.

Try foo_cwb_hooks (it adds a function $cwb_fileexists(filename)):
http://wiki.bowron.us/index.php?title=Foobar2000:Hooks


QUOTE
I just had a thought: is the title display was view-specific then you'd be able to display titles how and where you want or not at all depending on the view. I would think that using it as an album art panel, you wouldn't want titles, generally, but in a cover flow type panel, you would. Just a thought and some nitpicking. Overall, I still love this component!
Nice Idea - added to Todo List

QUOTE
Is it possible to get some nice fade-in and fade-out for covers first and last in the coverflow. Currently if you toggle right the first cover won't totaly disappear until animation is finished. If you toggle left on the other hand the last cover disappear instantly.

You are not supposed to write a config that has covers disappearing on screen. But I added the fade-out to my todo-list.

QUOTE
And for the more vertically oriented, try this quick config:

HOT smile.gif. But The shown cover has index -1, not 0 (try enbanling title display and you'll see what I'm talking about)


QUOTE
As it is now, every single cover has to go the same route.
I tried to track single covers from left to right, but I couldn't find a way to know when a new cover appeared and from which side it did.
Is it possible to implement something to that effect in the API?

I don't quite understand your request, but it is by design that every cover goes the same route. Your JS code isn't called during rendering. It is "compiled" when you click the compile/apply button: I'm generating a table of values for the indexes 0.05, 0.1, 0.15, 0.20, 0.25, 0.3 etc. There are 20 samples between every full index (eg. between 0 and 1), and as many indexes as you requested in drawCovers().
During rendering I do an interpolation between these samples. This has 2 main reasons: 1. It is way faster than calling the JS code during rendering. 2. If there is a error in the JS code (e.g. a division by 0 that only occurs for coverId 5.3524), I suddenly have a exception in the middle of my rendering code that is difficult to handle and difficult to display.
I do not want to change that behaviour, so I guess your request is a no-go.

QUOTE
And also: (animatable) alpha transparency for covers.

On todo list.

QUOTE
As the last one: a kind of "filter as you type" in the panel to quickly narrow down the sources to those with a matching group-by-string. Getting kind of hard finding anything with a decent number of covers.

Nice idea, added to todo list smile.gif


QUOTE
This coverflow setup has some other angles, that I've seen in some coverflow screenshots.
Really nice - it has a very smooth flow, that I like a lot - i'd like to use this as default for my next release, if this is fine with you.

QUOTE
The fact that it is highly customizable is really great. But is it possible
to make one configuration the default one. So that it could not be changed?
I thought about that, but that would be quite some UI and coding effort for little use. If you messed up a config and can't get it back, you can just ask here - It is no problem for anybody here to just post the standart config.
But in short: I won't prevent people from doing something obviously stupid (no offense intended).

QUOTE
Just a question is it possible when i double click on a cover to play the album in the current playlist instead of replacing the current playlist
Yes - have a look at foo_trackpos - will do just that.

QUOTE
Bug?... If I single click anywhere in the coverflow panel it will freeze for a few seconds. Is this intentional? because it's really annoying.

No, this is not intentional ^^. Could you please try if it also happens with this older version:
http://chron.visiondesigns.de/foobar2000/f...low_v0.2.0b.zip
mil3s
^Tried the old version. I get a Runtime error when I restart foobar after set the correct cover directory.

EDIT. Sure, you can use my config. smile.gif
Hakubo
QUOTE(Chronial @ Mar 30 2008, 22:06) *
No, this is not intentional ^^. Could you please try if it also happens with this older version:
http://chron.visiondesigns.de/foobar2000/f...low_v0.2.0b.zip
For me, it does.
The delay seems to be a bit smaller, though.

EDIT: I also tried a clean install with no library scanned: nothing changes.
Chronial
Could you two please tell me what GPU you are using?
Hakubo
Radeon X1600 SE with Omega drivers version 3.8.442.

I guess you missed my previous post.
Walterrrr
QUOTE(Chronial @ Mar 30 2008, 12:06) *
QUOTE
"Error: Rendering is not fully hardware-accelerated."

Well, that's not good - but it is running fine nonetheless? Then I will turn this into a console message.

Yes! I guess I was just afraid of the message and switched back to 0.2.0d

QUOTE(Chronial @ Mar 30 2008, 12:06) *
fixed.
Neat smile.gif

QUOTE(Chronial @ Mar 30 2008, 12:06) *

I forgot about this function!
CODE
$if($cwb_fileexists($replace(%path%,%filename_ext%,)folder.jpg),' ',%album artist%$crlf()%album%)
This works a treat! It's gorgeous!

I also got me a bonified crash:
I was trying to figure out why it wasn't displaying an album cover that was 1425x1425, so I resized 499x499 it and renamed it and hit shift-F5 to refresh the whole coverflow view
CODE
Illegal operation:
Code: C0000005h, flags: 00000000h, address: 5ED6A21Eh
Access violation, operation: read, address: 00000003h
Call path:
entry=>app_mainloop
Code bytes (5ED6A21Eh):
5ED6A1DEh: 21 00 00 23 D9 8B 86 20 21 00 00 C1 EB 0E 8B 8E
5ED6A1EEh: 48 21 00 00 03 C1 03 D3 8B 8E D8 21 00 00 8B 9E
5ED6A1FEh: 4C 21 00 00 03 D1 8B 8E 28 21 00 00 03 CB 89 86
5ED6A20Eh: 20 21 00 00 89 8E 28 21 00 00 8B 9E 50 21 00 00
5ED6A21Eh: 80 7A 03 00 0F 85 86 00 00 00 8B 86 08 21 00 00
5ED6A22Eh: 8B 9E 0C 21 00 00 8B 8E 10 21 00 00 03 86 EC 20
5ED6A23Eh: 00 00 03 9E F0 20 00 00 03 8E F4 20 00 00 89 86
5ED6A24Eh: 08 21 00 00 89 9E 0C 21 00 00 89 8E 10 21 00 00
Stack (0012F634h):
0012F614h: E3B1E650 00000000 0000000C BC70F310
0012F624h: 0012FCD0 00009EF5 F38A2B64 BF815DEE
0012F634h: 0012F654 7FFFFFFF 0022A4A8 FFFFFA58
0012F644h: 5ED48B68 0000A16A 0022A4A8 08BBDE80
0012F654h: 0012F680 5ED3E678 0000A16A 08FA32D8
0012F664h: 08FA31D8 00000002 C2540000 43A27F00
0012F674h: 08BBDF00 0000A16A 0000A135 0012F6AC
0012F684h: 5ED91395 0000A135 80000000 3F010000
0012F694h: 08FA32D8 08FA31D8 0022A4A8 0022A4A8
0012F6A4h: 00000001 08FA31D8 0012F6DC 5ED8D66D
0012F6B4h: 08BBDE80 00000001 08BBDF00 08BBDE80
0012F6C4h: 08BBDF80 467FFE00 467FFE00 3F800000
0012F6D4h: 472169FF 5ED91250 0012F710 5ED7C02A
0012F6E4h: 00000000 0023E688 00000004 00000001
0012F6F4h: 0022A4A8 08BBE000 00000001 08BBDE80
0012F704h: 08BBDF00 08BBDF80 08BBE000 0012F740
0012F714h: 5ED7C657 0022A4A8 08BBDE80 08BBDF00
0012F724h: 08BBDF80 08BBE000 08BBDE00 0022A4A8
0012F734h: 0022A4A8 0022A4A8 5ED7BFD2 0012F758
0012F744h: 5ED7DB33 08BBE000 00000000 0022A4A8
Registers:
EAX: 00018000, EBX: 09B826B4, ECX: FFFFFFD8, EDX: 00000000
ESI: 0022A4A8, EDI: 09320508, EBP: 00070141, ESP: 0012F634
Crash location: "OPENGL32", loaded at 5ED00000h - 5EDCC000h

Loaded modules:
foobar2000 loaded at 00400000h - 00523000h
ntdll loaded at 7C900000h - 7C9B0000h
kernel32 loaded at 7C800000h - 7C8F5000h
COMCTL32 loaded at 773D0000h - 774D3000h
msvcrt loaded at 77C10000h - 77C68000h
ADVAPI32 loaded at 77DD0000h - 77E6B000h
RPCRT4 loaded at 77E70000h - 77F01000h
GDI32 loaded at 77F10000h - 77F57000h
USER32 loaded at 7E410000h - 7E4A0000h
SHLWAPI loaded at 77F60000h - 77FD6000h
SHELL32 loaded at 7C9C0000h - 7D1D7000h
ole32 loaded at 774E0000h - 7761D000h
shared loaded at 10000000h - 1002A000h
COMDLG32 loaded at 763B0000h - 763F9000h
IMM32 loaded at 76390000h - 763AD000h
uxtheme loaded at 5AD70000h - 5ADA8000h
MSCTF loaded at 74720000h - 7476B000h
msctfime loaded at 755C0000h - 755EE000h
foo_abx loaded at 00AA0000h - 00AD3000h
foo_albumlist loaded at 00AE0000h - 00B47000h
foo_audioscrobbler loaded at 00B70000h - 00BA0000h
WS2_32 loaded at 71AB0000h - 71AC7000h
WS2HELP loaded at 71AA0000h - 71AA8000h
foo_bubble_coverflow loaded at 00BC0000h - 00C46000h
OPENGL32 loaded at 5ED00000h - 5EDCC000h
GLU32 loaded at 68B20000h - 68B40000h
DDRAW loaded at 73760000h - 737A9000h
DCIMAN32 loaded at 73BC0000h - 73BC6000h
gdiplus loaded at 4EC50000h - 4EDF3000h
foo_cdda loaded at 06C80000h - 06CB5000h
foo_cdtext loaded at 06CE0000h - 06D09000h
foo_chronflow loaded at 06D30000h - 06D92000h
WINMM loaded at 76B40000h - 76B6D000h
OLEAUT32 loaded at 77120000h - 771AB000h
foo_converter loaded at 06E40000h - 06EA9000h
foo_cwb_hooks loaded at 06ED0000h - 06F1C000h
foo_dsp_std loaded at 06F40000h - 06F88000h
foo_facets loaded at 06FB0000h - 07031000h
MSIMG32 loaded at 76380000h - 76385000h
foo_fileops loaded at 07060000h - 070A6000h
foo_freedb2 loaded at 070D0000h - 07111000h
foo_input_monkey loaded at 07140000h - 0718A000h
foo_input_shorten loaded at 071B0000h - 071DD000h
foo_input_std loaded at 07200000h - 07328000h
foo_masstag loaded at 07350000h - 073A0000h
foo_out_ks loaded at 073C0000h - 073EA000h
SETUPAPI loaded at 77920000h - 77A13000h
foo_playcount loaded at 07410000h - 07435000h
foo_rgscan loaded at 07460000h - 074BA000h
foo_uie_albumart loaded at 074E0000h - 0751D000h
foo_uie_albumlist loaded at 07540000h - 07583000h
foo_uie_tabs loaded at 075B0000h - 075DA000h
foo_uie_vis_peakmeter_spectrum loaded at 07600000h - 0763F000h
foo_ui_columns loaded at 07660000h - 07779000h
foo_ui_std loaded at 077A0000h - 07861000h
foo_unpack loaded at 07890000h - 078BD000h
foo_vis_screensaver loaded at 078E0000h - 0790B000h
foo_vis_shpeck loaded at 07930000h - 07959000h
MSVCR80 loaded at 78130000h - 781CB000h
vis_milk2 loaded at 07FA0000h - 084E9000h
NSCRT loaded at 7C340000h - 7C398000h
CLBCATQ loaded at 76FD0000h - 7704F000h
COMRes loaded at 77050000h - 77115000h
VERSION loaded at 77C00000h - 77C08000h
msscript loaded at 6B980000h - 6B999000h
vbscript loaded at 73300000h - 73365000h
jscript loaded at 63380000h - 633F8000h
xpsp2res loaded at 20000000h - 202C5000h
SXS loaded at 75E90000h - 75F40000h
nbicdnt loaded at 69500000h - 695E2000h
d3d9 loaded at 4FDD0000h - 4FF76000h
d3d8thk loaded at 6D990000h - 6D996000h
usp10 loaded at 74D90000h - 74DFB000h
events loaded at 16000000h - 16028000h
MSVCR71 loaded at 09690000h - 096E6000h
mswsock loaded at 71A50000h - 71A8F000h
DNSAPI loaded at 76F20000h - 76F47000h
rasadhlp loaded at 76FC0000h - 76FC6000h
hnetcfg loaded at 662B0000h - 66308000h
wshtcpip loaded at 71A90000h - 71A98000h
netapi32 loaded at 5B860000h - 5B8B4000h
appHelp loaded at 77B40000h - 77B62000h
ieframe loaded at 42EF0000h - 434BD000h
PSAPI loaded at 76BF0000h - 76BFB000h
iertutil loaded at 42990000h - 429D5000h
urlmon loaded at 42CF0000h - 42E17000h
Secur32 loaded at 77FE0000h - 77FF1000h
DSOUND loaded at 73F10000h - 73F6C000h
WINTRUST loaded at 76C30000h - 76C5E000h
CRYPT32 loaded at 77A80000h - 77B14000h
MSASN1 loaded at 77B20000h - 77B32000h
IMAGEHLP loaded at 76C90000h - 76CB8000h
wdmaud loaded at 72D20000h - 72D29000h
msacm32 loaded at 72D10000h - 72D18000h
MSACM32 loaded at 77BE0000h - 77BF5000h
midimap loaded at 77BD0000h - 77BD7000h
KsUser loaded at 73EE0000h - 73EE4000h
DBGHELP loaded at 59A60000h - 59B01000h

Stack dump analysis:
Address: 5ED48B68h, location: "OPENGL32", loaded at 5ED00000h - 5EDCC000h
Address: 5ED3E678h, location: "OPENGL32", loaded at 5ED00000h - 5EDCC000h
Address: 5ED91395h, location: "OPENGL32", loaded at 5ED00000h - 5EDCC000h
Address: 5ED8D66Dh, location: "OPENGL32", loaded at 5ED00000h - 5EDCC000h
Address: 5ED91250h, location: "OPENGL32", loaded at 5ED00000h - 5EDCC000h
Address: 5ED7C02Ah, location: "OPENGL32", loaded at 5ED00000h - 5EDCC000h
Address: 5ED7C657h, location: "OPENGL32", loaded at 5ED00000h - 5EDCC000h
Address: 5ED7BFD2h, location: "OPENGL32", loaded at 5ED00000h - 5EDCC000h
Address: 5ED7DB33h, location: "OPENGL32", loaded at 5ED00000h - 5EDCC000h
Address: 5ED7E63Ch, location: "OPENGL32", loaded at 5ED00000h - 5EDCC000h
Address: 004AFB30h, location: "foobar2000", loaded at 00400000h - 00523000h
Address: 00461D20h, location: "foobar2000", loaded at 00400000h - 00523000h
Address: 004656AAh, location: "foobar2000", loaded at 00400000h - 00523000h
Address: 00454BDBh, location: "foobar2000", loaded at 00400000h - 00523000h
Address: 5ED7FDC3h, location: "OPENGL32", loaded at 5ED00000h - 5EDCC000h
Address: 5ED802C9h, location: "OPENGL32", loaded at 5ED00000h - 5EDCC000h
Address: 5ED7EE6Eh, location: "OPENGL32", loaded at 5ED00000h - 5EDCC000h
Address: 5EDA01BAh, location: "OPENGL32", loaded at 5ED00000h - 5EDCC000h
Address: 5ED9E31Dh, location: "OPENGL32", loaded at 5ED00000h - 5EDCC000h
Address: 5ED9D111h, location: "OPENGL32", loaded at 5ED00000h - 5EDCC000h
Address: 5ED9CAB4h, location: "OPENGL32", loaded at 5ED00000h - 5EDCC000h
Address: 5ED1C5C0h, location: "OPENGL32", loaded at 5ED00000h - 5EDCC000h
Symbol: "wglGetProcAddress" (+0000021Eh)
Address: 5ED1ADADh, location: "OPENGL32", loaded at 5ED00000h - 5EDCC000h
Symbol: "wglSwapMultipleBuffers" (+00000450h)
Address: 06D5B98Ah, location: "foo_chronflow", loaded at 06D30000h - 06D92000h
Address: 06D82E20h, location: "foo_chronflow", loaded at 06D30000h - 06D92000h
Address: 06D31194h, location: "foo_chronflow", loaded at 06D30000h - 06D92000h
Address: 06D7007Ch, location: "foo_chronflow", loaded at 06D30000h - 06D92000h
Address: 06D6463Fh, location: "foo_chronflow", loaded at 06D30000h - 06D92000h
Address: 06D3A642h, location: "foo_chronflow", loaded at 06D30000h - 06D92000h
Address: 06D82E20h, location: "foo_chronflow", loaded at 06D30000h - 06D92000h
Address: 5ED19B20h, location: "OPENGL32", loaded at 5ED00000h - 5EDCC000h
Symbol: "wglSwapLayerBuffers" (+000007CBh)
Address: 5EDA5F0Ch, location: "OPENGL32", loaded at 5ED00000h - 5EDCC000h
Address: 7C90E10Eh, location: "ntdll", loaded at 7C900000h - 7C9B0000h
Symbol: "NtQueryPerformanceCounter" (+0000000Ch)
Address: 7C80A43Bh, location: "kernel32", loaded at 7C800000h - 7C8F5000h
Symbol: "QueryPerformanceCounter" (+00000014h)
Address: 06D5CE81h, location: "foo_chronflow", loaded at 06D30000h - 06D92000h
Address: 06D82E20h, location: "foo_chronflow", loaded at 06D30000h - 06D92000h
Address: 7E41BF78h, location: "USER32", loaded at 7E410000h - 7E4A0000h
Symbol: "RedrawWindow" (+0000000Ch)
Address: 06D5CFFBh, location: "foo_chronflow", loaded at 06D30000h - 06D92000h
Address: 06D5D010h, location: "foo_chronflow", loaded at 06D30000h - 06D92000h
Address: 06D82E20h, location: "foo_chronflow", loaded at 06D30000h - 06D92000h
Address: 06D3A816h, location: "foo_chronflow", loaded at 06D30000h - 06D92000h
Address: 06D82E20h, location: "foo_chronflow", loaded at 06D30000h - 06D92000h
Address: 06D3AA71h, location: "foo_chronflow", loaded at 06D30000h - 06D92000h
Address: 5ED26780h, location: "OPENGL32", loaded at 5ED00000h - 5EDCC000h
Symbol: "wglSwapBuffers" (+000000DCh)
Address: 7E418BD9h, location: "USER32", loaded at 7E410000h - 7E4A0000h
Symbol: "GetWindowThreadProcessId" (+00000159h)
Address: 7E418B26h, location: "USER32", loaded at 7E410000h - 7E4A0000h
Symbol: "GetWindowThreadProcessId" (+000000A6h)
Address: 06D3AAC0h, location: "foo_chronflow", loaded at 06D30000h - 06D92000h
Address: 7E4188D1h, location: "USER32", loaded at 7E410000h - 7E4A0000h
Symbol: "GetWindowLongW" (+0000002Bh)
Address: 7E4188DAh, location: "USER32", loaded at 7E410000h - 7E4A0000h
Symbol: "GetWindowLongW" (+00000034h)
Address: 06D3AAC0h, location: "foo_chronflow", loaded at 06D30000h - 06D92000h
Address: 7C9106ABh, location: "ntdll", loaded at 7C900000h - 7C9B0000h
Symbol: "RtlAllocateHeap" (+000000D7h)
Address: 7E4188E0h, location: "USER32", loaded at 7E410000h - 7E4A0000h
Symbol: "GetWindowLongW" (+0000003Ah)
Address: 06D3AB1Ah, location: "foo_chronflow", loaded at 06D30000h - 06D92000h
Address: 06D82E20h, location: "foo_chronflow", loaded at 06D30000h - 06D92000h
Address: 06D3AAC0h, location: "foo_chronflow", loaded at 06D30000h - 06D92000h
Address: 7E418734h, location: "USER32", loaded at 7E410000h - 7E4A0000h
Symbol: "GetDC" (+0000006Dh)
Address: 06D3AAC0h, location: "foo_chronflow", loaded at 06D30000h - 06D92000h
Address: 06D3AAC0h, location: "foo_chronflow", loaded at 06D30000h - 06D92000h
Address: 7E418816h, location: "USER32", loaded at 7E410000h - 7E4A0000h
Symbol: "GetDC" (+0000014Fh)
Address: 06D3AAC0h, location: "foo_chronflow", loaded at 06D30000h - 06D92000h
Address: 06D3AAC0h, location: "foo_chronflow", loaded at 06D30000h - 06D92000h
Address: 7E41F896h, location: "USER32", loaded at 7E410000h - 7E4A0000h
Symbol: "CallNextHookEx" (+0000003Bh)
Address: 7E440457h, location: "USER32", loaded at 7E410000h - 7E4A0000h
Symbol: "DeregisterShellHookWindow" (+000001CFh)
Address: 7E418830h, location: "USER32", loaded at 7E410000h - 7E4A0000h
Symbol: "GetDC" (+00000169h)
Address: 7E41C63Fh, location: "USER32", loaded at 7E410000h - 7E4A0000h
Symbol: "IsWindowUnicode" (+000000A1h)
Address: 06D3AAC0h, location: "foo_chronflow", loaded at 06D30000h - 06D92000h
Address: 7E41C665h, location: "USER32", loaded at 7E410000h - 7E4A0000h
Symbol: "CallWindowProcW" (+0000001Bh)
Address: 06D3AAC0h, location: "foo_chronflow", loaded at 06D30000h - 06D92000h
Address: 5ED2699Bh, location: "OPENGL32", loaded at 5ED00000h - 5EDCC000h
Symbol: "wglSwapBuffers" (+000002F7h)
Address: 06D3AAC0h, location: "foo_chronflow", loaded at 06D30000h - 06D92000h
Address: 5ED26780h, location: "OPENGL32", loaded at 5ED00000h - 5EDCC000h
Symbol: "wglSwapBuffers" (+000000DCh)
Address: 7E440457h, location: "USER32", loaded at 7E410000h - 7E4A0000h
Symbol: "DeregisterShellHookWindow" (+000001CFh)
Address: 7E41F808h, location: "USER32", loaded at 7E410000h - 7E4A0000h
Symbol: "EnableMenuItem" (+00000081h)
Address: 06D3AAC0h, location: "foo_chronflow", loaded at 06D30000h - 06D92000h
Address: 7E418734h, location: "USER32", loaded at 7E410000h - 7E4A0000h
Symbol: "GetDC" (+0000006Dh)
Address: 5ED26780h, location: "OPENGL32", loaded at 5ED00000h - 5EDCC000h
Symbol: "wglSwapBuffers" (+000000DCh)
Address: 5ED26780h, location: "OPENGL32", loaded at 5ED00000h - 5EDCC000h
Symbol: "wglSwapBuffers" (+000000DCh)
Address: 7E418816h, location: "USER32", loaded at 7E410000h - 7E4A0000h
Symbol: "GetDC" (+0000014Fh)
Address: 5ED26780h, location: "OPENGL32", loaded at 5ED00000h - 5EDCC000h
Symbol: "wglSwapBuffers" (+000000DCh)
Address: 7E440457h, location: "USER32", loaded at 7E410000h - 7E4A0000h
Symbol: "DeregisterShellHookWindow" (+000001CFh)
Address: 7E418830h, location: "USER32", loaded at 7E410000h - 7E4A0000h
Symbol: "GetDC" (+00000169h)
Address: 7E41B4C0h, location: "USER32", loaded at 7E410000h - 7E4A0000h
Symbol: "DefWindowProcW" (+00000184h)
Address: 5ED26780h, location: "OPENGL32", loaded at 5ED00000h - 5EDCC000h
Symbol: "wglSwapBuffers" (+000000DCh)
Address: 7E41F7F6h, location: "USER32", loaded at 7E410000h - 7E4A0000h
Symbol: "EnableMenuItem" (+0000006Fh)
Address: 7E440457h, location: "USER32", loaded at 7E410000h - 7E4A0000h
Symbol: "DeregisterShellHookWindow" (+000001CFh)
Address: 7E41B4D0h, location: "USER32", loaded at 7E410000h - 7E4A0000h
Symbol: "DefWindowProcW" (+00000194h)
Address: 7E41B50Ch, location: "USER32", loaded at 7E410000h - 7E4A0000h
Symbol: "DefWindowProcW" (+000001D0h)
Address: 5ED26780h, location: "OPENGL32", loaded at 5ED00000h - 5EDCC000h
Symbol: "wglSwapBuffers" (+000000DCh)
Address: 7E41F94Bh, location: "USER32", loaded at 7E410000h - 7E4A0000h
Symbol: "CallNextHookEx" (+000000F0h)
Address: 7C90EAE3h, location: "ntdll", loaded at 7C900000h - 7C9B0000h
Symbol: "KiUserCallbackDispatcher" (+00000013h)
Address: 5ED26780h, location: "OPENGL32", loaded at 5ED00000h - 5EDCC000h
Symbol: "wglSwapBuffers" (+000000DCh)
Address: 7E41B473h, location: "USER32", loaded at 7E410000h - 7E4A0000h
Symbol: "DefWindowProcW" (+00000137h)
Address: 7E4194D2h, location: "USER32", loaded at 7E410000h - 7E4A0000h
Symbol: "GetWindowLongA" (+00000075h)
Address: 7E41B530h, location: "USER32", loaded at 7E410000h - 7E4A0000h
Symbol: "DefWindowProcW" (+000001F4h)
Address: 7E41DAEAh, location: "USER32", loaded at 7E410000h - 7E4A0000h
Symbol: "DestroyWindow" (+00000000h)
Address: 7E42D950h, location: "USER32", loaded at 7E410000h - 7E4A0000h
Symbol: "IsDialogMessageW" (+0000008Eh)
Address: 7E440457h, location: "USER32", loaded at 7E410000h - 7E4A0000h
Symbol: "DeregisterShellHookWindow" (+000001CFh)
Address: 7E4189F0h, location: "USER32", loaded at 7E410000h - 7E4A0000h
Symbol: "GetWindowLongW" (+0000014Ah)
Address: 7E418A10h, location: "USER32", loaded at 7E410000h - 7E4A0000h
Symbol: "DispatchMessageW" (+0000000Fh)
Address: 0042C283h, location: "foobar2000", loaded at 00400000h - 00523000h
Address: 10002638h, location: "shared", loaded at 10000000h - 1002A000h
Symbol: "uPrintCrashInfo_SetDumpPath" (+000000C8h)
Address: 0042CE06h, location: "foobar2000", loaded at 00400000h - 00523000h
Address: 004C629Ch, location: "foobar2000", loaded at 00400000h - 00523000h
Address: 004C6280h, location: "foobar2000", loaded at 00400000h - 00523000h
Address: 004C6280h, location: "foobar2000", loaded at 00400000h - 00523000h
Address: 0042068Ch, location: "foobar2000", loaded at 00400000h - 00523000h
Address: 00400000h, location: "foobar2000", loaded at 00400000h - 00523000h
Address: 004D4B70h, location: "foobar2000", loaded at 00400000h - 00523000h
Address: 7C90EE18h, location: "ntdll", loaded at 7C900000h - 7C9B0000h
Symbol: "strchr" (+00000117h)
Address: 7C9106F0h, location: "ntdll", loaded at 7C900000h - 7C9B0000h
Symbol: "RtlAllocateHeap" (+0000011Ch)
Address: 7C9106EBh, location: "ntdll", loaded at 7C900000h - 7C9B0000h
Symbol: "RtlAllocateHeap" (+00000117h)
Address: 0049B8A1h, location: "foobar2000", loaded at 00400000h - 00523000h
Address: 7C90E027h, location: "ntdll", loaded at 7C900000h - 7C9B0000h
Symbol: "ZwQueryInformationProcess" (+0000000Ch)
Address: 10002638h, location: "shared", loaded at 10000000h - 1002A000h
Symbol: "uPrintCrashInfo_SetDumpPath" (+000000C8h)
Address: 004CB9A4h, location: "foobar2000", loaded at 00400000h - 00523000h
Address: 004B7398h, location: "foobar2000", loaded at 00400000h - 00523000h
Address: 0042D04Bh, location: "foobar2000", loaded at 00400000h - 00523000h
Address: 00400000h, location: "foobar2000", loaded at 00400000h - 00523000h
Address: 0049EA9Eh, location: "foobar2000", loaded at 00400000h - 00523000h
Address: 0049BE81h, location: "foobar2000", loaded at 00400000h - 00523000h
Address: 0049BE7Bh, location: "foobar2000", loaded at 00400000h - 00523000h
Address: 004BE560h, location: "foobar2000", loaded at 00400000h - 00523000h
Address: 004BC3F0h, location: "foobar2000", loaded at 00400000h - 00523000h
Address: 0049DA60h, location: "foobar2000", loaded at 00400000h - 00523000h
Address: 0049BE7Bh, location: "foobar2000", loaded at 00400000h - 00523000h
Address: 0049BE8Fh, location: "foobar2000", loaded at 00400000h - 00523000h
Address: 004BC3F0h, location: "foobar2000", loaded at 00400000h - 00523000h
Address: 004B77C7h, location: "foobar2000", loaded at 00400000h - 00523000h
Address: 0049D80Fh, location: "foobar2000", loaded at 00400000h - 00523000h
Address: 00400000h, location: "foobar2000", loaded at 00400000h - 00523000h
Address: 004A5326h, location: "foobar2000", loaded at 00400000h - 00523000h
Address: 0049DA60h, location: "foobar2000", loaded at 00400000h - 00523000h
Address: 7C816FD7h, location: "kernel32", loaded at 7C800000h - 7C8F5000h
Symbol: "RegisterWaitForInputIdle" (+00000049h)
Address: 7C839AA8h, location: "kernel32", loaded at 7C800000h - 7C8F5000h
Symbol: "ValidateLocale" (+000002B0h)
Address: 7C816FE0h, location: "kernel32", loaded at 7C800000h - 7C8F5000h
Symbol: "RegisterWaitForInputIdle" (+00000052h)
Address: 0049D87Ah, location: "foobar2000", loaded at 00400000h - 00523000h
Address: 004E0049h, location: "foobar2000", loaded at 00400000h - 00523000h
Address: 004F0044h, location: "foobar2000", loaded at 00400000h - 00523000h
Address: 004B0063h, location: "foobar2000", loaded at 00400000h - 00523000h
Address: 00500069h, location: "foobar2000", loaded at 00400000h - 00523000h
Address: 00500069h, location: "foobar2000", loaded at 00400000h - 00523000h
Address: 00410072h, location: "foobar2000", loaded at 00400000h - 00523000h
Address: 004E0049h, location: "foobar2000", loaded at 00400000h - 00523000h
Address: 004F0044h, location: "foobar2000", loaded at 00400000h - 00523000h
Address: 00500069h, location: "foobar2000", loaded at 00400000h - 00523000h
Address: 004D002Eh, location: "foobar2000", loaded at 00400000h - 00523000h

Version info:
foobar2000 v0.9.5.1
UNICODE
Windows 5.1


Additional info:
Monkey's Audio decoder 2.1.2 (foo_input_monkey)
Album List 4.2 (foo_albumlist)
ReplayGain Scanner 2.0.3 (foo_rgscan)
Shorten decoder 0.4.2.1 (foo_input_shorten)
Screen Saver Visualisation 1.1 (foo_vis_screensaver)
cwbowron's title format hooks 1.2.6 [Jan 2 2008 - 15:50:05] (foo_cwb_hooks)
ZIP/GZIP reader 1.0 (foo_unpack)
RAR reader 1.1 (foo_unpack)
Kernel Streaming Output 1.2.2 (foo_out_ks)
Standard DSP Array 1.0 (foo_dsp_std)
Audioscrobbler 1.3.15 (foo_audioscrobbler)
Columns UI 0.3 beta 1 preview 4 (foo_ui_columns)
Album Art Panel 0.2.7.1 (foo_uie_albumart)
foobar2000 core 0.9.5.1 (Core)
Tagger Panel Window 1.0.6 [Jan 2 2008 - 15:50:49] (foo_cwb_hooks)
Tabbed panel modified 0.2.5 (foo_uie_tabs)
CD-TEXT Reader 0.2 (foo_cdtext)
Album list panel 0.2.3 beta (foo_uie_albumlist)
Masstagger 1.6 (foo_masstag)
Coverflow pannel 0.2.1 (foo_chronflow)
Default User Interface 0.9.5 (foo_ui_std)
File Operations 2.1 (foo_fileops)
Playback Statistics 2.0 (foo_playcount)
Converter 1.1 (foo_converter)
Shpeck - Winamp vis plugins wrapper 0.2.2 (foo_vis_shpeck)
Standard Input Array 1.0 (foo_input_std)
CD Audio Decoder 2.1.2 (foo_cdda)
freedb Tagger 0.5.2.1 (foo_freedb2)
Peakmeter Spectrum Visualisation 0.1.0.2 beta (foo_uie_vis_peakmeter_spectrum)
Cover Flow 0.18 (foo_bubble_coverflow)
Facets 2008-02-25 (foo_facets)
ABX Comparator 1.3.1 (foo_abx)

Falstaff
QUOTE(Chronial @ Mar 30 2008, 20:06) *

...
QUOTE
Just a question is it possible when i double click on a cover to play the album in the current playlist instead of replacing the current playlist
Yes - have a look at foo_trackpos - will do just that.
...


thanx, it does the job smile.gif

i have another request that i think would interest most of users :

adding the possibility to show cover now playing not after a period of inactivity like you permit it but by using a command (using a button under panelsUI for example) or by using a command to affect to the double-click or middle-clik...

waiting 5 or 10 seconds to show now playing cover is very long and 2 or 3 seconds to short to let me browse my collection with the coverflow ...

what do you think about this ? possible to add on the todo list ?

thanx by advance
Chronial
Press F6 smile.gif

I will add buttons in the future that let you do that - but till then the keyboard shortcut should be enough

QUOTE
Radeon X1600 SE with Omega drivers version 3.8.442.

I guess that's the problem. I use an opengl feature that no game is using. (OpenGl allows me to get the element under the cursor by rendering a hidden frame - that's perfect for me, since it is very easy to implement and 100% accurate, but that's absolutely unusable for a game). These "gaming drivers" might not implement that correctly.

QUOTE
I also got me a bonified crash:
I was trying to figure out why it wasn't displaying an album cover that was 1425x1425, so I resized 499x499 it and renamed it and hit shift-F5 to refresh the whole coverflow view

Do you still get this crash after a restart or was this the only instance? Please send me the two files (the full sized and the resized version).
Falstaff
QUOTE(Chronial @ Mar 30 2008, 21:44) *

Press F6 smile.gif

I will add buttons in the future that let you do that - but till then the keyboard shortcut should be enough



ok, i hope button will comme very soon tongue.gif

[quote name='Falstaff' date='Mar 30 2008, 21:30' post='555906']
[quote name='Chronial' post='555892' date='Mar 30 2008, 20:06']
...
[quote]Just a question is it possible when i double click on a cover to play the album in the current playlist instead of replacing the current playlist[/quote]Yes - have a look at foo_trackpos - will do just that.
...
[/quote]

thanx, it does the job smile.gif

yes, but it modify playlist order and that is not clean sad.gif

i hope you'll add 'Play' Command for double-click soon smile.gif

thanx for help
Chronial
QUOTE
yes, but it modify playlist order and that is not clean

Have a look at the options for foo_trackpos smile.gif
Sry, I'm not going to duplicate the functionality of my plugins ^^.
Keikonium
I've encountered a problem I hope can be fixed for the next build:

I put this component into my Panels UI theme where I have a group of other panels that I can switch to and from. In other words, I have assigned this panel a PVAR in a list of other panelsl/pvars. However, when I switch to this one, it likes to stay on top of all the other ones.

This is kind of hard to explain, but basically once I switch to the coverflow, I can't switch back to any other panels because the coverflow stays ontop. The panel IS switched, just the coverflow remains visible.

Hopefully this makes sense, and can be fixed?

Also, a feature request:

Could we maybe have the background be transparent?

EDIT:

I am getting an "ImgTexture Leak: xx" error on exit. Where xx is a random number. I've gotten 47 and 31 so far. Also, it seems that this component freezes foobar at times? I load up foobar, and things are responsive for about 10 seconds until Chronflow starts loading covers... then foobar freezes.
Jeffy912
Is there a way to get this to work with embedded album art?
Walterrrr
I believe it's possible and on the todo list. I think bubbleguuuum's plugin was able to read embedded art
djoole
Everything works great for me!

IPB Image

A request maybe for the future :

Would it be possible to :
1) customise reflect on the "ground"?
2) add underlay and overlays to the covers? In order to flow cd cases and not just the covers
3) add a customisable fade in/out for the first and last covers
4) be able to choose the gap between covers (i can't see the covers being just before and just after the one which is selected)
5) be able to have Artist and album names not on the same line

Exemple of how it is with the CD case :
IPB Image

Keep the excellent work up
Hakubo
QUOTE(Chronial @ Mar 30 2008, 23:44) *
QUOTE
Radeon X1600 SE with Omega drivers version 3.8.442.

I guess that's the problem. I use an opengl feature that no game is using. (OpenGl allows me to get the element under the cursor by rendering a hidden frame - that's perfect for me, since it is very easy to implement and 100% accurate, but that's absolutely unusable for a game). These "gaming drivers" might not implement that correctly.
Yep, you're right, or at least close enough.
I removed Omega drivers and installed latest Catalyst (8.3). As a result, the freeze time was reduced to just a second. But it's still there.
Chronial
QUOTE
I put this component into my Panels UI theme where I have a group of other panels that I can switch to and from. In other words, I have assigned this panel a PVAR in a list of other panelsl/pvars. However, when I switch to this one, it likes to stay on top of all the other ones.

This is kind of hard to explain, but basically once I switch to the coverflow, I can't switch back to any other panels because the coverflow stays ontop. The panel IS switched, just the coverflow remains visible.

I guess that's a bug of panels ui. It's a very buggy and badly implemented component, so this wouldn't surprise me.


QUOTE
I am getting an "ImgTexture Leak: xx" error on exit. Where xx is a random number. I've gotten 47 and 31 so far. Also, it seems that this component freezes foobar at times? I load up foobar, and things are responsive for about 10 seconds until Chronflow starts loading covers... then foobar freezes.

Why does chronflow start to load covers after 10 seconds? It should that instantly.

QUOTE
QUOTE
Is there a way to get this to work with embedded album art?
believe it's possible and on the todo list. I think bubbleguuuum's plugin was able to read embedded art
Sry, not gonna happen. I don't like embedded art (it's reduntant and unnecessarily difficult to handle - but I'm not going to discuss about this), so I won't spend time to implement this.

QUOTE
customise reflect on the "ground"?
More details, please.

QUOTE
add underlay and overlays to the covers? In order to flow cd cases and not just the covers
add a customisable fade in/out for the first and last covers
On the todo list.

QUOTE
be able to choose the gap between covers (i can't see the covers being just before and just after the one which is selected)

That's completely possible. That's what the cover display tab is for.

QUOTE
be able to have Artist and album names not on the same line
Just insert $crlf() in your formating string.

QUOTE
Yep, you're right, or at least close enough.
I removed Omega drivers and installed latest Catalyst (8.3). As a result, the freeze time was reduced to just a second. But it's still there.
Sry - I don't have any idea at all what might cause this.
antar3s
QUOTE(Chronial @ Mar 31 2008, 11:54) *

QUOTE
I put this component into my Panels UI theme where I have a group of other panels that I can switch to and from. In other words, I have assigned this panel a PVAR in a list of other panelsl/pvars. However, when I switch to this one, it likes to stay on top of all the other ones.

This is kind of hard to explain, but basically once I switch to the coverflow, I can't switch back to any other panels because the coverflow stays ontop. The panel IS switched, just the coverflow remains visible.

I guess that's a bug of panels ui. It's a very buggy and badly implemented component, so this wouldn't surprise me.

basically im doing the same thing and it works fine. so i guess the problem lies with your panels code.
if the code for chronflow is in a trackdisplaypanel try putting it in the main layout...or post again with more info in the panelsui thread and i can try to help with finding a solution...
Falstaff
i never see or hear that panelsUI was buggy (for las official release which is 0.13.8, but thru for the last release beta 0.14.12because the author has suddenly disappear, and brings a lot of news), except from people who don't use it or doesn't know how works scripting code.

it would be to be said.

so back to Chronflow component smile.gif
Falstaff
QUOTE(Chronial @ Mar 30 2008, 23:57) *

QUOTE
yes, but it modify playlist order and that is not clean

Have a look at the options for foo_trackpos smile.gif
Sry, I'm not going to duplicate the functionality of my plugins ^^.


i have looked at the options but no choice that Not affect the active playlist found sad.gif

it copy or moves the selected song in the playlist to play it after current playing track, how should i do ?

thanx by adavnce
Keikonium
QUOTE(Chronial @ Mar 31 2008, 04:54) *

QUOTE
I put this component into my Panels UI theme where I have a group of other panels that I can switch to and from. In other words, I have assigned this panel a PVAR in a list of other panelsl/pvars. However, when I switch to this one, it likes to stay on top of all the other ones.

This is kind of hard to explain, but basically once I switch to the coverflow, I can't switch back to any other panels because the coverflow stays ontop. The panel IS switched, just the coverflow remains visible.

I guess that's a bug of panels ui. It's a very buggy and badly implemented component, so this wouldn't surprise me.


QUOTE
I am getting an "ImgTexture Leak: xx" error on exit. Where xx is a random number. I've gotten 47 and 31 so far. Also, it seems that this component freezes foobar at times? I load up foobar, and things are responsive for about 10 seconds until Chronflow starts loading covers... then foobar freezes.

Why does chronflow start to load covers after 10 seconds? It should that instantly.


No other panel does it in Panels UI. I don't find Panels UI buggy at all (it is in non-english OS's I hear, but that doesn't affect me). I'll try and resolve it myself for now tongue.gif.

And it starts to do it after a few seconds because Panels UI is loading everything else, then it loads Chronflow, and then it starts loading the covers. As soon as Chronflow is loaded, the covers load tho.
djoole
QUOTE(Chronial @ Mar 31 2008, 12:54) *

QUOTE
customise reflect on the "ground"?
More details, please.

Length of the reflecting surface, power of reflection.

QUOTE(Chronial @ Mar 31 2008, 12:54) *

QUOTE
add underlay and overlays to the covers? In order to flow cd cases and not just the covers
add a customisable fade in/out for the first and last covers
On the todo list.

Nice!

QUOTE(Chronial @ Mar 31 2008, 12:54) *

QUOTE
be able to choose the gap between covers (i can't see the covers being just before and just after the one which is selected)

That's completely possible. That's what the cover display tab is for.

Nice! I guess i'll have to check again, i didn't notice this could be done.

QUOTE(Chronial @ Mar 31 2008, 12:54) *

QUOTE
be able to have Artist and album names not on the same line
Just insert $crlf() in your formating string.

Great, thanks!
McMusic
I currently use this config.

CODE
// General Notes:
// Most of these functions return an array with 3 elements
// These are the x,y,z coordinates in 3d-space
// x is left to right
// y is bottom to top
// z is front to back


/************************* COVER DISPLAY *****************/
// These functions define the Display of the single Covers
// The given parameter coverId is a floating point number.
// It is 0 for the center cover, 1 for the one right
// beneath it, -1 for the one on the left side and so on.
// During movement the values float between the integer
// values.
function coverPosition(coverId){
   var x, y, z;
   y = 0;
   if (Math.abs(coverId) <= 1){ // The centered cover
      z = 1 + 3 * (1 - Math.abs(coverId));
      x = coverId;
   } else { // The covers on the side
      z = 1 + (Math.abs(coverId)-1) * 1;
      x = 1 + 0.5 * (Math.abs(coverId)-1);
      if (coverId < 0)
         x *= -1;
   }
   return new Array(x, y, z);
}
// return array is (angle, x, ,y, z) - this rotates
// the cover *angle* degrees around the vector (x,y,z)
// With (0,0,0,0) the cover is parallel to the y-z-Plane
function coverRotation(coverId){
   var angle;
   if (Math.abs(coverId) < 1){ // The centered cover
      angle = coverId * -70;
   } else { // The covers on the side
      if (coverId > 0)
         angle = -70;
      else
         angle = 70;
   }
   return new Array(angle, 0, 1, 0);
}

// Sets which point of the cover coverPosition() defines
// (-1,-1) means bottom left, (0,0) means center,
// (1,1) means top right, (0, -1) means bottom center etc.
// The cover is also rotated around this point.
function coverAlign(coverId){
   return new Array(0, -1);
}

// Defines the the size boundaries for the cover.
// Aspect ratio is preserved.
// Return Array is (widht, height)
function coverSizeLimits(coverId){
   if (Math.abs(coverId) < 1){ // The centered cover
      var w, h;
      w = 1;
      h = 1;
      // Shrinks the centered cover to a height of 1
      if (Math.abs(coverId) > 0.5)
         h = 1 + (Math.abs(coverId) - 0.5)*2;
      // Allows the centered cover to have a width of 2.5;
      if (Math.abs(coverId) < 0.5)
         w = 1 + (0.5 - Math.abs(coverId))*3;
      return new Array(1.35, 1.35);
   } else { // The covers on the side
      return new Array(1, 2);
   }
}

// Defines the range of covers to draw.
// Return array is (leftmostCover, rightmostCover)
// This interval shouldn't be larger than 80
// The center cover is 0.
function drawCovers(){
   return new Array(-20, 20);
}


// In which direction should the fov be expanded/shrinked
// when the panel is resized?
// If this returns (0,1), the height is fixed.
// If this returns (1,0), the width is fixed.
// You can also return stuff like (0.5,0.5) or (7, 3)
// The values determine how important it is for this
// dimension to stay fixed.
function aspectBehaviour(){
   return new Array(0,1);
}

/************************** CAMMERA SETUP ****************/
// Position of the viewport
function eyePos(){
    return new Array(0, 0.6, 6);
}
// Defines the point for the eye to look at
function lookAt(){
   return new Array(0, 0.6, 0);
}
// Used to rotate the view.
// The returned Vector points upwards in the viewport.
// This vector must not be parallel to the line of sight from the
// eyePos point to the lookAt point.
function upVector(){
   return new Array(0, 1, 0);  
}

/************************** MIRROR SETUP *****************/
function showMirrorPlane(){
   return true; // return false to hide the mirror
}
// Any Point on the Mirror Plane
function mirrorPoint (){
   return new Array(0, 0, 0);
}
// Normal of the Mirror Plane
function mirrorNormal (){
   return new Array(0, 1, 0);
}
djoole
Could you please post a screenshot of what it looks like?
dRsrb
Hi! smile.gif

PanelsUI, again:

Foo:chronflow Error
Failed To Register The Window Class.

Maybe you have found the problem for that (remove PanelsUI is not a solution smile.gif, and I have no problems in CUI!).
Let's have a look at new build! tongue.gif

Bye
bowen_tk
When I quit foobar i have an error :
Release OF Rc Failed. (main Win)

I have see that a some people have it

When i make a layout with column ui i have an error with a problem of texture

Nice work wink.gif
Acropolis
crash report:

will crash instantly when reload the source (or starting foobar) if the cover source contains:
$replace(%path%,%filename_ext%,)..\cover.jpg
Chronial
QUOTE
i never see or hear that panelsUI was buggy (for las official release which is 0.13.8, but thru for the last release beta 0.14.12because the author has suddenly disappear, and brings a lot of news), except from people who don't use it or doesn't know how works scripting code.

Well, this plugin is special in many ways (it uses multithreading and opengl eg.), so it runs into more design mistakes of panelsUi than other panels. But actually it doesn't matter if you believe it or not ^^.

QUOTE
i have looked at the options but no choice that Not affect the active playlist found

it copy or moves the selected song in the playlist to play it after current playing track, how should i do ?

I thought that was what you wanted? What are you looking for? It is by design of foobar that you can only play songs that are in some playlist.


QUOTE
No other panel does it in Panels UI
Did you have a look at all the problems, bubblegum had with panelsui?


QUOTE
customise reflect on the "ground": Length of the reflecting surface, power of reflection.

The reflecting surface has no length - it spawn the whole "universe". Power of reflection is depentant on coversize which can be tuned.


QUOTE
will crash instantly when reload the source (or starting foobar) if the cover source contains:
$replace(%path%,%filename_ext%,)..\cover.jpg

Well, it shouldn't crash, but that's not the right way to it anyways. This will do what you want:
$replace(%path%,$directory(%path%,1)\%_filename_ext%,)cover.jpg
Dreamless
Thanks McMusic, I love it!
MacStew
Can i show the current playlist.
Has there or Can you add, a possibility to switch between the media library and the current playlist.
Lorraine
I can't get this to load at all. crying.gif The last version that worked for me was 1.1!

this is what I get:

IPB Image IPB Image

when I close I get:

---------------------------
SHUTDOWN ERROR
---------------------------
Release Of RC Failed. (mainWin)
---------------------------

---------------------------
SHUTDOWN ERROR
---------------------------
Release Device Context Failed.
---------------------------

unsure.gif
Falstaff
Hi Chronial,

just a bugg to notice : when changing track just after having changing active playlist, cover doesn't change immediatly, i have to press F6 to update it or wait for the delay i have set up to refresh it ...
bugg or normal ? cause in main case, when i don't change the active playlist, it refresh immediatly th main cover when changing track...

Bye
cybasoul
Hey Chronial,

Thank you for your efforts.

I have been trying to make the component work on my work's laptop for a couple of days now. With not no payoff at all.

So, last night, I finally managed to get back home, from work, early enuf to try it out on my desktop machine.
And it worked without a sing error massage, whether starting up, or shutting down.

I was even surprised by how it works harmoniously with UI Panels, mouse scrolling and every thing...
I give you five thumb up for that. cool.gif

But... Ive noticed some inconsistency in the component, based on the following assumptions:

My first assumption is that the component browses the library and not the playlist.
If my first assumption is correct, then, my second assumption is that, the component is supposed to load available covers for all library items, grouped of cause.

If thats the case, then the populating of covers is not consistent, and I will break it down:
In my initial load, my playlist had about three albums in it. The coverflow picked up all the entries from the database, but only loaded covers for the albums that are in the playlist. huh.gif

Then I added more albums to the playlist and restarted foobar. It loaded covers based on what is in the playlist. Then, I added all my music collation to the playlist and restarted, it loaded all covers accordingly. That is, covers for all library items, even if I cleared the playlist. Now it loads all covers, not based on the playlist, but the library, which its correct based the above assumptions. unsure.gif

Is this a bug, or is it meant to work this way?
Chronial
QUOTE
In my initial load, my playlist had about three albums in it. The coverflow picked up all the entries from the database, but only loaded covers for the albums that are in the playlist.

Then I added more albums to the playlist and restarted foobar. It loaded covers based on what is in the playlist. Then, I added all my music collation to the playlist and restarted, it loaded all covers accordingly. That is, covers for all library items, even if I cleared the playlist. Now it loads all covers, not based on the playlist, but the library, which its correct based the above assumptions.

Well, from my point of view that is simply impossible ^^. I do _never_ access the playlist anywhere in my code. My plugin has no way to even know what's in the playlist and what's not. I guess there was a problem with you database got fixed by adding all the songs to the playlist. Otherwise it's a foobar bug. My plugin can by no means cause that behaviour itself.
Philipp
I don't know if this is the right thread for this question, but perhaps here are some people who can help me:

I use a custom progress bar, taken from fooblog:
CODE
$drawrect($eval(%_width%/6),$eval(%_height%-56),$eval(%_width%/6*4),14,brushcolor-0-0-0 pencolor-50-50-50)
$puts(progress,$muldiv(%playback_time_seconds%,$eval(%_width%/6*4-8),%length_seconds%))
$ifgreater($get(progress),0,
$drawrect($eval(%_width%/6+4),$eval(%_height%-52),$get(progress),6,brushcolor-50-50-50 pencolor-50-50-50)
,)


When I start a song by double-click from the playlist or double-click in the album list, everything works fine. When I double-click on a cover in the chronflow panel, the progress bar just doesn't appear. The static frame (first code-line) is there, of course, but the progress bar itself (last code-line) won't show up. The only way to make the bar reappear is restarting the song from the playlist or album list.

Any ideas what I've done wrong?
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Invision Power Board © 2001-2008 Invision Power Services, Inc.