Skip to content

Commit c374e8f

Browse files
Merge pull request #275 from microsoft/pete-dev
Loopbacks and scheduled messaging
2 parents 03b82fc + e97a449 commit c374e8f

28 files changed

+803
-172
lines changed

build/staging/version/BundleInfo.wxi

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
<Include>
22
<?define SetupVersionName="Developer Preview 5" ?>
3-
<?define SetupVersionNumber="1.0.24044.0330" ?>
3+
<?define SetupVersionNumber="1.0.24044.1942" ?>
44
</Include>

docs/endpoints/virtual-device-app.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ has_children: false
1515

1616
## Overview
1717

18-
One way to have app-to-app MIDI on Windows is to use a simple loopback. That is typically created ahead of time, and is available for any applications to use to communicate with each other. The lifetime of these loopback endpoints are not tied to any one application.
18+
One way to have app-to-app MIDI on Windows is to use a simple loopback. That is typically created ahead of time, and is available for any applications to use to communicate with each other. The lifetime of these loopback endpoints are not tied to any one application. They are simply a pipe between applications.
1919

2020
Another approach is to allow applications to create and publish an endpoint which is declared through settings inside the application itself. When the application closes, the endpoint closes. That is the model the Virtual Device App feature implements. (If you want the simple pre-created loopback, see the Virtual Loopback transport)
2121

docs/endpoints/virtual-loopback.md

+2-1
Original file line numberDiff line numberDiff line change
@@ -85,8 +85,9 @@ Each loopback endpoint pair is identified by a GUID for the association id. The
8585
| (endpoint) description | Optional. This becomes the transport-supplied description for the loopback endpoint. |
8686
| (endpoint) uniqueId | Required. This is a short (32 characters or fewer) case-insensitive unique Id for the endpoint. When combined with the loopback A/B prefixes in the service, it must be unique across all loopback endpoints in Windows. You can use the same unique id for each endpoint in the same pair, but not the same as other pairs. |
8787

88+
> Note: Loopback endpoints created in the configuration file cannot be removed by the API. Only loopback endpoints created via the API can be removed via the API. This is by design to help avoid applications changing user configuration.
8889
8990
# Implementation
9091

91-
Internally, the Virtual Loopback is implemented as two endpoints which are cross-wired, so anything sent to Loopback A arrives on the input of Loopback B, and vice versa. Each declared pair has an exclusive relationship, and there's no practical limit to the number of loopback pairs you can define.
92+
Internally, the Virtual Loopback is implemented as two endpoints which are cross-wired, so anything sent out to Loopback A arrives on the input of Loopback B, and vice versa. Each declared pair has an exclusive relationship, and there's no practical limit to the number of loopback pairs you can define.
9293

Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
3+
<ImportGroup Label="PropertySheets" />
4+
<PropertyGroup Label="UserMacros" />
5+
<!--
6+
To customize common C++/WinRT project properties:
7+
* right-click the project node
8+
* expand the Common Properties item
9+
* select the C++/WinRT property page
10+
11+
For more advanced scenarios, and complete documentation, please see:
12+
https://github.com/Microsoft/cppwinrt/tree/master/nuget
13+
-->
14+
<PropertyGroup />
15+
<ItemDefinitionGroup />
16+
</Project>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
2+
Microsoft Visual Studio Solution File, Format Version 12.00
3+
# Visual Studio Version 17
4+
VisualStudioVersion = 17.9.34526.213
5+
MinimumVisualStudioVersion = 10.0.40219.1
6+
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "api-loopback-endpoints", "api-loopback-endpoints.vcxproj", "{0F789250-75E9-47D3-B740-46547F2BC23C}"
7+
EndProject
8+
Global
9+
GlobalSection(SolutionConfigurationPlatforms) = preSolution
10+
Debug|x64 = Debug|x64
11+
Debug|x86 = Debug|x86
12+
Release|x64 = Release|x64
13+
Release|x86 = Release|x86
14+
EndGlobalSection
15+
GlobalSection(ProjectConfigurationPlatforms) = postSolution
16+
{0F789250-75E9-47D3-B740-46547F2BC23C}.Debug|x64.ActiveCfg = Debug|x64
17+
{0F789250-75E9-47D3-B740-46547F2BC23C}.Debug|x64.Build.0 = Debug|x64
18+
{0F789250-75E9-47D3-B740-46547F2BC23C}.Debug|x86.ActiveCfg = Debug|Win32
19+
{0F789250-75E9-47D3-B740-46547F2BC23C}.Debug|x86.Build.0 = Debug|Win32
20+
{0F789250-75E9-47D3-B740-46547F2BC23C}.Release|x64.ActiveCfg = Release|x64
21+
{0F789250-75E9-47D3-B740-46547F2BC23C}.Release|x64.Build.0 = Release|x64
22+
{0F789250-75E9-47D3-B740-46547F2BC23C}.Release|x86.ActiveCfg = Release|Win32
23+
{0F789250-75E9-47D3-B740-46547F2BC23C}.Release|x86.Build.0 = Release|Win32
24+
EndGlobalSection
25+
GlobalSection(SolutionProperties) = preSolution
26+
HideSolutionNode = FALSE
27+
EndGlobalSection
28+
GlobalSection(ExtensibilityGlobals) = postSolution
29+
SolutionGuid = {12CF8BB3-04D9-4E5D-B48C-0E39B828A727}
30+
EndGlobalSection
31+
EndGlobal
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,126 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
3+
<Import Project="packages\Windows.Devices.Midi2.1.0.0-preview.3-0156\build\native\Windows.Devices.Midi2.props" Condition="Exists('packages\Windows.Devices.Midi2.1.0.0-preview.3-0156\build\native\Windows.Devices.Midi2.props')" />
4+
<Import Project="packages\Microsoft.Windows.CppWinRT.2.0.240111.5\build\native\Microsoft.Windows.CppWinRT.props" Condition="Exists('packages\Microsoft.Windows.CppWinRT.2.0.240111.5\build\native\Microsoft.Windows.CppWinRT.props')" />
5+
<PropertyGroup Label="Globals">
6+
<CppWinRTOptimized>true</CppWinRTOptimized>
7+
<CppWinRTRootNamespaceAutoMerge>true</CppWinRTRootNamespaceAutoMerge>
8+
<CppWinRTGenerateWindowsMetadata>true</CppWinRTGenerateWindowsMetadata>
9+
<MinimalCoreWin>true</MinimalCoreWin>
10+
<VCProjectVersion>15.0</VCProjectVersion>
11+
<ProjectGuid>{0f789250-75e9-47d3-b740-46547f2bc23c}</ProjectGuid>
12+
<Keyword>Win32Proj</Keyword>
13+
<RootNamespace>api_loopback_endpoints</RootNamespace>
14+
<WindowsTargetPlatformVersion Condition=" '$(WindowsTargetPlatformVersion)' == '' ">10.0.20348.0</WindowsTargetPlatformVersion>
15+
<WindowsTargetPlatformMinVersion>10.0.20348.0</WindowsTargetPlatformMinVersion>
16+
</PropertyGroup>
17+
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
18+
<ItemGroup Label="ProjectConfigurations">
19+
<ProjectConfiguration Include="Debug|x64">
20+
<Configuration>Debug</Configuration>
21+
<Platform>x64</Platform>
22+
</ProjectConfiguration>
23+
<ProjectConfiguration Include="Release|x64">
24+
<Configuration>Release</Configuration>
25+
<Platform>x64</Platform>
26+
</ProjectConfiguration>
27+
</ItemGroup>
28+
<PropertyGroup Label="Configuration">
29+
<ConfigurationType>Application</ConfigurationType>
30+
<PlatformToolset>v143</PlatformToolset>
31+
<PlatformToolset Condition="'$(VisualStudioVersion)' == '16.0'">v142</PlatformToolset>
32+
<PlatformToolset Condition="'$(VisualStudioVersion)' == '15.0'">v141</PlatformToolset>
33+
<PlatformToolset Condition="'$(VisualStudioVersion)' == '14.0'">v140</PlatformToolset>
34+
<CharacterSet>Unicode</CharacterSet>
35+
</PropertyGroup>
36+
<PropertyGroup Condition="'$(Configuration)'=='Debug'" Label="Configuration">
37+
<UseDebugLibraries>true</UseDebugLibraries>
38+
<LinkIncremental>true</LinkIncremental>
39+
</PropertyGroup>
40+
<PropertyGroup Condition="'$(Configuration)'=='Release'" Label="Configuration">
41+
<UseDebugLibraries>false</UseDebugLibraries>
42+
<WholeProgramOptimization>true</WholeProgramOptimization>
43+
<LinkIncremental>false</LinkIncremental>
44+
</PropertyGroup>
45+
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
46+
<ImportGroup Label="ExtensionSettings">
47+
</ImportGroup>
48+
<ImportGroup Label="Shared">
49+
</ImportGroup>
50+
<ImportGroup Label="PropertySheets">
51+
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
52+
</ImportGroup>
53+
<ImportGroup Label="PropertySheets">
54+
<Import Project="PropertySheet.props" />
55+
</ImportGroup>
56+
<PropertyGroup Label="UserMacros" />
57+
<ItemDefinitionGroup>
58+
<ClCompile>
59+
<PrecompiledHeader>Use</PrecompiledHeader>
60+
<PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
61+
<PrecompiledHeaderOutputFile>$(IntDir)pch.pch</PrecompiledHeaderOutputFile>
62+
<PreprocessorDefinitions>_CONSOLE;WIN32_LEAN_AND_MEAN;WINRT_LEAN_AND_MEAN;%(PreprocessorDefinitions)</PreprocessorDefinitions>
63+
<WarningLevel>Level4</WarningLevel>
64+
<AdditionalOptions>%(AdditionalOptions) /permissive- /bigobj</AdditionalOptions>
65+
</ClCompile>
66+
</ItemDefinitionGroup>
67+
<ItemDefinitionGroup Condition="'$(Configuration)'=='Debug'">
68+
<ClCompile>
69+
<Optimization>Disabled</Optimization>
70+
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
71+
</ClCompile>
72+
<Link>
73+
<SubSystem>Console</SubSystem>
74+
<GenerateWindowsMetadata>false</GenerateWindowsMetadata>
75+
</Link>
76+
</ItemDefinitionGroup>
77+
<ItemDefinitionGroup Condition="'$(Platform)'=='Win32'">
78+
<ClCompile>
79+
<PreprocessorDefinitions>WIN32;%(PreprocessorDefinitions)</PreprocessorDefinitions>
80+
</ClCompile>
81+
</ItemDefinitionGroup>
82+
<ItemDefinitionGroup Condition="'$(Configuration)'=='Release'">
83+
<ClCompile>
84+
<Optimization>MaxSpeed</Optimization>
85+
<FunctionLevelLinking>true</FunctionLevelLinking>
86+
<IntrinsicFunctions>true</IntrinsicFunctions>
87+
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
88+
</ClCompile>
89+
<Link>
90+
<SubSystem>Console</SubSystem>
91+
<EnableCOMDATFolding>true</EnableCOMDATFolding>
92+
<OptimizeReferences>true</OptimizeReferences>
93+
<GenerateWindowsMetadata>false</GenerateWindowsMetadata>
94+
</Link>
95+
</ItemDefinitionGroup>
96+
<ItemGroup>
97+
<ClInclude Include="pch.h" />
98+
</ItemGroup>
99+
<ItemGroup>
100+
<ClCompile Include="main.cpp" />
101+
<ClCompile Include="pch.cpp">
102+
<PrecompiledHeader>Create</PrecompiledHeader>
103+
</ClCompile>
104+
</ItemGroup>
105+
<ItemGroup>
106+
<None Include="packages.config" />
107+
<None Include="PropertySheet.props" />
108+
<Text Include="readme.txt">
109+
<DeploymentContent>false</DeploymentContent>
110+
</Text>
111+
</ItemGroup>
112+
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
113+
<ImportGroup Label="ExtensionTargets">
114+
<Import Project="packages\Microsoft.Windows.CppWinRT.2.0.240111.5\build\native\Microsoft.Windows.CppWinRT.targets" Condition="Exists('packages\Microsoft.Windows.CppWinRT.2.0.240111.5\build\native\Microsoft.Windows.CppWinRT.targets')" />
115+
<Import Project="packages\Windows.Devices.Midi2.1.0.0-preview.3-0156\build\native\Windows.Devices.Midi2.targets" Condition="Exists('packages\Windows.Devices.Midi2.1.0.0-preview.3-0156\build\native\Windows.Devices.Midi2.targets')" />
116+
</ImportGroup>
117+
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
118+
<PropertyGroup>
119+
<ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
120+
</PropertyGroup>
121+
<Error Condition="!Exists('packages\Microsoft.Windows.CppWinRT.2.0.240111.5\build\native\Microsoft.Windows.CppWinRT.props')" Text="$([System.String]::Format('$(ErrorText)', 'packages\Microsoft.Windows.CppWinRT.2.0.240111.5\build\native\Microsoft.Windows.CppWinRT.props'))" />
122+
<Error Condition="!Exists('packages\Microsoft.Windows.CppWinRT.2.0.240111.5\build\native\Microsoft.Windows.CppWinRT.targets')" Text="$([System.String]::Format('$(ErrorText)', 'packages\Microsoft.Windows.CppWinRT.2.0.240111.5\build\native\Microsoft.Windows.CppWinRT.targets'))" />
123+
<Error Condition="!Exists('packages\Windows.Devices.Midi2.1.0.0-preview.3-0156\build\native\Windows.Devices.Midi2.props')" Text="$([System.String]::Format('$(ErrorText)', 'packages\Windows.Devices.Midi2.1.0.0-preview.3-0156\build\native\Windows.Devices.Midi2.props'))" />
124+
<Error Condition="!Exists('packages\Windows.Devices.Midi2.1.0.0-preview.3-0156\build\native\Windows.Devices.Midi2.targets')" Text="$([System.String]::Format('$(ErrorText)', 'packages\Windows.Devices.Midi2.1.0.0-preview.3-0156\build\native\Windows.Devices.Midi2.targets'))" />
125+
</Target>
126+
</Project>

0 commit comments

Comments
 (0)