//
//  soundPlay
//
//  Created by AIG-Soft on 2012/09/17
//  Copyright 2012-2015 AIG-Soft. All rights reserved.
//
//  フレームワークにAudioToolbox.frameworkの追加が必要
//
//	シミュレーター上では音がでないので、確認は実機で行うこと

#import "soundPlay.h"

@implementation SoundPlay

// 音データの読み込み
// 音声はcaf/aiff/wavで30秒以内に限る
// この中でリソースのディレクトリを検索してくれるので、fnameはファイル名のみで良い
// iTunes側は検索できない
-(id)initWithFile:(NSString *)fname resourceType:(NSString *)resourceType
{
	printSelf();
	self=[super init];
	if (self) {
		@autoreleasepool {
			nslog(@"音データの読み込み:fname=%@.%@",fname,resourceType);
			CFBundleRef mainBundle=CFBundleGetMainBundle();
			soundURL  =CFBundleCopyResourceURL(mainBundle,(__bridge CFStringRef)fname,(__bridge CFStringRef)resourceType ,NULL);
//	#ifdef DEBUG
			if (soundURL==NULL) {
				nslog(@"ファイルが見つかりません");
				self=nil;
				return (self);
			}
//	#endif
			AudioServicesCreateSystemSoundID(soundURL, &soundID);
			nslog(@"soundID=%d/soundURL=%p",(int)soundID,soundURL);
		}
	}
	return (self);
}

// 音を鳴らす
// シミュレーター上では鳴らない
-(void)play
{
	nslog(@"soundPlay.play:soundID=%d",(int)soundID);
	AudioServicesPlaySystemSound(soundID);
}


// ID番号を直接指定して鳴らす
// iOS内蔵音を鳴らすため
+(void)play:(int)sno
{
	nslog(@"soundPlay.play:soundID=%d",(int)sno);
	AudioServicesPlaySystemSound(sno);
}


// 音処理の開放
-(void)dealloc
{
	printSelf();
	AudioServicesDisposeSystemSoundID(soundID); // AudioServicesCreateSystemSoundID()はこれで開放される
	CFRelease(soundURL);
}

@end
