Xion Audio Player

A few pertaining to layer names. (Now Playlist suggestions)

Feature Requests and Ideas

Postby Cliff Cawley » February 16th, 2009, 10:38 pm

Cliff Cawley Wrote:Ok, in that case I'll make it so that the playlist component can be embedded within the main player window. It'll mean there is no separate window for the playlist on some skins, it will be in the main window. This is the way that Winamp does it.


Ok, I just attempted to do this and its physical impossible in Windows to have a second Window as a child to a Layered window as it doesn't draw it at all.

The only time I've seen drop shadows in Winamp is on the main window, which is what Xion does. The only other time I've seen this is in a specific skin where they hack it to have several other windows following the edge of the resizeable window.

The reason for this is that Windows doesn't allow you to do this. It looks like the only way I'm going to be able to get a playlist that has soft edges is to create my own List box control from scratch and custom draw everything. This will take some time to set up and won't be done for a while as it will stop the release of the skinned playlist and other features for quite some time.

There are many more features that need to be implemented before the soft edges on playlists, which to me is something very minor and something that even Winamp doesn't do.

Cliff :)
Cliff Cawley
Creator of Xion
r2 Studios
http://www.r2.com.au
http://xion.r2.com.au
User avatar
Cliff Cawley
Creator of Xion
 
Posts: 1955
Joined: September 3rd, 2006, 11:33 am
Location: Brisbane, Australia

Postby xonenine » February 17th, 2009, 4:15 am

Thanks for the effort, Cliff, I'll concentrate on more skinned playlists for now. :)
xonenine
User avatar
xonenine
Xion Freak
 
Posts: 873
Joined: February 8th, 2008, 1:29 pm
Location: NY

Postby Jikaru » February 17th, 2009, 11:29 pm

im not quite understanding what you tried to do...you have playlist.psd call an area specified by playlist layer name and the playlist is put in that area filled by pixels, so why can't you just have [skinname].psd have the same functionality. What does windows have to do with your playlist function being called? Windows is only a shell for the display of the window with whatever functionality you provide VIA code, which in turn should allow you to do anything you want, and Winamp does this...so im not understanding what you tried to do exactly...
User avatar
Jikaru
Xion Fan
 
Posts: 306
Joined: December 26th, 2007, 1:56 pm
Location: Orlando, FL, USA

Postby Cliff Cawley » February 18th, 2009, 1:27 pm

Jikaru Wrote:im not quite understanding what you tried to do...you have playlist.psd call an area specified by playlist layer name and the playlist is put in that area filled by pixels, so why can't you just have [skinname].psd have the same functionality. What does windows have to do with your playlist function being called? Windows is only a shell for the display of the window with whatever functionality you provide VIA code, which in turn should allow you to do anything you want, and Winamp does this...so im not understanding what you tried to do exactly...


I kept my response as non-technical as possible. Here's something a little more meaty:

The playlist window and all of its functionality live in one plugin.dll
The main window and all of its functionality live in another plugin.dll

Both windows use what's called 'Layered windows'. This feature is only available in Windows 2000+.

There are some problems with Layered windows.

The fundamental problem is that they don't render any child controls or windows if they contain alpha information. So take the main window for example.

If I slap a text box on that window I won't be able to see it when I render the skin as the UpdateLayeredWindow Function will update the window with the skin information, but then not draw any other sub controls. I.e. I control all drawing now that I'm using a Layered window.

The only way to have a Layered window that draws its controls/child windows is to disable its ability to draw Alpha or use ColorKey Alpha (ColorKey Alpha makes a single color transparent, everything else opaque). When you do this, all controls/child windows draw but you don't get the nice soft alpha edges anymore.

When I said I attempted to embed the playlist window within the main window, I was attempting to set the Playlist window as a child window of the Main window. When I did this, the child window would never get drawn at all. So in effect the Playlist completely disappeared.

I've checked out Winamp and it does the same thing. In the instance that it has a playlist or multiple controls embedded on a skinned window, they don't allow soft alpha, only the hard edged version.

I have one or two other ideas to try later when I get some more time, however for the moment its functioning similar to Winamp.

Cliff :)
Cliff Cawley
Creator of Xion
r2 Studios
http://www.r2.com.au
http://xion.r2.com.au
User avatar
Cliff Cawley
Creator of Xion
 
Posts: 1955
Joined: September 3rd, 2006, 11:33 am
Location: Brisbane, Australia

Postby Jikaru » February 18th, 2009, 11:43 pm

Winamp Classic does this, but what about how Winamp Modern skins? They have "soft" alpha capabilities. Especially since they can use png format. But I assume that would require "attaching" a png to a layered window...I'll let you try your other ways and I guess if it's impossible then its impossible and Ill have to deal, the alternative at this point is not worth losing all the transparency for simple functionality. There wouldn't be a way to change or add functionality to the library would there? So that you could make a layered window call a child window?
User avatar
Jikaru
Xion Fan
 
Posts: 306
Joined: December 26th, 2007, 1:56 pm
Location: Orlando, FL, USA

Postby SLoB » February 19th, 2009, 1:42 am

yea we hack winamp to add in alpha blended playlists, its not ideal

can understand the issues, the solution though is deffo more entertaining ;)

how about the playlist becomes a series of layers rather than using windows controls which do not support dta
this way you could create any kind of background, colour, transparency etc.. and show a list of layers which essentially look like the playlist, this would seem an obvious choice to me as a potential solution

ie create a single layer or couple of layers as a row if wanting some kind of striping effect or even add in a colour in the layer title keyword
then depending on the height of the playlist show as many rows that can fit in
this would then enable styling on the layer so all manner of cool looking playlists could emerge from it
User avatar
SLoB
Xion Junkie
 
Posts: 1340
Joined: September 11th, 2006, 9:21 pm
Location: UK

Postby Jikaru » February 19th, 2009, 4:02 pm

this would potentially limit the size of the playlist, and there is a slight bug (annoyance) where the main window is still moveable even when your hovering over transparent areas which in turn if you had the potential area of playlist items probably labeled 1,2,3,4...etc would make the transparent area huge and you would never be able to get lower than the main window of the skin. So this would limit the playlist to a very small area, which wouldn't be ideal, but what you could do is make that layer resizable like edge's and probably only be able to stretch horizontally, vertically would stretch the space in between the items (visually) so I'm interested to see what Cliff is capable of doing to get a playlist area in the main area of the skin.
User avatar
Jikaru
Xion Fan
 
Posts: 306
Joined: December 26th, 2007, 1:56 pm
Location: Orlando, FL, USA

Postby SLoB » February 20th, 2009, 11:17 am

what would potentially limit the size of the playlist Jikaru?

my idea of using a layer as a row * x rows in the visible area wouldn't affect the size of the playlist at all

using a text layer for example which is already part of the skinning engine would get around the issue of using windows controls as it could have a custom list and could be a fantastic way to add in lots of graphical features within it, ie add in extra sub layers attached to a row for icons, song times etc..

would also mean the sliderbits could be used rather than a windows scroll bar and also the playlist background could be added into the main player without issue

I think that would be pretty much the way I would add it in, not sure on what Cliff might have planned as an alternative?
User avatar
SLoB
Xion Junkie
 
Posts: 1340
Joined: September 11th, 2006, 9:21 pm
Location: UK

Postby Jikaru » February 25th, 2009, 1:07 pm

if you were to have say something like this: Image

unless the window was resizable this would limit the size of the playlist. I suppose if the playlist was in like this the bug I found, when the playlist window is open, possibly would be eliminated, but we wouldn't know unless there was a nightly build to test it. But thats my alpha vision of what I would use it for.
User avatar
Jikaru
Xion Fan
 
Posts: 306
Joined: December 26th, 2007, 1:56 pm
Location: Orlando, FL, USA

Postby Cliff Cawley » February 25th, 2009, 7:30 pm

Jikaru Wrote:if you were to have say something like this: Image

unless the window was resizable this would limit the size of the playlist. I suppose if the playlist was in like this the bug I found, when the playlist window is open, possibly would be eliminated, but we wouldn't know unless there was a nightly build to test it. But thats my alpha vision of what I would use it for.


You should be able to have all these controls on the current playlist, which means its resizeable.

Cliff :)
Cliff Cawley
Creator of Xion
r2 Studios
http://www.r2.com.au
http://xion.r2.com.au
User avatar
Cliff Cawley
Creator of Xion
 
Posts: 1955
Joined: September 3rd, 2006, 11:33 am
Location: Brisbane, Australia

Postby Jikaru » February 26th, 2009, 10:06 am

minus the transparency right? when the window is inactive it is opaque. I do not like losing this functionality in turn for a connected playlist. i'd rather keep that and open a playlist then to switch, And besides the keyboard commands would be screwy and there wouldn't be a main window.
User avatar
Jikaru
Xion Fan
 
Posts: 306
Joined: December 26th, 2007, 1:56 pm
Location: Orlando, FL, USA

Postby Cliff Cawley » February 26th, 2009, 1:04 pm

Jikaru Wrote:minus the transparency right?


In build 109, yes that's correct. I can't speak for build 110 ;)

Cliff :)
Cliff Cawley
Creator of Xion
r2 Studios
http://www.r2.com.au
http://xion.r2.com.au
User avatar
Cliff Cawley
Creator of Xion
 
Posts: 1955
Joined: September 3rd, 2006, 11:33 am
Location: Brisbane, Australia

Postby Cliff Cawley » February 26th, 2009, 10:11 pm

*Ahem*. Ladies and Gentlemen, behold:

Image

For those that aren't sure what this is:

I now have 100% full alpha working on the playlist window. This means soft edges on the playlist allowing for things such as drop shadow and transparency to the desktop!

Even Winamp doesn't do that! (minus those few skins who managed to hack some shadows in)

This will be available in 110 once I've stabilised it some more.

Cliff :)
Cliff Cawley
Creator of Xion
r2 Studios
http://www.r2.com.au
http://xion.r2.com.au
User avatar
Cliff Cawley
Creator of Xion
 
Posts: 1955
Joined: September 3rd, 2006, 11:33 am
Location: Brisbane, Australia

Postby WinstonGFX » February 27th, 2009, 1:05 am

Oh hell yes, now I must redo the PL on the skin I'm working on, it will look so nice with this now.
User avatar
WinstonGFX
Xion Admirer
 
Posts: 161
Joined: March 3rd, 2007, 6:47 pm
Location: Philadelphia, PA and New Jersey

Postby logokas » February 27th, 2009, 3:09 am

Holy shit.

How'd you do it?!
I shoot and ask questions later.

Take no offense of it.
User avatar
logokas
Xion Addict
 
Posts: 668
Joined: February 25th, 2008, 8:44 am
Location: Estonia
PreviousNext

Return to Feature Requests

Who is online

Users browsing this forum: No registered users and 1 guest