Welcome to MSDN Blogs Sign in | Join | Help

April 2005 - Posts

Before I can talk about reading audio CDs using DAE (Digital Audio Extraction), I need to talk a bit about what data's actually on the audio CD, since we're going to be reading the raw audio data from the CD. An audio CD contains audio samples sampled Read More...
As I said yesterday, it's going to take a bit of time to get the next article in the "cdrom playback" series working, so I thought I'd turn the blog around and ask the people who read it a question. I was reading Channel9 the other day, and someone turned Read More...
Today, we play the actual audio track on the CD using the MCI commands. HRESULT CMCICommandCDPlayer::PlayTrack(int TrackNumber) { MCIERROR mciError; MCI_SET_PARMS setParms = {0}; MCI_PLAY_PARMS playParms = {0}; // // The track number from the host app Read More...
So I'm in a training course this afternoon. And the guy in front of me is surfing the web on his tablet. And I noticed what was on his screen... http://blogs.msdn.com/larryosterman . Very, very wierd. I doubt he even realized that I was behind him. Read More...
I'm almost done with the easy part of the "playing a CD" series. Today, we'll look at the other half of the MCI APIs, the MCI command set. HRESULT CMCICommandCDPlayer::Initialize(void) { MCIERROR mciError; MCI_STATUS_PARMS statusParms = {0}; MCI_OPEN_PARMS Read More...
The other day , I wrote about dumping the track database on an audio using the MCI string command set. Today, I'll include the piece I left out of the last article, actually playing a track from the CD. HRESULT CMCIStringCDPlayer::PlayTrack(int TrackNumber) Read More...
Today, I want to talk about one of the most weird and wonderful APIs in all of Windows. It's also one of the oldest - the creation date on the source file is April 25, 1990. This API is the MCI command set . It's an example of defining two separate APIs Read More...
Every morning, I take Daniel to school. He goes to school in Edmonds, which is about 20 minutes north of our home (and about 40 minutes from Microsoft). It's an long-ish commute (7:30 to somewhere between 9:00 and 9:30) but it's worth it :). So this morning, Read More...
Yesterday , I looked a a simple application for dumping the track information on a CD. Since I'm going to be working on this concept (playing a CD) for a while, I figured I'd restructure the app to make it somewhat more generic. First off, lets define Read More...
Someone at work passed this around, it's a relaxing moment for our hectic days. It made me laugh, so... Edit: Since Sanjay's still getting hits from this one, a bit more info's involved. It turns out that Sanjay wasn't posting that to post an ironic commentary Read More...
One of the cool things about working in multimedia is that you sometimes have opportunities to play with cool bits of hardware. This article isn't about one of them :). Instead, it's about something really quite mundane. Playing a CD programmatically. Read More...
Time to spread a smidge of dirt on Microsoft :). One of my favorite dialog boxes is found in Outlook. If you dig deep enough into your email accounts, you'll find the following dialog box: The reason I like this dialog box is the default setting "Compressible Read More...
Bruce Schneier has a truly fascinating article about the procedures that are followed during a Papal Election. Since the conclave of cardinals has just convened, it's interesting to see the process (as opposed to the politics) thats going on inside the Read More...
The family (Mom, Dad, Daniel, Sharron and Grandma) spent this weekend up at the Whidbey Equestrian Center for the WEC's April Fools Dressage Show . Sharron (and, of course Oliver the wonder pony) was riding the USDF Training Level 1 and 2 tests (twice Read More...
Well, clearly the shorter the example, the quicker people pick up the problem. The problem was: if (!CreateProcessW(NULL, PROCESS_NAME, NULL, NULL, FALSE, 0, NULL, NULL, &startupInfo, &processInformation)) The issue here is that you can't pass Read More...
Anyway, I ran into this problem while I was writing some stuff at work. I've restructured it to remove the "work-ness" of the code, but the problem still exists. It's short, but sweet: #include <stdio.h> #include <windows.h> #define PROCESS_NAME Read More...
I first heard about this issue on Car Talk the other day, and recently ran into this article on Snopes about it... It turns out that on VW cars (and other manufacturers), the pattern for the door key is based on the VIN for the car. What that effectively Read More...
This year's Rube Goldberg contest requires that the team build a device to remove the old batteries and insert new batteries in 20 or more steps. The winning team, from Purdue took 125 steps. A Quicktime video of their machine can be found here . The Read More...
Riffing on Raymond, once again :) Raymond's post today reminded me of an email message sent out (company wide) by one of the very senior developers on the Windows 1.0 team about 6 months before they shipped. In his email, the developer announced that Read More...
Over the weekend, I got my most recent copy of Locus (the only magazine I read cover-to-cover :)). In it, the lede was that Andre Norton died on the 17th of March, 2005. I'm not really surprised, she'd been in poor health for quite some time, but... Andre Read More...
I mentioned in the last post that the C standard is agnostic w.r.t. alignment. So why on earth did Microsoft chose the default alignment to be naturally aligned? After all, the compiler would be completely within the standard if it chose to pack its data Read More...
Yesterday , I wrote a bit about how the C compiler determines the alignment of structures. I left with an example of an MS-DOS structure that didn't follow the alignment rules. So how do you deal with this? The first question that comes to mind is "What's Read More...
I got an email the other day from someone (who will remain nameless) complaining about the fact that some of the NT structures had to be declared with #pragma pack: Consider file WinBase.h from the Platform SDK, containing the following declaration: > Read More...
When you have an API set as large as the Win32 API set, sometimes APIs get "lost". Either by forgetfulness, or by the evolution of the hardware platform. We've got one such set of APIs here in multimedia-land, they're the "aux" APIs. The "aux" APIs ( Read More...
A bit of truly ancient history today, and it's not even Microsoft related. Back when I was in college, we did all our class work on Decsystem 20's running TOPS-20. I've got to say that the dec20 is STILL my favorite processor architecture, even if it Read More...
Wow, what a weekend. Sorry about going dark without notice, I had this really great post (much funnier and more insightful than my usual drivel) ready to go last Wednesday when I got a phone call from my step-mom. "Your Dad's collapsed in court today, Read More...
 
Page view tracker