You cannot select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
	
	
		
			40 lines
		
	
	
		
			756 B
		
	
	
	
		
			C++
		
	
			
		
		
	
	
			40 lines
		
	
	
		
			756 B
		
	
	
	
		
			C++
		
	
// SPDX-License-Identifier: GPL-2.0-or-later
 | 
						|
// Copyright The Music Player Daemon Project
 | 
						|
 | 
						|
#ifndef MPD_FLAC_PCM_HXX
 | 
						|
#define MPD_FLAC_PCM_HXX
 | 
						|
 | 
						|
#include "pcm/Buffer.hxx"
 | 
						|
#include "pcm/AudioFormat.hxx"
 | 
						|
 | 
						|
#include <FLAC/ordinals.h>
 | 
						|
 | 
						|
#include <cstddef>
 | 
						|
#include <span>
 | 
						|
 | 
						|
/**
 | 
						|
 * This class imports libFLAC PCM data into a PCM format supported by
 | 
						|
 * MPD.
 | 
						|
 */
 | 
						|
class FlacPcmImport {
 | 
						|
	PcmBuffer buffer;
 | 
						|
 | 
						|
	AudioFormat audio_format;
 | 
						|
 | 
						|
public:
 | 
						|
	/**
 | 
						|
	 * Throws #std::runtime_error on error.
 | 
						|
	 */
 | 
						|
	void Open(unsigned sample_rate, unsigned bits_per_sample,
 | 
						|
		  unsigned channels);
 | 
						|
 | 
						|
	const AudioFormat &GetAudioFormat() const noexcept {
 | 
						|
		return audio_format;
 | 
						|
	}
 | 
						|
 | 
						|
	std::span<const std::byte> Import(const FLAC__int32 *const src[],
 | 
						|
					  size_t n_frames) noexcept;
 | 
						|
};
 | 
						|
 | 
						|
#endif
 |