Skip to main content

Notice

Please note that most of the software linked on this forum is likely to be safe to use. If you are unsure, feel free to ask in the relevant topics, or send a private message to an administrator or moderator. To help curb the problems of false positives, or in the event that you do find actual malware, you can contribute through the article linked here.
Topic: foo_browser (Read 424086 times) previous topic - next topic
0 Members and 2 Guests are viewing this topic.

foo_browser

I broke off my playlist tree browser into its own component, and changed the way it works a bit.  It now offers browsing in a similar fashion to iTunes.  This should be considered a BETA release.

*  foo_browser adds 5 panels you can add to your columns ui layout, one each for Genre, Artist, Album and Title.  Additional panels can be created in the preferences menu
* By default, foo_browser shows the selection contents in its own playlist named "*Browser*"
* Adds "Browse" to context menu which will populate all the panels from your selections
* initially foo_browser will show entire library.

screenshot at http://foobar.bowron.us/foo_browser.png

More info: http://wiki.bowron.us/index.php/Foobar2000
There used to be a link to my website here.

foo_browser

Reply #1
A future must-have, no doubt

But... it doesn't work : Failed to load DLL: foo_browser.dll

foo_browser

Reply #2
I'm thinking this could possibly be a dependency issue...

I believe it requires msvcrt.dll and msvcr80.dll.

EDIT: Removed dll links
There used to be a link to my website here.

foo_browser

Reply #3
Very, very interesting starting point.

I wonder how high it will be flying in a couple of months...
I think this will become a very popular tool.

As soon as you feel you can get feature requests about it, just let us know.

foo_browser

Reply #4
Still doesn't work 
Where do I put them exactly ?

foo_browser

Reply #5
Quote
Very, very interesting starting point.

I wonder how high it will be flying in a couple of months...
I think this will become a very popular tool.

As soon as you feel you can get feature requests about it, just let us know.
[a href="index.php?act=findpost&pid=374416"][{POST_SNAPBACK}][/a]

Does it work ?

foo_browser

Reply #6
Great component! All seems to be working mostly fine here so congrats on that.
Only comments I can make are that the ordering of items in the browsers seems to be random which makes selecting difficult, and how do you undo a browse context menu selection to go back to all?

A couple of ideas for aesthetics: adding an option to change the background colour would be great, and removing the foo_browser: part of the titles would make things look neater.

foo_browser

Reply #7
Quote
Quote
Very, very interesting starting point.

I wonder how high it will be flying in a couple of months...
I think this will become a very popular tool.

As soon as you feel you can get feature requests about it, just let us know.
[a href="index.php?act=findpost&pid=374416"][{POST_SNAPBACK}][/a]

Does it work ?
[a href="index.php?act=findpost&pid=374420"][{POST_SNAPBACK}][/a]


Of course.

And I don't have any msvc... etc in my "C\:Programmi\foobar2000 09" directory.
I only have a msvcrt71 into my regular Foobar 0.8.3 dir, but I don't know if this matters.

I'm on XP SP1.

foo_browser

Reply #8
Quote
Great component! All seems to be working mostly fine here so congrats on that.
Only comments I can make are that the ordering of items in the browsers seems to be random which makes selecting difficult, and how do you undo a browse context menu selection to go back to all?

A couple of ideas for aesthetics: adding an option to change the background colour would be great, and removing the foo_browser: part of the titles would make things look neater.
[a href="index.php?act=findpost&pid=374429"][{POST_SNAPBACK}][/a]


Hey, let the guy work!

I think this was just a quickly put together thing to prove to himself that he can do it.
And only later he thought to let us know about it.

I agree it's quite a teaser...

foo_browser

Reply #9
The concept is attracting, but the library is rescanned too frequently, making it unusable.
There is no manament of VA albums.
The sort order of the playlist is destroyed.
I would suggest (if feasible) to configure each panel with a tagz string.

Great idea anyway

foo_browser

Reply #10
Quote
Hey, let the guy work!

I think this was just a quickly put together thing to prove to himself that he can do it.
And only later he thought to let us know about it.

I agree it's quite a teaser...
[a href="index.php?act=findpost&pid=374432"][{POST_SNAPBACK}][/a]

Yeah maybe I jumped the gun a bit there!

I worked out how to get browse back to all so no problem there. It'll be interesting to see how this progresses. keep up the good work!

foo_browser

Reply #11
All I can say is...Excellent Component! always wanted an itunes like browser for foobar


A couple of request though

1) Don't show horizontal scrollbars in panels
2) Add a 'refresh' option to the context menu so when tags are updated foobar does't have to be restarted to see the results in the panels
3) Make its own playlist for the displayed results like foo_ui_albumlist

Thanks

foo_browser

Reply #12
Some issues:
  • Setting WS_TABSTOP on the listview is pretty useless without setting WS_EX_CONTROLPARENT on the dialog itself, i.e. you cannot tab in and out of the panel without this.
  • It would be nice if one could see the selected item in each panel (set LVS_SHOWSELALWAYS on the listview).
  • Probably obvious, but for the sake of completeness: The lists should be sorted.
  • The panel titles could do with a change. I'd replace the component filename in the panel titles with a friendlier name, like "Browser", or "Library Browser" or another one of your choice.
  • Please do not modify the contents of the current playlist without setting an undo point. Just call playlist_manager::playlist_undo_backup() before you modify the playlist.
  • An alternative would be to put the search results into a separate locked playlist (with a friendly lock name, i.e. not "foo_browser"). Setting undo points would not be required then, but blocking add and remove operations could be a good idea.
  • Resetting the browser to display all entries seems quite slow; it would be worth investigating why. pfc/profiler.h has some classes that could help with this.
  • Please, please, read up on Redistributing Visual C++ Files before recommending people to download random DLLs. Using static linking is an easy way to reduce the dependencies of your component, if your build environment allows this (I'm not sure if Visual C++ Express does).

foo_browser

Reply #13
Quote
http://www.dll-files.com/dllindex/dll-files.shtml?msvcr80
[a href="index.php?act=findpost&pid=374406"][{POST_SNAPBACK}][/a]

I hope whoever visits that page takes a good look at the comments. I'll quote the Microsoft representative who had to post there:
Quote
Hello everyone, My name's Martyn Lovell, and I'm the development lead of the team that produces msvcr80.dll [The Visual C++ Libraries team]. There are a couple of things I'd like to clarify. First, let me be clear that NOONE should download the file linked here, because it is a beta copy of the software and not compatible with the final version that has now been released. If you've already downloaded it, please delete it. [...]  Martyn Lovell Development Lead Visual C++ Libraries
.

foo_browser

Reply #14
So why isn't it working here ?

foo_browser

Reply #15
Very nice man...Just one feature that is a must have, display the items in a set playlist.
Sorting, at least alphabetizing, would be good too. Great job though!

foo_browser

Reply #16
It's a fantastic start, and i bet it'll be one of the more popular components out there, but the things that foosion mentioned are big issues.

A problem that sticks out for me especially is the slowness that comes with resetting the display to all items.


Some basic issues (some of these have been mentioned already):

(1) As said before, resetting the display is slow in some situations.

(2) When the display is updating, the lists in the panels turn grey (as in, window-coloured, not list-coloured). It would look a lot nicer if they just stayed the normal list colour.

(3) There doesn't appear to be any easy way of updating the lists. If i have a genre x and a genre y, and i retag all the genre x files to be genre y, the entry for genre x remains in the list. If i try to click it, it actually causes my foobar to hang.

(4) And, of course, the sorting. Should be alphabetical by default, customisable would be great.


Aesthetic issues:

(1) There should be an option, at least, to disable the horizontal scroll bars. They look kinda gross.

(2) Having the column headers AND the captions is redundant. There should be an option to disable either or both of them (not just the captions).

(3) Colour/formatting/scripting options (like the ones in the album list component) would be nice.

(4) If possible, it would be nice to have an option to 'focus' the selected item in the list. I mean, i haven't used iTunes in a long time, but i think that when you select a genre in the list, the list moves down so that the item you selected is at the top of the list. Maybe some other way of showing what item you've selected (e.g., a right-aligned arrow next to the selected item).




It's a totally great start, though. It'll be a must-have with a little work.

foo_browser

Reply #17
awesome looking potential
just wondering how i can configure it?
or is that too early for that?

this looks almost exactly like musikCube, winamp media library type functionality, which is awesome

i re arrange my music too often to worry about play lists
thats why this appealrs to me so much

keep up the good work i will be using/watching this closely

foo_browser

Reply #18
Mmmmmm..

On another PC (XP SP1 too) Foobar can't even load the dll.
What do you think should I check?

Thanks.

foo_browser

Reply #19
Same for me : unable to load dll
XP SP2

but snapshots looks good 

foo_browser

Reply #20
Thanks for the feedback, especially foosion and for his updated tutorial which made it easier for me to add the main menu items...

Just uploaded a new version... 1.0beta2...

Changelog:

Quote
Release 1.0beta 2

    * 2006-03-24
          o Show selection always
          o WS_EX_CONTROLPARENT
          o Moved Reset Browsers into main menu under library
          o Moved "foo_browser" back to "Browse"
          o Browsing playlist = "*Browser*"
          o Panels named "Browser [HEADER]"
          o sort
          o Added #Title Panel which has the title *AND* the track number
          o row_info now has a bit_array mask rather than a complete list of handles for each row
          o Turn off redraw when repopulating

    * 2006-03-23
          o Added "foo_browser/Reset Browsers" in context menu
          o Moved "Browse" to "foo_browser/Browse" in context menu


http://wiki.bowron.us/index.php/Foobar2000:Browser:Changelog
There used to be a link to my website here.

foo_browser

Reply #21
That's awesome, that fixes a lot of the major issues.


My foobar hangs if i right-click (in the 'Genre' browser) though. Does it do that for you?
~

foo_browser

Reply #22
Quote
My foobar hangs if i right-click (in the 'Genre' browser) though. Does it do that for you?
[a href="index.php?act=findpost&pid=374785"][{POST_SNAPBACK}][/a]


I can confirm this 100% CPU usage
EDIT: Happens when right clicking any panel now :S

I cannot understand the function of the browse item in the context menu. If i right click and select browse it does the same thing if i would click on the artist/album/... name. And this might be a BUG: when you click browser and display one artist there is no way to go back to the whole library without restarting. It should sho all the artists again when I click all...shouldn't it

About the Playlist name...this is a minor thing but...I wish instead of naming it *Browser* it were named "Library' Seems kinda logical to me...maybe that can be implemented when user configurable options (fonts, background border etc) are added to the GUI.

Lastly, thanks for this wonderful plugin!!

foo_browser

Reply #23
Quote
I can confirm this 100% CPU usage
EDIT: Happens when right clicking any panel now :S

I cannot understand the function of the browse item in the context menu. If i right click and select browse it does the same thing if i would click on the artist/album/... name. And this might be a BUG: when you click browser and display one artist there is no way to go back to the whole library without restarting. It should sho all the artists again when I click all...shouldn't it

About the Playlist name...this is a minor thing but...I wish instead of naming it *Browser* it were named "Library' Seems kinda logical to me...maybe that can be implemented when user configurable options (fonts, background border etc) are added to the GUI.

Lastly, thanks for this wonderful plugin!!
[a href="index.php?act=findpost&pid=374807"][{POST_SNAPBACK}][/a]


1 - The issue with the context menu is this:  Each label in a browser can represent many, many files... especially in the Genre category... So when you right click an item, it has to create the list of all the files that the label represents so that the context menu can be created and called... The more items that the label represents, the longer that process is going to take...

2 - Selecting Browse from the context menu, replaces the contents of ALL browsers with only the tracks that were selected... If you select browse from the context menu, then go back into genre or artist and select "All" that All only represents all the items that were sent over to the browser from the browse command... If you want to go back to the full library, use the main menu option under Library... Usually what happens is that the higher level browsers repopulate the lower level ones when selections are made... So that click on a genre will ripple down through artist, album and title... Then if you select "All" in genre, everything will get populated from the entire contents of the Genre panel...

3 - I envision that I will be making some things configurable such as colors, fonts and browsing playlist name... Possibly even Panel headers and formats... I do not want it to get out of control like Playlist Tree got though, so I will be keeping things reasonable..
There used to be a link to my website here.

foo_browser

Reply #24
Quote
1 - The issue with the context menu is this: Each label in a browser can represent many, many files... especially in the Genre category... So when you right click an item, it has to create the list of all the files that the label represents so that the context menu can be created and called... The more items that the label represents, the longer that process is going to take...


maybe something like foo_albumlist could be done in that case...i am presuming right clicking 'all' option in both components returns the same context menu