[beast: 3/13] BSE: move WaveOsc.set_from_editable_sample into bseapi.idl
- From: Tim Janik <timj src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [beast: 3/13] BSE: move WaveOsc.set_from_editable_sample into bseapi.idl
- Date: Thu, 31 Aug 2017 23:03:34 +0000 (UTC)
commit 62a9a4bae0e7bdf7a55ea6b2c8eea4c24e51bb82
Author: Tim Janik <timj gnu org>
Date: Wed Aug 30 14:53:39 2017 +0200
BSE: move WaveOsc.set_from_editable_sample into bseapi.idl
Signed-off-by: Tim Janik <timj gnu org>
bse/bseapi.idl | 2 +-
bse/bsewaveosc.cc | 10 ++++++++++
bse/bsewaveosc.hh | 7 ++++---
bse/bsewaveosc.proc | 23 -----------------------
4 files changed, 15 insertions(+), 27 deletions(-)
---
diff --git a/bse/bseapi.idl b/bse/bseapi.idl
index b09de0e..6c096ce 100644
--- a/bse/bseapi.idl
+++ b/bse/bseapi.idl
@@ -823,7 +823,7 @@ interface WaveRepo : Super {
/// Oscillator module for wave files.
interface WaveOsc : Source {
void request_pcm_position (); ///< Request emission of the
::notify_pcm_position signal.
- // void set_from_editable_sample (EditableSample esample); ///< Set wave to play from editable
sample, bypassing undo and storage mechanisms.
+ void set_from_editable_sample (EditableSample esample); ///< Set wave to play from editable sample,
bypassing undo and storage mechanisms.
// signal void notify_pcm_position (int64 timestamp, int64 position); ///< Notification signal
containing the current PCM play position pointer.
// Wave wave = ("Wave", "Wave used as oscillator source", STANDARD);
// int64 channel = Range ("Channel", "The audio channel to play, usually 1 is left, 2 is right",
":readwrite", 1, 256);
diff --git a/bse/bsewaveosc.cc b/bse/bsewaveosc.cc
index 74724f9..d849df8 100644
--- a/bse/bsewaveosc.cc
+++ b/bse/bsewaveosc.cc
@@ -602,4 +602,14 @@ WaveOscImpl::request_pcm_position ()
bse_wave_osc_request_pcm_position (self);
}
+void
+WaveOscImpl::set_from_editable_sample (EditableSampleIface &esi)
+{
+ BseWaveOsc *self = as<BseWaveOsc*>();
+ EditableSampleIface *es = &esi;
+ BseEditableSample *esample = es ? es->as<BseEditableSample*>() : NULL;
+
+ bse_wave_osc_set_from_esample (self, esample);
+}
+
} // Bse
diff --git a/bse/bsewaveosc.hh b/bse/bsewaveosc.hh
index 4ac604b..d403cbe 100644
--- a/bse/bsewaveosc.hh
+++ b/bse/bsewaveosc.hh
@@ -51,10 +51,11 @@ namespace Bse {
class WaveOscImpl : public SourceImpl, public virtual WaveOscIface {
protected:
- virtual ~WaveOscImpl ();
+ virtual ~WaveOscImpl ();
public:
- explicit WaveOscImpl (BseObject*);
- virtual void request_pcm_position () override;
+ explicit WaveOscImpl (BseObject*);
+ virtual void request_pcm_position () override;
+ virtual void set_from_editable_sample (EditableSampleIface &esi) override;
};
} // Bse
diff --git a/bse/bsewaveosc.proc b/bse/bsewaveosc.proc
index c2385bc..3fe5c6f 100644
--- a/bse/bsewaveosc.proc
+++ b/bse/bsewaveosc.proc
@@ -35,26 +35,3 @@ PROCEDURE (bse-wave-osc-mass-seek-perc, "Seek Wave Oscillators") {
return Bse::Error::NONE;
}
-
-METHOD (BseWaveOsc, set-from-editable-sample) {
- HELP = "Set wave to play from editable sample, bypassing undo and storage mechanisms.";
- IN = bse_param_spec_object ("wosc", NULL, "Wave Oscilator",
- BSE_TYPE_WAVE_OSC, SFI_PARAM_STANDARD);
- IN = bse_param_spec_object ("esample", NULL, "Editable Sample",
- BSE_TYPE_EDITABLE_SAMPLE, SFI_PARAM_STANDARD);
-} BODY (BseProcedureClass *proc,
- const GValue *in_values,
- GValue *out_values)
-{
- /* extract parameter values */
- BseWaveOsc *self = (BseWaveOsc*) bse_value_get_object (in_values++);
- BseEditableSample *esample = (BseEditableSample*) bse_value_get_object (in_values++);
-
- /* check parameters */
- if (!BSE_IS_WAVE_OSC (self))
- return Bse::Error::PROC_PARAM_INVAL;
-
- bse_wave_osc_set_from_esample (self, esample);
-
- return Bse::Error::NONE;
-}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]