document.write('<link rel="stylesheet" href="http://gist.github.com/stylesheets/gist/embed.css"/>')





document.write('<div id=\"gist-72914\" class=\"gist\">\n  \n  \n    \n            \n\n      <div class=\"gist-file\">\n        <div class=\"gist-data gist-syntax\">\n          \n          \n          \n            <div class=\"gist-highlight\"><pre><div class=\"line\" id=\"LC1\"><span class=\"cp\">#import &quot;SCListener.h&quot; <\/span><span class=\"c1\">// Remember to link to AudioToolbox.framework.<\/span><\/div><div class=\"line\" id=\"LC2\">&nbsp;<\/div><div class=\"line\" id=\"LC3\"><span class=\"c1\">// Start listening.<\/span><\/div><div class=\"line\" id=\"LC4\"><span class=\"p\">[[<\/span><span class=\"n\">SCListener<\/span> <span class=\"n\">sharedListener<\/span><span class=\"p\">]<\/span> <span class=\"n\">listen<\/span><span class=\"p\">];<\/span><\/div><div class=\"line\" id=\"LC5\">&nbsp;<\/div><div class=\"line\" id=\"LC6\"><span class=\"c1\">// Retrieve the average power.<\/span><\/div><div class=\"line\" id=\"LC7\"><span class=\"p\">[[<\/span><span class=\"n\">SCListener<\/span> <span class=\"n\">sharedListener<\/span><span class=\"p\">]<\/span> <span class=\"n\">averagePower<\/span><span class=\"p\">];<\/span><\/div><div class=\"line\" id=\"LC8\">&nbsp;<\/div><div class=\"line\" id=\"LC9\"><span class=\"c1\">// Retrieve the peak power.<\/span><\/div><div class=\"line\" id=\"LC10\"><span class=\"p\">[[<\/span><span class=\"n\">SCListener<\/span> <span class=\"n\">sharedListener<\/span><span class=\"p\">]<\/span> <span class=\"n\">peakPower<\/span><span class=\"p\">];<\/span><\/div><div class=\"line\" id=\"LC11\">&nbsp;<\/div><div class=\"line\" id=\"LC12\"><span class=\"c1\">// Hmm...we&#39;re using this guy a lot...<\/span><\/div><div class=\"line\" id=\"LC13\"><span class=\"n\">SCListener<\/span> <span class=\"o\">*<\/span><span class=\"n\">listener<\/span> <span class=\"o\">=<\/span> <span class=\"p\">[<\/span><span class=\"n\">SCListener<\/span> <span class=\"n\">sharedListener<\/span><span class=\"p\">];<\/span><\/div><div class=\"line\" id=\"LC14\">&nbsp;<\/div><div class=\"line\" id=\"LC15\"><span class=\"c1\">// We can temporarily stop returning levels<\/span><\/div><div class=\"line\" id=\"LC16\"><span class=\"p\">[<\/span><span class=\"n\">listener<\/span> <span class=\"n\">pause<\/span><span class=\"p\">];<\/span><\/div><div class=\"line\" id=\"LC17\"><span class=\"p\">[<\/span><span class=\"n\">listener<\/span> <span class=\"n\">listen<\/span><span class=\"p\">];<\/span> <span class=\"c1\">// Quick.<\/span><\/div><div class=\"line\" id=\"LC18\">&nbsp;<\/div><div class=\"line\" id=\"LC19\"><span class=\"c1\">// Or free up resources when we&#39;re not listening for awhile.<\/span><\/div><div class=\"line\" id=\"LC20\"><span class=\"p\">[<\/span><span class=\"n\">listener<\/span> <span class=\"n\">stop<\/span><span class=\"p\">];<\/span><\/div><div class=\"line\" id=\"LC21\"><span class=\"p\">[<\/span><span class=\"n\">listener<\/span> <span class=\"n\">listen<\/span><span class=\"p\">];<\/span> <span class=\"c1\">// Slower.<\/span><\/div><div class=\"line\" id=\"LC22\">&nbsp;<\/div><div class=\"line\" id=\"LC23\"><span class=\"c1\">// Advanced!:<\/span><\/div><div class=\"line\" id=\"LC24\"><span class=\"c1\">//<\/span><\/div><div class=\"line\" id=\"LC25\"><span class=\"c1\">// If you&#39;re using the average and the peak, fetch both at once.<\/span><\/div><div class=\"line\" id=\"LC26\"><span class=\"k\">if<\/span> <span class=\"p\">(<\/span><span class=\"o\">!<\/span><span class=\"p\">[<\/span><span class=\"n\">listener<\/span> <span class=\"n\">isListening<\/span><span class=\"p\">])<\/span> <span class=\"c1\">// If listener has paused or stopped...<\/span><\/div><div class=\"line\" id=\"LC27\">&nbsp;&nbsp;<span class=\"k\">return<\/span><span class=\"p\">;<\/span>                    <span class=\"c1\">// ...bail.<\/span><\/div><div class=\"line\" id=\"LC28\">&nbsp;<\/div><div class=\"line\" id=\"LC29\"><span class=\"n\">AudioQueueLevelMeterState<\/span> <span class=\"o\">*<\/span><span class=\"n\">levels<\/span> <span class=\"o\">=<\/span> <span class=\"p\">[<\/span><span class=\"n\">listener<\/span> <span class=\"n\">levels<\/span><span class=\"p\">];<\/span><\/div><div class=\"line\" id=\"LC30\"><span class=\"n\">Float32<\/span> <span class=\"n\">peak<\/span> <span class=\"o\">=<\/span> <span class=\"n\">levels<\/span><span class=\"p\">[<\/span><span class=\"mi\">0<\/span><span class=\"p\">].<\/span><span class=\"n\">mPeakPower<\/span><span class=\"p\">;<\/span><\/div><div class=\"line\" id=\"LC31\"><span class=\"n\">Float32<\/span> <span class=\"n\">average<\/span> <span class=\"o\">=<\/span> <span class=\"n\">levels<\/span><span class=\"p\">[<\/span><span class=\"mi\">0<\/span><span class=\"p\">].<\/span><span class=\"n\">mAveragePower<\/span><span class=\"p\">;<\/span><\/div><div class=\"line\" id=\"LC32\">&nbsp;<\/div><\/pre><\/div>\n          \n        <\/div>\n\n        <div class=\"gist-meta\">\n          <a href=\"http://gist.github.com/raw/72914/e8ee5b140be9ac9d6d6fc7abd643a55fa68b00a6/gistfile1.m\" style=\"float:right;\">view raw<\/a>\n          <a href=\"http://gist.github.com/72914#file_gistfile1.m\" style=\"float:right;margin-right:10px;color:#666\">gistfile1.m<\/a>\n          <a href=\"http://gist.github.com/72914\">This Gist<\/a> brought to you by <a href=\"http://github.com\">GitHub<\/a>.\n        <\/div>\n      <\/div>\n    \n  \n<\/div>\n')
