//
//  MessageSoundEffect.m
//
//  Created by Jesse Squires on 2/15/13.
//  Copyright (c) 2013 Hexed Bits. All rights reserved.
//
//
//  The MIT License
//  Copyright (c) 2013 Jesse Squires
//
//  Permission is hereby granted, free of charge, to any person obtaining a copy of this software and
//  associated documentation files (the "Software"), to deal in the Software without restriction, including
//  without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
//  copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the
//  following conditions:
//
//  The above copyright notice and this permission notice shall be included in
//  all copies or substantial portions of the Software.
//
//  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
//  LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
//  IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
//  IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE
//  OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
//

#import "MessageSoundEffect.h"

@interface MessageSoundEffect ()
+ (void)playSoundWithName:(NSString *)name type:(NSString *)type;
@end

static BOOL isPlaying = NO;


@implementation MessageSoundEffect

+(void)initialize
{
    [super initialize];
    isPlaying = NO;
}

static void completionCallback (SystemSoundID  mySSID, void *clientData) {
    // Play again after sound play completion
    isPlaying = NO;
}

+ (void)playSoundWithName:(NSString *)name type:(NSString *)type
{
    if (!isPlaying) {
        NSString *path = [[NSBundle mainBundle] pathForResource:name ofType:type];
        
        if([[NSFileManager defaultManager] fileExistsAtPath:path]) {
            NSURL *url = [NSURL fileURLWithPath:path];
            isPlaying = YES;
            SystemSoundID sound;
            AudioServicesCreateSystemSoundID((__bridge CFURLRef)url, &sound);
            AudioServicesAddSystemSoundCompletion (sound, NULL, NULL,
                                                   completionCallback,
                                                   (__bridge void*) self);
            AudioServicesPlaySystemSound(sound);
//            if ([name isEqualToString:@"messageReceived"]) {
//                AudioServicesPlaySystemSound(kSystemSoundID_Vibrate);
//            }
        }
        else {
            NSLog(@"**** Sound Error: file not found: %@", path);
        }
    }

}

+ (void)playMessageReceivedSound
{
    [MessageSoundEffect playSoundWithName:@"messageReceived" type:@"aiff"];
}

+ (void)playMessageSentSound
{
    [MessageSoundEffect playSoundWithName:@"messageSent" type:@"aiff"];
}



@end