1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108
|
/*
* WaveGenerator.cs
* Copyright © 2010-2011 kbinani
*
* This file is part of org.kbinani.cadencii.
*
* org.kbinani.cadencii is free software; you can redistribute it and/or
* modify it under the terms of the GPLv3 License.
*
* org.kbinani.cadencii 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.
*/
#if JAVA
package org.kbinani.cadencii;
#else
using System;
namespace org.kbinani.cadencii {
using boolean = System.Boolean;
#endif
/// <summary>
/// 音声波形の生成器のためのインターフェース.
/// このインターフェースを実装するクラスは,WaveUnitクラスを継承すること.
/// このインターフェースのメソッドは全て同期的とすること
/// </summary>
public interface WaveGenerator {
/// <summary>
/// この波形生成器を親とする回路の,各波形ラインに流れる波形データのサンプリングレートを取得します
/// </summary>
/// <returns></returns>
int getSampleRate();
/// <summary>
/// 音声波形の合成を開始します.
/// このメソッドの前には,setGlobalConfig, setConfig, initメソッドをこの順で呼び出して
/// 必要なパラメータを全て渡すようにしてください.
/// (この順番に呼ばれることを前提とした実装をしなくてはならない)
/// </summary>
/// <param name="samples"></param>
/// <param name="state"></param>
void begin( long samples, WorkerState state );
/// <summary>
/// この音声波形器が生成した波形を受け取る装置を設定します.
/// </summary>
/// <param name="r"></param>
void setReceiver( WaveReceiver r );
/// <summary>
/// 音声波形の合成に必要な引数を設定します.
/// </summary>
/// <param name="vsq"></param>
/// <param name="track"></param>
/// <param name="start_clock"></param>
/// <param name="end_clock"></param>
/// <param name="sample_rate">
/// この波形生成器を親とする回路の,各波形ラインに流れる波形データのサンプリングレート.
/// この波形生成器が生成するサンプリングレートを指定するのではないので注意
/// </param>
void init( VsqFileEx vsq, int track, int start_clock, int end_clock, int sample_rate );
/// <summary>
/// エディターの設定値を指定します
/// </summary>
/// <param name="config"></param>
void setGlobalConfig( EditorConfig config );
/// <summary>
/// 合成処理の進捗状況を取得します.
/// 戻り値は0から1までとなります
/// </summary>
/// <returns></returns>
double getProgress();
/// <summary>
/// 合成処理の進捗状況を取得します.
/// 単位はサンプル数です
/// </summary>
/// <returns></returns>
long getPosition();
/// <summary>
/// beginメソッドで指定された,合成処理を行う合計のサンプル数を取得します
/// </summary>
/// <returns></returns>
long getTotalSamples();
/// <summary>
/// 合成処理が実行中かどうかを取得します
/// </summary>
/// <returns></returns>
boolean isRunning();
/// <summary>
/// メインウィンドウへの参照を設定します
/// </summary>
/// <param name="main_window"></param>
void setMainWindow( FormMain main_window );
}
#if !JAVA
}
#endif
|