Apple to repurpose the Lightning socket

20140605-203851.jpg

Rumours are starting to surface around the Lightning socket on the new Apple hardware.. Starting with the iPhone 6 it’s been reported that the Lightning socket will be used as a headphone jack.

Its fair to say the recent acquisition of Beats Audio limited something hardware related was bound to be in the pipelines.. If these rumours come to fruition, then I wouldn’t be surprised to see some Beats headphones on the shelves in Apple stores sporting the all new lightning connector.

There’s lots going on in the news with regards to mini usb connectors being made almost mandatory with all phone manufacturers. However, it seems unlikely Apple would adopt this.

The most obvious downside of this would of course be the inability to charge whilst listening to music. Although there would undoubtidbly be a plethora of inline adapters to enable charger and audio at the same time hitting the shelves.

The biggest benefit if this did become reality would be the switch from analogue to digital music. The (soon to be extinct?) 3.5mm jack only supports analogue music streaming, whereas the lightning connector would almost certainly be digital.

At least there’d be one saving grace for us not rushing out to bag the iPhone 6+ on day of release. A simple firmware upgrade would probably bring the headphone functionality to the older models lightning ports.

Read More

Handle Lync Audio/Video ModalityStateChanged with VB.net

da57591e-7377-46d3-959c-005816e755c4So todays challenge was around handling the ModalityState change on the Lync 2013 client. The ModalityState change event happens during certain stages of Lync calls, and client actions. The ModalityState is part of the Microsoft.Lync.Model.Conversation namespace. We are using it to configure certain custom Lync Status’ dependant of the current state of the client.

To capture and handle these events, you need to create and event handler for the conversation manager namespace and for ModalityStateChangedEventArgs. The code below is written in VB.Net but could easily be transferred to C# etc.

In my example, I am only interested in the AudioVideo modality state changes.

Imports Microsoft.Lync.Model
Imports Microsoft.Lync.Model.Conversation
Imports Lync = Microsoft.Lync.Model.Conversation

Public Class frmMain
    Private _LyncClient As LyncClient
    Public WithEvents _ConversationMgr As Microsoft.Lync.Model.Conversation.ConversationManager
    Public WithEvents _conv As Conversation

    Private Sub MainWindow_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Try
            _LyncClient = LyncClient.GetClient()
            _ConversationMgr = _LyncClient.ConversationManager
            DisplayCurrentState()
        Catch generatedExceptionName As ClientNotFoundException
            MessageBox.Show("client is not running")
        End Try
    End Sub

    Private Sub _ConversationMgr_ConversationAdded(ByVal sender As Object, ByVal e As Microsoft.Lync.Model.Conversation.ConversationManagerEventArgs) Handles _ConversationMgr.ConversationAdded
        AddHandler e.Conversation.Modalities(ModalityTypes.AudioVideo).ModalityStateChanged, AddressOf AVModalityStateChanged
    End Sub

    Private Sub AVModalityStateChanged(ByVal sender As Object, ByVal e As ModalityStateChangedEventArgs)
        Select Case e.NewState
            Case ModalityState.ConnectingToCaller
                'Insert your code here
            Case ModalityState.Connecting
                'Insert your code here
            Case ModalityState.Joining
                'Insert your code here
            Case ModalityState.Transferring
                'Insert your code here
            Case ModalityState.Disconnected
                'Insert your code here
            Case ModalityState.Disconnecting
                'Insert your code here
            Case ModalityState.Forwarding
                'Insert your code here
            Case ModalityState.OnHold
                'Insert your code here
            Case ModalityState.Suspended
                'Insert your code here
        End Select
    End Sub

So as you can see, it’s quite a simple concept – which holds lots of potential!

Read More