// // 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