mirror of
https://github.com/microtherion/VocalEasel.git
synced 2024-12-22 11:14:00 +00:00
57 lines
1.3 KiB
C++
57 lines
1.3 KiB
C++
/*
|
|
* TVLSoundOut.cpp
|
|
* Vocalese
|
|
*
|
|
* Created by Matthias Neeracher on 12/19/05.
|
|
* Copyright 2005 __MyCompanyName__. All rights reserved.
|
|
*
|
|
*/
|
|
|
|
#include "VLSoundOut.h"
|
|
|
|
#include <iostream>
|
|
#include <CoreFoundation/CoreFoundation.h>
|
|
|
|
int main(int argc, char *const argv[])
|
|
{
|
|
VLSoundOut * soundOut = NULL;
|
|
|
|
if (argc > 2) {
|
|
CFStringRef outFile =
|
|
CFStringCreateWithCString(NULL, argv[2], kCFStringEncodingUTF8);
|
|
CFURLRef outURL =
|
|
CFURLCreateWithFileSystemPath(NULL, outFile, kCFURLPOSIXPathStyle, false);
|
|
soundOut = VLSoundOut::FileWriter(outURL, 0);
|
|
CFRelease(outURL);
|
|
CFRelease(outFile);
|
|
} else {
|
|
soundOut = VLSoundOut::Instance();
|
|
}
|
|
|
|
if (argc > 1) {
|
|
CFStringRef inFile =
|
|
CFStringCreateWithCString(NULL, argv[1], kCFStringEncodingUTF8);
|
|
CFURLRef inURL =
|
|
CFURLCreateWithFileSystemPath(NULL, inFile, kCFURLPOSIXPathStyle, false);
|
|
CFDataRef inData;
|
|
CFURLCreateDataAndPropertiesFromResource(NULL, inURL, &inData,
|
|
NULL, NULL, NULL);
|
|
soundOut->PlayFile(inData);
|
|
CFRelease(inData);
|
|
CFRelease(inURL);
|
|
CFRelease(inFile);
|
|
} else {
|
|
std::string chordName;
|
|
|
|
while (std::cin >> chordName) {
|
|
VLChord chord(chordName);
|
|
|
|
soundOut->PlayNote(chord);
|
|
usleep(250*1000);
|
|
soundOut->PlayChord(chord);
|
|
}
|
|
}
|
|
|
|
exit(0);
|
|
}
|