Example #1
0
 /// <summary>
 /// 全ての波形描画コンテキストが保持しているデータをクリアします
 /// </summary>
 public void unloadAll()
 {
     for (int i = 0; i < mDrawer.Length; i++)
     {
         WaveDrawContext context = mDrawer[i];
         if (context == null)
         {
             continue;
         }
         context.unload();
     }
 }
Example #2
0
 /// <summary>
 /// 波形描画コンテキストに、指定したWAVEファイルの指定区間を再度読み込みます。
 /// </summary>
 /// <param name="index">読込を行わせる波形描画コンテキストのインデックス</param>
 /// <param name="file">読み込むWAVEファイルのパス</param>
 /// <param name="sec_from">読み込み区間の開始秒時</param>
 /// <param name="sec_to">読み込み区間の終了秒時</param>
 public void reloadPartial(int index, string file, double sec_from, double sec_to)
 {
     if (index < 0 || mDrawer.Length <= index)
     {
         return;
     }
     if (mDrawer[index] == null)
     {
         mDrawer[index] = new WaveDrawContext();
         mDrawer[index].load(file);
     }
     else
     {
         mDrawer[index].reloadPartial(file, sec_from, sec_to);
     }
 }
Example #3
0
        /// <summary>
        /// 波形描画コンテキストに、指定したWAVEファイルを読み込みます。
        /// </summary>
        /// <param name="index">読込を行わせる波形描画コンテキストのインデックス</param>
        /// <param name="wave_path">読み込むWAVEファイルのパス</param>
        public void load(int index, string wave_path)
        {
            if (index < 0 || mDrawer.Length <= index)
            {
#if DEBUG
                sout.println("WaveView#load; index out of range");
#endif
                return;
            }
#if DEBUG
            sout.println("WaveView#load; index=" + index);
#endif
            if (mDrawer[index] == null)
            {
                mDrawer[index] = new WaveDrawContext();
            }
            mDrawer[index].load(wave_path);
        }
Example #4
0
        /// <summary>
        /// コンポーネントの描画関数です
        /// </summary>
        /// <param name="g"></param>
        public void paint(Graphics g1)
        {
            int       width  = Width;
            int       height = Height;
            Rectangle rc     = new Rectangle(0, 0, width, height);

            Graphics2D g = (Graphics2D)g1;

            // 背景を塗りつぶす
            g.setStroke(getStrokeDefault());
            g.setColor(Color.gray);
            g.fillRect(rc.x, rc.y, rc.width, rc.height);

            if (AppManager.skipDrawingWaveformWhenPlaying && AppManager.isPlaying())
            {
                // 左側のボタン部との境界線
                g.setColor(mBorderColor);
                g.drawLine(0, 0, 0, height);

                g.setColor(Color.black);
                PortUtil.drawStringEx(
                    g,
                    "(hidden for performance)",
                    AppManager.baseFont8,
                    rc,
                    PortUtil.STRING_ALIGN_CENTER,
                    PortUtil.STRING_ALIGN_CENTER);
                return;
            }

            // スケール線を描く
            int half_height = height / 2;

            g.setColor(Color.black);
            g.drawLine(0, half_height, width, half_height);

            // 描画コンテキストを用いて波形を描画
            int             selected = AppManager.getSelected();
            WaveDrawContext context  = mDrawer[selected - 1];

            if (context != null)
            {
                if (mAutoMaximize)
                {
                    context.draw(
                        g,
                        Color.black,
                        rc,
                        AppManager.clockFromXCoord(AppManager.keyWidth),
                        AppManager.clockFromXCoord(AppManager.keyWidth + width),
                        AppManager.getVsqFile().TempoTable,
                        AppManager.mMainWindowController.getScaleX());
                }
                else
                {
                    context.draw(
                        g,
                        Color.black,
                        rc,
                        AppManager.clockFromXCoord(AppManager.keyWidth),
                        AppManager.clockFromXCoord(AppManager.keyWidth + width),
                        AppManager.getVsqFile().TempoTable,
                        AppManager.mMainWindowController.getScaleX(),
                        mScale);
                }
            }

            // 左側のボタン部との境界線
            g.setColor(mBorderColor);
            g.drawLine(0, 0, 0, height);

            // ソングポジション
            int song_pos_x = AppManager.xCoordFromClocks(AppManager.getCurrentClock()) - AppManager.keyWidth;

            if (0 < song_pos_x)
            {
                g.setColor(Color.white);
                g.setStroke(getStroke2px());
                g.drawLine(song_pos_x, 0, song_pos_x, height);
            }
        }