Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
indigo_2024.1_documentation:plugins:airfoilpro [2024/07/18 16:22] – created - external edit 127.0.0.1indigo_2024.1_documentation:plugins:airfoilpro [2025/04/14 20:10] (current) – external edit 127.0.0.1
Line 5: Line 5:
 The latest major release, [[http://rogueamoeba.com/airfoil/|Airfoil v5]], has a new API that enables a much more reliable and capable integration with Indigo. It works with both Airfoil 5 on [[http://rogueamoeba.com/airfoil/mac/|Mac]] and [[http://rogueamoeba.com/airfoil/windows/|Windows]] and can work with as many Airfoil instances as there are on your network. The latest major release, [[http://rogueamoeba.com/airfoil/|Airfoil v5]], has a new API that enables a much more reliable and capable integration with Indigo. It works with both Airfoil 5 on [[http://rogueamoeba.com/airfoil/mac/|Mac]] and [[http://rogueamoeba.com/airfoil/windows/|Windows]] and can work with as many Airfoil instances as there are on your network.
  
-Note: this plugin requires v1.5 or later of the Airfoil API. This was delivered in Airfoil 5 for Mac and Windows. If you need support for earlier versions of Airfoil for Mac, please see [[https://github.com/IndigoDomotics/airfoil|the legacy Airfoil plugin]] that we open-sourced. Note, however, that it may not work with newer versions of Indgio.+Note: this plugin requires v1.5 or later of the Airfoil API. This was delivered in Airfoil 5 for Mac and Windows. If you need support for earlier versions of Airfoil for Mac, please see [[https://github.com/IndigoDomotics/airfoil|the legacy Airfoil plugin]] that we open-sourced. Note, however, that it may not work with newer versions of Indigo.
 ===== Airfoil Device Types ===== ===== Airfoil Device Types =====
  
-Each Airfoil instance that can be found on your local network can be added as a device in Indigo. When you add an Airfoil device, each speaker that's available in that instance of Airfoil will also be represented by it'own device. This gives you a much more flexible set of devices that can be used in triggers, actions, and control pages.+Each Airfoil instance that can be found on your local network can be added as a device in Indigo. When you add an Airfoil device, each speaker that's available in that instance of Airfoil will also be represented by its own device. This gives you a much more flexible set of devices that can be used in triggers, actions, and control pages.
  
 ==== Airfoil Instance ==== ==== Airfoil Instance ====
Line 18: Line 18:
 To create an Airfoil Instance device, click the **''New...''** button above the devices list. In the resulting Create New Device dialog, select Airfoil Pro as the type and you will see the Add Airfoil Instance... dialog: To create an Airfoil Instance device, click the **''New...''** button above the devices list. In the resulting Create New Device dialog, select Airfoil Pro as the type and you will see the Add Airfoil Instance... dialog:
  
-{{:indigo_2024.1_documentation:plugins:add_airfoil_instance.png?nolink|}}+{{:indigo_2024.1_documentation:plugins:add_airfoil_instance.png?nolink|Add Airfoil Instance Image}}
  
 In the first popup, select the Airfoil instance that you want to add. This popup is dynamically generated based on Airfoil's discovery protocol. If you don't see your Airfoil instance, make sure Airfoil v5 is running on a Mac or Windows computer on the same network as your Indigo server Mac. In the first popup, select the Airfoil instance that you want to add. This popup is dynamically generated based on Airfoil's discovery protocol. If you don't see your Airfoil instance, make sure Airfoil v5 is running on a Mac or Windows computer on the same network as your Indigo server Mac.
Line 26: Line 26:
   * ''albumArt.png'' - an image of the currently playing album track if the source supports it (notably, iTunes)   * ''albumArt.png'' - an image of the currently playing album track if the source supports it (notably, iTunes)
   * ''machineIcon.png'' - an icon representing the computer that is running this instance of Airfoil   * ''machineIcon.png'' - an icon representing the computer that is running this instance of Airfoil
-  * ''mechineIconAndScreenshot.png'' - a screenshot from the host computer with the machine icon overlayed (though this functionality seems to be missing in Airfoil versions through v5.1.0 - you just get the same image as the machine icon)+  * ''machineIconAndScreenshot.png'' - a screenshot from the host computer with the machine icon overlaid (though this functionality seems to be missing in Airfoil versions through v5.1.0 - you just get the same image as the machine icon)
   * ''sourceIcon.png'' - an icon representing the selected audio source in Airfoil.   * ''sourceIcon.png'' - an icon representing the selected audio source in Airfoil.
  
 Leave the field empty if you don't wish for the plugin to store these images. Leave the field empty if you don't wish for the plugin to store these images.
  
-One oversight that there is in the Airfoil API is the ability to know the play state of the source. So the plugin can't know whether iTunes is playing or paused. If you are using the iTunes Indigo plugin, you have this information, but it's in a different device which could make control page design a little tricky. To work around this missing functionality, we allow you to select an iTunes server Indigo device (that you've previously created) that represents the same iTunes server as the one your Airfoil instance is using as it'source. The plugin will monitor that iTunes device and update the sourcePlayStatus state so that it mirrors the iTunes device.+One oversight that there is in the Airfoil API is the ability to know the play state of the source. So the plugin can't know whether iTunes is playing or paused. If you are using the iTunes Indigo plugin, you have this information, but it's in a different device which could make control page design a little tricky. To work around this missing functionality, we allow you to select an iTunes server Indigo device (that you've previously created) that represents the same iTunes server as the one your Airfoil instance is using as its source. The plugin will monitor that iTunes device and update the sourcePlayStatus state so that it mirrors the iTunes device.
  
 When you click the "Save" button, the plugin will create your Airfoil Instance device, and it will query Airfoil and get all it's known speakers. It will then create devices for each of those speakers (see the next section for details on those devices). When you click the "Save" button, the plugin will create your Airfoil Instance device, and it will query Airfoil and get all it's known speakers. It will then create devices for each of those speakers (see the next section for details on those devices).
Line 37: Line 37:
 This is what the Edit Device dialog will look like when it's finished: This is what the Edit Device dialog will look like when it's finished:
  
-{{:indigo_2024.1_documentation:plugins:airfoil_edit_group.png?nolink|}}+{{:indigo_2024.1_documentation:plugins:airfoil_edit_group.png?nolink|Airfoil Edit Group Image}}
  
-Airfoil instances are actually a group of devices: the instance itself (the first tab), and then multiple speaker devices, one for each speaker device that your instance knows about. We set the name of the Airfoil Instance to the Airfoil name. For each speaker, we name the speaker with this pattern: "Speaker Name (Airfoil Instance Name speaker)" to help you see how the devices relate to each other. We also add a note to each speaker device with a bit more detail about it'relationship to it'parent Airfoil Instance device.+Airfoil instances are actually a group of devices: the instance itself (the first tab), and then multiple speaker devices, one for each speaker device that your instance knows about. We set the name of the Airfoil Instance to the Airfoil name. For each speaker, we name the speaker with this pattern: "Speaker Name (Airfoil Instance Name speaker)" to help you see how the devices relate to each other. We also add a note to each speaker device with a bit more detail about its relationship to its parent Airfoil Instance device.
  
 Airfoil Instance devices have the following state changes that you can use in Triggers: Airfoil Instance devices have the following state changes that you can use in Triggers:
  
-{{:indigo_2024.1_documentation:plugins:airfoil_triggers.png?nolink|}}+{{:indigo_2024.1_documentation:plugins:airfoil_triggers.png?nolink|Airfoil Triggers Image}} 
 + 
 +<color #ed1c24>**Warning:**</color> due to changes that Apple has made to their API, the //''Source Status Is Playing''// trigger will no longer fire. This trigger option will be adjusted in a future release.
  
 Those states can also be displayed in Control Pages. Those states can also be displayed in Control Pages.
Line 72: Line 74:
 ==== Speaker ==== ==== Speaker ====
  
-Each Airfoil Instance device has a collection of "Speaker" devices in it'group. These are all the various outputs to which Airfoil can direct it'source audio. These devices are created automatically when you create your Airfoil Instance and any time a new source gets added to the instance. For instance, if you create an Airfoil Instance and it finds 3 speakers, then at a later time you add a bluetooth speaker to the Mac that Airfoil is running on, the plugin will automatically create a new speaker device for that bluetooth speaker.+Each Airfoil Instance device has a collection of "Speaker" devices in its group. These are all the various outputs to which Airfoil can direct its source audio. These devices are created automatically when you create your Airfoil Instance and any time a new source gets added to the instance. For instance, if you create an Airfoil Instance and it finds 3 speakers, then at a later time you add a bluetooth speaker to the Mac that Airfoil is running on, the plugin will automatically create a new speaker device for that bluetooth speaker.
  
 We never automatically delete speakers: if you have a bluetooth speaker that fails and you won't ever use it again, you'll need to remove it manually. We never automatically delete speakers: if you have a bluetooth speaker that fails and you won't ever use it again, you'll need to remove it manually.
Line 96: Line 98:
 The Airfoil plugin provides a variety of actions that allow you to fully manage an Airfoil Instance and Speakers. We'll separate these into Speaker actions and Instance actions. These actions are available on the **''Type:''** menu in the actions edit dialog under **''Device Actions->Airfoil Pro Controls''** submenu. The Airfoil plugin provides a variety of actions that allow you to fully manage an Airfoil Instance and Speakers. We'll separate these into Speaker actions and Instance actions. These actions are available on the **''Type:''** menu in the actions edit dialog under **''Device Actions->Airfoil Pro Controls''** submenu.
  
-{{:indigo_2024.1_documentation:plugins:actionmenu.png?nolink|}}+{{:indigo_2024.1_documentation:plugins:actionmenu.png?nolink|Action Menu Image}}
  
 For those interested in controlling Airfoil Pro devices from another plugin or script, you will find the details below after a description of each action in the **Scripting details** section. You don't need to know or understand those sections if you're not interested in writing scripts. For those interested in controlling Airfoil Pro devices from another plugin or script, you will find the details below after a description of each action in the **Scripting details** section. You don't need to know or understand those sections if you're not interested in writing scripts.
  • /www/perceptive/wiki/data/attic/indigo_2024.1_documentation/plugins/airfoilpro.1721319751.txt.gz
  • Last modified: 2024/07/18 16:22
  • by 127.0.0.1