Skip to content
Permalink
Browse files

Merge pull request #26 from OpenLightingProject/master

Resync with upstream master
  • Loading branch information
peternewman committed Jan 30, 2020
2 parents 9898872 + f69e4a6 commit bb96794f433ad93eb12c969df23835c15e72159e
Showing 398 changed files with 7,031 additions and 1,814 deletions.
@@ -0,0 +1,176 @@
int lock_fd = open(lock_file.c_str(), O_RDWR | O_CREAT | O_EXCL,
if (!(ifrcopy.ifr_flags & IFF_UP)) {
if (ifrcopy.ifr_flags & IFF_LOOPBACK) {
if (ifrcopy.ifr_flags & IFF_BROADCAST) {
string(" 00 48 65 6c .Hel\n"
* Renamed fempto(sic) to femto in the RDM code (C++ and Python)
* Renamed terra(sic) to tera in the RDM code (C++ and Python)
* Renamed protocol convertor(sic) to protocol converter in the RDM code (C++
* Renamed valiator(sic) to validator, incomming(sic) to incoming, mimimun(sic)
to minimum and overiding(sic) to overriding, all of which may or may not
/^(?:([0-9]{1,3})(?:\s(THRU)\s(?:([0-9]{1,3}))?)?(?:\s(@)\s(?:([0-9]{1,3}|FULL))?)?)/;
* channel_range ::= "ALL" | "*" | channel "THRU" channel | channel > channel
/(?:([0-9]{1,3})(?:\s+THRU\s+([0-9]{0,3}))?)\s+@\s+([0-9]{0,3})$/);
/(?:([0-9]{1,3})(?:\s+THRU\s+([0-9]{0,3}))?)(?:\s+@\s+([0-9]{0,3}))?$/);
str = str.replace('>', 'THRU');
' THRU ' + ola.common.DmxConstants.MAX_CHANNEL_NUMBER);
' THRU ' + ola.common.DmxConstants.MAX_CHANNEL_NUMBER);
// If it's the T or > keys, autocomplete 'THRU'
case 'U': // THRU
var values = ['7', '8', '9', ' THRU ', '4', '5', '6', ' @ ', '1', '2', '3',
// This is true iff all fields in a group are of a fixed size and the
<button ng-click="input(' THRU ')" class="btn btn-keypad">THRU</button>
if(/android|avantgo|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|symbian|treo|up\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino/i.test(a)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|e\-|e\/|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(di|rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|xda(\-|2|g)|yas\-|your|zeto|zte\-/i.test(a.substr(0,4)))
state(AVAHI_ENTRY_GROUP_UNCOMMITED),
case AVAHI_ENTRY_GROUP_UNCOMMITED:
if (iter->second->state == AVAHI_ENTRY_GROUP_UNCOMMITED) {
iter->second->state = AVAHI_ENTRY_GROUP_UNCOMMITED;
case AVAHI_ENTRY_GROUP_UNCOMMITED:
return "AVAHI_ENTRY_GROUP_UNCOMMITED";
PRE_SOM,
uint8_t som;
static const uint8_t SOM = 0xa5;
PRE_SOM,
uint8_t som;
static const uint8_t SOM = 0x7e;
frame[0] = 0x7e; // som
frame[0] = 0xa5; // som
frame[0] = 0x7e; // som
const uint8_t BaseRobeWidget::SOM;
m_state(PRE_SOM),
header->som = SOM;
uint8_t crc = SOM + packet_type + (length & 0xFF) + ((length & 0xFF00) >> 8);
case PRE_SOM:
m_descriptor->Receive(&m_header.som, 1, count);
} while (m_header.som != SOM);
m_state = PRE_SOM;
m_crc = SOM + m_header.packet_type + m_header.len + m_header.len_hi;
m_state = PRE_SOM;
m_state = PRE_SOM;
m_state(PRE_SOM),
header->som = SOM;
case PRE_SOM:
m_descriptor->Receive(&m_header.som, 1, count);
} while (m_header.som != SOM);
m_state = PRE_SOM;
m_state = PRE_SOM;
'%s attempted to get %s which wasn\'t declared' %
'%s attempted to set %s which wasn\'t declared' %
'min': numpy.amin(array),
/^(?:([0-9]{1,3})(?:\s(THRU)\s(?:([0-9]{1,3}))?)?(?:\s(@)\s(?:([0-9]{1,3}|FULL))?)?)/;
$scope.input(' THRU ');
manufacturer_name: "ALS Stanislaw Binkiewicz"
manufacturer_name: "Guangzhou Litewise Lighting Equipments Co., Ltd. dba \"EK Lights\""
manufacturer_name: "Guangzhou VAS Lighting Co., Ltd."
manufacturer_name: "ARRI -- Arnold & Richter Cine Technik GmbH & Co. Betriebs KG"
manufacturer_name: "SRM Technik GmbH"
manufacturer_name: "medien technik cords"
manufacturer_name: "TBE Srl"
manufacturer_name: "AUTOLUX Handels- und ProduktionsgmbH"
STLDeleteValues(&m_uint_map_variables);
return GetMapVar(&m_uint_map_variables, name, label);
STLValues(m_uint_map_variables, &variables);
auto_ptr<JsonUInt> m_uint_value;
m_uint_value.reset(new JsonUInt(4));
m_uint_value->Accept(&wildcard_validator);
m_uint_value->Accept(&validator);
m_uint_value->Accept(&basic_string_validator);
m_uint_value->Accept(&bool_validator);
m_uint_value->Accept(&null_validator);
m_uint_value->Accept(&integer_validator);
auto_ptr<JsonInt> uint_value1(new JsonInt(5));
m_uint_value->Accept(&max_int_validator);
uint_value1->Accept(&max_int_validator);
m_uint_value->Accept(&exclusive_max_int_validator);
uint_value1->Accept(&max_int_validator);
m_uint_value->Accept(&min_int_validator);
m_uint_value->Accept(&exclusive_min_int_validator);
m_uint_value->Accept(&multiple_of_validator);
m_uint_value->Accept(&integer_validator);
m_uint_value->Accept(&object_validator);
m_uint_value->Accept(&array_validator);
m_uint_value->Accept(&all_of_validator);
m_uint_value->Accept(&any_of_validator);
m_uint_value->Accept(&one_of_validator);
m_uint_value->Accept(&not_validator);
JsonInt uint_value1(2);
JsonInt uint_value2(3);
m_uint_value->Accept(&integer_validator);
uint_value1.Accept(&integer_validator);
uint_value2.Accept(&integer_validator);
JsonUInt uint_value(10);
OLA_ASSERT_EQ(expected, JsonWriter::AsString(uint_value));
* Test the uint item
" \"type\": \"uint\",\n"
" \"type\": \"uint\",\n"
" \"type\": \"uint\",\n"
" \"type\": \"uint\",\n"
std::map<std::string, UIntMap*> m_uint_map_variables;
if (message.uint_offset < MAX_UINT_FIELDS) {
message.uint16_fields[message.uint_offset++] = field->Value();
iter->uint_offset != MAX_UINT_FIELDS ||
enum { MAX_UINT_FIELDS = 2 };
uint16_t uint16_fields[MAX_UINT_FIELDS];
uint8_t uint_offset;
status_message() : uint_offset(0), int_offset(0), status_type(0),
std::string Type() const { return "uint"; }
if (items[i]['type'] == 'uint') {
if (items[i]['type'] == 'uint') {
if (type == 'string' || type == 'uint' || type == 'hidden') {
const char RDMHTTPModule::GENERIC_UINT_FIELD[] = "int";
section.AddItem(new HiddenItem("1", GENERIC_UINT_FIELD));
section.AddItem(new HiddenItem("1", GENERIC_UINT_FIELD));
SelectItem *item = new SelectItem("Personality", GENERIC_UINT_FIELD);
string personality_str = request->GetParameter(GENERIC_UINT_FIELD);
UIntItem *uint_item = new UIntItem("DMX Start Address", address,
uint_item->SetMin(DMX_MIN_SLOT_NUMBER);
uint_item->SetMax(DMX_MAX_SLOT_NUMBER);
item = uint_item;
string device_hours = request->GetParameter(GENERIC_UINT_FIELD);
string lamp_hours_str = request->GetParameter(GENERIC_UINT_FIELD);
string lamp_strikes_str = request->GetParameter(GENERIC_UINT_FIELD);
SelectItem *item = new SelectItem("Lamp State", GENERIC_UINT_FIELD);
string lamp_state_str = request->GetParameter(GENERIC_UINT_FIELD);
SelectItem *item = new SelectItem("Lamp Mode", GENERIC_UINT_FIELD);
string lamp_mode_str = request->GetParameter(GENERIC_UINT_FIELD);
string power_cycles_str = request->GetParameter(GENERIC_UINT_FIELD);
UIntItem *item = new UIntItem("Display Level", value, GENERIC_UINT_FIELD);
string display_level_str = request->GetParameter(GENERIC_UINT_FIELD);
section.AddItem(new HiddenItem("1", GENERIC_UINT_FIELD));
SelectItem *item = new SelectItem("Power State", GENERIC_UINT_FIELD);
string power_state_str = request->GetParameter(GENERIC_UINT_FIELD);
SelectItem *item = new SelectItem("Reset Device", GENERIC_UINT_FIELD);
string reset_device_str = request->GetParameter(GENERIC_UINT_FIELD);
section.AddItem(new UIntItem(description, value, GENERIC_UINT_FIELD));
SelectItem *item = new SelectItem("Active Curve", GENERIC_UINT_FIELD);
string curve_str = request->GetParameter(GENERIC_UINT_FIELD);
maximum_level, GENERIC_UINT_FIELD));
string s_max_level = request->GetParameter(GENERIC_UINT_FIELD);
s.Xa=function(a){a.keyCode==32&&this.cd(a);return!1};wd("goog-checkbox",function(){return new Jg});function Kg(a,b){var c=b.type,d=b.value,h=b.id;if(c=="hidden"){var g=Q("input");g.id=h;g.type="hidden";g.value=d;a.appendChild(g)}else{g=Q("tr");a.appendChild(g);var j=Q("td");j.innerHTML=b.description;g.appendChild(j);j=Q("td");g.appendChild(j);if(h)if(c=="string"||c=="uint"||c=="hidden"){g=Q("input");g.value=d;g.name=h;if(c=="hidden")g.type="hidden";j.appendChild(g);b.button&&(d=new ed.mf(b.button),S(d,j))}else{if(c=="bool")c=new Jg,c.bc(d==1);else{c=new wg;h=d.length;for(g=0;g<h;++g)c.Ba(new Bg(d[g].label));
function Tg(a){for(var b=a.Vd,c=b.length,d=P(a.za.id()),h="",g=0;g<c;++g){var j=b[g].id;if(j)if(b[g].type=="uint"){var l=d.elements[j].value,n=parseInt(l);if(isNaN(n)){a.Dd("Invalid Value",b[g].description+" must be an integer");return}var o=b[g].min;if(o!=k&&n<o){a.Dd("Invalid Value",b[g].description+" must be > "+(o-1));return}o=b[g].max;if(o!=k&&n>o){a.Dd("Invalid Value",b[g].description+" must be < "+(o+1));return}h+=j+"="+l+"&"}else if(b[g].type=="string")l=d.elements[j].value,h+=j+"="+l+"&";
p.M=function(a){Yc(this.bd,a)};p.B=n("$");p.getParent=n("D");p.u=function(a){this.S=a;this.bd.className=a?"goog-tabpane-tab":"goog-tabpane-tab-disabled"};p.isEnabled=n("S");function dk(a,b){if(a.isEnabled())a.$.style.display=b?"":"none",a.bd.className=b?"goog-tabpane-tab-selected":"goog-tabpane-tab"}p.ue=function(a,b){this.D=a;this.jd=ga(b)?b:l};function ck(a,b,c){E.call(this,a,b);this.page=c}w(ck,E);function ek(a,b,c){ti.call(this,a,b,c);this.Xg(!0)}w(ek,ti);ek.prototype.Ec=function(){return this.dispatchEvent("action")};se("goog-option",function(){return new ek(l)});function fk(a,b){var c=b.type,d=b.value,g=b.id;if(c=="hidden"){var h=P("input");h.id=g;h.type="hidden";h.value=d;a.appendChild(h)}else{h=P("tr");a.appendChild(h);var i=P("td");i.innerHTML=b.description;h.appendChild(i);i=P("td");h.appendChild(i);if(g)if(c=="string"||c=="uint"||c=="hidden"){h=P("input");h.value=d;h.name=g;if(c=="hidden")h.type="hidden";i.appendChild(h);b.button&&(new gk(b.button)).L(i)}else{if(c=="bool")c=new dj,c.Kc(d==1);else{c=new $;g=d.length;for(h=0;h<g;++h)c.bb(new ek(d[h].label));
function ok(a,b){for(var c=a.wa[b].data.items,d=c.length,g=N(a.wa[b].id),h="",i=0;i<d;++i){var k=c[i].id;if(k)if(c[i].type=="uint"){var m=g.elements[k].value,q=parseInt(m);if(isNaN(q)){a.Mb("Invalid Value",c[i].description+" must be an integer");return}var t=c[i].min;if(t!=j&&q<t){a.Mb("Invalid Value",c[i].description+" must be > "+(t-1));return}t=c[i].max;if(t!=j&&q>t){a.Mb("Invalid Value",c[i].description+" must be < "+(t+1));return}h+=k+"="+m+"&"}else if(c[i].type=="string")m=g.elements[k].value,
UIntValidator uint_validator(10, 14);
OLA_ASSERT(uint_validator.IsValid("10"));
OLA_ASSERT(uint_validator.IsValid("14"));
OLA_ASSERT_FALSE(uint_validator.IsValid("0"));
OLA_ASSERT_FALSE(uint_validator.IsValid("9"));
OLA_ASSERT_FALSE(uint_validator.IsValid("15"));
// test get/set/has single values uint
// test get/set multiple value uint
// test SetDefaultValue uint
UIntValidator uint_validator(0, 3);
OLA_ASSERT(preferences->SetDefaultValue(key1, uint_validator, value3));
OLA_ASSERT_FALSE(preferences->SetDefaultValue(key1, uint_validator,
const char *uint_vars[] = {
for (unsigned int i = 0; i < arraysize(uint_vars); ++i) {
m_export_map->GetUIntMapVar(uint_vars[i])->Remove(m_universe_id_str);
static const char GENERIC_UINT_FIELD[];
if ((uint) r != buffer.Size()) {
UIntValidator(0, UINT_MAX),
// On win32 TRUE and FALSE are #define'd. We can #undef them here but that
* A #define'd value HAVE_LIBLO which lets us know within the code if the OSC
import java.nio.ByteOrder;
byte[] header = ByteBuffer.allocate(4).order(ByteOrder.nativeOrder()).putInt(headerContent).array();
int headerValue = ByteBuffer.wrap(header).order(ByteOrder.nativeOrder()).getInt();
# This is a very bodgy workaround to the fact that the pip install of the archive doesn't seem to work properly now on Travis
@@ -0,0 +1,3 @@
thead
acn
ACN
@@ -3,16 +3,19 @@
*.gcda
*.gcno
*.gcov
*.gch
*.la
*.lo
*.log
*.o
*.o.*
*.o-????????
*.pb.cc
*.pb.cpp
*.pb.h
*.pc
*.pyc
*.save
*.swp
*.tar.gz
*.trs
@@ -125,6 +128,9 @@ examples/ola_e131
examples/ola_e131.exe
examples/ola_latency
examples/ola_latency.exe
examples/ola_patch
examples/ola_patch.exe
examples/ola_ptch.exe
examples/ola_plugin_info
examples/ola_plugin_info.exe
examples/ola_plugin_state

0 comments on commit bb96794

Please sign in to comment.
You can’t perform that action at this time.