mirror of
				https://github.com/RGBCube/serenity
				synced 2025-10-31 13:12:46 +00:00 
			
		
		
		
	 cb0e95c928
			
		
	
	
		cb0e95c928
		
	
	
	
	
		
			
			With the following change in how we send audio, the old Buffer type is not really needed anymore. However, moving WavLoader to the new system is a bit more involved and out of the scope of this PR. Therefore, we need to keep Buffer around, but to make it clear that it's the old buffer type which will be removed soon, we rename it to LegacyBuffer. Most of the users will be gone after the next commit anyways.
		
			
				
	
	
		
			28 lines
		
	
	
	
		
			846 B
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			28 lines
		
	
	
	
		
			846 B
		
	
	
	
		
			C++
		
	
	
	
	
	
| /*
 | |
|  * Copyright (c) 2022, kleines Filmröllchen <filmroellchen@serenityos.org>.
 | |
|  *
 | |
|  * SPDX-License-Identifier: BSD-2-Clause
 | |
|  */
 | |
| 
 | |
| #include "Resampler.h"
 | |
| #include "Buffer.h"
 | |
| #include "Sample.h"
 | |
| 
 | |
| namespace Audio {
 | |
| 
 | |
| ErrorOr<NonnullRefPtr<LegacyBuffer>> resample_buffer(ResampleHelper<double>& resampler, LegacyBuffer const& to_resample)
 | |
| {
 | |
|     Vector<Sample> resampled;
 | |
|     resampled.ensure_capacity(to_resample.sample_count() * ceil_div(resampler.source(), resampler.target()));
 | |
|     for (size_t i = 0; i < static_cast<size_t>(to_resample.sample_count()); ++i) {
 | |
|         auto sample = to_resample.samples()[i];
 | |
|         resampler.process_sample(sample.left, sample.right);
 | |
| 
 | |
|         while (resampler.read_sample(sample.left, sample.right))
 | |
|             resampled.append(sample);
 | |
|     }
 | |
| 
 | |
|     return LegacyBuffer::create_with_samples(move(resampled));
 | |
| }
 | |
| 
 | |
| }
 |