/// <summary> /// 指定したトラックのレンダラーを変更します /// </summary> /// <param name="track"></param> /// <param name="new_renderer"></param> /// <param name="singers"></param> public void changeRenderer(string new_renderer, List <VsqID> singers) { VsqID default_id = null; int singers_size = singers.Count; if (singers_size <= 0) { default_id = new VsqID(); default_id.type = VsqIDType.Singer; IconHandle singer_handle = new IconHandle(); singer_handle.IconID = "$0701" + PortUtil.toHexString(0, 4); singer_handle.IDS = "Unknown"; singer_handle.Index = 0; singer_handle.Language = 0; singer_handle.setLength(1); singer_handle.Original = 0; singer_handle.Program = 0; singer_handle.Caption = ""; default_id.IconHandle = singer_handle; } else { default_id = singers[0]; } for (Iterator <VsqEvent> itr = getSingerEventIterator(); itr.hasNext();) { VsqEvent ve = itr.next(); IconHandle singer_handle = (IconHandle)ve.ID.IconHandle; int program = singer_handle.Program; bool found = false; for (int i = 0; i < singers_size; i++) { VsqID id = singers[i]; if (program == singer_handle.Program) { ve.ID = (VsqID)id.clone(); found = true; break; } } if (!found) { VsqID add = (VsqID)default_id.clone(); add.IconHandle.Program = program; ve.ID = add; } } MetaText.Common.Version = new_renderer; }
private VsqMetaText(string name, int pre_measure, string singer, bool is_first_track) { Common = new VsqCommon(name, 179, 181, 123, 1, 1); PIT = new VsqBPList("pit", 0, -8192, 8191); PBS = new VsqBPList("pbs", 2, 0, 24); DYN = new VsqBPList("dyn", 64, 0, 127); BRE = new VsqBPList("bre", 0, 0, 127); BRI = new VsqBPList("bri", 64, 0, 127); CLE = new VsqBPList("cle", 0, 0, 127); reso1FreqBPList = new VsqBPList("reso1freq", 64, 0, 127); reso2FreqBPList = new VsqBPList("reso2freq", 64, 0, 127); reso3FreqBPList = new VsqBPList("reso3freq", 64, 0, 127); reso4FreqBPList = new VsqBPList("reso4freq", 64, 0, 127); reso1BWBPList = new VsqBPList("reso1bw", 64, 0, 127); reso2BWBPList = new VsqBPList("reso2bw", 64, 0, 127); reso3BWBPList = new VsqBPList("reso3bw", 64, 0, 127); reso4BWBPList = new VsqBPList("reso4bw", 64, 0, 127); reso1AmpBPList = new VsqBPList("reso1amp", 64, 0, 127); reso2AmpBPList = new VsqBPList("reso2amp", 64, 0, 127); reso3AmpBPList = new VsqBPList("reso3amp", 64, 0, 127); reso4AmpBPList = new VsqBPList("reso4amp", 64, 0, 127); harmonics = new VsqBPList("harmonics", 64, 0, 127); fx2depth = new VsqBPList("fx2depth", 64, 0, 127); GEN = new VsqBPList("gen", 64, 0, 127); POR = new VsqBPList("por", 64, 0, 127); OPE = new VsqBPList("ope", 127, 0, 127); if (is_first_track) { master = new VsqMaster(pre_measure); } else { master = null; } Events = new VsqEventList(); VsqID id = new VsqID(0); id.type = VsqIDType.Singer; IconHandle ish = new IconHandle(); ish.IconID = "$07010000"; ish.IDS = singer; ish.Original = 0; ish.Caption = ""; ish.setLength(1); ish.Language = 0; ish.Program = 0; id.IconHandle = ish; Events.add(new VsqEvent(0, id)); }
/// <summary> /// このインスタンスのコピーを作成します。 /// </summary> /// <returns></returns> public Object clone() { IconHandle ret = new IconHandle(); ret.Caption = Caption; ret.IconID = IconID; ret.IDS = IDS; ret.Index = Index; ret.Language = Language; ret.setLength(Length); ret.Original = Original; ret.Program = Program; return(ret); }