newsAdvanced Gtk+ Sequencer - News: Extended semantics and some removals

 
 
Latest News
Advanced Gtk+ Sequencer v2.3.2 released posted by jkraehemann, Tue 10 Sep 2019 07:32:44 AM UTC - 0 replies
Advanced Gtk+ Sequencer v2.3.x - implementing ags_filter_util.c posted by jkraehemann, Sun 18 Aug 2019 10:10:42 AM UTC - 0 replies
Further optimization in ags_audio_buffer_util.c posted by jkraehemann, Wed 07 Aug 2019 12:22:48 AM UTC - 0 replies
GCC builtin vector functions and a lock free soundcard buffer posted by jkraehemann, Mon 29 Jul 2019 03:36:31 PM UTC - 0 replies
Advanced Gtk+ Sequencer v2.2.5 released posted by jkraehemann, Tue 25 Jun 2019 06:43:09 PM UTC - 0 replies
[Submit News]
[85 news in archive]

Extended semantics and some removals

Item posted by Joël Krähemann <jkraehemann> on Sun 08 Apr 2018 05:10:13 PM UTC.

GSequencer v2.0.0 just removed unneeded interfaces like:

  • AgsPackable
  • AgsDynamicConnectable
  • AgsPlayable
  • AgsMessage

About AgsPackable interface methods, ::pack() and ::unpack() were replaced by following functions:

  • ags_recall_container_add()
  • ags_recall_container_remove()

The AgsRecallContainer object existed anyway and I just made it more usable.

AgsDynamicConnectable was somehow confusing because there is AgsConnectable, too. The ::connect_dynamic() and ::disconnect_dynamic() shall be replaced by:

  • ags_connectable_connect_connection()
  • ags_connectable_disconnect_connection()

As mentioned in a previous post AgsPlayable is replaced by AgsSoundContainer and AgsSoundResource.

AgsMessage was never used that's why I removed it.

Better lock semantics

Many objects are going to have its very own object mutex. Most noticeable objects are:

  • AgsAudio
  • AgsChannel
  • AgsRecycling
  • AgsAudioSignal
  • AgsRecall and all sub-types
  • AgsNotation
  • AgsAutomation
  • AgsWave
  • AgsMidi
  • AgsPattern
  • AgsPlayback
  • AgsPlaybackDomain
  • AgsRecallID
  • AgsRecyclingContext

Any function call is going to be thread-safe for these objects. Be aware, you still can't access the audio buffers without integration to the AgsRecall effect processing system. Well, might be it is going to be configurable by globals.

Thread-safe properties

All properties shall be thread-safe. For the lazy programmer to get a field in a concurrency aware access.

A lot of work due to refactoring

I intend to revise each file. As the API reference field Since: shows 2.0.0 all desired changes should have been fulfilled. 

AgsRecall::duplicate() prototype was modified in order to replace GParameter by a string vector and a GValue array.

Better abstraction like the new fields of AgsRecall.

  • :output-soundcard
  • :output-soundcard-channel
  • :input-soundcard
  • :input-soundcard-channel
  • :samplerate
  • :buffer-size
  • :format

AgsUUID field in view of AgsConnectable

OSC support is inteded to be added. The AgsConnectable::list-resource() returns you an xmlNode struct listing all available resources.

There shall be an XML and a pure OSC back-end to do remote control.


by Joël

No messages in Extended semantics and some removals

 

Back to the top


Powered by Savane 3.5