Sha256: 431eff2fcb57afd50b3a10fc04529b759e2bfcca9c4bc8f3c90a8b8b6aee8159

Contents?: true

Size: 1.28 KB

Versions: 2

Compression:

Stored size: 1.28 KB

Contents

// -*- c++ -*-
#pragma once
#ifndef __BEEPS_SOUND_H__
#define __BEEPS_SOUND_H__


#include <xot/pimpl.h>
#include <beeps/defs.h>


namespace Beeps
{


	class Processor;


	class SoundPlayer
	{

		public:

			SoundPlayer ();

			~SoundPlayer ();

			void play ();

			void pause ();

			void rewind ();

			void stop ();

			bool is_playing () const;

			bool is_paused () const;

			bool is_stopped () const;

			void set_gain (float gain);

			float    gain () const;

			void set_loop (bool loop);

			bool     loop () const;

			operator bool () const;

			bool operator ! () const;

			struct Data;

			Xot::PSharedImpl<Data> self;

	};// SoundPlayer


	class Sound
	{

		public:

			Sound ();

			Sound (
				Processor* processor, float seconds,
				uint nchannels = 1, double sample_rate = 0);

			~Sound ();

			SoundPlayer play ();

			void save (const char* path) const;

			double sample_rate () const;

			uint nchannels () const;

			float seconds () const;

			void set_gain (float gain);

			float    gain () const;

			void set_loop (bool loop);

			bool     loop () const;

			operator bool () const;

			bool operator ! () const;

			struct Data;

			Xot::PSharedImpl<Data> self;

	};// Sound


	void stop_all_sound_players ();

	Sound load_sound (const char* path);


}// Beeps


#endif//EOH

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
beeps-0.1.34 include/beeps/sound.h
beeps-0.1.33 include/beeps/sound.h