Recently in Programming Projects Category
I've had a program I've been tooling around with for a while now. It started out as something I could use to fix the tags on my MP3s (sort of like my old MP3 Unicoder application) and convert the text from various encodings to Unicode.
I redid this prototype called Text Converter, it doesn't write MP3 ID3 tags yet (mainly because I couldn't get CSID3Lib to actually write tags properly) but the text conversion piece seems to be working beautifully.
If there's any actual interest in using this aside from a little app that I use to fix my non-Unicoded tags, then let me know and I'll clean it up and make it something usable for anybody other than myself.
Here's an example converting Shift-JIS:

Here's another example converting EUC-KR:

Ultimately, I'm going to finish this to actually read and write MP3 tags (right now it's too much of a manual process), but is there any interest in something like this?
I’ve struggled with this for a couple of weeks now, and figured somebody could offer me some assistance.
As a proof of concept, I’m writing a small CLI program that sits idly waiting for COM events from an application. The application throws COM events as dispinterfaces using IDispatch.
Using C# or .NET, subscribing to events is an almost trivial undertaking, but doing this under Win32 and C++ seems ridiculously complicated, and I’m utterly lost as to what to do. I’ve found a plethora of tutorials on the web, but none of them seem to help very much. Perhaps I don’t know what I’m looking for. I’ve searched on things like “connection points”, “IDispatch”, “dispinterfaces”, “COM events”, and a dizzying array of other combinations.
Basically, how can I tell this simple CLI driven application to listen to COM events and run the methods specified by the dispinterface. What I want to do surely doesn’t seem complicated, but with the level of simplicity I’m looking for in this case, it’s leaving me completely lost as far as where to go.
Any help would be much appreciated, as I figure I can’t be the only person in the world who wants to do something like this. >_<
Could some kind soul please tell me where in the fuck I can procure man3 stdlib pages for OSX? It's really pissing me off trying to do a man on a stdlib function only to once again realize the man pages are missing.
Hugs and kisses..
I discovered this great Microsoft blog called "The Daily WTF" with all kinds of amusing attempts at technological mishaps and general WTF behavior.
This one linked here was by far the most amusing, and saddening.
C'mon people, if you're going to turn C into VB, just write it in VB.
The link: Stupid Curly Braces
The sound pressure makes you feel refreshment of mind and body.: Newest version of XiTunes Released
Same features as before, but timestamps now display properly (stupid printf).
Instructions and details on how to retrieve it are here
I've released my 0.2 version.
Here's what's been done.
1) Unicode support is 100% working. No matter what codepage you're using in X-Chat, it will do the right thing to convert the Unicode into something that your codepage can understand.
2) icmd command has added a "track" to show yourself (and not bug the channel) what you're playing.
3) Output now shows title, artist, album, time, bitrate, kind.
Things to come are full customizability on the layout, and better library controls (none of this icmd crap).
I've completed an early, but usable prototype plugin for X-Chat and iTunes users.
XiTunes was originally written using the old iTunes "Visualizer" SDK. It was difficult to write for, and requried the use of multiple DLLs to ship data between X-Chat and iTunes. With the new iTunes COM SDK, it makes it much easier to talk between the two applications.
Download the XiTunes DLL, and load it in X-Chat. You can get help by typing /xihelp after it loads.
Current features:
* Announce to the channel what track you're listening to.
* Play/Pause, Track-Forward, Track-Backwards all from within iTunes.
More features to come. I plan to add a /dcc download trigger, further iTunes integration including buttons in the GUI itself, and other features.
Notes:
Requires Windows iTunes 4.5 or newer.
Tested with Windows X-Chat 2.0.8b. I do not know how well it works with earlier/later versions.
I don't guarantee that it won't crash your X-Chat. X-Chat's C plugin API doesn't seem very stable sometimes. But, in all, it works pretty well.
The new iTunes SDK is so nice, I plan to write more applications taking advantage of it, including programs to fetch album art, fix MP3 tags, normalize internationalization, and many others. I'm swimming in ideas for this right now.
Enjoy, and let me know if you have any problems.
Just in case any geeks have problems, I also have the debugging symbols available.
I've got a C++ function that returns a struct that I created. While running in the debugger, everything in the struct looks fine.
However, once I return the pointer and collect it in the other function, one of the fields in the struct is all mangled. I don't understand what the hell is going on.
Read on for more information.
(Edit: Solved.)
(Edit #2: Moved the details to a summary, it was breaking XML syndication X_x).
I'm up to 107 entries. I just updated it today. If you use the wonderful Adblock extension for Firefox, then you owe it to yourself to import this list into your filters. :)
For more details including how to use this list and where to get it, check out my prior entry.
Maybe this stuff will be/is fixed in Whidbey, I don't know. The May Preview of VS.NET2005 is so busted for me, I can't even create a new smart device project.
There's two programs I'm trying to write in my spare time. The first is a Weight Watchers Points calculator for the Smartphone, the other is a Weight Watchers virtual diary application for the Pocket PC. Both have been a struggle.
First, with the calculator app, I can't find a way to create a NumericUpDown control, or worse yet, I can't find a way to create a text box that only accepts numbers. For a phone device, these oversights are simply unforgivable. Yes, I could do this kind of stuff with custom programming, but I'm trying to make these apps as simple as possible.
With the diary application, I'm trying to use a datagrid to display information in a friendly and readable format. Since I'm not connecting to a database or anything, I figure that the best method would be to use an XML data store. Pretty simple, I figure. .NET's serialization can easily transform data from objects to XML and back. It's extremely cool and convenient and many programs I've used lately have made use of it. But, the .NET Compact Framework doesn't support this. Damn~! Apparently, Whidbey supports this, but since I can't get VS.NET 2005 to work, it's kind of a moot point.
I was going to install VS.NET2005 in a Virtual PC since installing it on my XP box completely hosed the .NET FW support for many of my existing applications. I read that VPC doesn't support the Windows Mobile device emulator so I may be SOL until a more stable version of VS.NET2005 comes out. *sigh*
ATTN: THIS HAS BEEN DEPRECATED. PLEASE DO NOT TRY TO INSTALL OR USE IT. INSTEAD, OPEN THIS BLOG ENTRY TO INSTALL THE LATEST WORKING VERSION. THANK YOU.
Edit: Sorry, Remy. Since the X-Chat and iTunes APIs are platform specific, it's Windows only. Besides, there's already a Mac X-Chat/iTunes plugin. XD
I have finished a very early, very alpha version of my silly "Now Playing" plugin thingy for iTunes/X-Chat.
It's very early in its development, and unfourtunately at this stage requires the SwissArmiTunes plugin to operate properly.
To run it, download the DLL from here and tell your X-Chat to "Load Plugin or Script" on it. Type /mp3 to announce to the channel what you're listening to.
Here's what it does do:
* In conjunction with the SwissArmiTunes plugin, "/me"s what you're playing to the channel.
* Shouldn't crash your X-Chat ;)
Here's what's to come:
* Unicode support: The X-Chat API does not support double-byte chars, so Unicode support does not work right now. This is a fundamental X-Chat API flaw and requires someone (me or them) to fix it.
* All-in-One plugin: Right now the plugin requires my hacked together SwissArmiTunes plugin which populates the registry. The next step is to write a single plugin that interoperates with X-Chat and iTunes in a single DLL. This allows for ..
* Customizability and More Verbosity: Right now all it does is print the artist/title/album in a set format. Future releases will be able to have a custom format along with what you want it to say.
If you experience any problems, you can do this to help me: type
/mp3debug (turn on debugging) and then tell me what happens when you type /mp3. If X-Chat crashes, let me know what the crash message was.
I am almost done with the back-end piece to the MP3 Pictifier portion of my MP3Magick software suite. To make my life easier, and reduce the headache of there not being a real .NET API for WMP right now, I'm writing the back-end APIC processing piece in C++. I'm getting pretty close.
Mikimis: prepare to be inseminated.
ATTN: THIS HAS BEEN DEPRECATED. PLEASE DO NOT TRY TO INSTALL OR USE IT. INSTEAD, OPEN THIS BLOG ENTRY TO INSTALL THE LATEST WORKING VERSION. THANK YOU.
I've completed phase 1 in my iTunes plugin, and that's the facility that populates the "HKCU\Software\Microsoft\MediaPlayer\CurrentMetadata" field that various some programs use to get the "Now Playing" status. This documented as part of the WMP9 Fun Pack Blogging Plug-In, but since this plug-in is written entirely from scratch, I didn't use any of it. :)
Also, despite the fact that the tool I'm using to post this (w.bloggar) is most certainly *not* Unicode friendly, my app is and writes to the registry using Unicode.
If you want to check it out, download the DLL from here, and copy it to your iTunes\Plug-Ins directory. That's it. It doesn't need to be enabled or anything to work.
I plan on adding much more kitchen sink functionality to it (hence the name) but this is a start at the very least.
Writing a library for XChat using the API. This will perform the following functions:
* Allow for customizable scripted actions (see !scareblue).
* "Now Playing" banner for use in channel that will plug into WinAmp, WMP9, iTunes, etc.
* Other 31337 mIRC-like stuff that's missing from XChat right now. :)
It will be written in C++, and should be portable unless I decide to use Win32 API calls for configuration. Then I'll leave it up to somebody else to port to another graphics library. :)
