Its not really hard for the addon author to just reference LibStub and CBH in their embeds.xml .. all the automagic is Ace2 land that we dont want anymore, think about your code, srsly!
Its not really hard for the addon author to just reference LibStub and CBH in their embeds.xml .. all the automagic is Ace2 land that we dont want anymore, think about your code, srsly!
I am thinking about it. This is the problem:
Standalone LSM-3.0 includes CallbackHandler-1.0 rev X (Its a hard copy, and doesnt get updated)
If I embed LSM-3.0 my addon has to include CallBackHandler-1.0 rev Y either by external or hard copy.
The problem is that there is no assurance that X=Y. What's the point of that?
Think about your code too. You have made the situation more complex than it needed to be.
The problem is that the embedded version of the lib isnt the same as the standalone. That's a problem.
I think the problem is, that lib.xml doesn't load LibStub and CallbackHandler-1.0, so in the not standalone version it's not guarantied that they are loaded before LSM-3.0.
It doesn't load them for a reason. Authors shouldn't be dumb enough to try to load SM before the others, we aren't changing the system to suit them.
I'm using Omen2, but my fonts, etc, aren't showing up. I'm assuming that Omen2 is using SML3? And if so, is the function to add media to it that different from the one used for SML1/2?
I also have another question. I have a small mod that I use to add stuff to Shared Media. Do I have to use Ace2, etc. to "create a new addon" to add stuff to SML?
local SML = LibStub:GetLibrary("LibSharedMedia-2.0", true)
if SML then
SML:Register("font", "3 Prong Tree", "Interface\\AddOns\\daFonts\\fonts\\3prot.Ttf")
SML:Register("font", "Jokerman LET", "Interface\\AddOns\\daFonts\\fonts\\21205___.TTF")
[...]
end
Actually, I just decided to install SharedMedia. Then I simply checked if it exists and if so, add the fonts. No external(s) (libstub) or anything. Plus, SharedMedia has the functions already built in to force adding to all three versions. >.<
I've swapped to LSM-3.0 due to the reasons presented in this thread.
Please can we have a general pronouncement of the need to swap from LSM-1.0 and LSM-2.0 to LSM-3.0. Possibly even a deprecation of LSM-2.0. Like most addon authors I wasn't even aware of the existence of LSM-3.0...
Authors shouldn't be dumb enough to try to load SM before the others, we aren't changing the system to suit them.
k, i'm just a dumb author that wants to use your lib (the 3.0 version).
with every other lib i just load that and it works, with yours it barfs if i do that.
it wants libstub and it wants callback handler already loaded - well my mod has no need for these, so why would i have included them? your library does so why hasnt it included them? has embedding been thrown out now as something horrid and unthinkable?
are you saying that i have to specifically load those two other libs in my mod first? callbackhandler isnt even on files.wowace.com nor is it in the svn trunk? so how am i supposed to keep that up to date?
so please help out a dumb author so i can actually use your nifty little lib and allow the people who use my mod to have pretty textures and fonts. do i have to do something radically different now from what i used to do when loading libs?
edit:
Quote from sylvanaar »
For LSM-3.0 to work you have to include Ace3/CallBackHandler-1.0
so thats where the bugger lives, would have been nice if the lib had of placed it into an ace3 subdirectory to make its source more obvious.
Quote from Elkano »
both Libstub and CallBackHandler-1.0 have been decided on to have to be included by the addon using the lib but are hardcopied
so to get this to work correctly in my mod (and have all these libs stay up to date from the svn), i would have to checkout the following;
Can you tell us how to use it so that it is compatible with LSM-3 and LSM-2 and LSM-1?
Right now its a mess, and we are forced to call LoadAddOn on LSM-3 or LSM-2 (Whichever we find first), register with all 3, embed LSM1 and LSM2/3.
If we want to be compatible. All that has to be done - unless you can tell me a better way.
No you just use LSM3, don't use any of the others even if found.
For the simplest way to use callbacks just make a function that refetches all the media you use without even looking at any of the arguments given to it and register it to both the register and setglobal callback.
No you just use LSM3, don't use any of the others even if found.
For the simplest way to use callbacks just make a function that refetches all the media you use without even looking at any of the arguments given to it and register it to both the register and setglobal callback.
Yeah, I understand, "no backward compatibilty" is a design point, that's ok with me. I think we should be able to offer some guidance to those who do want to implement it on thier own. There are alot of gotcha's, and so many variants LSM1,2,3, Embedded/Standalone, plus the standalones can be in an enabled or disabled state.
I don't care.. I'll stay with lsm 2 for my addons .. I want to keep it simple and don't want to add libs that are used by libs that might be needed by other libs in the correct order. :)
I don't care.. I'll stay with lsm 2 for my addons .. I want to keep it simple and don't want to add libs that are used by libs that might be needed by other libs in the correct order. :)
I'd just like to have my suggestions considered before being told to go screw myself, and the usual people posting their typical "No f****n way" replies. Do they listen to other peoples suggestions?
I'd just like to have my suggestions considered before being told to go screw myself, and the usual people posting their typical "No f****n way" replies. Do they listen to other peoples suggestions?
Which suggestion do you mean ?
From what I have learned in this thread is that
- there are many gotchas with lsm, and using lsm 3 is the most complicated choice.
- the only difference between lsm 2 and 3 are asian fonts and callbacks... both features that I don't need.
So this thread perfectly suggested the use of lsm-2.0 for me.
Rollback Post to RevisionRollBack
To post a comment, please login or register a new account.
I am thinking about it. This is the problem:
Standalone LSM-3.0 includes CallbackHandler-1.0 rev X (Its a hard copy, and doesnt get updated)
If I embed LSM-3.0 my addon has to include CallBackHandler-1.0 rev Y either by external or hard copy.
The problem is that there is no assurance that X=Y. What's the point of that?
Think about your code too. You have made the situation more complex than it needed to be.
The problem is that the embedded version of the lib isnt the same as the standalone. That's a problem.
It doesn't load them for a reason. Authors shouldn't be dumb enough to try to load SM before the others, we aren't changing the system to suit them.
Who does the system suit?
Us, the ones who made it.
My point exactly.
I'm using Omen2, but my fonts, etc, aren't showing up. I'm assuming that Omen2 is using SML3? And if so, is the function to add media to it that different from the one used for SML1/2?
I also have another question. I have a small mod that I use to add stuff to Shared Media. Do I have to use Ace2, etc. to "create a new addon" to add stuff to SML?
local SML = LibStub:GetLibrary("LibSharedMedia-2.0", true)
if SML then
SML:Register("font", "3 Prong Tree", "Interface\\AddOns\\daFonts\\fonts\\3prot.Ttf")
SML:Register("font", "Jokerman LET", "Interface\\AddOns\\daFonts\\fonts\\21205___.TTF")
[...]
end
is all you need to do :)
Please can we have a general pronouncement of the need to swap from LSM-1.0 and LSM-2.0 to LSM-3.0. Possibly even a deprecation of LSM-2.0. Like most addon authors I wasn't even aware of the existence of LSM-3.0...
k, i'm just a dumb author that wants to use your lib (the 3.0 version).
with every other lib i just load that and it works, with yours it barfs if i do that.
it wants libstub and it wants callback handler already loaded - well my mod has no need for these, so why would i have included them? your library does so why hasnt it included them? has embedding been thrown out now as something horrid and unthinkable?
are you saying that i have to specifically load those two other libs in my mod first? callbackhandler isnt even on files.wowace.com nor is it in the svn trunk? so how am i supposed to keep that up to date?
so please help out a dumb author so i can actually use your nifty little lib and allow the people who use my mod to have pretty textures and fonts. do i have to do something radically different now from what i used to do when loading libs?
edit:
so thats where the bugger lives, would have been nice if the lib had of placed it into an ace3 subdirectory to make its source more obvious.
so to get this to work correctly in my mod (and have all these libs stay up to date from the svn), i would have to checkout the following;
Libs/LibStub http://svn.wowace.com/wowace/trunk/LibStub
Libs/Ace3/CallBackHandler-1.0 http://svn.wowace.com/wowace/trunk/Ace3/CallBackHandler-1.0
Libs/LibSharedMedia-3.0 http://svn.wowace.com/wowace/trunk/LibSharedMedia-3.0/LibSharedMedia-3.0
and then reference them in my embeds.xml and toc? is that correct?
Can you tell us how to use it so that it is compatible with LSM-3 and LSM-2 and LSM-1?
Right now its a mess, and we are forced to call LoadAddOn on LSM-3 or LSM-2 (Whichever we find first), register with all 3, embed LSM1 and LSM2/3.
If we want to be compatible. All that has to be done - unless you can tell me a better way.
alpha or beta? is there a reason to not use the trunk version?
edit: ignore that, i was looking at the callbackhandler.
any particular reason to not use the trunk version of libstub?
No you just use LSM3, don't use any of the others even if found.
For the simplest way to use callbacks just make a function that refetches all the media you use without even looking at any of the arguments given to it and register it to both the register and setglobal callback.
Yeah, I understand, "no backward compatibilty" is a design point, that's ok with me. I think we should be able to offer some guidance to those who do want to implement it on thier own. There are alot of gotcha's, and so many variants LSM1,2,3, Embedded/Standalone, plus the standalones can be in an enabled or disabled state.
I'd just like to have my suggestions considered before being told to go screw myself, and the usual people posting their typical "No f****n way" replies. Do they listen to other peoples suggestions?
Which suggestion do you mean ?
From what I have learned in this thread is that
- there are many gotchas with lsm, and using lsm 3 is the most complicated choice.
- the only difference between lsm 2 and 3 are asian fonts and callbacks... both features that I don't need.
So this thread perfectly suggested the use of lsm-2.0 for me.