Wednesday, 2015-02-25

*** HarryHaaren has quit IRC00:17
Socapexwhat are gobjects?00:38
badosuwrappers for C created by gtk00:40
badosuafaik00:41
Socapexoh, gtk :)00:41
*** Haskellfant has quit IRC01:16
*** rgareus has quit IRC01:16
*** Haskellfant has joined #lv201:20
*** rgareus has joined #lv201:20
*** zth_studiocomp has quit IRC01:40
drobillaglib, technically, but yeah.01:41
drobillaThe automagic binding to basically any language is a pretty nice pipe dream though, I must admit.01:45
drobillaThough the associated doc tools seem kinda flakey, all things G*2 are pretty dead at this point, yet G*3 is flaky, and here in audioville we're kept from moving by way of plugin UI compatibility anyway, and binding isn't all that useful anyway, and........ so I give up.01:46
*** zth_studiocomp has joined #lv201:59
SocapexI have a general question that I've never understood. Why do people use ** or even *** to pass around structs or data?02:07
*** zth_studiocomp has quit IRC02:10
*** zth_studiocomp has joined #lv202:16
drobillaBecause...... they have to?02:21
drobillaIf you have an array of pointers to structs, well, ** is just what it is02:21
badosusometimes I crack my head trying to understand what this signature means02:23
badosuconst LV2_Feature* const* features02:23
badosuok, it's a const pointer to a LV2_Feature that is a ponter to const? wat?02:24
falktxI think you need to study a bit more programming02:31
falktxconst LV2_Feature* f1 = features[0];02:32
drobillaconst is left associative.  Read them right to left: pointer to const pointer to const LV2_Feature02:44
badosufalktx: thanks :-). You mean C/C++ programming02:44
drobillaThe latter being a bit weird.  It's actually a more consistent convention to always put const right, like02:44
drobillaLV2_Feature const* const* features02:45
drobilla(C's type declaration syntax is dumb)02:45
badosudrobilla: yep, that's what I would expect, but I am not familiar with this kind of declaration02:46
drobillaWell, since you're just using it anyway, you can just pretend const isn't there, LV2_Feature** features02:46
drobillaand the compiler will let you know if you screw it up ;)02:46
badosuhahaha, thanks, this is really helpful02:47
badosubut won't this come with some performance penalties?02:47
drobilla?02:47
badosuI guess const helps to compiler in the sense that something won't mutate02:48
badosuso, if I mutate that that can be a problem02:48
drobillaIf something is const and you try to modify it, it just won't compile.  There is no runtime check for that.02:48
badosuI understand that02:48
drobillaWell, yes, you can dirtily cast the const away and mutate it if you really want to, but that will certanly be a very massive problem02:48
badosuThanks :-)02:48
drobillaYou do do pretty much anything you want to an arbitrary level of stupidity, this is C.02:49
drobilla*(rand()) = 42;02:49
drobillaHey, it might work.02:49
drobillaand/or arbitrary level of horrible brilliance http://www.ioccc.org/2000/anderson.c02:51
Socapexdrobilla: I wasnt talking about arrays though. libAV use that everywhere... It'll stay a mystery I guess.03:08
drobillaSocapex: Triple star with no arrays involved?  Pretty extremely rare.03:09
drobillaThere is no general answer.  Sometimes you just need a pointer to <thing>03:10
Socapexa pointer to a pointer to thing? Maybe its an optimization?03:11
drobillaFor parameters, sometimes it's because the callee needs to manipulate the parameter somehow, which means it must be a pointer.  Sometimes just to avoid a copy, etc.03:11
SocapexI know a guy at my internship used that a lot. He tried to explain but I never got it :/ Anyways, I guess the more I navigate C, the more I'll get used to it03:12
drobillaI'm guessing you're used to a language with magical hidden references?  (C#, Java, basically everything dynamic)03:13
Socapexno, c++03:14
Socapexthough some things are magical about c++11 :D03:14
drobillaNot to put too fine a point on it, but you can't be all that experienced with C++ if you don't grok pointers :)03:14
Socapexlol. Thats not what I'm talking about. Of course I understand pointers, but not why you would decide to point to a pointer03:15
drobillaThough they don't show up as much because references let you syntactically pretend they aren't there in many cases.03:15
drobillaWell, if you need to have a function change a pointer for you, you need to give it a pointer to it, being probably the most common case.  Arrays being the other.03:16
SocapexI just use unique or shared ptrs now to be honest. Though if I had to choose between pointers or references, I'd go pointer anytime03:16
Socapexoh03:16
Socapexso if you need to change where the pointer is pointing03:17
drobillaYes, e.g. posix_memalign03:17
Socapexinteresting03:18
drobilla(because C is a call-by-value language)03:20
*** falktx has quit IRC03:32
gabrbedddrobilla: BTW, why is &Plugin::extension_data was used in Plugin::descriptor(). Are you trying to pin it to the base class?04:05
drobillagabrbedd: Because I missed changing it to derived.05:12
drobillaextension_data effectively just isn't there.05:13
*** edogawa has joined #lv207:00
*** Socapex has quit IRC07:07
*** gianMOD has joined #lv207:13
*** gianMOD has quit IRC07:21
*** gianMOD has joined #lv208:40
*** gianMOD has quit IRC08:42
*** curlymorphic has quit IRC09:23
*** ricardocrudo has joined #lv209:27
*** gianMOD has joined #lv209:28
*** gianMOD has quit IRC09:46
*** curlymorphic has joined #lv211:43
*** ricardocrudo has quit IRC11:55
*** ricardocrudo has joined #lv212:30
*** falktx has joined #lv212:38
*** ricardocrudo has quit IRC12:45
*** ricardocrudo has joined #lv212:45
*** NickSB2 has quit IRC13:55
*** ricardocrudo has quit IRC15:09
*** edogawa_ has joined #lv215:27
*** ricardocrudo has joined #lv215:28
*** edogawa has quit IRC15:30
*** edogawa_ is now known as edogawa15:51
*** falktx has quit IRC15:54
*** Socapex has joined #lv216:58
*** ricardocrudo has quit IRC17:18
*** rncbc has joined #lv217:33
*** aombk has joined #lv217:37
*** grejppi has quit IRC18:14
*** grejppi has joined #lv218:19
*** HarryHaaren has joined #lv218:55
*** falktx has joined #lv218:58
* rgareus finally go a nice demo for http://gareus.org/oss/lv2/midifilter#midistrum 19:08
rgareushttp://jeanluc.nest.free.fr/Robin_%20Guitar2.ogg19:08
*** ricardocrudo has joined #lv219:20
HarryHaarenrgareus, hah, nice logo :)19:26
rgareusHarryHaaren: the "Filtres en stick" ?19:28
HarryHaarenand MIDI yep19:28
*** HarryHaaren has quit IRC19:59
*** rncbc is now known as rncbc|AFK20:33
*** NickSB2 has joined #lv220:48
*** ricardocrudo has quit IRC21:06
*** ricardocrudo has joined #lv221:11
*** ricardocrudo has quit IRC21:23
*** ricardocrudo has joined #lv221:24
*** Socapex has joined #lv221:26
*** rncbc|AFK has quit IRC22:11
*** ricardocrudo has quit IRC22:37
rgareusthere's on lv:minorVersion and lv:microVersion.  makes perfect sense to exclude the major.22:41
rgareusBUT only if major version > 1.22:41
rgareushow does one handle the case of  0.9.9 to 1.0.0  surely changing the URI is not warranted in that case.22:41
rgareusdrobilla: thoughts?22:41
rgareusdrobilla: why are odd micro versions also considerd development versions?   odd minor versions sufficient are they not?22:43
rgareuswhy would I churn out a  'stable'  minor version only to add development micros? that does not make sense22:43
rgareus(referring to http://lv2plug.in/ns/lv2core/#minorVersion)22:43
rgareusdrobilla: can sord_validate check for the  "Releases of plugins and extensions MUST be explicitly versioned." part?22:45
drobillargareus: It's just convenient to carve out space for dev versions23:04
drobillargareus: 0.* is basically "this is pre-dev unreleased business so the URI doesn't reflect compatibility anything anyway"23:04
drobillargareus: It's because minor is actually meaningful.  If you release 4.6, you may want to have a dev 4.7 before 4.823:05
rgareusso all the plugins MUST change URL before a 1.0 release..23:05
drobillargareus: But nowhere in the process is a minor increment worthy change23:05
drobillargareus: I guess you could read it that way, but your breaking the rules even before release by distributing it anyway, sooooooo23:05
drobillaPre-release is basically "who cares" territory23:06
rgareus"4.6"   do you mean 4.6.0   or X.4.6 ?23:06
drobillaThere is no major version, so, 4.6.23:06
drobillaI guess.23:06
drobillargareus: Re: sord validate I guess lv2:Plugin could have a restriction for that.23:07
rgareusok. so I guess I'll just stick with major version = 0 for all my plugins.23:07
drobilla(not directly, it is not an lv2 specific tool)23:07
drobillargareus: What major version?23:07
rgareusdrobilla: the one in the git tag23:08
rgareussame source23:08
drobillargareus: Probably should use 123:08
rgareusbut new major version -> different URI23:08
drobillaUsually plugin versions don't correspond directly to some package version23:08
rgareuswhy not?23:08
drobillabut if you have to invent one, and it's stable, use 1.  0 means unstable23:09
drobillaBecause most packages have more than one plugin23:09
rgareusaah 'packages' yes.23:09
drobillaor over life the "plugin" in package myplug might actually change, URI-wise, which would be a good time for a major version bump23:09
rgareussource-repos . I work hard to keep them in sync.  no need to invent extra numbers23:09
rgareusfor the "package collection" I use build-date as 'version'. WFM.23:10
rgareusanyway.23:10
* rgareus goes back and revisists plugin versioning of all his plugins. there are some 'odd' micro versions to be re-tagged.23:11
rgareusdrobilla: as for sord.   if the lv2 ontholigy mandates the field, sord_validate could complain, can't it?23:11
rgareusontology, even.23:12
rgareusaah screw it.23:12
rgareusthere are probably 5 plugins and 0 hosts who care about versions.23:14
drobillaI could drop the odd micro thing I guess, but it means no dev version that aren't minor increases, but really, yeah.  Reality is that nothing cares.23:18
drobillargareus: Yes, at least now.  I just added support for cardinality constraints last week23:18
rgareusdrobilla: ingen or lilv?23:19
drobilla... sord_validate23:19
drobillaI considered exposing it and adding an lv2_validate to lilv, but then I have to deal with an added dependency and rework it to have an actually useful API, which I then need to care about the long term compatibility of23:24
drobillaWhich put it firmly back in the "maybe later" box :)23:24
drobillaIt will find a lot more errors now, though, so revalidating is probably wise23:24
SocapexSo, libAV is working, sound output is working, plugins activate. Back to bugging you guys :D23:57
SocapexI have a general question about how the whole plugin workflow works. Here is how it works in my mind: I read the file buff, once I have a frame, feed that in a buffer and call plugin run, now I need to find a way to get noticed once plugin is done, then feed buffer to output.23:59
SocapexAlso, anything special a host has to do for UI. suil was for plugins correct?23:59

Generated by irclog2html.py 2.13.0 by Marius Gedminas - find it at mg.pov.lt!