/[svn]/gigedit/trunk/src/gigedit/dimregionchooser.cpp
ViewVC logotype

Diff of /gigedit/trunk/src/gigedit/dimregionchooser.cpp

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1420 by persson, Sun Oct 14 15:39:32 2007 UTC revision 1533 by persson, Sat Dec 1 10:21:07 2007 UTC
# Line 248  void DimRegionChooser::set_region(gig::R Line 248  void DimRegionChooser::set_region(gig::R
248    
249              int z = std::min(dimvalue[region->pDimensionDefinitions[dim].dimension],              int z = std::min(dimvalue[region->pDimensionDefinitions[dim].dimension],
250                               region->pDimensionDefinitions[dim].zones - 1);                               region->pDimensionDefinitions[dim].zones - 1);
             int mask =  
                 ~(((1 << region->pDimensionDefinitions[dim].bits) - 1) <<  
                   bitcount);  
             dimregno &= mask;  
251              dimregno |= (z << bitcount);              dimregno |= (z << bitcount);
252              bitcount += region->pDimensionDefinitions[dim].bits;              bitcount += region->pDimensionDefinitions[dim].bits;
253          }          }
# Line 263  void DimRegionChooser::set_region(gig::R Line 259  void DimRegionChooser::set_region(gig::R
259      queue_resize();      queue_resize();
260  }  }
261    
262    
263    void DimRegionChooser::get_dimregions(const gig::Region* region, bool stereo,
264                                          std::set<gig::DimensionRegion*>& dimregs) const
265    {
266        int dimregno = 0;
267        int bitcount = 0;
268        int stereo_bit = 0;
269        for (int dim = 0 ; dim < region->Dimensions ; dim++) {
270            if (region->pDimensionDefinitions[dim].bits == 0) continue;
271            if (stereo &&
272                region->pDimensionDefinitions[dim].dimension == gig::dimension_samplechannel) {
273                stereo_bit = (1 << bitcount);
274            } else {
275                int z = std::min(dimvalue[region->pDimensionDefinitions[dim].dimension],
276                                 region->pDimensionDefinitions[dim].zones - 1);
277                dimregno |= (z << bitcount);
278            }
279            bitcount += region->pDimensionDefinitions[dim].bits;
280        }
281        dimregs.insert(region->pDimensionRegions[dimregno]);
282        if (stereo_bit) dimregs.insert(region->pDimensionRegions[dimregno | stereo_bit]);
283    }
284    
285    
286  bool DimRegionChooser::on_button_release_event(GdkEventButton* event)  bool DimRegionChooser::on_button_release_event(GdkEventButton* event)
287  {  {
288      if (resize.active) {      if (resize.active) {

Legend:
Removed from v.1420  
changed lines
  Added in v.1533

  ViewVC Help
Powered by ViewVC