Skip to content

File IManagedInterface.h

File List > SpinnakerNET > IManagedInterface.h

Go to the documentation of this file

//=============================================================================
// Copyright (c) 2026 FLIR Integrated Imaging Solutions, Inc. All Rights Reserved.
//
// This software is the confidential and proprietary information of FLIR
// Integrated Imaging Solutions, Inc. ("Confidential Information"). You
// shall not disclose such Confidential Information and shall use it only in
// accordance with the terms of the license agreement you entered into
// with FLIR Integrated Imaging Solutions, Inc. (FLIR).
//
// FLIR MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE
// SOFTWARE, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
// IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
// PURPOSE, OR NON-INFRINGEMENT. FLIR SHALL NOT BE LIABLE FOR ANY DAMAGES
// SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR DISTRIBUTING
// THIS SOFTWARE OR ITS DERIVATIVES.
//=============================================================================

#ifndef FLIR_SPINNAKER_IMANAGED_INTERFACE_H
#define FLIR_SPINNAKER_IMANAGED_INTERFACE_H

#include "Interface.h"
#include "InterfacePtr.h"
#include "ManagedCamera.h"
#include "ManagedCameraList.h"
#include "ManagedInterfaceEventHandler.h"
#include "ManagedTransportLayerInterface.h"
#include "ManagedDefs.h"

#pragma make_public(Spinnaker::Interface)
using namespace ::System;
using namespace ::System::Collections::Generic;

namespace SpinnakerNET
{
    public interface class IManagedInterface: IDisposable
    {
        ManagedCameraList^ GetCameras();
        ManagedCameraList^ GetCameras(bool updateCameras);

        bool UpdateCameras();

        Spinnaker::InterfacePtr* GetNativeInterfacePtr();

        SpinnakerNET::GenApi::INodeMap^ GetTLNodeMap();

        void RegisterEventHandler(ManagedEventHandler^ eventHandler);
        void UnregisterEventHandler(ManagedEventHandler^ eventHandler);

        List<ActionCommandResult^>^ SendActionCommand(unsigned int deviceKey, unsigned int groupKey, unsigned int groupMask, [Optional] Nullable<unsigned long long> actionTime, bool requestAck);

        property ManagedTransportLayerInterface^ TLInterface
        {
            ManagedTransportLayerInterface^ get();
        }

        bool IsCameraInUse();

        bool IsValid();
    };
}
#endif // FLIR_SPINNAKER_IMANAGED_INTERFACE_H