Skip to content

Commit 1164fa3

Browse files
committed
Add support for WhichJobsSupported and {Pdf|Jpeg}KOctetsSupported
1 parent 9e49e6c commit 1164fa3

3 files changed

Lines changed: 35 additions & 8 deletions

File tree

SharpIpp/Mapping/Profiles/GetPrinterAttributesProfile.cs

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,9 @@ public void CreateMaps(IMapperConstructor mapper)
6969
IppVersionsSupported =
7070
map.MapFromDicSetNull<IppVersion[]?>(src, PrinterAttribute.IppVersionsSupported),
7171
JobImpressionsSupported = map.MapFromDic<Range?>(src, PrinterAttribute.JobImpressionsSupported),
72-
JobKOctetsSupported = map.MapFromDic<Range?>(src, PrinterAttribute.JobKOctetsSupported),
72+
JobKOctetsSupported = map.MapFromDic<Range?>(src, PrinterAttribute.JobKOctetsSupported),
73+
JpegKOctetsSupported = map.MapFromDic<Range?>(src, PrinterAttribute.JpegKOctetsSupported),
74+
PdfKOctetsSupported = map.MapFromDic<Range?>(src, PrinterAttribute.PdfKOctetsSupported),
7375
JobMediaSheetsSupported = map.MapFromDic<Range?>(src, PrinterAttribute.JobMediaSheetsSupported),
7476
MultipleDocumentJobsSupported =
7577
map.MapFromDic<bool?>(src, PrinterAttribute.MultipleDocumentJobsSupported),
@@ -133,7 +135,8 @@ public void CreateMaps(IMapperConstructor mapper)
133135
OutputBinSupported = map.MapFromDicSetNull<string[]?>(src, PrinterAttribute.OutputBinSupported),
134136
MediaColDefault = src.ContainsKey(PrinterAttribute.MediaColDefault) ? MediaCol.Create(src[PrinterAttribute.MediaColDefault].FromBegCollection().ToIppDictionary(), map) : null,
135137
PrintColorModeDefault = map.MapFromDic<PrintColorMode?>(src, PrinterAttribute.PrintColorModeDefault),
136-
PrintColorModeSupported = map.MapFromDicSetNull<PrintColorMode[]?>(src, PrinterAttribute.PrintColorModeSupported),
138+
PrintColorModeSupported = map.MapFromDicSetNull<PrintColorMode[]?>(src, PrinterAttribute.PrintColorModeSupported),
139+
WhichJobsSupported = map.MapFromDicSetNull<WhichJobs[]?>(src, PrinterAttribute.WhichJobsSupported),
137140
} );
138141

139142
mapper.CreateMap<GetPrinterAttributesResponse, IDictionary<string, IppAttribute[]>>( ( src, map ) =>
@@ -159,6 +162,10 @@ public void CreateMaps(IMapperConstructor mapper)
159162
dic.Add( PrinterAttribute.JobImpressionsSupported, new IppAttribute[] { new IppAttribute( Tag.RangeOfInteger, PrinterAttribute.JobImpressionsSupported, src.JobImpressionsSupported.Value ) } );
160163
if ( src.JobKOctetsSupported != null )
161164
dic.Add( PrinterAttribute.JobKOctetsSupported, new IppAttribute[] { new IppAttribute( Tag.RangeOfInteger, PrinterAttribute.JobKOctetsSupported, src.JobKOctetsSupported.Value ) } );
165+
if (src.JpegKOctetsSupported != null)
166+
dic.Add(PrinterAttribute.JpegKOctetsSupported, new IppAttribute[] { new IppAttribute(Tag.RangeOfInteger, PrinterAttribute.JpegKOctetsSupported, src.JpegKOctetsSupported.Value) });
167+
if (src.PdfKOctetsSupported != null)
168+
dic.Add(PrinterAttribute.PdfKOctetsSupported, new IppAttribute[] { new IppAttribute(Tag.RangeOfInteger, PrinterAttribute.PdfKOctetsSupported, src.PdfKOctetsSupported.Value) });
162169
if ( src.JobMediaSheetsSupported != null )
163170
dic.Add( PrinterAttribute.JobMediaSheetsSupported, new IppAttribute[] { new IppAttribute( Tag.RangeOfInteger, PrinterAttribute.JobMediaSheetsSupported, src.JobMediaSheetsSupported.Value ) } );
164171
if ( src.MultipleDocumentJobsSupported != null )
@@ -265,6 +272,8 @@ public void CreateMaps(IMapperConstructor mapper)
265272
dic.Add(PrinterAttribute.PrintColorModeDefault, new IppAttribute[] { new IppAttribute(Tag.Keyword, PrinterAttribute.PrintColorModeDefault, map.Map<string>(src.PrintColorModeDefault.Value)) });
266273
if (src.PrintColorModeSupported?.Any() ?? false)
267274
dic.Add(PrinterAttribute.PrintColorModeSupported, src.PrintColorModeSupported.Select(x => new IppAttribute(Tag.Keyword, PrinterAttribute.PrintColorModeSupported, map.Map<string>(x))).ToArray());
275+
if (src.WhichJobsSupported?.Any() ?? false)
276+
dic.Add(PrinterAttribute.WhichJobsSupported, src.WhichJobsSupported.Select(x => new IppAttribute(Tag.Keyword, PrinterAttribute.WhichJobsSupported, map.Map<string>(x))).ToArray());
268277
return dic;
269278
} );
270279
}

SharpIpp/Models/GetPrinterAttributesResponse.cs

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -172,6 +172,16 @@ public class GetPrinterAttributesResponse : IIppResponseMessage
172172
/// job-k-octets-supported
173173
/// </summary>
174174
public Range? JobKOctetsSupported { get; set; }
175+
176+
/// <summary>
177+
/// jpeg-k-octets-supported
178+
/// </summary>
179+
public Range? JpegKOctetsSupported { get; set; }
180+
181+
/// <summary>
182+
/// pdf-k-octets-supported
183+
/// </summary>
184+
public Range? PdfKOctetsSupported { get; set; }
175185

176186
/// <summary>
177187
/// job-impressions-supported
@@ -247,6 +257,8 @@ public class GetPrinterAttributesResponse : IIppResponseMessage
247257
public MediaCol? MediaColDefault { get; set; }
248258

249259
public PrintColorMode? PrintColorModeDefault { get; set; }
250-
public PrintColorMode[]? PrintColorModeSupported { get; set; }
260+
public PrintColorMode[]? PrintColorModeSupported { get; set; }
261+
262+
public WhichJobs[]? WhichJobsSupported { get; set; }
251263
}
252264
}

SharpIpp/Protocol/Models/PrinterAttribute.cs

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,9 @@ public static class PrinterAttribute
3636
public const string PrinterCurrentTime = "printer-current-time";
3737
public const string MultipleOperationTimeOut = "multiple-operation-time-out";
3838
public const string CompressionSupported = "compression-supported";
39-
public const string JobKOctetsSupported = "job-k-octets-supported";
39+
public const string JobKOctetsSupported = "job-k-octets-supported";
40+
public const string JpegKOctetsSupported = "jpeg-k-octets-supported";
41+
public const string PdfKOctetsSupported = "pdf-k-octets-supported";
4042
public const string JobImpressionsSupported = "job-impressions-supported";
4143
public const string JobMediaSheetsSupported = "job-media-sheets-supported";
4244
public const string PagesPerMinute = "pages-per-minute";
@@ -66,7 +68,8 @@ public static class PrinterAttribute
6668
public const string OutputBinSupported = "output-bin-supported";
6769
public const string MediaColDefault = "media-col-default";
6870
public const string PrintColorModeDefault = "print-color-mode-default";
69-
public const string PrintColorModeSupported = "print-color-mode-supported";
71+
public const string PrintColorModeSupported = "print-color-mode-supported";
72+
public const string WhichJobsSupported = "which-jobs-supported";
7073

7174
public static IEnumerable<string> GetAttributes(IppVersion version)
7275
{
@@ -84,7 +87,7 @@ public static IEnumerable<string> GetAttributes(IppVersion version)
8487
yield return PrinterState;
8588
yield return PrinterStateReasons;
8689
yield return PrinterStateMessage;
87-
yield return IppVersionsSupported ;
90+
yield return IppVersionsSupported;
8891
yield return OperationsSupported;
8992
yield return MultipleDocumentJobsSupported;
9093
yield return CharsetConfigured;
@@ -102,7 +105,9 @@ public static IEnumerable<string> GetAttributes(IppVersion version)
102105
yield return PrinterCurrentTime;
103106
yield return MultipleOperationTimeOut;
104107
yield return CompressionSupported;
105-
yield return JobKOctetsSupported;
108+
yield return JobKOctetsSupported;
109+
yield return JpegKOctetsSupported;
110+
yield return PdfKOctetsSupported;
106111
yield return JobImpressionsSupported;
107112
yield return JobMediaSheetsSupported;
108113
yield return PagesPerMinute;
@@ -132,7 +137,8 @@ public static IEnumerable<string> GetAttributes(IppVersion version)
132137
yield return OutputBinSupported;
133138
yield return MediaColDefault;
134139
yield return PrintColorModeDefault;
135-
yield return PrintColorModeSupported;
140+
yield return PrintColorModeSupported;
141+
yield return WhichJobsSupported;
136142
}
137143
}
138144
}

0 commit comments

Comments
 (0)