Ported PlaceholderParser::update_timestamp() to XS
Note that Slic3r version number is now located in libslic3r.h
This commit is contained in:
parent
6135a9fb8b
commit
8b6a8e6307
@ -7,7 +7,7 @@ use strict;
|
|||||||
use warnings;
|
use warnings;
|
||||||
require v5.10;
|
require v5.10;
|
||||||
|
|
||||||
our $VERSION = "1.2.2-dev";
|
our $VERSION = VERSION();
|
||||||
|
|
||||||
our $debug = 0;
|
our $debug = 0;
|
||||||
sub debugf {
|
sub debugf {
|
||||||
|
@ -5,9 +5,9 @@ use warnings;
|
|||||||
sub new {
|
sub new {
|
||||||
# TODO: move this code to C++ constructor, remove this method
|
# TODO: move this code to C++ constructor, remove this method
|
||||||
my ($class) = @_;
|
my ($class) = @_;
|
||||||
|
|
||||||
my $self = $class->_new;
|
my $self = $class->_new;
|
||||||
$self->apply_env_variables;
|
$self->apply_env_variables;
|
||||||
$self->update_timestamp;
|
|
||||||
return $self;
|
return $self;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -16,26 +16,6 @@ sub apply_env_variables {
|
|||||||
$self->_single_set($_, $ENV{$_}) for grep /^SLIC3R_/, keys %ENV;
|
$self->_single_set($_, $ENV{$_}) for grep /^SLIC3R_/, keys %ENV;
|
||||||
}
|
}
|
||||||
|
|
||||||
sub update_timestamp {
|
|
||||||
my ($self) = @_;
|
|
||||||
|
|
||||||
my @lt = localtime; $lt[5] += 1900; $lt[4] += 1;
|
|
||||||
$self->_single_set('timestamp', sprintf '%04d%02d%02d-%02d%02d%02d', @lt[5,4,3,2,1,0]);
|
|
||||||
$self->_single_set('year', "$lt[5]");
|
|
||||||
$self->_single_set('month', "$lt[4]");
|
|
||||||
$self->_single_set('day', "$lt[3]");
|
|
||||||
$self->_single_set('hour', "$lt[2]");
|
|
||||||
$self->_single_set('minute', "$lt[1]");
|
|
||||||
$self->_single_set('second', "$lt[0]");
|
|
||||||
$self->_single_set('version', $Slic3r::VERSION);
|
|
||||||
}
|
|
||||||
|
|
||||||
# TODO: or this could be an alias
|
|
||||||
sub set {
|
|
||||||
my ($self, $key, $val) = @_;
|
|
||||||
$self->_single_set($key, $val);
|
|
||||||
}
|
|
||||||
|
|
||||||
sub process {
|
sub process {
|
||||||
my ($self, $string, $extra) = @_;
|
my ($self, $string, $extra) = @_;
|
||||||
|
|
||||||
|
@ -1,18 +1,50 @@
|
|||||||
#include "PlaceholderParser.hpp"
|
#include "PlaceholderParser.hpp"
|
||||||
|
#include <ctime>
|
||||||
|
#include <iomanip>
|
||||||
|
#include <sstream>
|
||||||
|
|
||||||
namespace Slic3r {
|
namespace Slic3r {
|
||||||
|
|
||||||
|
|
||||||
PlaceholderParser::PlaceholderParser()
|
PlaceholderParser::PlaceholderParser()
|
||||||
{
|
{
|
||||||
|
this->_single["version"] = SLIC3R_VERSION;
|
||||||
// TODO: port these methods to C++, then call them here
|
// TODO: port these methods to C++, then call them here
|
||||||
// this->apply_env_variables();
|
// this->apply_env_variables();
|
||||||
// this->update_timestamp();
|
this->update_timestamp();
|
||||||
}
|
}
|
||||||
|
|
||||||
PlaceholderParser::~PlaceholderParser()
|
void
|
||||||
|
PlaceholderParser::update_timestamp()
|
||||||
{
|
{
|
||||||
|
time_t rawtime;
|
||||||
|
time(&rawtime);
|
||||||
|
struct tm* timeinfo = localtime(&rawtime);
|
||||||
|
|
||||||
|
{
|
||||||
|
std::ostringstream ss;
|
||||||
|
ss << (1900 + timeinfo->tm_year);
|
||||||
|
ss << std::setw(2) << std::setfill('0') << (1 + timeinfo->tm_mon);
|
||||||
|
ss << std::setw(2) << std::setfill('0') << timeinfo->tm_mday;
|
||||||
|
ss << "-";
|
||||||
|
ss << std::setw(2) << std::setfill('0') << timeinfo->tm_hour;
|
||||||
|
ss << std::setw(2) << std::setfill('0') << timeinfo->tm_min;
|
||||||
|
ss << std::setw(2) << std::setfill('0') << timeinfo->tm_sec;
|
||||||
|
this->_single["timestamp"] = ss.str();
|
||||||
|
}
|
||||||
|
this->_single["year"] = this->_int_to_string(1900 + timeinfo->tm_year);
|
||||||
|
this->_single["month"] = this->_int_to_string(1 + timeinfo->tm_mon);
|
||||||
|
this->_single["day"] = this->_int_to_string(timeinfo->tm_mday);
|
||||||
|
this->_single["hour"] = this->_int_to_string(timeinfo->tm_hour);
|
||||||
|
this->_single["minute"] = this->_int_to_string(timeinfo->tm_min);
|
||||||
|
this->_single["second"] = this->_int_to_string(timeinfo->tm_sec);
|
||||||
|
}
|
||||||
|
|
||||||
|
std::string
|
||||||
|
PlaceholderParser::_int_to_string(int value) const
|
||||||
|
{
|
||||||
|
std::ostringstream ss;
|
||||||
|
ss << value;
|
||||||
|
return ss.str();
|
||||||
}
|
}
|
||||||
|
|
||||||
void PlaceholderParser::apply_config(DynamicPrintConfig &config)
|
void PlaceholderParser::apply_config(DynamicPrintConfig &config)
|
||||||
@ -85,6 +117,12 @@ void PlaceholderParser::apply_config(DynamicPrintConfig &config)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
PlaceholderParser::set(const std::string &key, const std::string &value)
|
||||||
|
{
|
||||||
|
this->_single[key] = value;
|
||||||
|
}
|
||||||
|
|
||||||
std::ostream& operator<<(std::ostream &stm, const Pointf &pointf)
|
std::ostream& operator<<(std::ostream &stm, const Pointf &pointf)
|
||||||
{
|
{
|
||||||
return stm << pointf.x << "," << pointf.y;
|
return stm << pointf.x << "," << pointf.y;
|
||||||
|
@ -17,14 +17,15 @@ class PlaceholderParser
|
|||||||
std::map<std::string, std::string> _multiple;
|
std::map<std::string, std::string> _multiple;
|
||||||
|
|
||||||
PlaceholderParser();
|
PlaceholderParser();
|
||||||
~PlaceholderParser();
|
void update_timestamp();
|
||||||
|
|
||||||
void apply_config(DynamicPrintConfig &config);
|
void apply_config(DynamicPrintConfig &config);
|
||||||
|
void set(const std::string &key, const std::string &value);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
template<class T>
|
template<class T>
|
||||||
void set_multiple_from_vector(
|
void set_multiple_from_vector(
|
||||||
const std::string &key, ConfigOptionVector<T> &opt);
|
const std::string &key, ConfigOptionVector<T> &opt);
|
||||||
|
std::string _int_to_string(int value) const;
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -6,6 +6,8 @@
|
|||||||
#include <iostream>
|
#include <iostream>
|
||||||
#include <sstream>
|
#include <sstream>
|
||||||
|
|
||||||
|
#define SLIC3R_VERSION "1.2.2-dev"
|
||||||
|
|
||||||
#define EPSILON 1e-4
|
#define EPSILON 1e-4
|
||||||
#define SCALING_FACTOR 0.000001
|
#define SCALING_FACTOR 0.000001
|
||||||
#define PI 3.141592653589793238
|
#define PI 3.141592653589793238
|
||||||
|
@ -10,8 +10,10 @@
|
|||||||
%name{_new} PlaceholderParser();
|
%name{_new} PlaceholderParser();
|
||||||
~PlaceholderParser();
|
~PlaceholderParser();
|
||||||
|
|
||||||
|
void update_timestamp();
|
||||||
void apply_config(DynamicPrintConfig *config)
|
void apply_config(DynamicPrintConfig *config)
|
||||||
%code%{ THIS->apply_config(*config); %};
|
%code%{ THIS->apply_config(*config); %};
|
||||||
|
void set(std::string key, std::string value);
|
||||||
|
|
||||||
void _single_set(std::string k, std::string v)
|
void _single_set(std::string k, std::string v)
|
||||||
%code%{ THIS->_single[k] = v; %};
|
%code%{ THIS->_single[k] = v; %};
|
||||||
|
@ -6,3 +6,14 @@
|
|||||||
%{
|
%{
|
||||||
|
|
||||||
%}
|
%}
|
||||||
|
|
||||||
|
%package{Slic3r};
|
||||||
|
%{
|
||||||
|
|
||||||
|
SV*
|
||||||
|
VERSION()
|
||||||
|
CODE:
|
||||||
|
RETVAL = newSVpv(SLIC3R_VERSION, 0);
|
||||||
|
OUTPUT: RETVAL
|
||||||
|
|
||||||
|
%}
|
Loading…
Reference in New Issue
Block a user