-/* === S I N F G =========================================================== */
+/* === S Y N F I G ========================================================= */
/*! \file audiocontainer.h
** \brief Sound info header
**
-** $Id: audiocontainer.h,v 1.1.1.1 2005/01/07 03:34:35 darco Exp $
+** $Id$
**
** \legal
-** Copyright (c) 2002 Robert B. Quattlebaum Jr.
+** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley
**
-** This software and associated documentation
-** are CONFIDENTIAL and PROPRIETARY property of
-** the above-mentioned copyright holder.
+** This package is free software; you can redistribute it and/or
+** modify it under the terms of the GNU General Public License as
+** published by the Free Software Foundation; either version 2 of
+** the License, or (at your option) any later version.
**
-** You may not copy, print, publish, or in any
-** other way distribute this software without
-** a prior written agreement with
-** the copyright holder.
+** This package is distributed in the hope that it will be useful,
+** but WITHOUT ANY WARRANTY; without even the implied warranty of
+** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+** General Public License for more details.
** \endlegal
*/
/* ========================================================================= */
/* === S T A R T =========================================================== */
-#ifndef __SINFG_AUDIOCONTAINER_H
-#define __SINFG_AUDIOCONTAINER_H
+#ifndef __SYNFIG_AUDIOCONTAINER_H
+#define __SYNFIG_AUDIOCONTAINER_H
/* === H E A D E R S ======================================================= */
#include <sigc++/signal.h>
#include <vector>
#include <string>
-#include <sinfg/time.h>
+#include <synfig/time.h>
/* === M A C R O S ========================================================= */
const float DEF_DISPLAYSAMPLERATE = 400;
{
public:
typedef std::vector<char> SampleProfile;
-
+
private:
SampleProfile samples;
double samplerate; //samples / second of the profile
SampleProfile::const_iterator begin() const {return samples.begin();}
SampleProfile::const_iterator end() const {return samples.end();}
-
+
void clear();
unsigned int size() const {return samples.size();}
-
+
char operator[](int i) const
{
if(i >= 0 && i < (int)samples.size()) return samples[i];
else return 0;
}
-
+
public: //
-
+
double get_samplerate() const {return samplerate;}
void set_samplerate(double f) {samplerate = f;}
-
+
double get_offset() const;
-
+
etl::handle<AudioContainer> get_parent() const;
void set_parent(etl::handle<AudioContainer> i);
friend class AudioContainer;
};
/* Audio container actually implements all the cool stuff
- Note: May be a bit to monolithic...
+ Note: May be a bit too monolithic...
*/
class AudioContainer : public sigc::trackable, public etl::shared_object
{
etl::handle<AudioProfile> prof;
-
+
struct AudioImp;
AudioImp *imp;
-
- bool profilevalid; //this is only half useful
+
+ bool profilevalid; //this is only half useful
//it makes it so we don't always have to realloc memory when the file switches...
-
+
public: //structors
AudioContainer();
void stop();
//Note: this refers to the wrapper concept of the audio, the actual sound may or may not be playing...
bool is_playing() const;
-
+
//scrubbing functions...
void start_scrubbing(double t);
void stop_scrubbing();
bool isRunning() const;
bool isPaused() const;
};
-
+
} // END of namespace studio
/* === E N D =============================================================== */