User Tag List

Page 4 of 7 FirstFirst ... 2 3 4 5 6 ... LastLast
Results 31 to 40 of 63

Thread: DarkEDIF - Taking suggestions

  1. #31
    Clicker Fusion 2.5 MacFusion 2.5 DeveloperAndroid Export ModuleHTML5 Export ModuleiOS Export ModuleSWF Export ModuleXNA Export ModuleUnicode Add-onFirefly 3D Module
    Fusion 2.5 (Steam)Fusion 2.5 Developer (Steam)Fusion 2.5+ DLC (Steam)Android Export Module (Steam)HTML5 Export Module (Steam)iOS Export Module (Steam)Universal Windows Platform Export Module (Steam)Firefly 3D Module (Steam)
    Phi's Avatar
    Join Date
    Jan 2010
    Location
    England
    Posts
    1,856
    Mentioned
    15 Post(s)
    Tagged
    0 Thread(s)
    For those interested, development is currently hit a hurdle, you can help at this thread:
    http://community.clickteam.com/showthread.php?t=72063&p=532169#post532169

    At the moment, I can confirm properties work, including string, editboxes, etc, and variants of those properties work, e.g. lowercase-only editbox, uppercase-only, password-protected, combo of those...
    Combo box is giving issues, but that hurdle is the main problem atm.
    I recreated Lacewing Relay Client in DarkEDIF about a week ago, after I released James was far too busy to even give a short reply to my PM requesting the current EDIF code. It it only took a couple of half-days, and I'm happy to report it's completely backwards-compatible as the old one was. I'm also using DarkEDIF's multithreading system in order to boot a separate timer thread, making Lacewing ultra-responsive, but the system ensures it doesn't infringe on MMF's single-threaded nature.
    Properties are still very much WIP, once I know I can set all of the types up, I'll look into storing values dynamically.
    Φ

  2. #32
    Clicker Fusion 2.5 MacFusion 2.5 DeveloperAndroid Export ModuleHTML5 Export ModuleiOS Export ModuleSWF Export ModuleXNA Export ModuleUnicode Add-onFirefly 3D Module
    Fusion 2.5 (Steam)Fusion 2.5 Developer (Steam)Fusion 2.5+ DLC (Steam)Android Export Module (Steam)HTML5 Export Module (Steam)iOS Export Module (Steam)Universal Windows Platform Export Module (Steam)Firefly 3D Module (Steam)
    Phi's Avatar
    Join Date
    Jan 2010
    Location
    England
    Posts
    1,856
    Mentioned
    15 Post(s)
    Tagged
    0 Thread(s)
    An update: properties are working, you can now edit string parameters.
    It appears with SetPropValue(), MMF2 lies about what type of parameter is being changed, and changes string properties to buffer properties. Consequently, you need to pad 4 bytes with the string property in order to make it compatible with buffer properties, and additionally query your own local copy of the property rather than MMF2's, as that will tell you it is a buffer.

    Once I realised this inconsistencies, I fixed the bugs quickly, and I'm now stuck on memory access issues copying from edittime to runtime. I'm going to try several storage containers in case MMF2 somehow thinks it's permitted to overwrite already allocated memory.

  3. #33
    Clicker Fusion 2.5 MacFusion 2.5 DeveloperAndroid Export ModuleHTML5 Export ModuleiOS Export ModuleSWF Export ModuleXNA Export ModuleUnicode Add-onFirefly 3D Module
    Fusion 2.5 (Steam)Fusion 2.5 Developer (Steam)Fusion 2.5+ DLC (Steam)Android Export Module (Steam)HTML5 Export Module (Steam)iOS Export Module (Steam)Universal Windows Platform Export Module (Steam)Firefly 3D Module (Steam)
    Phi's Avatar
    Join Date
    Jan 2010
    Location
    England
    Posts
    1,856
    Mentioned
    15 Post(s)
    Tagged
    0 Thread(s)
    Big update guys, finally got around to finishing off the languages.
    The header files have been cut down significantly and communication with MMF2 has been optimised, including removing loops and cancelling functions that would otherwise crash the program.
    Also included is the first version of Bluewing Client, a test for DarkEDIF's multithreaded system, and for fixing a bug I was getting with Lacewing Relay Client. It is designed so you can disable and enable multithreading easily. The a/c/e/p will synchronise with Lacewing exactly, so you can overwrite the mfx file if you wish.


    Other extra features include:
    • Conditions to check if a peer is joined to a channel, useful for invite lists which might not be up-to-date or checking a series of channels.*
    • An expression to dump a binary message containing multiple variables of multiple types, useful for debugging and logging.*
    Strict usage. If you try adding a byte of value 300 to Lacewing, it will wrap the value, as would C++ during a regular cast with loss of information. However, Bluewing will report an error instead.
    *If you use these, you cannot convert back to Lacewing without removing them. Since they're new and Lacewing doesn't have them.

    I've also added Looki's WaveOut example extension, allowing audio streaming.
    See the new DarkEDIF commit here:
    https://github.com/SortaCore/MMF2Exts

  4. #34
    Clicker Multimedia Fusion 2Firefly 3D Module

    Join Date
    Sep 2006
    Location
    Britain, South Coast
    Posts
    1,030
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    About using external exe files as edit dialogs and custom parameters:

    To handle the returning of data, what about using a block of shared memory between your extension and the dialog? The dialog would need a helper extension inside it to detect the shared memory block and expose it. Then the developer would define his shared structure's format in a custom header in the SDK, and replicate that structure using something like Format Object, pointing to the shared memory address.

    Then I'd imagine your bright-eyed, bushy-tailed MMF-built dialog could access the shared data structure like that. Bless its little heart.

    So essentially:
    DarkSDK sets up some shared memory in a format determined by the developer.
    DarkSDK triggers MyDialog.exe (a Standalone EXE made in MMF) using ShellExecuteEx().
    It waits for the process handle to finish.

    Meanwhile, in a galaxy far far away, MyDialog contains an extension (let's call it DarkSDK Dialog Object). This extension finds the shared address and exposes it via an expression GetSharedAddress().
    MyDialog contains, say, a Format Object with a format that matches the structure in the SDK. It reads the data at GetSharedAddress() and edits it in accord with whatever the developer tells his MFA to do with it.
    When MyDialog closes, the SDK uses its amazing psychic WaitForSingleObject mutant powers to detect the dialog's closure and triggers the developer's code to use, save, or whatever based on the returned data...?

    That's all just brain noise, so it probably wouldn't work, but be gentle... it's a theory

  5. #35
    Clickteam Clickteam
    LB's Avatar
    Join Date
    Jun 2007
    Location
    Richardson, Texas, North America
    Posts
    8,937
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)
    Just FYI Phi, liblacewing is designed to be run in single-threaded environments. You can use the manual-tick method in Extension::Handle. From what I've seen of the multithreading I'm thinking the bug you fixed was that the Lacewing Relay Client was too fast. As for the extra features: Select peer by name and compare to peer name; Memory object; do we now have to specify signed and unsigned in the actions? But seriously, multithreading like this is a way to slow your extension down and give yourself some headache-inducing crashes. I've heard from the best (aka the author of liblacewing).

    @Dines: This may be of interest to you: http://msdn.microsoft.com/en-us/libr...(v=vs.90).aspx note the "SHARED" option. This applies to the Ext.def file.
    Working as fast as I can on Fusion 3

  6. #36
    Clicker Fusion 2.5 MacFusion 2.5 DeveloperAndroid Export ModuleHTML5 Export ModuleiOS Export ModuleSWF Export ModuleXNA Export ModuleUnicode Add-onFirefly 3D Module
    Fusion 2.5 (Steam)Fusion 2.5 Developer (Steam)Fusion 2.5+ DLC (Steam)Android Export Module (Steam)HTML5 Export Module (Steam)iOS Export Module (Steam)Universal Windows Platform Export Module (Steam)Firefly 3D Module (Steam)
    Phi's Avatar
    Join Date
    Jan 2010
    Location
    England
    Posts
    1,856
    Mentioned
    15 Post(s)
    Tagged
    0 Thread(s)
    Quote Originally Posted by LB View Post
    Just FYI Phi, liblacewing is designed to be run in single-threaded environments. You can use the manual-tick method in Extension::Handle.
    I knew that, which is why the multithreading is optional (and if the thread fails to boot, it falls back on single-threaded anyway). I am aware that the MMF2 library is not designed for multithreading which is why DarkEDIF incorporates a queue and handles the queue inside Handle, pretty much what Lacewing does with its events.
    Quote Originally Posted by LB View Post
    As for the extra features: Select peer by name and compare to peer name; Memory object; do we now have to specify signed and unsigned in the actions?
    Sorry, I can't interpret that at all...
    Quote Originally Posted by LB View Post
    But seriously, multithreading like this is a way to slow your extension down and give yourself some headache-inducing crashes.
    Crashes are easy to remove if you know what you're doing, and if you find you don't, the only way is learning and experience
    I'm actually considering adding multicore to one of my already multithreaded C++ apps. Since my 2nd extension, I've been working with multithreading. If there's an issue, it will be isolated and resolved, since the only place the error could be would be in my code.

  7. #37
    Clickteam Clickteam
    LB's Avatar
    Join Date
    Jun 2007
    Location
    Richardson, Texas, North America
    Posts
    8,937
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)
    Quote Originally Posted by Phi View Post
    Other extra features include:
    • Conditions to check if a peer is joined to a channel, useful for invite lists which might not be up-to-date or checking a series of channels.*
    • An expression to dump a binary message containing multiple variables of multiple types, useful for debugging and logging.*
    Strict usage. If you try adding a byte of value 300 to Lacewing, it will wrap the value, as would C++ during a regular cast with loss of information. However, Bluewing will report an error instead.
    Quote Originally Posted by LB View Post
    Select peer by name and compare to peer name; Memory object; do we now have to specify signed and unsigned in the actions?
    Quote Originally Posted by Phi View Post
    Sorry, I can't interpret that at all...
    Was it just too out of context?
    Working as fast as I can on Fusion 3

  8. #38
    Clicker Fusion 2.5 MacFusion 2.5 DeveloperAndroid Export ModuleHTML5 Export ModuleiOS Export ModuleSWF Export ModuleXNA Export ModuleUnicode Add-onFirefly 3D Module
    Fusion 2.5 (Steam)Fusion 2.5 Developer (Steam)Fusion 2.5+ DLC (Steam)Android Export Module (Steam)HTML5 Export Module (Steam)iOS Export Module (Steam)Universal Windows Platform Export Module (Steam)Firefly 3D Module (Steam)
    Phi's Avatar
    Join Date
    Jan 2010
    Location
    England
    Posts
    1,856
    Mentioned
    15 Post(s)
    Tagged
    0 Thread(s)
    Oh now I follow you.
    "Select peer by name and compare to peer name" requires you to use 2 events and looks messy. In Bluewing, if it can't select a peer, you get an error, and the original peer remains selected. Unless you use this condition.

    No, you don't have to specify unsigned/signed in the actions, for compatibility with Lacewing, but it will detect if it's (x < min_signed || x > max_unsigned).

    What's that about memory object?

  9. #39
    Clickteam Clickteam
    LB's Avatar
    Join Date
    Jun 2007
    Location
    Richardson, Texas, North America
    Posts
    8,937
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)
    You can get the address of the binary to send and the received binary with Lacewing, so the Memory object is all you need to access it. I'm not sure what you mean by 'dump' as Lacewing already supports saving the received binary to a file.
    Working as fast as I can on Fusion 3

  10. #40
    Clicker Multimedia Fusion 2 DeveloperSWF Export ModuleFirefly 3D Module

    Join Date
    Jun 2006
    Posts
    6,773
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)
    My suggestion of an improvement is to remove the "multithreading", because it's always going to add overhead. You're just adding another queue.

Page 4 of 7 FirstFirst ... 2 3 4 5 6 ... LastLast

Similar Threads

  1. Odd Issue with DarkEDIF/WIN-EDIF and external libraries
    By DracisLooby in forum Extension Development
    Replies: 26
    Last Post: 29th November 2013, 04:37 PM
  2. DarkEdif
    By kraminator in forum Extension Development
    Replies: 7
    Last Post: 17th October 2012, 02:07 AM
  3. Taking a screenshot in HWA?
    By Boba Fonts in forum Hardware Accelerated Runtime
    Replies: 15
    Last Post: 20th September 2009, 11:06 AM

Tags for this Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •