Archive for category WWWinamp

ZOMG! IS WWWINAMP PHONING HOME?!

No.

The new auto-update feature simply grabs the following XML file over HTTP:

http://www.enusbaum.com/autoupdate/wwwinamp.xml

This XML file contains version information on the latest release of WWWinamp and a couple extra tags, such as URL and a text area for the latest changes. If WWWinamp detects that there’s a newer version based on this XML file, it’ll simply display a message upon startup in the main WWWinamp window. Nothing will be downloaded or executed in the background.

If you’re uncomfortable with this feature, you can disable it by setting the configuration option WWWinamp.AutoUpdate to “false”.

Cheers! :)

No Comments

WWWinamp v4.2 Build 2948 (Beta)

The new version of WWWinamp has finally arrived!

This version of WWWinamp requires that you have the Microsoft .NET Framework 3.5 installed. You can get this from Microsoft.com by clicking here.

I’m calling it beta because a -lot- has changed behind the scenes and I did my best to test every feature but I might have missed a few bugs here and there. If you’re not comfortable running unstable version of software, then I suggest you install the previous release of WWWinamp v4.1 Build 2809. You can get it from here.

What’s new in this version of WWWinamp?

  • [HTTP] Recoded processing of inbound HTTP Requests
  • [HTTP] Fixed Defect #46: Processing HTTP Auth header even if one isn’t present
  • [WCF] Small Optimizations
  • Requires Microsoft .NET Framework 3.5
  • Autoupdate Checks for new release on startup of WWWinamp (can be disabled in config)
  • Minor UI Fixes

This version of WWWinamp is mostly a code cleanup and conversion to the .NET Framework 3.5. The source code now weighs in at a 300+ lines of code lighter than the previous version, while still maintaining the same functionality. I’m currently working on a Silverlight skin for WWWinamp which interfaces with the WCF endpoint for greater control and seamless use. Expect that to be out in the next month or so… well, perhaps longer ;) I’m not too good with graphics and UI stuff, so I’ll do the best I can.

I also took the time and added a lot of comments to the WWWinamp CONFIG file. This should help users figure out what each configuration option means and their different settings. Hopefully this should help lower the amount of e-Mail I get from people who are getting errors because WWWinamp isn’t configured properly ;)

Again, this is a BETA version and might not work 100% properly… it could have some personality ;) But I believe it’s stable enough for release.

Share and enjoy!

WWWinamp v4.2 Build 2948Download (56k)

, ,

5 Comments

A new version of WWWinamp is coming… I SWEAR!

Hello Everyone!

I’m currently working on the latest version of WWWinamp after taking another hiatus from the project in order to clear my head and work on some other fun things such as the previously mentioned XNA projects :)

The next version of WWWinamp will be targeted for the .NET 3.5 Framework and you will need to have it installed on your machine in order to run WWWinamp. Most of the changes in this version are behind the scenes and will probably be transparent to you, the user. BUT, some visible changes in the upcoming version of WWWinamp 4.2 will be:

  • Automatic Version Checking for new releases of WWWinamp
  • Ability to enable or disable Automatic Version Checking
  • Ability to enable or disable Windows Vista warning message
  • Improved performance under load

I know, nothing earth shattering on the horizon. “Why is this?” you might as. Well, the honest reason is that I haven’t received any bug reports with issues that weren’t related to a misconfiguration or user error. This is a good thing! It means that WWWinamp is stable and there aren’t any horrible bugs that continue to nag users. The downside to this is that because WWWinamp is pretty feature rich as is, I’m running low on ideas that could be implemented.

An idea I’ve tossed about and am thinking about trying out is creating a WWWinamp .NET assembly for user within your own Windows or ASP.NET applications developed using the .NET framework. The assembly would handle the media library and searching of the library so you wouldn’t have to code your own database and file searching routines, as well as handling the unmanaged code required to interface with Winamp (if it’s running locally on the WWWinamp machine) or communicating via WCF to a remote instance of WWWinamp running the WCF daemon.

I think that between the WWWinamp Server and my proposed WWWinamp Assembly, that’d give both advanced and novice users full control over their setup. :)

As I mentioned in a previous post, I’ve moved WWWinamp into Visual Studio 2008 with Team Foundation Server. Within the latest version of Visual Studio 2008 there is a set of code analysis tools which calculate such items as Code Maintainability and Cyclomatic Complexity. I ran it on WWWinamp and it scored the following:

Maintainability Index: 83 (out of 100)

Cyclomatic Complexity: 636

Depth of Inheritance: 7

Class Coupling: 151

Lines of Code: 1,829 (!!)

After over a year, I think WWWinamp has gotten better and continues to improve with every version!

Big thanks to everyone for their support and keep your eyes peeled here for the latest version of WWWinamp!

2 Comments

WWWinamp is being converted to .NET Framework v3.5!

Yep, it’s true!

I’ve spent the last week or so playing around with the .NET Framework v3.5 and I really like what I see. Microsoft has also put a lot of work into Team Foundation Server 2008 as well. I’ve setup a Virtual Machine using Virtual PC here running Team Foundation Server 2008 on Windows 2003 Server R2 and was able to get WWWinamp imported + converted without issue!

[zoomer]66|450|0|WWWinamp in Team Foundation Server 2008|1|0[/zoomer]

One thing I have noticed is that TFS does take up quite a bit of resources. I had to kick my VM up to 2GB of RAM in order for it to handle and build WWWinamp without hitting the swap file. Something to keep in mind moving forward I suppose. I’d imagine a large installation of TFS would require something along the lines of a Quad Core CPU with at least 4GB RAM.

There are several features in .NET 3.5 that I plan on implementing in WWWinamp right off the bat:

  • Object Initializers – This will really help clean up the already massive code base. It’ll also speed things up a bit :)
  • Embedded Manifest – A feature I’m surprised they didn’t implement with the release of .NET 3.0. Now the .manifest file will be embedded into WWWinamp, so you won’t have the extra file handing around if you run Windows Vista :)
  • Extension Methods – Again, this will help clean up the code base and make things faster. I imagine it’ll take up a little more memory, but these days RAM is abundant :)

Now, I see LinQ and I’m trying to figure out it’s role in everything. I think it’ll make DB communication easier but I’m not a fan of the anonymous data types and implicit local variables. I think it could lead to some sloppy coding methodology if not kept in check.

I think it’s handy that you can now run a SQL like statement on a generic, but I’m wondering what sets this apart from the FindAll method that already exists in System.Collection.Generics. It does make it easier though to search through a Generic Collection for a developer who doesn’t have a solid grasp on delegates.

So, all that said, things are moving along. I’ll keep you all updated on the progress and please, send in those feature requests! :)

, , , , ,

1 Comment

WWWinamp Feedback Requested

I started tapping away at the WWWinamp source the other night and was curious if there are any features you guys, the users, would like to see added? I’ve been trying to think up new ideas but I’m not sure if they’d even be helpful.

So basically, I’m asking help for what to put in the next version. If you could leave a comment with any of the following, that’d REALLY help out! :)

  • What feature would you like to see added to WWWinamp?
  • Is there any nagging bug or weird behavior you would like fixed?

I’m currently fiddling around with Visual Studio 2008 right now and am looking into the benefits C# 3.5 offers over 2.0, which the current release of WWWinamp is based upon.

Thanks for your feedback and support everyone! I look forward to your responses! :)

, , ,

3 Comments

Update on WWWinamp and my life in general

Hello Everyone!

I thought I’d post a small update on what’s going on in my little world as well as the status of WWWinamp and other associated projects.

I hope that everyone is enjoying WWWinamp and the work I’ve put into it! I enjoy providing it as much as I love hearing from my users. So please, if you have any feedback or questions, send them to WWWINAMP ATnospam ENUSBAUM.COM (you know what I mean). I try to reply to each user request as quickly as time allows.

So where do things stand? Well, things have been at a bit of a stand still for the last month or so. On top of my wife and I moving into a new place, we were also impacted by the wildfires that swept through San Diego county in October. Because of this, I haven’t been able to dedicate too much time to development projects.

Now that things are starting to settle back down, I’ve picked up the code base and started to tinker away once again. I’m currently working on a WWWinamp WPF XBAP using XAML. Lots of acronyms, I know. But basically it’ll be as if you’re running WinAmp within the browser, and then have that browser copy of WinAmp control WWWinamp using it’s WCF endpoint. This would be another real world use of the WCF endpoint.

I know some people use Mac as well (I’m included, I’ve been using my PowerPC Notebook now for a couple years), so I’m going to try to write a class or two using Coaca and Objective-C to interface with the WCF endpoint in WWWinamp using SOAP. This way, it might be possble to write native OSX applications that can also control WWWinamp remotely.

So anyways, that’s a quick status update. I hope to have an updated build of WWWinamp out by the end of next week which will include some bug fixes and a couple new features which are from the v3.0 branch. These are being added at the request of user e-Mails. So keep ‘em coming!

Cheers!

8 Comments

Getting an error every time you start WWWinamp v4.1?

Are you getting the following error every time you start WWWinamp?
[csharp]
System.Configuration.ConfigurationErrorsException: Configuration system failed to initialize —> System.Configuration.ConfigurationErrorsException: Unrecognized configuration section system.serviceModel. (C:\WWWinamp\WWWinamp.exe.Config line 67)
at System.Configuration.ConfigurationSchemaErrors.ThrowIfErrors(Boolean ignoreLocal)
at System.Configuration.BaseConfigurationRecord.ThrowIfParseErrors(ConfigurationSchemaErrors schemaErrors)
at System.Configuration.BaseConfigurationRecord.ThrowIfInitErrors()
at System.Configuration.ClientConfigurationSystem.EnsureInit(String configKey)
— End of inner exception stack trace —
at System.Configuration.ClientConfigurationSystem.System.Configuration.Internal.IInternalConfigSystem.GetSection(String sectionName)
at System.Configuration.ConfigurationManager.GetSection(String sectionName)
at System.Configuration.ConfigurationManager.get_AppSettings()
at ENusbaum.Applications.WWWinamp.Classes.AppConfiguration.get_configWWWinampStartHTTP()
at ENusbaum.Applications.WWWinamp.Forms.frmMain.Form1_Load(Object sender, EventArgs e)
[/csharp]

This is WWWinamp’s friendly way of saying that you do not have the Microsoft .NET Framework v3.0 installed. You can download it from Microsoft here.

Cheers! :)

2 Comments

WWWinamp v4.1 WCF Client Example (Update for Build 2809)

This is an update to the original WWWinamp WCF Client Example (please read the original post for configuration and help).

This update adds support for the new WWWinampGetStatus() method. This method was added so the WCF could could easily access information on WinAmp and WWWinamp including the current configuration values.
Supported values:

  • CommandName
    • “CURRENT_SONG”
      • CommandValue
        • “TITLE” – Returns Title of Current Song
        • “NUMBER” – Returns Playlist Number or Current Song
        • “BITRATE” – Returns Bitrate of Current Song
        • “SAMPLERATE” – Returns Sample Rate of Current Song
        • “LENGTH” – Returns Length of Current Song (in Milliseconds)
        • “ELAPSED” – Returns Elapsed Time of current Song (in Milliseconds, -1 if Stopped)
        • “STATUS” – Returns Playing Status of Current Song (Playing, Paused, Stopped)
    • “LIBRARY”
      • CommandValue
        • “SIZE” – Returns the size of the Library (Number of Files)
    • “PLAYLIST”
      • CommandValue
        • “SIZE” – Returns the size of the Playlist (Number or Files)
        • “POSITION” – Returns the current position of WinAmp in the Playlist
    • “CONFIG”
      • CommandValue
        • WWWinamp Config Value Defined in WWWinamp.config (i.e. “WWWinamp.Media.HomeDirectory”)

Please let me know if you encounter any errors while testing this new method!

Cheers!

WWWinamp WCF Client Example for WWWinamp Build 2809 – Download (14k)

No Comments

WWWinamp v4.1 Build 2809

Hello Everyone!

The latest build of WWWinamp is good to go. I’ve been trying to expand out the WCF Endpoint to include as much information to the client as possible. This should allow a remote application access to every resource that WWWinamp has available locally.

WWWinamp v4.1 Build 2809 includes the following fixes/changes:

  • [WCF] Added WWWinampGetStatus() Method to retrieve information on WinAmp and the current file
  • [HTTP] Fixed script parsing issue when a file contained multiple HTML comment tags
  • [HTTP] Added optional Google AdWords to help support program
  • Minor UI Fixes

One of the small changes to this version is a small Google AdWords banner on the playlist screen. This is an optional script tag which can be removed. Leaving in this small banner will help support WWWinamp.

I’m also going to release an updated WWWinamp WCF Client Example program which includes the additional functionality which is included in Build 2809.

Again, I ask users of WWWinamp to submit their Error Logs so we can make WWWinamp a better product!
Cheers!

WWWinamp v4.1 Build 2809Download (57k)

UPDATE: The new WCF Example Client can be found here. It includes examples on how to use the new method WWWinampGetStatus() as well as a few bug fixes. The C# source code for this example is provided. For development environment prerequisites and setup help, please read this post.

3 Comments

WWWinamp v4.1 Build 2800

A big THANKS to all who submitted their WWWinamp Error Logs to me. I was able to track down a couple of nagging issues for this minor bug-fix build.

Bugs fixed in Build 2800 are:

  • Fixed error when trying to generate playlist when the playlist was empty
  • Fixed error when trying to generate playlist and winamp.m3u can’t be found

I’m working on getting the WinAmp Status script tags worked into the WCF endpoint. They should be ready to rock with the next release.

WWWinamp v4.1 Build 2800Download (55k)

Cheers!

1 Comment