~ubuntu-branches/ubuntu/feisty/muse/feisty

« back to all changes in this revision

Viewing changes to widgets/utils.cpp

  • Committer: Bazaar Package Importer
  • Author(s): Daniel Kobras
  • Date: 2002-04-23 17:28:23 UTC
  • Revision ID: james.westby@ubuntu.com-20020423172823-w8yplzr81a759xa3
Tags: upstream-0.5.2
ImportĀ upstreamĀ versionĀ 0.5.2

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
//=========================================================
 
2
//  MusE
 
3
//  Linux Music Editor
 
4
//    $Id: utils.cpp,v 1.1 2002/01/30 14:54:04 muse Exp $
 
5
//  (C) Copyright 1999 Werner Schweer (ws@seh.de)
 
6
//=========================================================
 
7
 
 
8
#include <stdlib.h>
 
9
#include "utils.h"
 
10
#include <math.h>
 
11
#include <qframe.h>
 
12
#include <sys/time.h>
 
13
 
 
14
//---------------------------------------------------------
 
15
//   curTime
 
16
//---------------------------------------------------------
 
17
 
 
18
double curTime()
 
19
      {
 
20
      struct timeval t;
 
21
      struct timezone tz;
 
22
      gettimeofday(&t, &tz);
 
23
      return (double)((double)t.tv_sec + (t.tv_usec / 1000000.0));
 
24
      }
 
25
 
 
26
//---------------------------------------------------------
 
27
//   dump
 
28
//    simple debug output
 
29
//---------------------------------------------------------
 
30
 
 
31
void dump(const unsigned char* p, int n)
 
32
      {
 
33
      printf("dump %d\n", n);
 
34
      for (int i = 0; i < n; ++i) {
 
35
            printf("%02x ", *p++);
 
36
            if ((i > 0) && (i % 16 == 0) && (i+1 < n))
 
37
                  printf("\n");
 
38
            }
 
39
      printf("\n");
 
40
      }
 
41
 
 
42
//---------------------------------------------------------
 
43
//   num2cols
 
44
//---------------------------------------------------------
 
45
 
 
46
int num2cols(int min, int max)
 
47
      {
 
48
      int amin = abs(min);
 
49
      int amax = abs(max);
 
50
      int l = amin > amax ? amin : amax;
 
51
      return int(log10(l)) + 1;
 
52
      }
 
53
 
 
54
//---------------------------------------------------------
 
55
//   hLine
 
56
//---------------------------------------------------------
 
57
 
 
58
QFrame* hLine(QWidget* w)
 
59
      {
 
60
      QFrame* delim = new QFrame(w);
 
61
      delim->setFrameStyle(QFrame::HLine | QFrame::Sunken);
 
62
      return delim;
 
63
      }
 
64
 
 
65
//---------------------------------------------------------
 
66
//   vLine
 
67
//---------------------------------------------------------
 
68
 
 
69
QFrame* vLine(QWidget* w)
 
70
      {
 
71
      QFrame* delim = new QFrame(w);
 
72
      delim->setFrameStyle(QFrame::VLine | QFrame::Sunken);
 
73
      return delim;
 
74
      }
 
75
 
 
76
//---------------------------------------------------------
 
77
//   bitmap2String
 
78
//    5c -> 1-4 1-6
 
79
//
 
80
//    01011100
 
81
//
 
82
//---------------------------------------------------------
 
83
 
 
84
QString bitmap2String(int bm)
 
85
      {
 
86
      QString s;
 
87
//printf("bitmap2string: bm %04x", bm);
 
88
      if (bm == 0xffff)
 
89
            s = "all";
 
90
      else if (bm == 0)
 
91
            s = "none";
 
92
      else {
 
93
            bool range = false;
 
94
            int first = 0;
 
95
            bool needSpace = false;
 
96
            bm &= 0xffff;
 
97
            for (int i = 0; i < 17; ++i) {
 
98
                  if ((1 << i) & bm) {
 
99
                        if (!range) {
 
100
                              range = true;
 
101
                              first = i;
 
102
                              }
 
103
                        }
 
104
                  else {
 
105
                        if (range) {
 
106
                              if (needSpace)
 
107
                                    s += " ";
 
108
                              QString ns;
 
109
                              if (first == i-1)
 
110
                                    ns.sprintf("%d", first+1);
 
111
                              else
 
112
                                    ns.sprintf("%d-%d", first+1, i);
 
113
                              s += ns;
 
114
                              needSpace = true;
 
115
                              }
 
116
                        range = false;
 
117
                        }
 
118
                  }
 
119
            }
 
120
//printf(" -> <%s>\n", s.latin1());
 
121
      return s;
 
122
      }
 
123
 
 
124
//---------------------------------------------------------
 
125
//   string2bitmap
 
126
//---------------------------------------------------------
 
127
 
 
128
int string2bitmap(const QString& str)
 
129
      {
 
130
      int val = 0;
 
131
      QString ss = str.simplifyWhiteSpace();
 
132
      const char* s = ss.latin1();
 
133
//printf("string2bitmap <%s>\n", s);
 
134
 
 
135
      if (s == 0)
 
136
            return 0;
 
137
      if (strcmp(s, "all") == 0)
 
138
            return 0xffff;
 
139
      if (strcmp(s, "none") == 0)
 
140
            return 0;
 
141
// printf("str2bitmap: <%s> ", str.latin1);
 
142
      int tval   = 0;
 
143
      bool range = false;
 
144
      int sval   = 0;
 
145
      while (*s == ' ')
 
146
            ++s;
 
147
      while (*s) {
 
148
            if (*s >= '0'  && *s <= '9') {
 
149
                  tval *= 10;
 
150
                  tval += *s - '0';
 
151
                  }
 
152
            else if (*s == ' ' || *s == ',') {
 
153
                  if (range) {
 
154
                        for (int i = sval-1; i < tval; ++i)
 
155
                              val |= (1 << i);
 
156
                        range = false;
 
157
                        }
 
158
                  else {
 
159
                        val |= (1 << (tval-1));
 
160
                        }
 
161
                  tval = 0;
 
162
                  }
 
163
            else if (*s == '-') {
 
164
                  range = true;
 
165
                  sval  = tval;
 
166
                  tval  = 0;
 
167
                  }
 
168
            ++s;
 
169
            }
 
170
      if (range && tval) {
 
171
            for (int i = sval-1; i < tval; ++i)
 
172
                  val |= (1 << i);
 
173
            }
 
174
      else if (tval) {
 
175
            val |= (1 << (tval-1));
 
176
            }
 
177
      return val & 0xffff;
 
178
      }
 
179
 
 
180
 
 
181