gearmulator

Emulation of classic VA synths of the late 90s/2000s that are based on Motorola 56300 family DSPs
Log | Files | Refs | Submodules | README | LICENSE

pstrutils.cxx (1048B)


      1 /*
      2  *
      3  *  C++ Portable Types Library (PTypes)
      4  *  Version 2.1.1  Released 27-Jun-2007
      5  *
      6  *  Copyright (C) 2001-2007 Hovik Melikyan
      7  *
      8  *  http://www.melikyan.com/ptypes/
      9  *
     10  */
     11 
     12 #include <string.h>
     13 
     14 #include "ptypes.h"
     15 
     16 
     17 namespace ptypes {
     18 
     19 
     20 string ptdecl fill(int width, char pad)
     21 {
     22     string res;
     23     if (width > 0) {
     24         setlength(res, width);
     25         memset(pchar(pconst(res)), pad, length(res));
     26     }
     27     return res;
     28 }
     29 
     30 
     31 string ptdecl pad(const string& s, int width, char c, bool left)
     32 {
     33     int len = length(s);
     34     if (len < width && width > 0)
     35     {
     36         string res;
     37         setlength(res, width);
     38         if (left)
     39         {
     40             if (len > 0)
     41                 memcpy(pchar(pconst(res)), pconst(s), len);
     42             memset(pchar(pconst(res)) + len, c, width - len);
     43         }
     44         else
     45         {
     46             memset(pchar(pconst(res)), c, width - len);
     47             if (len > 0)
     48                 memcpy(pchar(pconst(res)) + width - len, pconst(s), len);
     49         }
     50         return res;
     51     }
     52     else
     53         return s;
     54 }
     55 
     56 
     57 }