Okay, so basically we're talking about four core routines, most of them can be embeddable libraries (dependencies are so 2005!), plus an addon of choice:
1) a library that does basic channel stuff - joining, leaving, providing an api. In my personal view, it should somehow integrate with CTRA/oRa. Altering the oRa core code to use that embedded library should be simple (or maybe oRa-core should contain this functionality itself), and I guess haste might not have a problem with someone adding an API to oRa as long as it's a working, non-messy code.
I like the way that CTRA does channel management and I think any other library should have that same functionality. That means that it will have to create the frames or commands to control the channel. ALso some way to control who sets the channel.
Quote from maia »
3) a library that hooks spells being cast (basically Squishy/hooks.lua = oRA_Resurrection.lua = CT_RADetectSpells.lua), watches for SPELLCAST_START, _STOP, _DELAYED events, makes that information available to other addons (maybe via a SPECIAL_EVENT?).
would this include target detection? IE the library sends the spell, target, and status
Quote from maia »
4) a library that will send outgoing heal (watched by the hook, containing heal amount,...) in a unified way (probably something like: SpellID#Rank#HealAmount#ETA#TargetName#start/delay/cancel). Also this library should be able to parse incoming data (both via the channel defined by library 1, see above) and make it available (firing a special event or any other API).
should ETA include delay time or would that be part of the addon that registers? I think that the start/delay/cancel should be some index value, but of course that's obvious :-)
Quote from maia »
Finally, addons of our choice (Squishy, HealWatch,... but maybe also PerfectRaid, WatchDog, XRaid, MiniGroup etc) could use that data. All they need to do is drop the above four libraries into their addon folder. I guess if oRa on the one hand, heal trackers like HealWatch on the other and raid addons on the third side all contain these libraries, chances are rather large that we're talking about setting a standard here which probably even CTRA might integrate sooner or later - but even if not, one could still provide a small addon that basically only contains the libraries without and display logic and ask healers in your raid to install it.
PS: sooner or later we should stop hijacking my addon thread and move to the developers corner. :)
In HealWatch I'm just hooking into CTRA's communication commands. I don't do any of the stuff myself except parse the messages I generate.
I would be more than willing to convert to a common API and a common channel setup. It was something I was considering for HealWatch. The idea to be able to use Sky, commChannel or CTRA or any other mod that someone wrote an interface for. Alas, I do not have the skill to do that properly :)
Onto the more specific problems I see with a comChannel addon is scope. Sky already has it's own communication channels it sets up. I feel we need to strive to not use up all the channels with addons. But of course I don't know how to do that. :)
With regards to CommChannel, I personally don't like dependencies. I know there is nothing wrong with them, I just don't like having to package them with my addon. I much prefer embeddable libraries. So, um, yea. I lost track of where I was going.
Basically, HealWatch is all for a front-end/back-end setup where the back-end is some embeddable library.