]> git.tdb.fi Git - r2c2.git/commitdiff
Use Msp::IO::print instead of std::cout
authorMikko Rasa <tdb@tdb.fi>
Mon, 21 Dec 2009 07:17:19 +0000 (07:17 +0000)
committerMikko Rasa <tdb@tdb.fi>
Mon, 21 Dec 2009 07:17:19 +0000 (07:17 +0000)
Use Msp::format instead of std::ostringstream

source/3d/layout.cpp
source/designer/designer.cpp
source/designer/manipulator.cpp
source/libmarklin/block.cpp
source/libmarklin/control.cpp
source/shoppinglist/main.cpp

index f3fe3795fa909a1e3cc4d5d259cbe9c31df61ca0..dcf5544e8dfb8435d793dc7aa98fd300971c9ace 100644 (file)
@@ -6,7 +6,6 @@ Distributed under the GPL
 */
 
 #include <algorithm>
-#include <fstream>
 #include <limits>
 #include <msp/gl/rendermode.h>
 #include <msp/gl/select.h>
index a5bbc68e2b76fa8234cb367103652bb69f10d3a1..4763b8fda6294f3d12ff420c1245bb1e6b975dc5 100644 (file)
@@ -7,7 +7,6 @@ Distributed under the GPL
 
 #include <signal.h>
 #include <cmath>
-#include <iostream>
 #include <GL/gl.h>
 #include <msp/gl/matrix.h>
 #include <msp/gl/misc.h>
@@ -284,17 +283,15 @@ void Designer::tick()
                {
                        const Track &track = t3d->get_track();
                        const TrackType &ttype = track.get_type();
-                       ostringstream ss;
-                       ss.precision(2);
-                       ss<<ttype.get_article_number()<<' '<<ttype.get_description();
+                       string info = format("%d %s", ttype.get_article_number(), ttype.get_description());
                        if(mode!=CATALOGUE && abs(track.get_slope())>1e-4)
-                               ss<<" (slope "<<abs(track.get_slope()/ttype.get_total_length()*100)<<"%)";
+                               info += format(" (slope %.1f%%)", abs(track.get_slope()/ttype.get_total_length()*100));
                        if(track.get_turnout_id())
-                               ss<<" (turnout "<<track.get_turnout_id()<<')';
+                               info += format(" (turnout %d)", track.get_turnout_id());
                        else if(track.get_sensor_id())
-                               ss<<" (sensor "<<track.get_sensor_id()<<')';
+                               info += format(" (sensor %d)", track.get_sensor_id());
 
-                       set_tooltip(pointer_x, pointer_y, ss.str());
+                       set_tooltip(pointer_x, pointer_y, info);
                }
                else
                        clear_tooltip();
@@ -345,7 +342,7 @@ void Designer::key_press(unsigned code, unsigned mod, wchar_t)
                float len = 0;
                for(set<Track *>::const_iterator i=tracks.begin(); i!=tracks.end(); ++i)
                        len += (*i)->get_type().get_total_length();
-               cout<<"Total length: "<<len<<"m\n";
+               IO::print("Total length: %.1fm\n", len);
        }
        else if(key==Msp::Input::KEY_L)
                selection->select_linked();
@@ -404,9 +401,7 @@ void Designer::key_press(unsigned code, unsigned mod, wchar_t)
                Track *track = selection->get_track();
                if(selection->size()==1 && track->get_type().get_n_paths()>1)
                {
-                       ostringstream ss;
-                       ss<<track->get_turnout_id();
-                       input = new ::Input(*this, "Turnout ID", ss.str());
+                       input = new ::Input(*this, "Turnout ID", lexical_cast(track->get_turnout_id()));
                        input->signal_cancel.connect(sigc::mem_fun(this, &Designer::input_dismiss));
                        input->signal_accept.connect(sigc::mem_fun(this, &Designer::turnout_id_accept));
                        mode = INPUT;
@@ -431,10 +426,7 @@ void Designer::key_press(unsigned code, unsigned mod, wchar_t)
                }
                if(ok)
                {
-                       ostringstream ss;
-                       if(id>=0)
-                               ss<<id;
-                       input = new ::Input(*this, "Sensor ID", ss.str());
+                       input = new ::Input(*this, "Sensor ID", (id>=0 ? lexical_cast(id) : string()));
                        input->signal_cancel.connect(sigc::mem_fun(this, &Designer::input_dismiss));
                        input->signal_accept.connect(sigc::mem_fun(this, &Designer::sensor_id_accept));
                        mode = INPUT;
@@ -672,10 +664,8 @@ void Designer::measure_changed()
        float perpd = measure->get_perpendicular_distance()*1000;
        float d = sqrt(pard*pard+perpd*perpd);
        float adiff = measure->get_angle_difference()*180/M_PI;
-       ostringstream ss;
-       ss.precision(3);
-       ss<<"Par "<<pard<<"mm - Perp "<<perpd<<"mm - Total "<<d<<"mm - Angle "<<adiff<<"°";
-       set_tooltip(pointer_x, pointer_y, ss.str());
+       string info = format("Par %.1fmm - Perp %.1fmm - Total %.1fmm - Angle %.1f°", pard, perpd, d, adiff);
+       set_tooltip(pointer_x, pointer_y, info);
 }
 
 void Designer::measure_done()
index 1f21430737c6c2f7d9dcda85869c02cddd1847da..f4e75e7f40d2a512c24549af65b65f085e9f7a59 100644 (file)
@@ -8,6 +8,7 @@ Distributed under the GPL
 #include <algorithm>
 #include <cmath>
 #include <GL/gl.h>
+#include <msp/strings/formatter.h>
 #include "3d/layout.h"
 #include "libmarklin/tracktype.h"
 #include "designer.h"
@@ -18,8 +19,6 @@ using namespace std;
 using namespace Marklin;
 using namespace Msp;
 
-#include <iostream>
-
 Manipulator::Manipulator(Designer &d):
        designer(d),
        selection(0),
@@ -327,10 +326,7 @@ void Manipulator::pointer_motion(int, int y, float gx, float gy)
        {
                float dz = (y-elev_origin)/1000.;
 
-               ostringstream ss;
-               ss.precision(3);
-               ss<<"Elevation: "<<dz*1000<<"mm ("<<(center.z+dz)*1000<<"mm)";
-               signal_status.emit(ss.str());
+               signal_status.emit(format("Elevation: %+.0fmm (%.0fmm)", dz*1000, (center.z+dz)*1000));
 
                wrap_pos.z = center.z+dz;
                for(vector<MTrack>::iterator i=tracks.begin(); i!=tracks.end(); ++i)
index e9c170c1ccb7140911666f3ca3704892a440af90..d4a6878a68b1b6ba475b85fd17014fe490b6cceb 100644 (file)
@@ -5,7 +5,6 @@ Copyright © 2006-2009 Mikkosoft Productions, Mikko Rasa
 Distributed under the GPL
 */
 
-#include <iostream>
 #include "control.h"
 #include "block.h"
 #include "tracktype.h"
@@ -141,23 +140,6 @@ bool Block::reserve(const Train *t)
                return false;
 }
 
-void Block::print_debug()
-{
-       cout<<"Block "<<id;
-       if((*tracks.begin())->get_sensor_id())
-               cout<<", sensor="<<(*tracks.begin())->get_sensor_id();
-       cout<<'\n';
-       for(vector<Endpoint>::iterator i=endpoints.begin(); i!=endpoints.end(); ++i)
-       {
-               cout<<"  Endpoint, link=";
-               if(i->link)
-                       cout<<i->link->id;
-               else
-                       cout<<"none";
-               cout<<", paths="<<i->paths<<'\n';
-       }
-}
-
 void Block::find_paths(Track &track, unsigned track_ep, unsigned path, set<Track *> &visited)
 {
        visited.insert(&track);
index 30e99e6e4f5266cfa1878735bf3a4a21ded55920..fa1117ccd0fa319dd6c15bf5c735092e8fe27ada 100644 (file)
@@ -8,8 +8,8 @@ Distributed under the GPL
 #include <fcntl.h>
 #include <termios.h>
 #include <sys/poll.h>
-#include <iostream>
 #include <msp/core/except.h>
+#include <msp/io/print.h>
 #include <msp/time/units.h>
 #include <msp/time/utils.h>
 #include "command.h"
@@ -72,7 +72,7 @@ void Control::open(const string &dev)
                pollfd pfd = { serial_fd, POLLIN, 0 };
                if(poll(&pfd, 1, 500)>0)
                {
-                       cout<<"IB detected at "<<baud[i]<<" bits/s\n";
+                       IO::print("IB detected at %d bits/s\n", baud[i]);
                        char buf[2];
                        p50 = (read(serial_fd, buf, 2)==2);
                        ok = true;
@@ -199,7 +199,7 @@ void Control::tick()
                {
                        Reply reply = Reply::read(serial_fd, queue.front().get_command());
                        if(debug)
-                               cout<<"R: "<<reply<<'\n';
+                               IO::print("R: %s\n", reply);
 
                        queue.front().signal_done.emit(reply);
                        queue.erase(queue.begin());
@@ -211,7 +211,7 @@ void Control::tick()
        if(!queue.empty())
        {
                if(debug)
-                       cout<<"W: "<<queue.front()<<'\n';
+                       IO::print("W: %s\n", queue.front());
 
                if(serial_fd>=0)
                        queue.front().send(serial_fd);
@@ -256,7 +256,7 @@ void Control::turnout_event_done(const Reply &reply)
        {
                unsigned addr = (data[i*2+1])+((data[i*2+2]&7)<<8);
                bool status = !(data[i*2+2]&0x80);
-               cout<<"Turnout "<<addr<<", status "<<status<<'\n';
+               IO::print("Turnout %d, status %d\n", addr, status);
                signal_turnout_event.emit(addr, status);
        }
 }
@@ -268,10 +268,7 @@ void Control::sensor_event_done(const Reply &reply)
        {
                unsigned module = data[i];
 
-               cout<<"S88 module "<<module<<", status ";
-               for(unsigned j=0; j<16; ++j)
-                       cout<<((data[i+1+j/8]>>(7-j%8))&1);
-               cout<<'\n';
+               IO::print("S88 module %d, status %08b%08b\n", module, data[1], data[2]);
 
                for(unsigned j=0; j<16; ++j)
                        signal_sensor_event.emit(module*16+j-15, (data[i+1+j/8]>>(7-j%8))&1);
index a56326c937e16a58fc8e597f931ac0e891599238..449ef8be4d1f6042fec6a4be625d97ca651193a9 100644 (file)
@@ -5,11 +5,11 @@ Copyright © 2006-2008 Mikkosoft Productions, Mikko Rasa
 Distributed under the GPL
 */
 
-#include <iostream>
 #include <map>
 #include <msp/core/getopt.h>
 #include <msp/datafile/loader.h>
 #include <msp/datafile/parser.h>
+#include <msp/io/print.h>
 
 using namespace std;
 using namespace Msp;
@@ -18,7 +18,7 @@ class ShoppingList
 {
 public:
        ShoppingList(int, char **);
-       void print(ostream &);
+       void print(IO::Base &);
 private:
        class InventoryLoader: public DataFile::Loader
        {
@@ -50,7 +50,7 @@ private:
 int main(int argc, char **argv)
 {
        ShoppingList sl(argc, argv);
-       sl.print(cout);
+       sl.print(IO::cout);
        return 0;
 }
 
@@ -81,40 +81,40 @@ void ShoppingList::load_layout(const string &fn)
        ll.load(parser);
 }
 
-void ShoppingList::print(ostream &out)
+void ShoppingList::print(IO::Base &out)
 {
-       out<<"// Need to get:\n";
+       IO::print(out, "// Need to get:\n");
        for(map<unsigned, unsigned>::iterator i=layout.begin(); i!=layout.end(); ++i)
        {
                map<unsigned, unsigned>::iterator j=inventory.find(i->first);
                if(j!=inventory.end())
                {
                        if(j->second<i->second)
-                               out<<"track "<<i->first<<' '<<i->second-j->second<<";\n";
+                               IO::print(out, "track %d %d;\n", i->first, i->second-j->second);
                }
                else
-                       out<<"track "<<i->first<<' '<<i->second<<";\n";
+                       IO::print(out, "track %d %d;\n", i->first, i->second);
        }
 
-       out<<"// Pre-existing:\n";
+       IO::print(out, "// Pre-existing:\n");
        for(map<unsigned, unsigned>::iterator i=layout.begin(); i!=layout.end(); ++i)
        {
                map<unsigned, unsigned>::iterator j=inventory.find(i->first);
                if(j!=inventory.end())
-                       out<<"track "<<i->first<<' '<<min(i->second,j->second)<<";\n";
+                       IO::print(out, "track %d %d;\n", i->first, min(i->second, j->second));
        }
 
-       out<<"// Unused:\n";
+       IO::print(out, "// Unused:\n");
        for(map<unsigned, unsigned>::iterator i=inventory.begin(); i!=inventory.end(); ++i)
        {
                map<unsigned, unsigned>::iterator j=layout.find(i->first);
                if(j!=layout.end())
                {
                        if(j->second<i->second)
-                               out<<"track "<<i->first<<' '<<i->second-j->second<<";\n";
+                               IO::print(out, "track %d %d;\n", i->first, i->second-j->second);
                }
                else
-                       out<<"track "<<i->first<<' '<<i->second<<";\n";
+                       IO::print(out, "track %d %d;\n", i->first, i->second);
        }
 }