Changeset 1280

Show
Ignore:
Timestamp:
10/11/07 04:26:57 (12 months ago)
Author:
calvin
Message:

hide nonSongPlugins from machine selector and parameter views; threw out stateToPatternSpace() and getStateParameters()

Location:
trunk/src/buzelib
Files:
10 modified

Legend:

Unmodified
Added
Removed
  • trunk/src/buzelib/MachineParameterView.cpp

    r1276 r1280  
    208208        defaultPreset.name = "<default>"; 
    209209        defaultPreset.parameters = 0; 
    210         for (size_t i = 0; i<getStateParameters(machine); i++) { 
     210        pattern conv(machine, 0); 
     211        for (size_t i = 0; i<conv.getColumns(); i++) { 
     212                const parameter* param = conv.getColumnParameter(i); 
     213                if ((param->flags & zzub::parameter_flag_state) == 0) continue; 
     214 
    211215                size_t pgroup = 0, ptrack = 0, pcolumn = 0; 
    212                 stateToPatternSpace(machine, i, pgroup, ptrack, pcolumn); 
     216                conv.linearToPattern(i, pgroup, ptrack, pcolumn); 
    213217                if (pgroup == 0) continue; 
    214218 
     
    255259LRESULT CMachineParameterView::OnPresetRandom(WORD /*wNotifyCode*/, WORD /*wID*/, HWND /*hWndCtl*/, BOOL& /*bHandled*/) { 
    256260 
    257         for (size_t i = 0; i<getStateParameters(machine); i++) { 
     261        pattern conv(machine, 0); 
     262        for (size_t i = 0; i<conv.getColumns(); i++) { 
     263                const parameter* param = conv.getColumnParameter(i); 
     264                if ((param->flags & zzub::parameter_flag_state) == 0) continue; 
     265 
    258266                size_t pgroup = 0, ptrack = 0, pcolumn = 0; 
    259                 stateToPatternSpace(machine, i, pgroup, ptrack, pcolumn); 
     267                conv.linearToPattern(i, pgroup, ptrack, pcolumn); 
    260268                if (pgroup == 0) continue; 
    261  
    262                 const parameter* param = machine->getMachineParameter(pgroup, ptrack, pcolumn); 
    263                 if (!param) continue; 
    264269 
    265270                if (param->type!=parameter_type_note) { 
     
    367372 
    368373LRESULT CMachineParameterView::OnSelChange(WORD /*wNotifyCode*/, WORD /*wID*/, HWND /*hWndCtl*/, BOOL& /*bHandled*/) { 
    369         int presetIndex=presetDropDown.GetCurSel(); 
    370         const PresetInfo& pi=*(const PresetInfo*)presetDropDown.GetItemData(presetIndex); 
    371  
    372         // TODO: rid getStateParameters from libzzub and handle all that stuff locally 
     374        int presetIndex = presetDropDown.GetCurSel(); 
     375        const PresetInfo& pi = *(const PresetInfo*)presetDropDown.GetItemData(presetIndex); 
     376 
     377        pattern conv(machine, 0); 
     378 
    373379        int valueIndex = 0; 
    374         for (size_t i=0; i<pi.parameters; i++) { 
    375                 if (i<getStateParameters(machine)) { 
    376                         size_t pgroup=0, ptrack=0, pcolumn=0; 
    377                         stateToPatternSpace(machine, i, pgroup, ptrack, pcolumn); 
    378                         if (pgroup == 0) continue; 
    379  
    380                         machine->setParameter(pgroup, ptrack, pcolumn, pi.values[valueIndex], true); 
    381                         valueIndex++; 
    382                 } else  
    383                         break; 
     380        for (size_t i = 0; i < conv.getColumns(); i++) { 
     381                const parameter* param = conv.getColumnParameter(i); 
     382                if ((param->flags & zzub::parameter_flag_state) == 0) continue; 
     383                if (i >= pi.parameters) break; 
     384 
     385                size_t pgroup=0, ptrack=0, pcolumn=0; 
     386                conv.linearToPattern(i, pgroup, ptrack, pcolumn); 
     387                if (pgroup == 0) continue; 
     388 
     389                machine->setParameter(pgroup, ptrack, pcolumn, pi.values[valueIndex], true); 
     390                valueIndex++; 
    384391        } 
    385392        return 0; 
     
    571578} 
    572579 
    573         pluginloader* loader=machine->loader; 
    574  
    575         // burde hete getstatecolumn 
    576         size_t numSliders=0; 
    577         size_t stateColumns=getStateParameters(machine); 
    578         for (size_t i=0; i<stateColumns; i++) { 
     580        pluginloader* loader = machine->loader; 
     581 
     582        size_t numSliders = 0; 
     583        pattern conv(machine, 0); 
     584        for (size_t i=0; i<conv.getColumns(); i++) { 
     585                const parameter* param = conv.getColumnParameter(i); 
     586                if ((param->flags & zzub::parameter_flag_state) == 0) continue; 
     587 
    579588                size_t pgroup=0, ptrack=0, pcolumn=0; 
    580                 stateToPatternSpace(machine, i, pgroup, ptrack, pcolumn); 
     589                conv.linearToPattern(i, pgroup, ptrack, pcolumn); 
     590 
    581591                if (pgroup != 0) { 
    582  
    583592                        bool paramHide=mainFrame->getMachineParameterHidden(machine, pgroup, ptrack, pcolumn); 
    584                         if (paramHide) { 
    585                                 continue; 
    586                         } 
     593                        if (paramHide) continue; 
     594                } else 
     595                if (pgroup == 0) { 
     596                        zzub::connection* conn = machine->getConnection(ptrack); 
     597                        if (conn->plugin_in->nonSongPlugin) continue; 
    587598                } 
    588599                numSliders++; 
     
    600611        sliders.resize(numSliders); 
    601612        size_t sliderIndex=0; 
    602         for (size_t i=0; i<stateColumns; i++) { 
     613        for (size_t i = 0; i < conv.getColumns(); i++) { 
     614                const parameter* param = conv.getColumnParameter(i); 
     615                if ((param->flags & zzub::parameter_flag_state) == 0) continue; 
     616 
    603617                size_t pgroup=0, ptrack=0, pcolumn=0; 
    604                 stateToPatternSpace(machine, i, pgroup, ptrack, pcolumn); 
     618                conv.linearToPattern(i, pgroup, ptrack, pcolumn); 
    605619 
    606620                if (pgroup != 0) { 
    607621                        bool paramHide=mainFrame->getMachineParameterHidden(machine, pgroup, ptrack, pcolumn); 
    608622                        if (paramHide) continue; 
     623                } else 
     624                if (pgroup == 0) { 
     625                        zzub::connection* conn = machine->getConnection(ptrack); 
     626                        if (conn->plugin_in->nonSongPlugin) continue; 
    609627                } 
    610628 
     
    674692        menu.CreatePopupMenu(); 
    675693 
    676         pluginloader* loader=machine->loader; 
     694        pluginloader* loader = machine->loader; 
    677695 
    678696        CMenu hiddenMenu; 
    679697        hiddenMenu.CreatePopupMenu(); 
    680         int hiddens=0; 
    681         for (size_t i=0; i<getStateParameters(machine); i++) { 
     698        int hiddens = 0; 
     699        pattern conv(machine, 0); 
     700 
     701        for (size_t i=0; i<conv.getColumns(); i++) { 
     702                const parameter* param = conv.getColumnParameter(i); 
     703                if ((param->flags & zzub::parameter_flag_state) == 0) continue; 
     704 
    682705                size_t pgroup=0, ptrack=0, pcolumn=0; 
    683                 stateToPatternSpace(machine, i, pgroup, ptrack, pcolumn); 
     706                conv.linearToPattern(i, pgroup, ptrack, pcolumn); 
    684707 
    685708                if (pgroup == 0) continue; 
    686709 
    687                 size_t paramIndex=-1; 
    688                 zzub::pattern conv(machine->loader->plugin_info, machine->getConnections(), machine->getTracks(), 0); 
    689                 conv.patternToLinear(pgroup, ptrack, pcolumn, paramIndex); 
    690  
    691                 bool paramHide=mainFrame->getMachineParameterHidden(machine, pgroup, ptrack, pcolumn); 
     710                bool paramHide = mainFrame->getMachineParameterHidden(machine, pgroup, ptrack, pcolumn); 
    692711                 
    693712                if (paramHide) { 
    694                         hiddenMenu.InsertMenu(-1, MF_BYPOSITION|MF_STRING, (UINT_PTR)ID_PARAMETER_UNHIDE_FIRST+paramIndex, conv.getColumnParameter(paramIndex)->name); 
     713                        hiddenMenu.InsertMenu(-1, MF_BYPOSITION|MF_STRING, (UINT_PTR)ID_PARAMETER_UNHIDE_FIRST+i, param->name); 
    695714                        hiddens++; 
    696715                } 
  • trunk/src/buzelib/MachineView.cpp

    r1277 r1280  
    12351235} 
    12361236 
    1237  
    1238 void CMachineView::drawMachine(CDC& dc, metaplugin* plugin) { 
     1237void CMachineView::drawMachine(CDC& dc, metaplugin* plugin, bool ledOnly) { 
    12391238 
    12401239        int halfWidth=(getMachineWidth(plugin)/2) * scale; 
     
    12961295        dc.TextOut(mRect.left+halfWidth, mRect.top+halfHeight-(fontSize/2)+adjustY, label.c_str(), label.length()); 
    12971296 
    1298         if (document->isSelectedMachine(plugin)) { 
    1299                 CPen selectPen; 
    1300                 selectPen.CreatePen(PS_DOT, 1, (COLORREF)0); 
    1301                 dc.SelectPen(selectPen); 
    1302                 dc.MoveTo(mRect.left-2, mRect.top-2); 
    1303                 dc.LineTo(mRect.right+1, mRect.top-2); 
    1304                 dc.LineTo(mRect.right+1, mRect.bottom+1); 
    1305                 dc.LineTo(mRect.left-2, mRect.bottom+1); 
    1306                 dc.LineTo(mRect.left-2, mRect.top-2); 
     1297        if (!ledOnly && document->isSelectedMachine(plugin)) { 
     1298                RECT fRect = mRect; 
     1299                fRect.left -= 2; 
     1300                fRect.top -= 2; 
     1301                fRect.right += 2; 
     1302                fRect.bottom += 2; 
     1303                dc.SetTextColor(0); 
     1304                dc.DrawFocusRect(&fRect); 
    13071305        } 
    13081306 
     
    13841382                if (machine->nonSongPlugin) continue; 
    13851383 
    1386                 drawMachine(dc, machine); 
     1384                drawMachine(dc, machine, false); 
    13871385 
    13881386        } 
     
    14121410                        } else { 
    14131411                                // draw a rectangle from the machine skin where the led is drawn 
    1414                                 drawMachine(dc, machine); 
     1412                                drawMachine(dc, machine, true); 
    14151413                        } 
    14161414                } else { 
  • trunk/src/buzelib/MachineView.h

    r1276 r1280  
    173173        CBrush& getMachinePanningBrush(zzub::metaplugin* machine); 
    174174        CBrush& getMachineLedBrush(zzub::metaplugin* machine); 
    175         void drawMachine(CDC& dc, zzub::metaplugin* plugin); 
     175        void drawMachine(CDC& dc, zzub::metaplugin* plugin, bool ledOnly); 
    176176        void drawDirectionTriangle(CDC& dc, RECT mRect, RECT sRect, std::string text); 
    177177        void drawVolumeSlider(CDC& dc, RECT vsr, int value); 
  • trunk/src/buzelib/MainFrm.cpp

    r1276 r1280  
    18231823                int views = (machineParameters.getViews() % 16); 
    18241824 
    1825                 int params = getStateParameters(m); 
     1825                int params = 0; 
     1826                pattern conv(m, 0); 
     1827                for (size_t i = 0; i < conv.getColumns(); i++) { 
     1828                        const parameter* param = conv.getColumnParameter(i); 
     1829                        if ((param->flags & zzub::parameter_flag_state) == 0) continue; 
     1830                        size_t g = 0, t = 0, c = 0; 
     1831                        conv.linearToPattern(i, g, t, c); 
     1832                        if (g == 0) { 
     1833                                zzub::connection* conn = m->getConnection(t); 
     1834                                if (conn->plugin_in->nonSongPlugin) continue; 
     1835                        } 
     1836                        params++; 
     1837                } 
    18261838                int parameterHeight = params*CParameterSliderCtrl::sliderHeight + 20;   // 22 = toolbarheight 
    18271839 
  • trunk/src/buzelib/ParameterSliderCtrl.cpp

    r1273 r1280  
    6666        if (group == 0) { 
    6767                connection* conn = machine->getConnection(track); 
    68                 parameterName = "a-"+conn->plugin_in->getName(); 
     68                if (column == 0) 
     69                        parameterName = "a-"+conn->plugin_in->getName(); 
     70                if (column == 1) 
     71                        parameterName = "p-"+conn->plugin_in->getName(); 
    6972        } else 
    7073        if (group == 2) { 
     
    143146        hiddenMenu.CreatePopupMenu(); 
    144147        size_t hiddens=0; 
    145         for (size_t i=0; i<getStateParameters(machine); i++) { 
     148        pattern conv(machine, 0); 
     149        for (size_t i=0; i<conv.getColumns(); i++) { 
     150                const parameter* param = conv.getColumnParameter(i); 
     151                if ((param->flags & zzub::parameter_flag_state) == 0) continue; 
     152 
    146153                size_t pgroup=0, ptrack=0, pcolumn=0; 
    147                 stateToPatternSpace(machine, i, pgroup, ptrack, pcolumn); 
     154                conv.linearToPattern(i, pgroup, ptrack, pcolumn); 
    148155 
    149                 size_t paramIndex=-1; 
    150                 zzub::pattern conv(machine, 0); 
    151                 conv.patternToLinear(pgroup, ptrack, pcolumn, paramIndex); 
    152  
    153 //              if (!loader || !loader->getExtendedParameterProperty(paramIndex, "Hidden", &paramHide)) 
    154 //                      paramHide=0; 
    155156                bool paramHide=mainFrame->getMachineParameterHidden(machine, pgroup, ptrack, pcolumn); 
    156157                if (paramHide) { 
    157                         hiddenMenu.InsertMenu(-1, MF_BYPOSITION|MF_STRING, (UINT_PTR)ID_PARAMETER_UNHIDE_FIRST+paramIndex, conv.getColumnParameter(paramIndex)->name); 
     158                        hiddenMenu.InsertMenu(-1, MF_BYPOSITION|MF_STRING, (UINT_PTR)ID_PARAMETER_UNHIDE_FIRST+i, param->name); 
    158159                        hiddens++; 
    159160                } 
  • trunk/src/buzelib/PresetDialog.cpp

    r1274 r1280  
    66 
    77CPresetDialog::CPresetDialog(PresetManager* prs, zzub::metaplugin* plug) { 
    8     presets = prs; 
    9     plugin = plug; 
     8        presets = prs; 
     9        plugin = plug; 
    1010} 
    1111 
    1212 
    1313LRESULT CPresetDialog::OnInitDialog(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& /*bHandled*/) { 
    14     commentBox.Attach(GetDlgItem(IDC_PRESET_COMMENT_EDIT)); 
    15     deleteButton.Attach(GetDlgItem(IDC_PRESET_DELETE_BUTTON)); 
    16     presetList.Attach(GetDlgItem(IDC_PRESET_LIST)); 
    17     nameBox.Attach(GetDlgItem(IDC_PRESET_NAME)); 
     14        commentBox.Attach(GetDlgItem(IDC_PRESET_COMMENT_EDIT)); 
     15        deleteButton.Attach(GetDlgItem(IDC_PRESET_DELETE_BUTTON)); 
     16        presetList.Attach(GetDlgItem(IDC_PRESET_LIST)); 
     17        nameBox.Attach(GetDlgItem(IDC_PRESET_NAME)); 
    1818 
    1919        for (size_t i=0; i<presets->getPresetCount(); i++) { 
    20         PresetInfo* pi=presets->getPreset(i); 
     20                PresetInfo* pi=presets->getPreset(i); 
    2121                presetList.InsertString(i, pi->name.c_str()); 
    2222        } 
    23      
    24     return TRUE; 
     23         
     24        return TRUE; 
    2525} 
    2626 
     
    3131 
    3232LRESULT CPresetDialog::OnBnClickedOk(WORD /*wNotifyCode*/, WORD wID, HWND /*hWndCtl*/, BOOL& /*bHandled*/) { 
    33     char pc[4096]; 
    34     nameBox.GetWindowText(pc, 4096); 
     33        char pc[4096]; 
     34        nameBox.GetWindowText(pc, 4096); 
    3535 
    36     // overwrite existing preset? 
    37     PresetInfo* pi = presets->getPreset(pc); 
    38     bool newpreset = false; 
     36        // overwrite existing preset? 
     37        PresetInfo* pi = presets->getPreset(pc); 
     38        bool newpreset = false; 
    3939 
    40     if (!pi) { 
    41         // no - create a new 
    42         pi = new PresetInfo(); 
    43         pi->name = pc; 
    44         newpreset = true; 
    45     } 
     40        if (!pi) { 
     41                // no - create a new 
     42                pi = new PresetInfo(); 
     43                pi->name = pc; 
     44                newpreset = true; 
     45        } 
    4646 
    47     commentBox.GetWindowText(pc, 4096); 
    48     pi->comment = pc; 
    49     pi->parameters = getStateParameters(plugin); 
    50     for (size_t i = 0; i<pi->parameters; i++) { 
     47        commentBox.GetWindowText(pc, 4096); 
     48        pi->comment = pc; 
     49 
     50        zzub::pattern conv(plugin, 0); 
     51        for (size_t i = 0; i < conv.getColumns(); i++) { 
     52                const zzub::parameter* param = conv.getColumnParameter(i); 
     53                if ((param->flags & zzub::parameter_flag_state) == 0) continue; 
     54 
    5155                size_t pgroup=0, ptrack=0, pcolumn=0; 
    52                 stateToPatternSpace(plugin, i, pgroup, ptrack, pcolumn); 
     56                conv.linearToPattern(i, pgroup, ptrack, pcolumn); 
    5357 
    54         pi->values[i] = plugin->getParameter(pgroup, ptrack, pcolumn); 
    55     } 
     58                pi->values[i] = plugin->getParameter(pgroup, ptrack, pcolumn); 
     59                pi->parameters++; 
     60        } 
    5661 
    57     if (newpreset) 
    58         presets->add(*pi); 
     62        if (newpreset) 
     63                presets->add(*pi); 
    5964 
    6065        EndDialog(wID); 
    6166 
    62     return 0; 
     67        return 0; 
    6368} 
    6469 
    6570LRESULT CPresetDialog::OnPresetChange(WORD /*wNotifyCode*/, WORD /*wID*/, HWND /*hWndCtl*/, BOOL& /*bHandled*/) { 
    66     int sel = presetList.GetCurSel(); 
     71        int sel = presetList.GetCurSel(); 
    6772 
    68     if (sel != -1) { 
    69         PresetInfo* pi = presets->getPreset(sel); 
    70         nameBox.SetWindowText(pi->name.c_str()); 
    71         commentBox.SetWindowText(pi->comment.c_str()); 
    72     } 
     73        if (sel != -1) { 
     74                PresetInfo* pi = presets->getPreset(sel); 
     75                nameBox.SetWindowText(pi->name.c_str()); 
     76                commentBox.SetWindowText(pi->comment.c_str()); 
     77        } 
    7378 
    74     return 0; 
     79        return 0; 
    7580} 
    7681 
    7782LRESULT CPresetDialog::OnPresetDelete(WORD /*wNotifyCode*/, WORD /*wID*/, HWND /*hWndCtl*/, BOOL& /*bHandled*/) { 
    78     int sel = presetList.GetCurSel(); 
     83        int sel = presetList.GetCurSel(); 
    7984 
    80     if (sel != -1) { 
    81         presets->remove(sel); 
    82         EndDialog(IDOK); 
    83     } 
     85        if (sel != -1) { 
     86                presets->remove(sel); 
     87                EndDialog(IDOK); 
     88        } 
    8489 
    85     return 0; 
     90        return 0; 
    8691} 
  • trunk/src/buzelib/SelectMachine.cpp

    r1218 r1280  
    11#include "StdAfx.h" 
    22#include "resource.h" 
    3  
    4 #include ".\selectmachine.h" 
     3#include "SelectMachine.h" 
    54 
    65using namespace zzub; 
     
    1211} 
    1312 
    14 CSelectMachineDialog::~CSelectMachineDialog(void) 
    15 { 
     13CSelectMachineDialog::~CSelectMachineDialog(void) { 
     14} 
     15 
     16LRESULT CSelectMachineDialog::OnChar(UINT /*uMsg*/, WPARAM wParam, LPARAM /*lParam*/, BOOL& /*bHandled*/) { 
     17        if (wParam=='\n') return SendMessage(WM_COMMAND, IDOK); 
     18        return TRUE; 
     19} 
     20 
     21LRESULT CSelectMachineDialog::OnInitDialog(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& /*bHandled*/) { 
     22        using namespace std; 
     23        CenterWindow(GetParent()); 
     24        list.Attach(GetDlgItem(IDC_MACHINELIST)); 
     25 
     26        for (size_t i=0; i<player->getMachines(); i++) { 
     27                zzub::metaplugin* plugin = player->getMachine(i); 
     28                if (plugin->nonSongPlugin) continue; 
     29                list.AddString(plugin->getName().c_str()); 
     30        } 
     31 
     32        list.SetCurSel(0); 
     33        list.SetFocus(); 
     34         
     35        return TRUE; 
     36} 
     37 
     38LRESULT CSelectMachineDialog::OnCloseCmd(WORD /*wNotifyCode*/, WORD wID, HWND /*hWndCtl*/, BOOL& /*bHandled*/) { 
     39        EndDialog(wID); 
     40        return 0; 
    1641} 
    1742 
  • trunk/src/buzelib/SelectMachine.h

    r1218 r1280  
    1313                MESSAGE_HANDLER(WM_INITDIALOG, OnInitDialog) 
    1414                MESSAGE_HANDLER(WM_CHAR, OnChar) 
    15                 //COMMAND_ID_HANDLER(IDOK, OnCloseCmd) 
    1615                COMMAND_ID_HANDLER(IDCANCEL, OnCloseCmd) 
    1716                COMMAND_ID_HANDLER(IDOK, OnBnClickedOk) 
     
    2221        ~CSelectMachineDialog(void); 
    2322 
    24         LRESULT OnChar(UINT /*uMsg*/, WPARAM wParam, LPARAM /*lParam*/, BOOL& /*bHandled*/) { 
    25                 if (wParam=='\n') return SendMessage(WM_COMMAND, IDOK); 
    26                 return TRUE; 
    27         } 
    28  
    29         LRESULT OnInitDialog(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& /*bHandled*/) { 
    30                 using namespace std; 
    31                 CenterWindow(GetParent()); 
    32                 list.Attach(GetDlgItem(IDC_MACHINELIST)); 
    33  
    34                 for (size_t i=0; i<player->getMachines(); i++) { 
    35                         list.AddString(player->getMachine(i)->getName().c_str()); 
    36                 } 
    37  
    38         list.SetCurSel(0); 
    39                 list.SetFocus(); 
    40                  
    41                 return TRUE; 
    42         } 
    43  
    44         LRESULT OnCloseCmd(WORD /*wNotifyCode*/, WORD wID, HWND /*hWndCtl*/, BOOL& /*bHandled*/) { 
    45                 EndDialog(wID); 
    46                 return 0; 
    47         } 
     23        LRESULT OnChar(UINT /*uMsg*/, WPARAM wParam, LPARAM /*lParam*/, BOOL& /*bHandled*/); 
     24        LRESULT OnInitDialog(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& /*bHandled*/); 
     25        LRESULT OnCloseCmd(WORD /*wNotifyCode*/, WORD wID, HWND /*hWndCtl*/, BOOL& /*bHandled*/); 
    4826        LRESULT OnBnClickedOk(WORD /*wNotifyCode*/, WORD /*wID*/, HWND /*hWndCtl*/, BOOL& /*bHandled*/); 
    4927        LRESULT OnLbnSelchangeMachinelist(WORD /*wNotifyCode*/, WORD /*wID*/, HWND /*hWndCtl*/, BOOL& /*bHandled*/); 
  • trunk/src/buzelib/Utils/utils.cpp

    r1273 r1280  
    8484                return ((zzub::audio_connection*)conn)->values.pan; 
    8585        return 0xffff; 
    86 } 
    87  
    88  
    89 /* 
    90  
    91     metaplugin column space conversion helpers 
    92  
    93 */ 
    94 size_t getStateParameters(zzub::metaplugin* self) { 
    95         size_t count = self->getConnections();  // volume are state parameters 
    96         count += self->globalState.getStateTrack()->getStateParams(); 
    97         for (size_t i = 0; i < self->trackStates.size(); i++) 
    98                 count += self->trackStates[i]->getStateTrack()->getStateParams(); 
    99  
    100         return count; 
    101 } 
    102  
    103 bool stateToPatternSpace(zzub::metaplugin* self, size_t index, size_t& group, size_t& track, size_t& column) { 
    104         size_t currentParameter = 0; 
    105  
    106         for (size_t i = 0; i < self->getConnections(); i++) { 
    107                 if (index == currentParameter) { 
    108                         group = 0; 
    109                         track = i; 
    110                         column = 0; 
    111                         return true; 
    112                 } 
    113                 currentParameter++; 
    114         } 
    115  
    116         for (size_t i = 0; i < self->loader->plugin_info->global_parameters.size(); i++) { 
    117                 if (self->loader->plugin_info->global_parameters[i]->flags & zzub::parameter_flag_state) { 
    118                         if (index == currentParameter) { 
    119                                 group = 1; 
    120                                 track = 0; 
    121                                 column = i; 
    122                                 return true; 
    123                         } 
    124                         currentParameter++; 
    125                 } 
    126         } 
    127  
    128         for (size_t j=0; j<self->getTracks(); j++) { 
    129                 for (size_t i = 0; i < self->loader->plugin_info->track_parameters.size(); i++) { 
    130                         if (self->loader->plugin_info->track_parameters[i]->flags & zzub::parameter_flag_state) { 
    131                                 if (index == currentParameter) { 
    132                                         group = 2; 
    133                                         track = j; 
    134                                         column = i; 
    135                                         return true; 
    136                                 } 
    137                                 currentParameter++; 
    138                         } 
    139                 } 
    140         } 
    141         return false; 
    14286} 
    14387 
  • trunk/src/buzelib/Utils/utils.h

    r1273 r1280  
    3434int getConnectionPan(const zzub::connection* conn); 
    3535 
    36 bool stateToPatternSpace(zzub::metaplugin* self, size_t index, size_t& group, size_t& track, size_t& column); 
    37 size_t getStateParameters(zzub::metaplugin* self); 
    38  
    39  
    4036// taken from comment on http://www.codeproject.com/string/stringsplit.asp?df=100&forumid=2167&exp=0&select=1062827#xx1062827xx 
    4137template<typename _Cont>