LMMS
Loading...
Searching...
No Matches
juce_NetworkServiceDiscovery.h
Go to the documentation of this file.
1/*
2 ==============================================================================
3
4 This file is part of the JUCE library.
5 Copyright (c) 2022 - Raw Material Software Limited
6
7 JUCE is an open source library subject to commercial or open-source
8 licensing.
9
10 The code included in this file is provided under the terms of the ISC license
11 http://www.isc.org/downloads/software-support-policy/isc-license. Permission
12 To use, copy, modify, and/or distribute this software for any purpose with or
13 without fee is hereby granted provided that the above copyright notice and
14 this permission notice appear in all copies.
15
16 JUCE IS PROVIDED "AS IS" WITHOUT ANY WARRANTY, AND ALL WARRANTIES, WHETHER
17 EXPRESSED OR IMPLIED, INCLUDING MERCHANTABILITY AND FITNESS FOR PURPOSE, ARE
18 DISCLAIMED.
19
20 ==============================================================================
21*/
22
23namespace juce
24{
25
26//==============================================================================
35{
44 struct Advertiser : private Thread
45 {
53 Advertiser (const String& serviceTypeUID,
54 const String& serviceDescription,
55 int broadcastPort,
56 int connectionPort,
57 RelativeTime minTimeBetweenBroadcasts = RelativeTime::seconds (1.5));
58
60 ~Advertiser() override;
61
62 private:
64 const int broadcastPort;
67
68 void run() override;
69 void sendBroadcast();
70 };
71
72 //==============================================================================
88
89 //==============================================================================
102 struct AvailableServiceList : private Thread,
103 private AsyncUpdater
104 {
111 AvailableServiceList (const String& serviceTypeUID, int broadcastPort);
112
114 ~AvailableServiceList() override;
115
117 std::function<void()> onChange;
118
120 std::vector<Service> getServices() const;
121
122 private:
126 std::vector<Service> services;
127
128 void run() override;
129 void handleAsyncUpdate() override;
130 void handleMessage (const XmlElement&);
131 void handleMessage (const Service&);
133
135 };
136};
137
138} // namespace juce
static void run(LV2_Handle instance, uint32_t n_samples)
Definition bindings_test_plugin.c:112
AsyncUpdater()
Definition juce_AsyncUpdater.cpp:44
Definition juce_CriticalSection.h:43
Definition juce_Socket.h:204
Definition juce_IPAddress.h:33
Definition juce_RelativeTime.h:37
static RelativeTime seconds(double seconds) noexcept
Definition juce_RelativeTime.cpp:33
Definition juce_String.h:53
Thread(const String &threadName, size_t threadStackSize=0)
Definition juce_Thread.cpp:26
Definition juce_Time.h:37
Definition juce_XmlElement.h:83
#define JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR(className)
Definition carla_juce.cpp:31
Advertiser(const String &serviceTypeUID, const String &serviceDescription, int broadcastPort, int connectionPort, RelativeTime minTimeBetweenBroadcasts=RelativeTime::seconds(1.5))
Definition juce_NetworkServiceDiscovery.cpp:31
DatagramSocket socket
Definition juce_NetworkServiceDiscovery.h:66
const RelativeTime minInterval
Definition juce_NetworkServiceDiscovery.h:65
XmlElement message
Definition juce_NetworkServiceDiscovery.h:63
const int broadcastPort
Definition juce_NetworkServiceDiscovery.h:64
AvailableServiceList(const String &serviceTypeUID, int broadcastPort)
Definition juce_NetworkServiceDiscovery.cpp:87
DatagramSocket socket
Definition juce_NetworkServiceDiscovery.h:123
void handleAsyncUpdate() override
Definition juce_NetworkServiceDiscovery.cpp:135
std::function< void()> onChange
Definition juce_NetworkServiceDiscovery.h:117
CriticalSection listLock
Definition juce_NetworkServiceDiscovery.h:125
void removeTimedOutServices()
Definition juce_NetworkServiceDiscovery.cpp:194
String serviceTypeUID
Definition juce_NetworkServiceDiscovery.h:124
std::vector< Service > getServices() const
Definition juce_NetworkServiceDiscovery.cpp:128
std::vector< Service > services
Definition juce_NetworkServiceDiscovery.h:126
Definition juce_NetworkServiceDiscovery.h:81
String instanceID
Definition juce_NetworkServiceDiscovery.h:82
Time lastSeen
Definition juce_NetworkServiceDiscovery.h:86
int port
Definition juce_NetworkServiceDiscovery.h:85
String description
Definition juce_NetworkServiceDiscovery.h:83
IPAddress address
Definition juce_NetworkServiceDiscovery.h:84
Definition juce_NetworkServiceDiscovery.h:35
#define void
Definition unzip.h:396
static LRESULT handleMessage(PuglView *view, UINT message, WPARAM wParam, LPARAM lParam)
Definition win.c:596