From 4a37599866439ce11580e214fd6fff0c727580ad Mon Sep 17 00:00:00 2001 From: Thong Nguyen Date: Fri, 15 Nov 2013 15:51:50 +0000 Subject: [PATCH] Added logging support --- Audjustable-head.podspec | 13 +++++ Audjustable/Classes/AudioPlayer/AudioPlayer.h | 9 +-- Audjustable/Classes/AudioPlayer/AudioPlayer.m | 55 ++++++++++++------- .../AutoRecoveringHttpDataSource.h | 12 ++-- .../AutoRecoveringHttpDataSource.m | 10 ++-- .../AudioPlayer/CoreFoundationDataSource.h | 8 +-- .../AudioPlayer/CoreFoundationDataSource.m | 8 +-- Audjustable/Classes/AudioPlayer/DataSource.h | 8 +-- Audjustable/Classes/AudioPlayer/DataSource.m | 8 +-- .../Classes/AudioPlayer/DataSourceWrapper.h | 10 ++-- .../Classes/AudioPlayer/DataSourceWrapper.m | 10 ++-- .../Classes/AudioPlayer/HttpDataSource.h | 8 +-- .../Classes/AudioPlayer/HttpDataSource.m | 8 +-- .../Classes/AudioPlayer/LocalFileDataSource.h | 8 +-- .../Classes/AudioPlayer/LocalFileDataSource.m | 8 +-- Audjustable/Classes/AudioPlayerView.h | 8 +-- Audjustable/Classes/AudioPlayerView.m | 8 +-- 17 files changed, 115 insertions(+), 84 deletions(-) create mode 100644 Audjustable-head.podspec diff --git a/Audjustable-head.podspec b/Audjustable-head.podspec new file mode 100644 index 0000000..a4fc400 --- /dev/null +++ b/Audjustable-head.podspec @@ -0,0 +1,13 @@ +Pod::Spec.new do |s| + s.name = "Audjustable" + s.version = "0.0.0" + s.summary = "A fast and extensible audio streamer for iOS and OSX with support for gapless playback and custom (non-HTTP) sources." + s.homepage = "http://tumtumtum.github.com/audjustable/" + s.license = 'MIT' + s.author = { "Thong Nguyen" => "tumtumtum@gmail.com" } + s.source = { :git => "https://github.com/tumtumtum/audjustable.git"} + s.platform = :ios + s.requires_arc = true + s.source_files = 'Audjustable/Classes/AudioPlayer/*.{h,m}' + s.frameworks = 'AVFoundation', 'SystemConfiguration', 'CFNetwork', 'CoreFoundation', 'AudioToolbox' +end diff --git a/Audjustable/Classes/AudioPlayer/AudioPlayer.h b/Audjustable/Classes/AudioPlayer/AudioPlayer.h index 2934e31..0e4a1ff 100644 --- a/Audjustable/Classes/AudioPlayer/AudioPlayer.h +++ b/Audjustable/Classes/AudioPlayer/AudioPlayer.h @@ -18,12 +18,12 @@ documentation and/or other materials provided with the distribution. 3. All advertising materials mentioning features or use of this software must display the following acknowledgement: - This product includes software developed by the . - 4. Neither the name of the nor the + This product includes software developed by Thong Nguyen (tumtumtum@gmail.com) + 4. Neither the name of Thong Nguyen nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. - THIS SOFTWARE IS PROVIDED BY ''AS IS'' AND ANY + THIS SOFTWARE IS PROVIDED BY Thong Nguyen''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BE LIABLE FOR ANY @@ -103,6 +103,7 @@ AudioPlayerErrorCode; -(void) audioPlayer:(AudioPlayer*)audioPlayer didFinishBufferingSourceWithQueueItemId:(NSObject*)queueItemId; -(void) audioPlayer:(AudioPlayer*)audioPlayer didFinishPlayingQueueItemId:(NSObject*)queueItemId withReason:(AudioPlayerStopReason)stopReason andProgress:(double)progress andDuration:(double)duration; @optional +-(void) audioPlayer:(AudioPlayer*)audioPlayer logInfo:(NSString*)line; -(void) audioPlayer:(AudioPlayer*)audioPlayer internalStateChanged:(AudioPlayerInternalState)state; -(void) audioPlayer:(AudioPlayer*)audioPlayer didCancelQueuedItems:(NSArray*)queuedItems; @end @@ -172,7 +173,7 @@ AudioQueueBufferRefLookupEntry; volatile BOOL audioQueueFlushing; volatile SInt64 audioPacketsReadCount; volatile SInt64 audioPacketsPlayedCount; - + BOOL meteringEnabled; AudioQueueLevelMeterState* levelMeterState; NSInteger numberOfChannels; diff --git a/Audjustable/Classes/AudioPlayer/AudioPlayer.m b/Audjustable/Classes/AudioPlayer/AudioPlayer.m index 7cd5340..3ad42cb 100644 --- a/Audjustable/Classes/AudioPlayer/AudioPlayer.m +++ b/Audjustable/Classes/AudioPlayer/AudioPlayer.m @@ -18,12 +18,12 @@ documentation and/or other materials provided with the distribution. 3. All advertising materials mentioning features or use of this software must display the following acknowledgement: - This product includes software developed by the . - 4. Neither the name of the nor the + This product includes software developed by Thong Nguyen (tumtumtum@gmail.com) + 4. Neither the name of Thong Nguyen nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. - THIS SOFTWARE IS PROVIDED BY ''AS IS'' AND ANY + THIS SOFTWARE IS PROVIDED BY Thong Nguyen''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BE LIABLE FOR ANY @@ -248,12 +248,13 @@ @interface AudioPlayer() @property (readwrite) AudioPlayerInternalState internalState; +-(void) logInfo:(NSString*)line; -(void) processQueue:(BOOL)skipCurrent; -(void) createAudioQueue; -(void) enqueueBuffer; --(void) resetAudioQueue; +-(void) resetAudioQueueWithReason:(NSString*)reason; -(BOOL) startAudioQueue; --(void) stopAudioQueue; +-(void) stopAudioQueueWithReason:(NSString*)reason; -(BOOL) processRunloop; -(void) wakeupPlaybackThread; -(void) audioQueueFinishedPlaying:(QueueEntry*)entry; @@ -376,6 +377,14 @@ static void AudioQueueIsRunningCallbackProc(void* userData, AudioQueueRef audioQ return isRunning ? YES : NO; } +-(void) logInfo:(NSString*)line +{ + if ([self->delegate respondsToSelector:@selector(audioPlayer:logInfo:)]) + { + [self->delegate audioPlayer:self logInfo:line]; + } +} + -(id) init { return [self initWithNumberOfAudioQueueBuffers:AudioPlayerDefaultNumberOfAudioQueueBuffers andReadBufferSize:AudioPlayerDefaultReadBufferSize]; @@ -1219,7 +1228,7 @@ static void AudioQueueIsRunningCallbackProc(void* userData, AudioQueueRef audioQ // Reset metering enabled in case the user set it before the queue was created [self setMeteringEnabled:meteringEnabled]; - + free(cookieData); } @@ -1338,7 +1347,7 @@ static void AudioQueueIsRunningCallbackProc(void* userData, AudioQueueRef audioQ { newFileToPlay = YES; - [self resetAudioQueue]; + [self resetAudioQueueWithReason:@"from skipCurrent"]; } [self wakeupPlaybackThread]; @@ -1355,7 +1364,7 @@ static void AudioQueueIsRunningCallbackProc(void* userData, AudioQueueRef audioQ { pthread_mutex_unlock(&queueBuffersMutex); - [self resetAudioQueue]; + [self resetAudioQueueWithReason:@"from setCurrentlyReadingEntry"]; pthread_mutex_lock(&queueBuffersMutex); } @@ -1513,7 +1522,7 @@ static void AudioQueueIsRunningCallbackProc(void* userData, AudioQueueRef audioQ } else if (self.internalState == AudioPlayerInternalStateStopped && stopReason == AudioPlayerStopReasonUserAction) { - [self stopAudioQueue]; + [self stopAudioQueueWithReason:@"from processRunLoop/1"]; currentlyReadingEntry.dataSource.delegate = nil; [currentlyReadingEntry.dataSource unregisterForEvents]; @@ -1565,7 +1574,7 @@ static void AudioQueueIsRunningCallbackProc(void* userData, AudioQueueRef audioQ currentlyReadingEntry = nil; pthread_mutex_unlock(&queueBuffersMutex); - [self resetAudioQueue]; + [self resetAudioQueueWithReason:@"from processRunLoop"]; } else if (currentlyReadingEntry == nil) { @@ -1613,7 +1622,7 @@ static void AudioQueueIsRunningCallbackProc(void* userData, AudioQueueRef audioQ { if (self.internalState != AudioPlayerInternalStateStopped) { - [self stopAudioQueue]; + [self stopAudioQueueWithReason:@"from processRunLoop/2"]; stopReason = AudioPlayerStopReasonEof; } } @@ -1767,7 +1776,7 @@ static void AudioQueueIsRunningCallbackProc(void* userData, AudioQueueRef audioQ if (audioQueue) { - [self resetAudioQueue]; + [self resetAudioQueueWithReason:@"from seekToTime"]; } if (currentEntry) @@ -1793,7 +1802,7 @@ static void AudioQueueIsRunningCallbackProc(void* userData, AudioQueueRef audioQ [self startSystemBackgroundTask]; } - [self stopAudioQueue]; + [self stopAudioQueueWithReason:@"from startAudioQueue"]; [self createAudioQueue]; self.internalState = AudioPlayerInternalStateWaitingForQueueToStart; @@ -1806,18 +1815,22 @@ static void AudioQueueIsRunningCallbackProc(void* userData, AudioQueueRef audioQ return YES; } --(void) stopAudioQueue +-(void) stopAudioQueueWithReason:(NSString*)reason { OSStatus error; if (!audioQueue) { + [self logInfo:[@"stopAudioQueue/1 " stringByAppendingString:reason]]; + self.internalState = AudioPlayerInternalStateStopped; return; } else { + [self logInfo:[@"stopAudioQueue/2 " stringByAppendingString:reason]]; + audioQueueFlushing = YES; error = AudioQueueStop(audioQueue, true); @@ -1854,10 +1867,12 @@ static void AudioQueueIsRunningCallbackProc(void* userData, AudioQueueRef audioQ self.internalState = AudioPlayerInternalStateStopped; } --(void) resetAudioQueue +-(void) resetAudioQueueWithReason:(NSString*)reason { OSStatus error; + [self logInfo:[@"resetAudioQueue/1 " stringByAppendingString:reason]]; + pthread_mutex_lock(&playerMutex); { audioQueueFlushing = YES; @@ -2010,6 +2025,8 @@ static void AudioQueueIsRunningCallbackProc(void* userData, AudioQueueRef audioQ { if (![self audioQueueIsRunning]) { + [self logInfo:@"startAudioQueue from dataSourceEof"]; + [self startAudioQueue]; } } @@ -2066,7 +2083,7 @@ static void AudioQueueIsRunningCallbackProc(void* userData, AudioQueueRef audioQ if (seekToTimeWasRequested) { - [self resetAudioQueue]; + [self resetAudioQueueWithReason:@"from resume"]; } error = AudioQueueStart(audioQueue, 0); @@ -2219,7 +2236,7 @@ static void AudioQueueIsRunningCallbackProc(void* userData, AudioQueueRef audioQ { NSAssert(NO, @"Metering is not enabled. Make sure to set meteringEnabled = YES."); } - + NSInteger channels = currentAudioStreamBasicDescription.mChannelsPerFrame; if (numberOfChannels != channels) @@ -2231,9 +2248,9 @@ static void AudioQueueIsRunningCallbackProc(void* userData, AudioQueueRef audioQ levelMeterState = malloc(sizeof(AudioQueueLevelMeterState) * numberOfChannels); } } - + UInt32 sizeofMeters = sizeof(AudioQueueLevelMeterState) * numberOfChannels; - + AudioQueueGetProperty(audioQueue, kAudioQueueProperty_CurrentLevelMeterDB, levelMeterState, &sizeofMeters); } diff --git a/Audjustable/Classes/AudioPlayer/AutoRecoveringHttpDataSource.h b/Audjustable/Classes/AudioPlayer/AutoRecoveringHttpDataSource.h index be8ac7f..88f2637 100644 --- a/Audjustable/Classes/AudioPlayer/AutoRecoveringHttpDataSource.h +++ b/Audjustable/Classes/AudioPlayer/AutoRecoveringHttpDataSource.h @@ -5,7 +5,7 @@ https://github.com/tumtumtum/audjustable Copyright (c) 2012 Thong Nguyen (tumtumtum@gmail.com). All rights reserved. - + Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright @@ -15,15 +15,15 @@ documentation and/or other materials provided with the distribution. 3. All advertising materials mentioning features or use of this software must display the following acknowledgement: - This product includes software developed by the . - 4. Neither the name of the nor the + This product includes software developed by Thong Nguyen (tumtumtum@gmail.com) + 4. Neither the name of Thong Nguyen nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY ''AS IS'' AND ANY + + THIS SOFTWARE IS PROVIDED BY Thong Nguyen ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL BE LIABLE FOR ANY + DISCLAIMED. IN NO EVENT SHALL THONG NGUYEN BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND diff --git a/Audjustable/Classes/AudioPlayer/AutoRecoveringHttpDataSource.m b/Audjustable/Classes/AudioPlayer/AutoRecoveringHttpDataSource.m index 5db2e70..e9f51d8 100644 --- a/Audjustable/Classes/AudioPlayer/AutoRecoveringHttpDataSource.m +++ b/Audjustable/Classes/AudioPlayer/AutoRecoveringHttpDataSource.m @@ -5,7 +5,7 @@ https://github.com/tumtumtum/audjustable Copyright (c) 2012 Thong Nguyen (tumtumtum@gmail.com). All rights reserved. - + Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright @@ -15,12 +15,12 @@ documentation and/or other materials provided with the distribution. 3. All advertising materials mentioning features or use of this software must display the following acknowledgement: - This product includes software developed by the . - 4. Neither the name of the nor the + This product includes software developed by Thong Nguyen (tumtumtum@gmail.com) + 4. Neither the name of Thong Nguyen nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY ''AS IS'' AND ANY + + THIS SOFTWARE IS PROVIDED BY Thong Nguyen''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BE LIABLE FOR ANY diff --git a/Audjustable/Classes/AudioPlayer/CoreFoundationDataSource.h b/Audjustable/Classes/AudioPlayer/CoreFoundationDataSource.h index e165b17..f06125c 100644 --- a/Audjustable/Classes/AudioPlayer/CoreFoundationDataSource.h +++ b/Audjustable/Classes/AudioPlayer/CoreFoundationDataSource.h @@ -15,15 +15,15 @@ documentation and/or other materials provided with the distribution. 3. All advertising materials mentioning features or use of this software must display the following acknowledgement: - This product includes software developed by the . - 4. Neither the name of the nor the + This product includes software developed by Thong Nguyen (tumtumtum@gmail.com) + 4. Neither the name of Thong Nguyen nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. - THIS SOFTWARE IS PROVIDED BY ''AS IS'' AND ANY + THIS SOFTWARE IS PROVIDED BY Thong Nguyen ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL BE LIABLE FOR ANY + DISCLAIMED. IN NO EVENT SHALL THONG NGUYEN BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND diff --git a/Audjustable/Classes/AudioPlayer/CoreFoundationDataSource.m b/Audjustable/Classes/AudioPlayer/CoreFoundationDataSource.m index 50d8c7a..bf27fdd 100644 --- a/Audjustable/Classes/AudioPlayer/CoreFoundationDataSource.m +++ b/Audjustable/Classes/AudioPlayer/CoreFoundationDataSource.m @@ -15,15 +15,15 @@ documentation and/or other materials provided with the distribution. 3. All advertising materials mentioning features or use of this software must display the following acknowledgement: - This product includes software developed by the . - 4. Neither the name of the nor the + This product includes software developed by Thong Nguyen (tumtumtum@gmail.com) + 4. Neither the name of Thong Nguyen nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. - THIS SOFTWARE IS PROVIDED BY ''AS IS'' AND ANY + THIS SOFTWARE IS PROVIDED BY Thong Nguyen ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL BE LIABLE FOR ANY + DISCLAIMED. IN NO EVENT SHALL THONG NGUYEN BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND diff --git a/Audjustable/Classes/AudioPlayer/DataSource.h b/Audjustable/Classes/AudioPlayer/DataSource.h index 8caf7a0..155c308 100644 --- a/Audjustable/Classes/AudioPlayer/DataSource.h +++ b/Audjustable/Classes/AudioPlayer/DataSource.h @@ -15,15 +15,15 @@ documentation and/or other materials provided with the distribution. 3. All advertising materials mentioning features or use of this software must display the following acknowledgement: - This product includes software developed by the . - 4. Neither the name of the nor the + This product includes software developed by Thong Nguyen (tumtumtum@gmail.com) + 4. Neither the name of Thong Nguyen nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. - THIS SOFTWARE IS PROVIDED BY ''AS IS'' AND ANY + THIS SOFTWARE IS PROVIDED BY Thong Nguyen ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL BE LIABLE FOR ANY + DISCLAIMED. IN NO EVENT SHALL THONG NGUYEN BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND diff --git a/Audjustable/Classes/AudioPlayer/DataSource.m b/Audjustable/Classes/AudioPlayer/DataSource.m index e5d2266..4cd61c3 100644 --- a/Audjustable/Classes/AudioPlayer/DataSource.m +++ b/Audjustable/Classes/AudioPlayer/DataSource.m @@ -15,15 +15,15 @@ documentation and/or other materials provided with the distribution. 3. All advertising materials mentioning features or use of this software must display the following acknowledgement: - This product includes software developed by the . - 4. Neither the name of the nor the + This product includes software developed by Thong Nguyen (tumtumtum@gmail.com) + 4. Neither the name of Thong Nguyen nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. - THIS SOFTWARE IS PROVIDED BY ''AS IS'' AND ANY + THIS SOFTWARE IS PROVIDED BY Thong Nguyen ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL BE LIABLE FOR ANY + DISCLAIMED. IN NO EVENT SHALL THONG NGUYEN BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND diff --git a/Audjustable/Classes/AudioPlayer/DataSourceWrapper.h b/Audjustable/Classes/AudioPlayer/DataSourceWrapper.h index 90cc9ac..6715577 100644 --- a/Audjustable/Classes/AudioPlayer/DataSourceWrapper.h +++ b/Audjustable/Classes/AudioPlayer/DataSourceWrapper.h @@ -5,7 +5,7 @@ https://github.com/tumtumtum/audjustable Copyright (c) 2012 Thong Nguyen (tumtumtum@gmail.com). All rights reserved. - + Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright @@ -15,12 +15,12 @@ documentation and/or other materials provided with the distribution. 3. All advertising materials mentioning features or use of this software must display the following acknowledgement: - This product includes software developed by the . - 4. Neither the name of the nor the + This product includes software developed by Thong Nguyen (tumtumtum@gmail.com) + 4. Neither the name of Thong Nguyen nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY ''AS IS'' AND ANY + + THIS SOFTWARE IS PROVIDED BY Thong Nguyen''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BE LIABLE FOR ANY diff --git a/Audjustable/Classes/AudioPlayer/DataSourceWrapper.m b/Audjustable/Classes/AudioPlayer/DataSourceWrapper.m index af721c9..2528798 100644 --- a/Audjustable/Classes/AudioPlayer/DataSourceWrapper.m +++ b/Audjustable/Classes/AudioPlayer/DataSourceWrapper.m @@ -5,7 +5,7 @@ https://github.com/tumtumtum/audjustable Copyright (c) 2012 Thong Nguyen (tumtumtum@gmail.com). All rights reserved. - + Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright @@ -15,12 +15,12 @@ documentation and/or other materials provided with the distribution. 3. All advertising materials mentioning features or use of this software must display the following acknowledgement: - This product includes software developed by the . - 4. Neither the name of the nor the + This product includes software developed by Thong Nguyen (tumtumtum@gmail.com) + 4. Neither the name of Thong Nguyen nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY ''AS IS'' AND ANY + + THIS SOFTWARE IS PROVIDED BY Thong Nguyen''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BE LIABLE FOR ANY diff --git a/Audjustable/Classes/AudioPlayer/HttpDataSource.h b/Audjustable/Classes/AudioPlayer/HttpDataSource.h index ee138a1..511f1a3 100644 --- a/Audjustable/Classes/AudioPlayer/HttpDataSource.h +++ b/Audjustable/Classes/AudioPlayer/HttpDataSource.h @@ -15,15 +15,15 @@ documentation and/or other materials provided with the distribution. 3. All advertising materials mentioning features or use of this software must display the following acknowledgement: - This product includes software developed by the . - 4. Neither the name of the nor the + This product includes software developed by Thong Nguyen (tumtumtum@gmail.com) + 4. Neither the name of Thong Nguyen nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. - THIS SOFTWARE IS PROVIDED BY ''AS IS'' AND ANY + THIS SOFTWARE IS PROVIDED BY Thong Nguyen ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL BE LIABLE FOR ANY + DISCLAIMED. IN NO EVENT SHALL THONG NGUYEN BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND diff --git a/Audjustable/Classes/AudioPlayer/HttpDataSource.m b/Audjustable/Classes/AudioPlayer/HttpDataSource.m index a0a5104..62d1842 100644 --- a/Audjustable/Classes/AudioPlayer/HttpDataSource.m +++ b/Audjustable/Classes/AudioPlayer/HttpDataSource.m @@ -15,15 +15,15 @@ documentation and/or other materials provided with the distribution. 3. All advertising materials mentioning features or use of this software must display the following acknowledgement: - This product includes software developed by the . - 4. Neither the name of the nor the + This product includes software developed by Thong Nguyen (tumtumtum@gmail.com) + 4. Neither the name of Thong Nguyen nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. - THIS SOFTWARE IS PROVIDED BY ''AS IS'' AND ANY + THIS SOFTWARE IS PROVIDED BY Thong Nguyen ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL BE LIABLE FOR ANY + DISCLAIMED. IN NO EVENT SHALL THONG NGUYEN BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND diff --git a/Audjustable/Classes/AudioPlayer/LocalFileDataSource.h b/Audjustable/Classes/AudioPlayer/LocalFileDataSource.h index bfdfc73..2df15dc 100644 --- a/Audjustable/Classes/AudioPlayer/LocalFileDataSource.h +++ b/Audjustable/Classes/AudioPlayer/LocalFileDataSource.h @@ -15,15 +15,15 @@ documentation and/or other materials provided with the distribution. 3. All advertising materials mentioning features or use of this software must display the following acknowledgement: - This product includes software developed by the . - 4. Neither the name of the nor the + This product includes software developed by Thong Nguyen (tumtumtum@gmail.com) + 4. Neither the name of Thong Nguyen nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. - THIS SOFTWARE IS PROVIDED BY ''AS IS'' AND ANY + THIS SOFTWARE IS PROVIDED BY Thong Nguyen ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL BE LIABLE FOR ANY + DISCLAIMED. IN NO EVENT SHALL THONG NGUYEN BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND diff --git a/Audjustable/Classes/AudioPlayer/LocalFileDataSource.m b/Audjustable/Classes/AudioPlayer/LocalFileDataSource.m index cc1ddc2..9678ade 100644 --- a/Audjustable/Classes/AudioPlayer/LocalFileDataSource.m +++ b/Audjustable/Classes/AudioPlayer/LocalFileDataSource.m @@ -15,15 +15,15 @@ documentation and/or other materials provided with the distribution. 3. All advertising materials mentioning features or use of this software must display the following acknowledgement: - This product includes software developed by the . - 4. Neither the name of the nor the + This product includes software developed by Thong Nguyen (tumtumtum@gmail.com) + 4. Neither the name of Thong Nguyen nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. - THIS SOFTWARE IS PROVIDED BY ''AS IS'' AND ANY + THIS SOFTWARE IS PROVIDED BY Thong Nguyen ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL BE LIABLE FOR ANY + DISCLAIMED. IN NO EVENT SHALL THONG NGUYEN BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND diff --git a/Audjustable/Classes/AudioPlayerView.h b/Audjustable/Classes/AudioPlayerView.h index fa9929f..ea2fd2f 100644 --- a/Audjustable/Classes/AudioPlayerView.h +++ b/Audjustable/Classes/AudioPlayerView.h @@ -15,15 +15,15 @@ documentation and/or other materials provided with the distribution. 3. All advertising materials mentioning features or use of this software must display the following acknowledgement: - This product includes software developed by the . - 4. Neither the name of the nor the + This product includes software developed by Thong Nguyen (tumtumtum@gmail.com) + 4. Neither the name of Thong Nguyen nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. - THIS SOFTWARE IS PROVIDED BY ''AS IS'' AND ANY + THIS SOFTWARE IS PROVIDED BY Thong Nguyen ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL BE LIABLE FOR ANY + DISCLAIMED. IN NO EVENT SHALL THONG NGUYEN BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND diff --git a/Audjustable/Classes/AudioPlayerView.m b/Audjustable/Classes/AudioPlayerView.m index bfcb67b..1d79776 100644 --- a/Audjustable/Classes/AudioPlayerView.m +++ b/Audjustable/Classes/AudioPlayerView.m @@ -15,15 +15,15 @@ documentation and/or other materials provided with the distribution. 3. All advertising materials mentioning features or use of this software must display the following acknowledgement: - This product includes software developed by the . - 4. Neither the name of the nor the + This product includes software developed by Thong Nguyen (tumtumtum@gmail.com) + 4. Neither the name of Thong Nguyen nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. - THIS SOFTWARE IS PROVIDED BY ''AS IS'' AND ANY + THIS SOFTWARE IS PROVIDED BY Thong Nguyen ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL BE LIABLE FOR ANY + DISCLAIMED. IN NO EVENT SHALL THONG NGUYEN BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND