GOGO.DLL エンコードサンプル

カレントディレクトリにある、WAVEファイル"TEST.WAV"を、MP3ファイルへ変換します。

1.プログラムを開始するにあたって

本サンプルはVisualC++6.0 + SP3 及び Borland C++ Builder用に書かれたものです。
他のバージョンでの動作確認は行っておりません。

2.最低必須の知識

サンプルプログラムをお読みいただく上で、最低限の知識が最低限必要となります。

3.サンプルソース testenc.cpp stab.cpp musenc.h testenc.exe


/*
 *  カレントディレクトリのTEST.WAVをエンコードする. 
 *  コンパイル時stab.cppを一緒にコンパイルしてください
 */
/*
 *	for GOGO-no-coda (1999.11.09)
 *	Copyright (C) 1999 PEN@MarineCat
 */
#include <stdio.h>
#include <stdlib.h>
#include "musenc.h"

int
main()
{

	static	const char *filename = "test.wav";
	MERET	rval;

	// 1. DLL読み込み&初期化
	if( MPGE_initializeWork() != ME_NOERR )
		return -1;			// エラー

	// 2. ファイル名の設定
	MPGE_setConfigure( MC_INPUTFILE, MC_INPDEV_FILE, (UPARAM)filename);

	// 3. パラメータ解析
	rval = MPGE_detectConfigure();
	if( rval == ME_NOERR ){
		// 正常終了した場合
		// 全フレーム数を取得
		UPARAM	totalFrame, curFrame;
		MPGE_getConfigure( MG_COUNT_FRAME, (UPARAM*)&totalFrame);
		curFrame = 0;
		// 4.エンコード開始
		do {
			if( totalFrame )
				printf("%d / %d (%d%%)\r", curFrame, totalFrame, 
					curFrame / ((totalFrame + 99)/100) );
			curFrame++;
			// 1フレームエンコードを繰り返す
			rval = MPGE_processFrame();
			// 入力ストリームがなくなる(ME_EMPTYSTREAM) or 
			// その他エラーが発生するまで繰り返し。
		} while( rval == ME_NOERR );
		if( rval != ME_EMPTYSTREAM ){
			printf("\n\nエラーが発生しました errcode = %d \n", rval);
		}
	} else {
		if( rval == ME_INFILE_NOFOUND )
			printf("入力ファイル[test.wav]を開けませんでした\n");
		else
			printf("解析エラーが発生しました\n");
	}

	// 5.エンコーダーを閉じる
	MPGE_closeCoder();

	// 6.DLL終了 & 開放
	MPGE_endCoder();

	return 0;
}