Start a new topic
Implemented

Visualizations support

Via BassVis


3 people like this idea

I actually tried this but it became slow, since I had to deactivate/activate the rendering upon each page change of an album.

The most users (according to tracked statistics) visit an albumpage quite quickly so this will result in a much slower navigation.

Another thing that will slow things down is that I had to create a wrapper for the WinFormsHost control to workaround the transparency problem with the main window, which also cause some initialization speed-downs.


I think the optimal solution to start with is:

  • Docked in the Now playing, with either three static heights or resizable via a splitter
  • A built-in full-size mode as shown as in my screenshot (only available if docked mode is not slected)
  • Full screen

Possibly also in a separated window.
A lot things still remains though, so things may still change...

>>I actually tried this but it became slow, since I had to deactivate/activate the rendering upon each page >>change of an album.

why to slow?

do not stop/deaktivate the plugin after create only Change the stream that is all.

you can set the hight and with to 1 PIxel if your Change to Now Playing Screen then resize the ViWindow to 320x240


and also Sonique Plugins has a viewport so youcan Change or play with it for lower CPU Speed.


greets


The slowness mainly relates to that the HostContainer needs to be deallocated and reallocated after a view change (WPF related, not BASSVis related).

This might be possible to be improved though after the basics are working.

Here's a first draft of how a docked vis can look.


you can not set the HostContainer to 1 Pixel ? on initialize Neon (Firststart)

after Change to NowPlaying only resize the entyre control

not deallocated or reallocated.


i think that is not needed.

only resize should not be a Problem.


greets

>>Here's a first draft of how a docked vis can look.

sorry that shown wrong for me.. no good idea Change Resolution outside 4X3

sample 320x240.


there is no question whether I want it
but it is necessary so that the visualizations are displayed correctly.


just my 2 Cent


greets


@Emil:

I need to create the host container in code to workaround the limitation in WPF which does not allow the main windows to be (partially)transparent when using hosted WinForms controls which is required to display the visualization.


Therefore upon each page change that can show a plugin, it is needed to:

1) Create a hosted control with an own window handle, which reacts to position/size changes in the main window

2) Create the WinForms control which will host the visualization (PictureBox)


When a page is changed it is therefore needed to:

1) Dereference and release the PictureBox

2) Unregister the "fake" window created 


This process is slow and comple but a must to be able to use the WPF window styling.


>>sorry that shown wrong for me.. no good idea Change Resolution outside 3X4

This was just a sample of how it can look when docked. 

Of course the best is to keep the aspect ratio or just let it be up to the user as in earlier Helium versions.


Personally, I never use the Now playing container so I would prefer full-screen or the full-size (1st screenshot) mode.

But it will be up to the user.


So please note, this is a draft only. Nothing is finished. yet.


Edit: The facts above were the reasone why I tried to avoid WinForms as long as I could :)

Closed as implemented. Fine tuning remains, which is tracked in bug reports.

Login or Signup to post a comment