Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
Erik Strand
lufa
Commits
80dc1960
Commit
80dc1960
authored
Sep 01, 2012
by
Dean Camera
Browse files
Remove incomplete Microsoft Sideshow device demo.
parent
b9f3ff39
Changes
15
Hide whitespace changes
Inline
Side-by-side
Demos/Device/Incomplete/Sideshow/Config/LUFAConfig.h
deleted
100644 → 0
View file @
b9f3ff39
/*
LUFA Library
Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
without fee, provided that the above copyright notice appear in
all copies and that both that the copyright notice and this
permission notice and warranty disclaimer appear in supporting
documentation, and that the name of the author not be used in
advertising or publicity pertaining to distribution of the
software without specific, written prior permission.
The author disclaim all warranties with regard to this
software, including all implied warranties of merchantability
and fitness. In no event shall the author be liable for any
special, indirect or consequential damages or any damages
whatsoever resulting from loss of use, data or profits, whether
in an action of contract, negligence or other tortious action,
arising out of or in connection with the use or performance of
this software.
*/
/** \file
* \brief LUFA Library Configuration Header File
*
* This header file is used to configure LUFA's compile time options,
* as an alternative to the compile time constants supplied through
* a makefile.
*
* For information on what each token does, refer to the LUFA
* manual section "Summary of Compile Tokens".
*/
#ifndef _LUFA_CONFIG_H_
#define _LUFA_CONFIG_H_
#if (ARCH == ARCH_AVR8)
/* Non-USB Related Configuration Tokens: */
// #define DISABLE_TERMINAL_CODES
/* USB Class Driver Related Tokens: */
// #define HID_HOST_BOOT_PROTOCOL_ONLY
// #define HID_STATETABLE_STACK_DEPTH {Insert Value Here}
// #define HID_USAGE_STACK_DEPTH {Insert Value Here}
// #define HID_MAX_COLLECTIONS {Insert Value Here}
// #define HID_MAX_REPORTITEMS {Insert Value Here}
// #define HID_MAX_REPORT_IDS {Insert Value Here}
// #define NO_CLASS_DRIVER_AUTOFLUSH
/* General USB Driver Related Tokens: */
// #define ORDERED_EP_CONFIG
#define USE_STATIC_OPTIONS (USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)
#define USB_DEVICE_ONLY
// #define USB_HOST_ONLY
// #define USB_STREAM_TIMEOUT_MS {Insert Value Here}
// #define NO_LIMITED_CONTROLLER_CONNECT
// #define NO_SOF_EVENTS
/* USB Device Mode Driver Related Tokens: */
// #define USE_RAM_DESCRIPTORS
#define USE_FLASH_DESCRIPTORS
// #define USE_EEPROM_DESCRIPTORS
// #define NO_INTERNAL_SERIAL
#define FIXED_CONTROL_ENDPOINT_SIZE 8
// #define DEVICE_STATE_AS_GPIOR {Insert Value Here}
#define FIXED_NUM_CONFIGURATIONS 1
// #define CONTROL_ONLY_DEVICE
// #define INTERRUPT_CONTROL_ENDPOINT
// #define NO_DEVICE_REMOTE_WAKEUP
// #define NO_DEVICE_SELF_POWER
/* USB Host Mode Driver Related Tokens: */
// #define HOST_STATE_AS_GPIOR {Insert Value Here}
// #define USB_HOST_TIMEOUT_MS {Insert Value Here}
// #define HOST_DEVICE_SETTLE_DELAY_MS {Insert Value Here}
// #define NO_AUTO_VBUS_MANAGEMENT
// #define INVERTED_VBUS_ENABLE_LINE
#else
#error Unsupported architecture for this LUFA configuration file.
#endif
#endif
Demos/Device/Incomplete/Sideshow/Descriptors.c
deleted
100644 → 0
View file @
b9f3ff39
/*
LUFA Library
Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
without fee, provided that the above copyright notice appear in
all copies and that both that the copyright notice and this
permission notice and warranty disclaimer appear in supporting
documentation, and that the name of the author not be used in
advertising or publicity pertaining to distribution of the
software without specific, written prior permission.
The author disclaim all warranties with regard to this
software, including all implied warranties of merchantability
and fitness. In no event shall the author be liable for any
special, indirect or consequential damages or any damages
whatsoever resulting from loss of use, data or profits, whether
in an action of contract, negligence or other tortious action,
arising out of or in connection with the use or performance of
this software.
*/
#include "Descriptors.h"
const
USB_Descriptor_Device_t
PROGMEM
DeviceDescriptor
=
{
Header:
{
Size
:
sizeof
(
USB_Descriptor_Device_t
),
Type
:
DTYPE_Device
},
USBSpecification:
VERSION_BCD
(
01
.
10
),
Class:
0x00
,
SubClass:
0x00
,
Protocol:
0x00
,
Endpoint0Size:
8
,
VendorID:
0x03EB
,
ProductID:
0x2040
,
ReleaseNumber:
VERSION_BCD
(
00
.
01
),
ManufacturerStrIndex:
0x01
,
ProductStrIndex:
0x02
,
SerialNumStrIndex:
0x03
,
NumberOfConfigurations:
1
};
const
USB_Descriptor_Configuration_t
PROGMEM
ConfigurationDescriptor
=
{
.
Config
=
{
Header:
{
Size
:
sizeof
(
USB_Descriptor_Configuration_Header_t
),
Type
:
DTYPE_Configuration
},
TotalConfigurationSize:
sizeof
(
USB_Descriptor_Configuration_t
),
TotalInterfaces:
1
,
ConfigurationNumber:
1
,
ConfigurationStrIndex:
NO_DESCRIPTOR
,
ConfigAttributes:
(
USB_CONFIG_ATTR_RESERVED
|
USB_CONFIG_ATTR_SELFPOWERED
),
MaxPowerConsumption:
USB_CONFIG_POWER_MA
(
100
)
},
.
SSHOW_Interface
=
{
Header:
{
Size
:
sizeof
(
USB_Descriptor_Interface_t
),
Type
:
DTYPE_Interface
},
InterfaceNumber:
0
,
AlternateSetting:
0
,
TotalEndpoints:
2
,
Class:
0xFF
,
SubClass:
0x00
,
Protocol:
0x00
,
InterfaceStrIndex:
NO_DESCRIPTOR
},
.
SSHOW_DataInEndpoint
=
{
Header:
{
Size
:
sizeof
(
USB_Descriptor_Endpoint_t
),
Type
:
DTYPE_Endpoint
},
EndpointAddress:
SIDESHOW_IN_EPADDR
,
Attributes:
EP_TYPE_BULK
,
EndpointSize:
SIDESHOW_IO_EPSIZE
,
PollingIntervalMS:
0x00
},
.
SSHOW_DataOutEndpoint
=
{
Header:
{
Size
:
sizeof
(
USB_Descriptor_Endpoint_t
),
Type
:
DTYPE_Endpoint
},
EndpointAddress:
SIDESHOW_OUT_EPADDR
,
Attributes:
EP_TYPE_BULK
,
EndpointSize:
SIDESHOW_IO_EPSIZE
,
PollingIntervalMS:
0x00
}
};
const
USB_Descriptor_String_t
PROGMEM
LanguageString
=
{
Header:
{
Size
:
USB_STRING_LEN
(
1
),
Type
:
DTYPE_String
},
UnicodeString:
{
LANGUAGE_ID_ENG
}
};
const
USB_Descriptor_String_t
PROGMEM
ManufacturerString
=
{
Header:
{
Size
:
USB_STRING_LEN
(
11
),
Type
:
DTYPE_String
},
UnicodeString:
L"Dean Camera"
};
const
USB_Descriptor_String_t
PROGMEM
ProductString
=
{
Header:
{
Size
:
USB_STRING_LEN
(
22
),
Type
:
DTYPE_String
},
UnicodeString:
L"LUFA Sideshow Demo"
};
const
USB_Descriptor_String_t
PROGMEM
SerialNumberString
=
{
Header:
{
Size
:
USB_STRING_LEN
(
12
),
Type
:
DTYPE_String
},
UnicodeString:
L"000000000000"
};
const
USB_OSDescriptor_t
PROGMEM
OSDescriptorString
=
{
Header:
{
Size
:
sizeof
(
USB_OSDescriptor_t
),
Type
:
DTYPE_String
},
Signature:
L"MSFT100"
,
VendorCode:
REQ_GetOSFeatureDescriptor
};
const
USB_OSCompatibleIDDescriptor_t
PROGMEM
DevCompatIDs
=
{
TotalLength:
sizeof
(
USB_OSCompatibleIDDescriptor_t
),
Version:
0x0100
,
Index:
EXTENDED_COMPAT_ID_DESCRIPTOR
,
TotalSections:
1
,
SideshowCompatID:
{
FirstInterfaceNumber
:
0x00
,
CompatibleID:
"SIDESHW"
,
SubCompatibleID:
"UNIV1"
}
};
uint16_t
CALLBACK_USB_GetDescriptor
(
const
uint16_t
wValue
,
const
uint8_t
wIndex
,
const
void
**
const
DescriptorAddress
)
{
const
uint8_t
DescriptorType
=
(
wValue
>>
8
);
const
uint8_t
DescriptorNumber
=
(
wValue
&
0xFF
);
const
void
*
Address
=
NULL
;
uint16_t
Size
=
NO_DESCRIPTOR
;
switch
(
DescriptorType
)
{
case
DTYPE_Device
:
Address
=
&
DeviceDescriptor
;
Size
=
sizeof
(
USB_Descriptor_Device_t
);
break
;
case
DTYPE_Configuration
:
Address
=
&
ConfigurationDescriptor
;
Size
=
sizeof
(
USB_Descriptor_Configuration_t
);
break
;
case
DTYPE_String
:
switch
(
DescriptorNumber
)
{
case
0x00
:
Address
=
&
LanguageString
;
Size
=
pgm_read_byte
(
&
LanguageString
.
Header
.
Size
);
break
;
case
0x01
:
Address
=
&
ManufacturerString
;
Size
=
pgm_read_byte
(
&
ManufacturerString
.
Header
.
Size
);
break
;
case
0x02
:
Address
=
&
ProductString
;
Size
=
pgm_read_byte
(
&
ProductString
.
Header
.
Size
);
break
;
case
0x03
:
Address
=
&
SerialNumberString
;
Size
=
pgm_read_byte
(
&
SerialNumberString
.
Header
.
Size
);
break
;
case
0xEE
:
/* A Microsoft-proprietary extension. String address 0xEE is used by Windows for
"OS Descriptors", which in this case allows us to indicate that our device is
Sideshow compatible regardless of VID/PID values. */
Address
=
&
OSDescriptorString
;
Size
=
pgm_read_byte
(
&
OSDescriptorString
.
Header
.
Size
);
break
;
}
break
;
}
*
DescriptorAddress
=
Address
;
return
Size
;
}
uint16_t
USB_GetOSFeatureDescriptor
(
const
uint16_t
wValue
,
const
uint8_t
wIndex
,
const
void
**
const
DescriptorAddress
)
{
const
void
*
Address
=
NULL
;
uint16_t
Size
=
NO_DESCRIPTOR
;
/* Check if a device level OS feature descriptor is being requested */
if
(
wValue
==
0x0000
)
{
/* Only the Extended Device Compatibility descriptor is supported */
if
(
wIndex
==
EXTENDED_COMPAT_ID_DESCRIPTOR
)
{
Address
=
&
DevCompatIDs
;
Size
=
sizeof
(
USB_OSCompatibleIDDescriptor_t
);
}
}
*
DescriptorAddress
=
Address
;
return
Size
;
}
Demos/Device/Incomplete/Sideshow/Descriptors.h
deleted
100644 → 0
View file @
b9f3ff39
/*
LUFA Library
Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
without fee, provided that the above copyright notice appear in
all copies and that both that the copyright notice and this
permission notice and warranty disclaimer appear in supporting
documentation, and that the name of the author not be used in
advertising or publicity pertaining to distribution of the
software without specific, written prior permission.
The author disclaim all warranties with regard to this
software, including all implied warranties of merchantability
and fitness. In no event shall the author be liable for any
special, indirect or consequential damages or any damages
whatsoever resulting from loss of use, data or profits, whether
in an action of contract, negligence or other tortious action,
arising out of or in connection with the use or performance of
this software.
*/
#ifndef _DESCRIPTORS_H_
#define _DESCRIPTORS_H_
/* Includes: */
#include <LUFA/Drivers/USB/USB.h>
#include <avr/pgmspace.h>
#include "Sideshow.h"
/* Macros: */
#define SIDESHOW_IN_EPADDR 3
#define SIDESHOW_OUT_EPADDR 4
#define SIDESHOW_IO_EPSIZE 64
/* Type Defines: */
typedef
struct
{
USB_Descriptor_Configuration_Header_t
Config
;
// SideShow Interface
USB_Descriptor_Interface_t
SSHOW_Interface
;
USB_Descriptor_Endpoint_t
SSHOW_DataInEndpoint
;
USB_Descriptor_Endpoint_t
SSHOW_DataOutEndpoint
;
}
USB_Descriptor_Configuration_t
;
typedef
struct
{
USB_Descriptor_Header_t
Header
;
int
Signature
[
7
];
uint16_t
VendorCode
;
}
USB_OSDescriptor_t
;
typedef
struct
{
uint8_t
FirstInterfaceNumber
;
uint8_t
Reserved
;
uint8_t
CompatibleID
[
8
];
uint8_t
SubCompatibleID
[
8
];
uint8_t
Reserved2
[
6
];
}
USB_OSCompatibleSection_t
;
typedef
struct
{
uint32_t
TotalLength
;
uint16_t
Version
;
uint16_t
Index
;
uint8_t
TotalSections
;
uint8_t
Reserved
[
7
];
USB_OSCompatibleSection_t
SideshowCompatID
;
}
USB_OSCompatibleIDDescriptor_t
;
/* Function Prototypes: */
uint16_t
CALLBACK_USB_GetDescriptor
(
const
uint16_t
wValue
,
const
uint8_t
wIndex
,
const
void
**
const
DescriptorAddress
)
ATTR_WARN_UNUSED_RESULT
ATTR_NON_NULL_PTR_ARG
(
3
);
uint16_t
USB_GetOSFeatureDescriptor
(
const
uint16_t
wValue
,
const
uint8_t
wIndex
,
const
void
**
const
DescriptorAddress
)
ATTR_WARN_UNUSED_RESULT
ATTR_NON_NULL_PTR_ARG
(
3
);
#endif
Demos/Device/Incomplete/Sideshow/Lib/SideshowApplications.c
deleted
100644 → 0
View file @
b9f3ff39
/*
LUFA Library
Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
without fee, provided that the above copyright notice appear in
all copies and that both that the copyright notice and this
permission notice and warranty disclaimer appear in supporting
documentation, and that the name of the author not be used in
advertising or publicity pertaining to distribution of the
software without specific, written prior permission.
The author disclaim all warranties with regard to this
software, including all implied warranties of merchantability
and fitness. In no event shall the author be liable for any
special, indirect or consequential damages or any damages
whatsoever resulting from loss of use, data or profits, whether
in an action of contract, negligence or other tortious action,
arising out of or in connection with the use or performance of
this software.
*/
#include "SideshowApplications.h"
SideShow_Application_t
InstalledApplications
[
MAX_APPLICATIONS
];
SideShow_Application_t
*
SideShow_GetFreeApplication
(
void
)
{
for
(
uint8_t
App
=
0
;
App
<
ARRAY_ELEMENTS
(
InstalledApplications
);
App
++
)
{
if
(
!
(
InstalledApplications
[
App
].
InUse
))
return
&
InstalledApplications
[
App
];
}
return
NULL
;
}
SideShow_Application_t
*
SideShow_GetApplicationFromGUID
(
GUID_t
*
const
GUID
)
{
for
(
uint8_t
App
=
0
;
App
<
ARRAY_ELEMENTS
(
InstalledApplications
);
App
++
)
{
if
(
InstalledApplications
[
App
].
InUse
)
{
if
(
GUID_COMPARE
(
&
InstalledApplications
[
App
].
ApplicationID
,
GUID
))
return
&
InstalledApplications
[
App
];
}
}
return
NULL
;
}
Demos/Device/Incomplete/Sideshow/Lib/SideshowApplications.h
deleted
100644 → 0
View file @
b9f3ff39
/*
LUFA Library
Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
without fee, provided that the above copyright notice appear in
all copies and that both that the copyright notice and this
permission notice and warranty disclaimer appear in supporting
documentation, and that the name of the author not be used in
advertising or publicity pertaining to distribution of the
software without specific, written prior permission.
The author disclaim all warranties with regard to this
software, including all implied warranties of merchantability
and fitness. In no event shall the author be liable for any
special, indirect or consequential damages or any damages
whatsoever resulting from loss of use, data or profits, whether
in an action of contract, negligence or other tortious action,
arising out of or in connection with the use or performance of
this software.
*/
#ifndef _SIDESHOW_APPLICATIONS_H_
#define _SIDESHOW_APPLICATIONS_H_
/* Includes: */
#include <avr/io.h>
#include <string.h>
#include <stdbool.h>
#include "SideshowCommon.h"
/* Type Defines: */
typedef
struct
{
bool
InUse
;
GUID_t
ApplicationID
;
GUID_t
EndpointID
;
UNICODE_STRING_t
(
50
)
ApplicationName
;
uint32_t
CachePolicy
;
uint32_t
OnlineOnly
;
bool
HaveContent
;
uint32_t
CurrentContentID
;
uint8_t
CurrentContent
[
MAX_CONTENTBUFFER_PER_APP
];
}
SideShow_Application_t
;
/* External Variables: */
extern
SideShow_Application_t
InstalledApplications
[
MAX_APPLICATIONS
];
/* Function Prototypes: */
SideShow_Application_t
*
SideShow_GetFreeApplication
(
void
);
SideShow_Application_t
*
SideShow_GetApplicationFromGUID
(
GUID_t
*
const
GUID
);
#endif
Demos/Device/Incomplete/Sideshow/Lib/SideshowCommands.c
deleted
100644 → 0
View file @
b9f3ff39
/*
LUFA Library
Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
without fee, provided that the above copyright notice appear in
all copies and that both that the copyright notice and this
permission notice and warranty disclaimer appear in supporting
documentation, and that the name of the author not be used in
advertising or publicity pertaining to distribution of the
software without specific, written prior permission.
The author disclaim all warranties with regard to this
software, including all implied warranties of merchantability
and fitness. In no event shall the author be liable for any
special, indirect or consequential damages or any damages
whatsoever resulting from loss of use, data or profits, whether
in an action of contract, negligence or other tortious action,
arising out of or in connection with the use or performance of
this software.
*/
#define INCLUDE_FROM_SIDESHOWCOMMANDS_H
#include "SideshowCommands.h"
UNICODE_STRING_t
(
80
)
UserSID
=
{
LengthInBytes
:
sizeof
(
SECURITY_INTERACTIVE_RID_SID
),
UnicodeString:
SECURITY_INTERACTIVE_RID_SID
};
Unicode_String_t
DeviceName
=
{
LengthInBytes
:
sizeof
(
L"LUFA Sideshow Device"
),
UnicodeString:
L"LUFA Sideshow Device"
};
Unicode_String_t
Manufacturer
=
{
LengthInBytes
:
sizeof
(
L"Dean Camera"
),
UnicodeString:
L"Dean Camera"
};
Unicode_String_t
SupportedLanguage
=
{
LengthInBytes
:
sizeof
(
L"en-US:1"
),
UnicodeString:
L"en-US:1"
};
void
Sideshow_ProcessCommandPacket
(
void
)
{
SideShow_PacketHeader_t
PacketHeader
;
Endpoint_SelectEndpoint
(
SIDESHOW_OUT_EPADDR
);
Endpoint_Read_Stream_LE
(
&
PacketHeader
,
sizeof
(
SideShow_PacketHeader_t
),
NULL
);
PacketHeader
.
Type
.
TypeFields
.
Response
=
true
;
printf
(
"
\r\n
Cmd: %lX"
,
(
PacketHeader
.
Type
.
TypeLong
&
0x00FFFFFF
));
switch
(
PacketHeader
.
Type
.
TypeLong
&
0x00FFFFFF
)
{