~ubuntu-branches/ubuntu/saucy/clementine/saucy

« back to all changes in this revision

Viewing changes to src/core/commandlineoptions.cpp

  • Committer: Package Import Robot
  • Author(s): Thomas PIERSON
  • Date: 2012-01-01 20:43:39 UTC
  • mfrom: (1.1.1)
  • Revision ID: package-import@ubuntu.com-20120101204339-lsb6nndwhfy05sde
Tags: 1.0.1+dfsg-1
New upstream release. (Closes: #653926, #651611, #657391)

Show diffs side-by-side

added added

removed removed

Lines of Context:
17
17
 
18
18
#include "config.h"
19
19
#include "commandlineoptions.h"
 
20
#include "logging.h"
 
21
#include "version.h"
20
22
 
21
23
#include <cstdlib>
22
24
#include <getopt.h>
23
25
#include <iostream>
24
26
 
25
27
#include <QBuffer>
 
28
#include <QCoreApplication>
26
29
#include <QFileInfo>
27
30
 
 
31
 
28
32
const char* CommandlineOptions::kHelpText =
29
33
    "%1: clementine [%2] [%3]\n"
30
34
    "\n"
48
52
    "\n"
49
53
    "%20:\n"
50
54
    "  -o, --show-osd            %21\n"
51
 
    "  -g, --language <lang>     %22\n";
 
55
    "  -y, --toggle-pretty-osd   %22\n"
 
56
    "  -g, --language <lang>     %24\n"
 
57
    "      --quiet               %25\n"
 
58
    "      --verbose             %26\n"
 
59
    "      --log-levels <levels> %27\n"
 
60
    "      --version             %28\n";
52
61
 
 
62
const char* CommandlineOptions::kVersionText =
 
63
    "Clementine %1";
53
64
 
54
65
CommandlineOptions::CommandlineOptions(int argc, char** argv)
55
66
  : argc_(argc),
61
72
    seek_to_(-1),
62
73
    seek_by_(0),
63
74
    play_track_at_(-1),
64
 
    show_osd_(false)
 
75
    show_osd_(false),
 
76
    toggle_pretty_osd_(false),
 
77
    log_levels_(logging::kDefaultLogLevels)
65
78
{
66
79
#ifdef Q_OS_DARWIN
67
80
  // Remove -psn_xxx option that Mac passes when opened from Finder.
97
110
    {"next",        no_argument,       0, 'f'},
98
111
    {"volume",      required_argument, 0, 'v'},
99
112
    {"volume-up",   no_argument,       0, VolumeUp},
 
113
 
100
114
    {"volume-down", no_argument,       0, VolumeDown},
101
115
    {"seek-to",     required_argument, 0, SeekTo},
102
116
    {"seek-by",     required_argument, 0, SeekBy},
103
117
 
104
 
    {"append",      no_argument,       0, 'a'},
105
 
    {"load",        no_argument,       0, 'l'},
106
 
    {"play-track",  required_argument, 0, 'k'},
107
 
 
108
 
    {"show-osd",    no_argument,       0, 'o'},
109
 
    {"language",    required_argument, 0, 'g'},
 
118
    {"append",            no_argument,       0, 'a'},
 
119
    {"load",              no_argument,       0, 'l'},
 
120
    {"play-track",        required_argument, 0, 'k'},
 
121
    {"show-osd",          no_argument,       0, 'o'},
 
122
    {"toggle-pretty-osd", no_argument,       0, 'y'},
 
123
    {"language",          required_argument, 0, 'g'},
 
124
    {"quiet",             no_argument,       0, Quiet},
 
125
    {"verbose",           no_argument,       0, Verbose},
 
126
    {"log-levels",        required_argument, 0, LogLevels},
 
127
    {"version",           no_argument,       0, Version},
110
128
 
111
129
    {0, 0, 0, 0}
112
130
  };
114
132
  // Parse the arguments
115
133
  bool ok = false;
116
134
  forever {
117
 
    int c = getopt_long(argc_, argv_, "hptusrfv:alk:og:", kOptions, NULL);
 
135
    int c = getopt_long(argc_, argv_, "hptusrfv:alk:oyg:", kOptions, NULL);
118
136
 
119
137
    // End of the options
120
138
    if (c == -1)
141
159
            tr("Play the <n>th track in the playlist"),
142
160
            tr("Other options"),
143
161
            tr("Display the on-screen-display"),
144
 
            tr("Change the language"));
 
162
            tr("Toggle visibility for the pretty on-screen-display"),
 
163
            tr("Change the language"),
 
164
            tr("Equivalent to --log-levels *:1"),
 
165
            tr("Equivalent to --log-levels *:3"),
 
166
            tr("Comma separated list of class:level, level is 0-3")).arg(
 
167
            tr("Print out version information"));
145
168
 
146
169
        std::cout << translated_help_text.toLocal8Bit().constData();
147
170
        return false;
148
171
      }
149
172
 
150
 
      case 'p': player_action_   = Player_Play;      break;
151
 
      case 't': player_action_   = Player_PlayPause; break;
152
 
      case 'u': player_action_   = Player_Pause;     break;
153
 
      case 's': player_action_   = Player_Stop;      break;
154
 
      case 'r': player_action_   = Player_Previous;  break;
155
 
      case 'f': player_action_   = Player_Next;      break;
156
 
      case 'a': url_list_action_ = UrlList_Append;   break;
157
 
      case 'l': url_list_action_ = UrlList_Load;     break;
158
 
      case 'o': show_osd_        = true;             break;
159
 
      case 'g': language_        = QString(optarg);  break;
160
 
      case VolumeUp:   volume_modifier_ = +4;        break;
161
 
      case VolumeDown: volume_modifier_ = -4;        break;
162
 
 
 
173
      case 'p': player_action_     = Player_Play;       break;
 
174
      case 't': player_action_     = Player_PlayPause;  break;
 
175
      case 'u': player_action_     = Player_Pause;      break;
 
176
      case 's': player_action_     = Player_Stop;       break;
 
177
      case 'r': player_action_     = Player_Previous;   break;
 
178
      case 'f': player_action_     = Player_Next;       break;
 
179
      case 'a': url_list_action_   = UrlList_Append;    break;
 
180
      case 'l': url_list_action_   = UrlList_Load;      break;
 
181
      case 'o': show_osd_          = true;              break;
 
182
      case 'y': toggle_pretty_osd_ = true;              break;
 
183
      case 'g': language_          = QString(optarg);   break;
 
184
      case VolumeUp:   volume_modifier_ = +4;           break;
 
185
      case VolumeDown: volume_modifier_ = -4;           break;
 
186
      case Quiet:      log_levels_ = "1";               break;
 
187
      case Verbose:    log_levels_ = "3";               break;
 
188
      case LogLevels:  log_levels_ = QString(optarg);   break;
 
189
      case Version: {
 
190
        QString version_text = QString(kVersionText).arg(CLEMENTINE_VERSION_DISPLAY);
 
191
        std::cout << version_text.toLocal8Bit().constData() << std::endl;
 
192
        std::exit(0);
 
193
      }
163
194
      case 'v':
164
195
        set_volume_ = QString(optarg).toInt(&ok);
165
196
        if (!ok) set_volume_ = -1;
206
237
         seek_by_ == 0 &&
207
238
         play_track_at_ == -1 &&
208
239
         show_osd_ == false &&
 
240
         toggle_pretty_osd_ == false &&
209
241
         urls_.isEmpty();
210
242
}
211
243
 
242
274
    << a.seek_by_
243
275
    << a.play_track_at_
244
276
    << a.show_osd_
245
 
    << a.urls_;
 
277
    << a.urls_
 
278
    << a.log_levels_
 
279
    << a.toggle_pretty_osd_;
246
280
 
247
281
  return s;
248
282
}
258
292
    >> a.seek_by_
259
293
    >> a.play_track_at_
260
294
    >> a.show_osd_
261
 
    >> a.urls_;
 
295
    >> a.urls_
 
296
    >> a.log_levels_
 
297
    >> a.toggle_pretty_osd_;
262
298
  a.player_action_ = CommandlineOptions::PlayerAction(player_action);
263
299
  a.url_list_action_ = CommandlineOptions::UrlListAction(url_list_action);
264
300